2017-03-10 76 views
2

我有2列 - 第一列A包含字符串「abc/def」,第二列B爲空。我想與以下結果來分割字符串和更新列:mssql字符串拆分和更新列

第一色譜柱A:ABC 第二柱B:DEF

對於所有列A的條目。

+0

我建議您閱讀有關基本SQL字符串操作函數和基本更新語句的內容。 SO上的例子也很少。 –

+0

你可以找到很多關於它的例子。請谷歌,你會發現很多事情。 – Dogan

回答

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

試試這個:

select SUBSTRING('abc/def', 0, CHARINDEX('/','abc/def')) 
select SUBSTRING('abc/def', CHARINDEX('/','abc/def')+1, len('abc/def')) 

第一個爲A列,第二個爲B列

更新了您的更新:

update myTable set ColumnA = SUBSTRING(ColumnA, 0, CHARINDEX('/',ColumnA)), ColumnB= SUBSTRING(ColumnA, CHARINDEX('/',ColumnA)+1, len(ColumnA)) 
0

你可以用 「串」 嘗試...

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交易-Sql ..

希望這 幫幫我!