我在某处看到此查询-
SELECT * FROM HR.Employees WHERE country <> N'JAP';
什么是 “N” 是什么意思?我不确定这是否仅对SQL Server有效。
N代表“国家字符”,它表示字符串的内容为Unicode。
只要碰到专有名称或其他可能包含默认ASCII字符集以外的字符的实体,就应该使用Unicode(nchar/ nvarchar)。如果不使用N前缀将此类字符串括起来,则会丢失数据。例如:
nchar
nvarchar
N
SELECT N'褍泻 褎械褉褌 褏械褉', '褍泻 褎械褉褌 褏械褉';
结果:
----------- ----------- ук ферт хер ?? ???? ???
您还应确保N在您WHERE或其他子句中对n(var)char列使用前缀。不使用N前缀时,由于隐式转换,可能会遇到严重的性能问题。
WHERE
n(var)char