在 SQL 服务器中查询,其中字段 = N'0'
Query in SQL Server where field = N'0'
我有一些不熟悉的问题,也许你们可以解释一下,请
Select *
From TableA
Where field1 = N'FAIL' And field2 = N'0'
N'FAIL'
或 N'0'
=> 这是什么意思?我们可以使用该条件来获得更高效的查询吗?
这个查询和这个一样吗?
select *
from TableA
where field1 = 'FAIL' and field2 = '0'
希望能得到一些答案,谢谢
N'FAIL'
是文字 NVARCHAR
。 'FAIL'
是文字 VARCHAR
.
这是两种不同的数据类型:都是可变长度字符串(具有最大长度),但是 NVARCHAR
存储 Unicode 和非 Unicode 字符,而 VARCHAR
支持非 Unicode 字符只要。如果您有 Unicode 字符,NVARCHAR
的存储大小会更大(Unicode 中每个字符 2 个字节,而非 Unicode 中每个字符 1 个字节)。
应在您的语句中使用哪一个取决于与该值进行比较的列的实际数据类型。如果列是 NVARCHAR
,则使用 NVACHAR
文字,否则使用 VARCHAR
;对文字字符串使用正确的数据类型总是更有效,也更安全。
我有一些不熟悉的问题,也许你们可以解释一下,请
Select *
From TableA
Where field1 = N'FAIL' And field2 = N'0'
N'FAIL'
或 N'0'
=> 这是什么意思?我们可以使用该条件来获得更高效的查询吗?
这个查询和这个一样吗?
select *
from TableA
where field1 = 'FAIL' and field2 = '0'
希望能得到一些答案,谢谢
N'FAIL'
是文字 NVARCHAR
。 'FAIL'
是文字 VARCHAR
.
这是两种不同的数据类型:都是可变长度字符串(具有最大长度),但是 NVARCHAR
存储 Unicode 和非 Unicode 字符,而 VARCHAR
支持非 Unicode 字符只要。如果您有 Unicode 字符,NVARCHAR
的存储大小会更大(Unicode 中每个字符 2 个字节,而非 Unicode 中每个字符 1 个字节)。
应在您的语句中使用哪一个取决于与该值进行比较的列的实际数据类型。如果列是 NVARCHAR
,则使用 NVACHAR
文字,否则使用 VARCHAR
;对文字字符串使用正确的数据类型总是更有效,也更安全。