我正在使用T-SQL進行查詢。如何在T-SQL中將LIKE和CONCAT()與變量一起使用
目標:返回包含存儲在變量中名稱的行。
我的問題:查詢返回所有行,不進行篩選。
附加信息:名稱存儲爲varchar
和有這就是爲什麼我想連接以「%」的變量的字母后的幾個空格。
此外,當我在變量的末尾附加一個'%'後運行查詢時,數據庫將返回以'D'開頭的所有記錄。
我查詢:
DECLARE @fName as varchar;
SET @fName='DILLON';
SELECT DISTINCT
e.FIRST_NAME, e.LAST_NAME, e.EMAIL_ADDRESS
FROM
[172.20.11.11].LSLMDB.dbo.vwEmployee e
JOIN
[172.20.11.11].LSLMDB.ls_apps.PAEMPLOYEE pa ON pa.EMPLOYEE = e.EMPLOYEE
JOIN
[172.20.11.11].LSLMDB.ls_apps.PCODES pc ON pa.LOCAT_CODE = pc.CODE
JOIN
[172.20.11.11].LSLMDB.ls_apps.PCODESDTL pcd ON pc.CODE = pcd.CODE
WHERE
e.FIRST_NAME LIKE CONCAT('%',@fName,'%');
我明白任何試圖幫助!
永遠,永遠* *有一個明確的長度聲明你'varchar'變量。免得你意外地只出現一個字符,就像你現在跑進去一樣。這是[踢壞習慣](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx)。 –
感謝您的諮詢! – DillonHarless
儘管解決方案相當簡單,但這個問題的提問非常好......感謝您付出努力並歡迎SO Dillion。 – Hogan