时间:2021-07-01 10:21:17 帮助过:61人阅读
加上 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 <= DATALENGTH(@nstring) BEGIN SELECT @position, NCHAR(UNICODE(SUBSTRING(@nstring, @position, 1))), CONVERT(NCHAR(17), SUBSTRING(@nstring, @position, 1)), UNICODE(SUBSTRING(@nstring, @position, 1)) SELECT @position = @position + 1 END GO 下面是结果集: Character # Unicode Character UNICODE Value ----------- ----------------- ----------- 1 K 75 ----------- ----------------- ----------- 2 ? 248 ----------- ----------------- ----------- 3 b 98 ----------- ----------------- ----------- 4 e 101 ----------- ----------------- ----------- 5 n 110 ----------- ----------------- ----------- 6 h 104 ----------- ----------------- ----------- 7 a 97 ----------- ----------------- ----------- 8 v 118 ----------- ----------------- ----------- 9 n 110 ----------- ----------------- ----------- 10 (null) (null) ----------- ----------------- ----------- 11 (null) (null) ----------- ----------------- ----------- 12 (null) (null) ----------- ----------------- ----------- 13 (null) (null) ----------- ----------------- ----------- 14 (null) (null) ----------- ----------------- ----------- 15 (null) (null) ----------- ----------------- ----------- 16 (null) (null) ----------- ----------------- ----------- 17 (null) (null) ----------- ----------------- ----------- 18 (null) (null)