小编典典

SQL的where子句中的'N'

sql

我在某处看到此查询-

SELECT *
FROM HR.Employees
WHERE country <> N'JAP';

什么是 “N” 是什么意思?我不确定这是否仅对SQL Server有效。


阅读 192

收藏
2021-04-07

共1个答案

小编典典

N代表“国家字符”,它表示字符串的内容为Unicode

只要碰到专有名称或其他可能包含默认ASCII字符集以外的字符的实体,就应该使用Unicode(nchar/
nvarchar)。如果不使用N前缀将此类字符串括起来,则会丢失数据。例如:

SELECT N'褍泻 褎械褉褌 褏械褉', '褍泻 褎械褉褌 褏械褉';

结果:

-----------        -----------
ук ферт хер        ?? ???? ???

您还应确保N在您WHERE或其他子句中对n(var)char列使用前缀。不使用N前缀时,由于隐式转换,可能会遇到严重的性能问题。

2021-04-07