我有2列 - 第一列A包含字符串“abc / def”,第二列B为空。我想拆分字符串并使用以下结果更新列:
第一栏A:abc 第二栏B:def
对于所有A栏条目。
答案 0 :(得分:2)
使用charindex()
查找分隔符的位置,left()
获取左侧部分,stuff()
获取剩余部分:
update t
set a = left(a, charindex('/',a+'/')-1)
, b = stuff(a, 1,charindex('/',a+'/'),'')
;
select * from t;
rextester演示:http://rextester.com/WZFPH72760
返回:
+-----+-----+
| a | b |
+-----+-----+
| abc | def |
+-----+-----+
答案 1 :(得分:1)
试试这个:
opacity: 0
A列的第一个和B列的第二个
更新后更新:
select SUBSTRING('abc/def', 0, CHARINDEX('/','abc/def'))
select SUBSTRING('abc/def', CHARINDEX('/','abc/def')+1, len('abc/def'))
答案 2 :(得分:0)
你可以试试“SUBSTRING”......
update <table> set
columnB = (select SUBSTRING(columnA, CHARINDEX('/',columnA)+1, len(columnA)) from <table>),
columnA = (select SUBSTRING(columnA, 0, CHARINDEX('/',columnA)) from <table>);
或查看此link以使用STRING_SPLIT transact-Sql ..
希望这有帮助!