我在某处看到了这个查询 -
SELECT *
FROM HR.Employees
WHERE country <> N'JAP';
Run Code Online (Sandbox Code Playgroud)
那"N"是什么意思?我不确定这是否仅对SQL服务器有效.
Aar*_*and 33
N代表"国家字符",它表示字符串的内容是Unicode.
每当遇到可能包含默认ASCII字符集之外的字符的专有名称或其他实体时,您应该使用Unicode(nchar/ nvarchar).如果不使用N前缀包围此类字符串,则会丢失数据.例如:
SELECT N'?? ???? ???', '?? ???? ???';
Run Code Online (Sandbox Code Playgroud)
结果:
----------- -----------
?? ???? ??? ?? ???? ???
Run Code Online (Sandbox Code Playgroud)
您还应该确保N在您的WHERE或其他子句中使用前缀对n(var)char列.如果不使用N前缀,则可能会因隐式转换而出现严重的性能问题.
| 归档时间: |
|
| 查看次数: |
13391 次 |
| 最近记录: |