2015-11-20 79 views
1

我有一個表字段爲name搜索條件中的SQL模式匹配

對於像ABC這樣的給定名稱,我希望獲取帶有該名稱的記錄以及末尾附加L的記錄。

因此對於ABC我希望所有記錄的名稱爲ABCABCL

我試圖使用下面的代碼獲取記錄,但它不起作用。

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

我正在使用TSQL。

模式如何匹配這些名稱?

+2

其中name IN( 'ABC', 'ABCL') – jarlh

+0

我使用TSQL – octavian

回答

3

使用此SQL:

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

如果您使用的是存儲過程/函數中這個SQL,像下面會工作。假設,您在@name變量中傳遞的值爲name

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

使用IN運算符。

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

如果你要使用的變量,而不是文字串,試試這個:

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

爲什麼有人downvote工作答案? https://data.stackexchange.com/stackoverflow/query/395645 – lad2025