欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

sqlserver N .......select N'Ø';

程序员文章站 2024-02-03 08:48:04
...

加上 N 代表存入数据库时以 Unicode 格式存储。N'string' 表示string是个Unicode字符串Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是

加上 N 代表存入数据库时以 Unicode 格式存储。
N'string' 表示string是个Unicode字符串

Unicode 字符串的格式与普通字符串相似,
但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。
N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。
Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。
Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。
为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。
Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。
有关更多信息,请参见使用 Unicode 数据。

Unicode 字符串常量支持增强的排序规则。



NCHAR
根据 Unicode 标准所进行的定义,用给定整数代码返回 Unicode 字符。

语法
NCHAR ( integer_expression ) 

参数
integer_expression

介于 0 与 65535 之间的所有正整数。如果指定了超出此范围的值,将返回 NULL。

返回类型
nchar(1)

示例
A. 使用 NCHAR 和 UNICODE
下面的示例使用 UNICODE 和 NCHAR 函数打印字符串 K?enhavn 第二个字符的 UNICODE 值和 NCHAR(Unicode 字符),并打印实际的第二个字符?。

DECLARE @nstring nchar(8)
SET @nstring = N'K?benhavn'
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)), 
   NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)))
GO

下面是结果集:

----------- - 
248         ?(1 row(s) affected)

B. 使用 SUBSTRING、UNICODE、CONVERT 和 NCHAR
下面的示例使用 SUBSTRING、UNICODE、CONVERT 和 NCHAR 函数打印字符串 K?enhavn 的字符数、Unicode 字符以及每个字符的 UNICODE 值。


DECLARE @position int, @nstring nchar(9)
SET @position = 1
SET @nstring = N'K?benhavn'
PRINT 'Character #' + ' ' + 'Unicode Character' + ' ' + 'UNICODE Value'
WHILE @position