簡體   English   中英

從另一列的子字符串更新一列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM