SQL:在另一个字符串中查找精确字符串



我试图在SQL Server上的其他字符串列表中找到一个确切的字符串。第一个字符串可以部分地是另一个字符串的一部分。例如,在123和01230中查找123,只返回第一行作为精确匹配。没有返回字符串01230。原始字符串可以是不同长度的,所以我可以搜索123,也可以搜索1230。下面的进一步示例:

比如说,我有一列这样的字符串:


_VB12345.VB84556 _VB1234.VB84556
_VB12345.VB8455
_VB8455.VB1234

我该写什么查询来查找:

VB1234 -返回第二个和第四个值VB8455 -返回第三和第四个值

我不能只写

select *
from table
where reference like '%VB1234%'

因为这将返回所有4行。

我也不能写

select *
from table
where reference like '%VB1234.%'

因为这将只返回第二行。我不确定如何包含特殊字符作为字符串结束符。

我希望这对人们有足够的意义

对于您的情况,您应该能够做

where reference + "." like "%VB1234.%"

要得到更好的答案,在更一般的情况下,您可能需要查看正则表达式。

最新更新