搜索条件中的SQL模式匹配

时间:2015-11-20 15:39:27

标签: sql sql-server tsql

我有一个包含字段name的表格。

对于像ABC这样的给定名称,我想获取具有该名称的记录以及末尾附加L的记录。

因此对于ABC我希望所有名称都为ABCABCL的记录。

我尝试使用以下代码获取记录,但它不起作用。

SELECT * FROM tbl
WHERE name like "ABC[|L]"

我正在使用TSQL。

模式如何匹配这些名称?

3 个答案:

答案 0 :(得分:3)

使用此SQL:

SELECT * FROM tbl WHERE name IN ('ABC', 'ABCL')

如果您在存储过程/函数中使用此SQL,则可能会执行以下操作。假设您在name变量中传递@name的值。

SELECT * FROM tbl WHERE name IN (@name, @name + 'L')

答案 1 :(得分:1)

使用IN运算符。

SELECT * 
FROM tbl
WHERE name IN ('ABC', 'ABCL')

答案 2 :(得分:0)

如果您将使用变量而不是文字字符串,请尝试以下操作:

select *
  from tbl
 where name like (@YourName + @ExtraLetter)
    or name = @YourName