首页 > 解决方案 > 在 sql 列中搜索字符串并需要使用前缀拆分所需的字符串

问题描述

我有一个表,有两个列 account 和 rt_exclude。我只需要从 rt_exclude 列中选择带有前缀的单词“exclusion”。rt_exclude 列包含许多不同长度的行,所以我不想使用 case 语句。

123 ,      278-C Share Exclusion; 3405-B Share Exclusion; 5784-Reit Exclusion
333 ,    278-C Share Exclusion; 3405-B Share Exclusion; 5784-Reit Exclusion; 6532-Exclude GIREX 39822J102
444,         3274-TSSAX Exclusion; 3370-BFAFX Exclusion; 3405-B Share Exclusion; 5784-Reit Exclusion

要求的输出应该是这样与帐户列

123,    Share Exclusion
123,   Share Exclusion
123,   Reit Exclusion
333,    Share Exclusion
333,    Share Exclusion
123,    Reit Exclusion
444,   TSSAX Exclusion
444,   BFAFX Exclusion
444,   Reit Exclusion

标签: sqlsql-serverstringsql-function

解决方案


这看起来像string_split()

select t.col1, s.value
from t cross apply
     string_split(col2, '; ') s
where s.value like '%Exclusion';

请注意,不鼓励在单个列中存储多个值。您应该重新考虑数据模型。


推荐阅读