2017-08-01 78 views
-3

我有一個表有nvarchar列;我需要用where子句搜索多個條目。從表中選擇nvarchar的where子句中的多個條目

我能夠搜索到一個實體一次喜歡當checknumber爲1906572,但我需要檢索多個實體「」 checknumber數據(nvarchar)是這兩種的是:663096,663105, 663107,663109,663110,因爲逐個搜索非常耗時。

。當m低於搜索: 選擇發票,憑證,日期從bankdetails其中相同的N '%' 654217 checknumber m到處的結果,但在m把其中checknumber = N'654217' 或其中checknumber = '654217' 米沒有得到任何輸出。

而我不能一個一個地導出數據我有大約2000個checknumber。

請注意,數據類型爲NVARCHAR,其中實體(「‘’」)不會與Nvarchar工作,不張貼未經測試的答案,謝謝

+4

發表您的當前查詢。 – Sinto

+2

...和DDL。並閱讀[mcve]並採取行動。 – philipxy

+0

當數據類型是NVARCHAR,其中('663096','663105')中的實體不能與Nvarchar一起工作 - 你的意思是'不會工作' - 它會爲你或什麼引發錯誤? –

回答

2

在你的sql where條款,而不是使用entity = 1906572使用entity in (663096, 663105, 663107, 663109, 663110)

1

小心不要混合數據類型。所以,一定要包括單引號,因爲比較值應弦:

checknumber = '1906572' 
checknumber in ('663096', '663105', '663107', '663109', '663110') 

混合數據類型就更難優化選擇最佳的執行計劃。

0

試試這個:

select * 
from [TableName] 
where checknumber in ('663096', '663105', '663107', '663109', '663110')