我有一個表字段爲name
。搜索條件中的SQL模式匹配
對於像ABC
這樣的給定名稱,我希望獲取帶有該名稱的記錄以及末尾附加L
的記錄。
因此對於ABC
我希望所有記錄的名稱爲ABC
或ABCL
。
我試圖使用下面的代碼獲取記錄,但它不起作用。
SELECT * FROM tbl
WHERE name like "ABC[|L]"
我正在使用TSQL。
模式如何匹配這些名稱?
我有一個表字段爲name
。搜索條件中的SQL模式匹配
對於像ABC
這樣的給定名稱,我希望獲取帶有該名稱的記錄以及末尾附加L
的記錄。
因此對於ABC
我希望所有記錄的名稱爲ABC
或ABCL
。
我試圖使用下面的代碼獲取記錄,但它不起作用。
SELECT * FROM tbl
WHERE name like "ABC[|L]"
我正在使用TSQL。
模式如何匹配這些名稱?
使用此SQL:
SELECT * FROM tbl WHERE name IN ('ABC', 'ABCL')
如果您使用的是存儲過程/函數中這個SQL,像下面會工作。假設,您在@name
變量中傳遞的值爲name
。
SELECT * FROM tbl WHERE name IN (@name, @name + 'L')
使用IN
運算符。
SELECT *
FROM tbl
WHERE name IN ('ABC', 'ABCL')
如果你要使用的變量,而不是文字串,試試這個:
select *
from tbl
where name like (@YourName + @ExtraLetter)
or name = @YourName
爲什麼有人downvote工作答案? https://data.stackexchange.com/stackoverflow/query/395645 – lad2025
其中name IN( 'ABC', 'ABCL') – jarlh
我使用TSQL – octavian