2013-04-11 29 views
1

這是I'm思考:SQL:使用到哪裏去尋找當前的查詢與參數

DECLARE @Search varchar(150) 
SET @Search = 'CompanyName' 

SELECT a, b, c, d, e 
FROM Table 
WHERE a, b, c, d, e in (@Search) 

這可能嗎?如果是的話,可以在WHERE條件設置爲:

WHERE a, b, c, d, e in (('%')+(@Search)) 

因此,它會根據搜索中搜索所有連接?

+0

我不清楚你想達到什麼目的。你是否試圖選擇'a,b,c,d'或'e'包含字符串''Companyname''的行? – 2013-04-11 11:48:14

+0

翻轉它? (在(a,b,c,d,e)中@search) - 你不能在'()'中使用通配符,你需要分解成'或'。 – 2013-04-11 11:48:47

回答

1

這將工作!

DECLARE @Search varchar(150) 
SET @Search = 'CompanyName' 

SELECT a, b, c, d, e 
FROM Table 
WHERE a = @Search or 
     b = @Search or 
     c = @Search or 
     d = @Search or 
     e = @Search 


SELECT a, b, c, d, e 
    FROM Table 
    WHERE a like '%' + @Search + '%' or 
      b like '%' + @Search + '%' or 
      c like '%' + @Search + '%' or 
      d like '%' + @Search + '%' or 
      e like '%' + @Search + '%' 
+1

確定看起來不錯,但我遇到了不應彈出的空數據的問題。使用你的例子,並添加:其中a不爲空等 – AceAlfred 2013-04-11 12:06:28

+0

以及:<>'' – AceAlfred 2013-04-11 12:07:05