Sql 我有一个移动列,数据格式为91-98-91254***我想在3个单独的列中显示数据,用“-”分隔
该查询删除了-但之后我想在3个不同的列中显示每个集合`在此处输入代码'Sql 我有一个移动列,数据格式为91-98-91254***我想在3个单独的列中显示数据,用“-”分隔,sql,sql-server,tsql,Sql,Sql Server,Tsql,该查询删除了-但之后我想在3个不同的列中显示每个集合`在此处输入代码' SELECT SUBSTRING(RIGHT(REPLACE(mobile,'-',''),10),1,3) + ' ' + SUBSTRING(RIGHT(REPLACE(mobile,'-',''),10),4,3) + ' ' + SUBSTRING(RIGHT(REPLACE(mobile,'-',''),10),7,4) FROM candidate_jitendra 只需在选择列表中
SELECT SUBSTRING(RIGHT(REPLACE(mobile,'-',''),10),1,3) + ' ' +
SUBSTRING(RIGHT(REPLACE(mobile,'-',''),10),4,3) + ' ' +
SUBSTRING(RIGHT(REPLACE(mobile,'-',''),10),7,4)
FROM candidate_jitendra
只需在选择列表中将每个数字项单独列出来:
这是动态访问字符串,也不是任何核心位置
Declare @t table (id int, name varchar(50))
insert into @t (id,name) values( 1 ,'99-98-91254')
insert into @t (id,name) values( 2 ,'99-89-8681')
insert into @t (id,name) values( 3 ,'87')
insert into @t (id,name) values( 4 ,'786-32')
insert into @t (id,name) values( 5 ,'79-45-4')
;WITH Split_Names (Name, xmlname)
AS
(
SELECT
Name,
CONVERT(XML,'<Names><name>'
+ REPLACE(Name,'-', '</name><name>') + '</name></Names>') AS xmlname
FROM @t
)
SELECT
xmlname.value('/Names[1]/name[1]','varchar(100)') AS first_name,
xmlname.value('/Names[1]/name[2]','varchar(100)') AS last_name,
xmlname.value('/Names[1]/name[3]','varchar(100)') AS third_name --You can add as you want
FROM Split_Names
Declare @t table (id int, name varchar(50))
insert into @t (id,name) values( 1 ,'99-98-91254')
insert into @t (id,name) values( 2 ,'99-89-8681')
insert into @t (id,name) values( 3 ,'87')
insert into @t (id,name) values( 4 ,'786-32')
insert into @t (id,name) values( 5 ,'79-45-4')
;WITH Split_Names (Name, xmlname)
AS
(
SELECT
Name,
CONVERT(XML,'<Names><name>'
+ REPLACE(Name,'-', '</name><name>') + '</name></Names>') AS xmlname
FROM @t
)
SELECT
xmlname.value('/Names[1]/name[1]','varchar(100)') AS first_name,
xmlname.value('/Names[1]/name[2]','varchar(100)') AS last_name,
xmlname.value('/Names[1]/name[3]','varchar(100)') AS third_name --You can add as you want
FROM Split_Names