我正在使用SQL Server 2014,而我从LIKE
表达式返回的结果不正确。我正在尝试匹配此类型的字符串A-ABC123-AABB
,其中ABC123
和AABB
可以是任意长度的字符串。
以下是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
答案 0 :(得分:1)
虽然我不确定它是否会正确处理所有一般情况,但这可能会解决您的问题。
ID.names LIKE 'P-%[^-]-'+ STR.STR