从出现另一个字符串的句子中获取字符串

问题描述 投票:0回答:1

我有一个表,其中的列Col1的值如下:

SELECT 'XXX-T09-CFO Signature' AS  Col1
UNION 
SELECT 'YYY-T140 - Update Funding Authorization Status to Completed'
UNION 
SELECT'ZZZ-T13-PAB Chair Signature'

我的输出col2在col1的单词“ Signature”之前应有字符串。如果未找到单词Signature,则应将其设置为NULL

SELECT 'XXX-T09-CFO Signature' AS  Col1,'CFO' as Col2
UNION 
SELECT 'YYY-T140 - Update Funding Authorization Status to Completed' ,Null
UNION 
SELECT'ZZZ-T13-PAB Chair Signature','PAB Chair' 
sql sql-server-2008 sql-server-2008-r2
1个回答
0
投票

我认为您想使用STRING_SPLIT:https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-ver15&viewFallbackFrom=sql-server-previousversions

我将演示一次使用它(未经测试),但是您可以使用它两次来获得想要的东西,一次在破折号上分割一次,一次在空格上分割

SELECT Word
FROM
    (
     SELECT 'XXX-T09-CFO Signature' AS Word,ROW_NUMBER()OVER(ORDER BY (SELECT NULL)) RN
     FROM STRING_SPLIT(@Var, '-')
    ) T
WHERE RN == 3;

根据https://stackoverflow.com/a/54026051/11817085修改

© www.soinside.com 2019 - 2024. All rights reserved.