Sql server 从不同长度的文本值字段中选择特定文本

Sql server 从不同长度的文本值字段中选择特定文本,sql-server,Sql Server,我有一个列,其中包含以下行 "XX - Make a determination from receipt of request within 15 calendar days" "Make a determination from receipt of request or necessary info within 2 business days" "YYYYYYY - Make a determination from receipt of request within 72 calend

我有一个列,其中包含以下行

"XX - Make a determination from receipt of request within 15 calendar days"
"Make a determination from receipt of request or necessary info within 2 business days"
"YYYYYYY - Make a determination from receipt of request within 72 calendar hours"
"ZZZZZZZZZZZ - Make a determination from receipt of request within 30 calendar days"
所有类型的不同组合具有相似的

"XXXXXXXXXXXXXXXXXXXXX"  from    "text I want to get" within ZZZZZZZZZZZZZZZZZZZZ
X和Z的长度会发生变化,from和in之间的文本也会发生变化,但from和in始终存在于文本中。如何进行查询以将要获取的文本放入表变量中,以便将其与同一表中的其他列进行比较,并查看它们是否匹配


我已经准备好了表变量和标量变量来获取值。我只需要正确的select语句

这太难看了。修复表并停止在字符串中存储不同的数据点,每次都需要这样解析。如果你的主管不明白为什么这样不好,问他是否愿意在每次打开电视时重新编程遥控器

SET NOCOUNT ON;

DECLARE @t TABLE(c VARCHAR(8000));

INSERT @t VALUES
('XX - Make...ion from receipt of request within 15 calendar days'),
('Make a de...ion from receipt of request or necessary info within 2 business days'),
('YYYYYYY - Make...ion from receipt of request within 72 calendar hours'),
('ZZZZZZZZZZZ - Make...ion from receipt of request within 30 calendar days');

SELECT SUBSTRING(c, 1, CHARINDEX('within', c)-1) FROM
(SELECT c = SUBSTRING(c, CHARINDEX('from', c) + 5, 8000) FROM @t) AS x;
结果:

receipt of request 
receipt of request or necessary info 
receipt of request 
receipt of request 

也许你应该在存储数据之前将其拆分…看起来X和Z也不是必需的。也许你太过模糊了实际的内容,导致了。。。数据已存储在“规则描述”中的难闻问题专栏自创建以来。这并不意味着你不能一次性修复它,而不是每次都编写一个昂贵的查询来拆分它。如果我向我的主管提出这个想法,我想他不会太高兴……请告诉我你是否有这个查询的解决方案……+1仍然提供解决方案。@aaron bertrand-太棒了。。。。很有魅力…非常感谢