SQL Server通配符搜索

时间:2018-02-19 17:07:17

标签: sql-server

我正在使用SQL Server 2014,而我从LIKE表达式返回的结果不正确。我正在尝试匹配此类型的字符串A-ABC123-AABB,其中ABC123AABB可以是任意长度的字符串。

以下是LIKE表达式:

ID.name LIKE 'a-%-'+STR.STR

如果迭代的STR为带有前缀短划线的字符串,并且存在STR且没有P,则它将返回没有短划线的值。

我如何进行严格匹配,以便只显示破折号的结果,IF STR有一个字符串?

示例:

STR表:

col     STR     Val
----------------
1       test    10
2       -test   12

ID表:

col     name
-----------------------
1       a-blah-test
2       a-blah--test
3       a-tst-test

结果:

name            val
--------------------
a-blah-test     10
a-blah--test    10
a-blah--test    12

1 个答案:

答案 0 :(得分:1)

虽然我不确定它是否会正确处理所有一般情况,但这可能会解决您的问题。

ID.names LIKE 'P-%[^-]-'+ STR.STR