SQL NCHAR 函数

SQL Server 的 NCHAR 函数是一个字符串方法,用于返回 Unicode 标准中定义的指定整数值处的 Unicode 字符。NCHAR 函数的语法是:

SELECT NCHAR(Integer_Expression)
FROM [Source]

Integer_Expression:请指定有效的数值。如果该值超出范围(例如 123456),则会返回 NULL。

SQL Server NCHAR 函数示例

NCHAR 函数返回给定表达式或整数值的 Unicode 字符。以下查询可能以多种方式展示了此函数的使用。

DECLARE @Str1 NCHAR(25)
DECLARE @Str2 NCHAR(5)

-- Initialize the variables.  
SET @Str1 = 'è'
SET @Str2 = 'ë'

SELECT UNICODE(@Str1) AS Result1,
       NCHAR(UNICODE(@Str1)) AS Result2,
       UNICODE(@Str2) AS Result3,
      NCHAR(UNICODE(@Str2)) AS Result4; 

SELECT NCHAR(UNICODE('âëz')) AS Result5;  

SELECT NCHAR(UNICODE('Å28')) AS Result6;
NCHAR Example 1

下面的 SQL Server 代码行用于声明两个 NCHAR 类型的变量。接下来,我们将字符串数据 è 和 ë 赋值给它们。

DECLARE @Str1 NCHAR(25)
DECLARE @Str2 NCHAR(5)

SET @Str1 = 'è'
SET @Str2 = 'ë'

从下面的语句中,您可以看到我们正在查找 è、ë 的 UNICODE 值,并将 NCHAR 函数应用于该 Unicode 值。我们还使用 ALIAS 列为结果从“Result1”到“Result4”指定了新名称。

SELECT UNICODE(@Str1) AS Result1, 
       NCHAR(UNICODE(@Str1)) AS Result2, 
       UNICODE(@Str2) AS Result3, 
       NCHAR(UNICODE(@Str2)) AS Result4;

在下一行中,我们将 NCHAR 函数应用于一组 N字符(单词)。这里,UNICODE 方法将返回最左边字符(即 â)的 Unicode 值,该值应为 226。然后,NCHAR 字符串方法将返回 226 处的字符,即 â。

SELECT NCHAR(UNICODE('âëz')) AS Result5;

NCHAR 函数示例 2

在此示例中,我们将在 WHILE LOOP 中使用 NCHAR 函数。

我建议您参考 SQL Server 中的 UNICODE、SUBSTRING 和 WHILE LOOP 文章,以理解下面的代码。

DECLARE @i INT, 
        @string1 NCHAR(16)  

-- Initialize the variables.  
SET @i = 1
SET @string1 = 'TùtÓrïål GãtÊwáy'
 
WHILE @i <= LEN(@string1)
	BEGIN
		SELECT SUBSTRING(@string1, @i, 1) AS [NChar Value],
			   UNICODE(SUBSTRING(@string1, @i, 1)) AS [UNICODE Result],
			   NCHAR(UNICODE(SUBSTRING(@string1, @i, 1))) AS [NCHAR Result]
		SET @i = @i + 1
	END
NCHAR Function Example 2