如何在SQL Server中拆分字符串

时间:2011-07-08 03:58:22

标签: sql sql-server-2005 tsql

我有以下输入:

Data
-----
A,10
A,20
A,30
B,23
B,45

预期产出:

col1  Col2
----  -----
A      10
A      20
A      30
B      23
B      45

如何拆分字符串以产生所需的输出?

5 个答案:

答案 0 :(得分:31)

SELECT substring(data, 1, CHARINDEX(',',data)-1) col1,
substring(data, CHARINDEX(',',data)+1, LEN(data)) col2
FROM table

答案 1 :(得分:4)

我知道已经给出了积分,无论如何都会发布,因为我觉得它稍微好一点

DECLARE @t TABLE (DATA VARCHAR(20))

INSERT @t VALUES ('A,10');INSERT @t VALUES ('AB,101');INSERT @t VALUES ('ABC,1011')

SELECT LEFT(DATA, CHARINDEX(',',data) - 1) col1, 
RIGHT(DATA, LEN(DATA) - CHARINDEX(',', data)) col2
FROM @t

答案 2 :(得分:2)

declare @string nvarchar(50)
set @string='AA,12'

select substring(@string,1,(charindex(',',@string)-1) ) as col1 
, substring(@string,(charindex(',',@string)+1),len(@string) ) as col2![my sql server image which i tried.][1]

答案 3 :(得分:2)

如果第1列中的值始终为一个字符长,而第2列中的值始终为2,则可以使用SQL LeftSQL Right函数:

SELECT LEFT(data, 1) col1, RIGHT(data, 2) col2
FROM <table_name>

答案 4 :(得分:-1)

这很容易,您可以通过以下查询来获取它:

SELECT LEFT(DATA, CHARINDEX(',',DATA)-1) col1,RIGHT(Data,LEN(DATA)-(CHARINDEX(',',DATA))) col2 from Table