我有字符串" 1:182:1,1:195:2,1:213:1"。 我用''来拼写字符串。在不同的行。现在我希望每行单列在同一行的3个不同列中分割。
我尝试使用
SELECT LEFT(ThemeProperty, CHARINDEX(':', ThemeProperty) - 1) ,
RIGHT(ThemeProperty,
LEN(ThemeProperty) - CHARINDEX(':', ThemeProperty))
FROM #tempThemeProperty
但它的输出是
(No column name) (No column name)
1 182:1
1 195:2
1 213:1
但我希望它是
Column1 Column2 Column3
1 182 1
所以任何帮助都会受到赞赏。
答案 0 :(得分:2)
DECLARE @Tmp TABLE (Id INT,Name VARCHAR(20))
INSERT @Tmp SELECT 1,'182:1'
INSERT @Tmp SELECT 2,'195:2'
INSERT @Tmp SELECT 3,'213:1'
--Using PARSENAME
SELECT Id,
PARSENAME(REPLACE(Name,':','.'),2) Value1,
PARSENAME(REPLACE(Name,':','.'),1) Value2
FROM @Tmp
这应该可以了..让我知道它是否有帮助
答案 1 :(得分:0)
这是一种方法但受sql注入
declare @s varchar(2000),@data varchar(2000)
select @s='1:182:1'
select @data=''''+replace(@s,':',''',''')+''''
exec('select '+@data)