首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将一列划分为多列

如何将一列划分为多列
EN

Stack Overflow用户
提问于 2015-12-23 14:32:50
回答 3查看 135关注 0票数 2

我有一列,我想把它分成三列

代码语言:javascript
复制
Name
Jack,Jon Man

就像这样

代码语言:javascript
复制
first_name  , middle_name , last_name
jack        , Jon         , Man

名字后面跟一个逗号,中间名字后面跟一个空格。

EN

回答 3

Stack Overflow用户

发布于 2015-12-23 15:20:17

使用REGEXP_SUBSTR()函数很容易做到这一点。Find out more

此查询标识字母字符的第一个、第二个和第三个匹配项。只要有一个分隔符,它是什么都无关紧要。

代码语言:javascript
复制
SQL> select col1 
  2         , regexp_substr(col1, '[[:alpha:]]+') first_name 
  3         , regexp_substr(col1, '[[:alpha:]]+', 1, 2) middle_name 
  4         , regexp_substr(col1, '[[:alpha:]]+', 1, 3) last_name 
  5  from t34;

COL1                           FIRST_NAME MIDDLE_NAM LAST_NAME
------------------------------ ---------- ---------- ----------
Jack,Jon Man                   Jack       Jon        Man

SQL> 
票数 4
EN

Stack Overflow用户

发布于 2015-12-23 16:30:55

示例数据:

代码语言:javascript
复制
name
---------
Jack,Jon Man
Dave,Mike Doe
Chris,Brad Duke

查询:

代码语言:javascript
复制
select substr(name, 0, instr(name, ',')-1) as first_name,
    substr(name, instr(name,',',1,1)+1, instr(name, ',')-1) as middle_name,
    substr(name, instr(name,' ',1,1), instr(name, ' ')+10) as last_name
from sample_data

输出:

代码语言:javascript
复制
first_name    middle_name    last_name
---------------------------------------
Jack          Jon            Man
Dave          Mike           Doe
Chris         Brad           Duke

祝你好运,圣诞快乐!

票数 0
EN

Stack Overflow用户

发布于 2015-12-23 15:58:03

如果我们只是选择数据,可以使用简单的子串函数来完成。例如

代码语言:javascript
复制
 create table #Random
(
Name Varchar(50)
)
insert into #random values ('Jack,Jon Man')

select substring(Name,1,4)'First_Name', 
  substring(Name,6,3)'Middle_Name',
  substring(Name,10,3)'Last_Name'
from #Random
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34429919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档