簡體   English   中英

從 A 列中提取子字符串並將其插入 B 列

[英]Extracting substring from Column A and inserting it into Column B

A 列中的值的格式類似於下面的示例值。 我需要在第一個破折號之后(無空格)和第二個破折號之前(兩側有空格)獲取值。 如果目標值可以簡單地通過間距差異來捕獲,那就沒問題了。 或者,樣本中的“CC”可以有不同的值,但總是2個字符,所以開頭也可以識別為冒號、空格、2個字符、破折號(沒有空格)。

樣本值:

John Doe: CC- Grab This Value - Some Other Random String - 01/16/2018

所以在這個例子中,B 列應該填充Grab This Value

SQL Server 中,您可以使用以下內容:

DECLARE @text varchar(100)='John Doe: CC-Grab This Value - Some Other Random String - 01/16/2018'

select @text as ColumnA,
       SUBSTRING(@text,
                 CHARINDEX('-',@text,1)+1,
                 CHARINDEX('-',@text,CHARINDEX('-',@text,1)+1)-CHARINDEX('-',@text,1)-1) as ColumnB

如果這是SQL Server ,您可以使用cross apply 我會將空間作為charindex一部分包含charindex只是為了更加謹慎,而且它會稍微簡化解決方案。 它的工作方式是 - 您在-出現之前捕獲所有內容(周圍有空格),然后在您剛剛捕獲的子字符串中第一次出現-之后捕獲所有內容。

select col_a, col_b
from your_table
cross apply (select left(col_a, charindex(' - ', col_a)-1) as txt) t2
cross apply (select right(txt, charindex('-', reverse(txt))-2) as col_b) t3;

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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