SQL查找缩写值
因此,我声明了一个表:SQL查找缩写值,sql,sql-server,sql-like,Sql,Sql Server,Sql Like,因此,我声明了一个表: DECLARE @VTable TABLE (ColtoAdj VARCHAR(50),HeadlineDescription VARCHAR(50),HeadlineDescriptionGroup VARCHAR(50)); INSERT INTO @VTable VALUES ('Neopla','Neoplasia','Cancer'); INSERT INTO @VTable VALUES ('Metasta','Metastases','C
DECLARE @VTable TABLE (ColtoAdj VARCHAR(50),HeadlineDescription
VARCHAR(50),HeadlineDescriptionGroup VARCHAR(50));
INSERT INTO @VTable VALUES ('Neopla','Neoplasia','Cancer');
INSERT INTO @VTable VALUES ('Metasta','Metastases','Cancer');
INSERT INTO @VTable VALUES ('CES','CES','Cauda Equina');
INSERT INTO @VTable VALUES ('CES-I','CES-I','Cauda Equina');
然后在主表上的Outter应用程序中使用,以查找headlinedescription和headlinedescriptiongroup
OUTER APPLY (
SELECT TOP 1
vt.ColtoAdj,
Vt.HeadlineDescription,
Vt.HeadlineDescriptionGroup
FROM @VTable AS vt
WHERE cmd.Headline LIKE ('%' + vt.ColtoAdj + '%')
对于我的大多数数据来说,它工作得很好,因为很多vt.ColtoAdj查找词都是唯一的,比如有连字符等,所以只能被拉取。问题在于CES值。这可以是255个字符标题中的任意位置。因此,它目前正在收集诸如“大括号”之类的东西,并错误地添加它们。我试着为它插入两个值“CES”或“CES”,只是为了得到缩写,但这仍然抓住了以它结尾或开头的单词。表中是否有这个值,我可以让它自己查找3个字母,但也可以搜索其他字母的完整单词
这可能是一个“否”的情况,只是因为它是一个类似的函数,并且使用单词查找,您不能总是保证100%的准确性,但我想我会检查一下 如果要查找单词边界,并且单词由空格限定,则可以使用:
WHERE ' ' + cmd.Headline + ' ' LIKE '% ' + vt.ColtoAdj + ' %'
我只能想一个针对每个案例的解决方案:
WHERE
(
(cmd.Headline LIKE ('%' + vt.ColtoAdj + '%') and vt.ColtoAdj<>'CES')
OR
(cmd.Headline='CES' and vt.ColtoAdj='CES')
)
在哪里
(
(cmd.Headline类似('%'+vt.ColtoAdj+'%')和vt.ColtoAdj'CES')
或
(cmd.Headline='CES'和vt.ColtoAdj='CES')
)
Ahhh谢谢。我相信这已经成功了。很简单,但我想不起来。