mssql字符串拆分和更新列

时间:2017-03-10 13:10:37

标签: sql-server

我有2列 - 第一列A包含字符串“abc / def”,第二列B为空。我想拆分字符串并使用以下结果更新列:

第一栏A:abc 第二栏B:def

对于所有A栏条目。

3 个答案:

答案 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 ..

希望这有帮助!