[英]Update one column from substring of another column
我有一個現有的列,希望將其作為子集並插入同一表的第二個(新)列中。
例如MyTable。[FullName](現有列)包含類似“ P-13-146 PS-Goodyear-Tire repair”的字符串
我創建了一個新列MyTable。[ShortName],我想將第一列中的值的子字符串插入到(“ P-13-146 PS”)中。 問題在於每個全名的子字符串的長度都不同。 唯一真正的一致性是我想要第二個空格字符。
我正在嘗試解決以下問題:
更新[MyTable] SET [ShortName] = ???
嘗試這個:
declare @exp varchar(200)
set @exp='P-13-146 PS - Goodyear - Tire repair'
select RTRIM(SUBSTRING(@exp,1,CHARINDEX(' ',@exp,charindex(' ',@exp)+1)))
只需組合字符串操作函數,直到獲得所需的內容即可:
SELECT
CASE WHEN CHARINDEX(' ',FullName, CHARINDEX(' ', FullName)+1) = 0 THEN FullName
ELSE SUBSTRING(FullName, 1, CHARINDEX(' ',FullName, CHARINDEX(' ', FullName)+1)-1)
END ShortName
FROM MyTable
CASE語句的第一部分用於名稱少於兩個空格的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.