从表中选择nvarchar列的where子句的多个条目

时间:2017-08-01 10:35:46

标签: sql

我的表格有nvarchar列;我需要使用where子句搜索多个条目。

我可以一次搜索一个实体,就像checknumber是1906572一样,但我需要为多个实体检索数据&#strong; 喜欢' checknumber(nvarchar)在以下任何一个中都是:663096,663105,663107,663109,663110因为逐个搜索非常耗时。

当我在下面搜索时: 从银行详细信息中选择发票,凭证,日期,其中包括N'%654217'得到结果但是当我把它放在checknumber = N' 654217'或者checknumber =' 654217'我没有得到任何输出。

我无法逐个导出数据,我有2000左右的检查数。

请注意,数据类型为NVARCHAR,其中('''')中的实体将无法与Nvarchar一起使用,没有测试就发布答案,谢谢

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

小心不要混合数据类型。因此,请务必包含单引号,因为比较值应为字符串:

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

混合数据类型使优化器更难选择最佳执行计划。

答案 2 :(得分:0)

试试这个:

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