我有这个以管道分隔的列。
ID Col1
1000 Class1|Sec2|Tom|Brady
1001 Class1|Sec2|Row4|Tim|Tebow
1002 Class2|Sec2|Row3|Huck|Fin
1003 Class2|Sec2|Tom|Sawyer
1004 Class10|Sec1|Rowq|sa|
现在我怎样才能在最后一个管道之后获取名称。
O / P
ID Col1
1000 Brady
1001 Tebow
1002 Fin
1003 Sawyer
1004
任何人都可以帮我解决这个问题。
由于
答案 0 :(得分:3)
就像你现在看到的那样,这只会让你感到头痛。规范化你的表格。看起来应该是这样的
ID Class Section Firstname Lastname
1000 Class1 Sec2 Tom Brady
答案 1 :(得分:1)
1)我希望这个表是一个临时表。
2)尝试此查询:
SELECT ID,
CASE WHEN Col1 LIKE N'%|%|%|%'
THEN CONVERT(XML, N'<row>' + REPLACE(Col1, N'|', N'</row><row>') + N'</row>').value('(row)[4]','NVARCHAR(50)')
END
FROM dbo.MYTABLE
注意:您应该用适当的数据类型和最大值替换NVARCHAR(50)。长度。