where 子句要求在 nvarchar 上使用双引号?

where clause requiring double quotes on an nvarchar?

提问人:Nate 提问时间:8/1/2018 最后编辑:NisargNate 更新时间:8/1/2018 访问量:177

问:

DataImport 表中的所有列均为 。D 列需要双引号。nvarchar(max)

声明:

select cast(i.a as varchar(50)) as address,cast(i.c as varchar(50)) as phone
    from dataimport i where i.d="x" 

生成两条记录。

声明:

select cast(i.a as varchar(50)) as address,cast(i.c as varchar(50)) as phone
from dataimport i where i.d='x'

不产生任何记录

column definition is d(nvarchar(max),null)
引号 nvarchar

评论


答:

0赞 Marcel Niehüsener 8/1/2018 #1

有没有一个名为 x 的列?

使用双引号,您指定的是列名,而不是列内的数据。

如果语句未使用单引号返回任何数据,则似乎没有在 d 列中包含“x”的记录。

评论

0赞 Nate 8/2/2018
列名是 d,要查找的表(dataimportnew i)中的值是“X”,因此查询显示为“where i.d=”X”。它应该什么都不返回。此后,我将 i.d 添加到结果集中,它得出了“A”。它变得越来越奇怪。