NCHAR (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Mengembalikan karakter Unicode dengan kode bilangan bulat yang ditentukan, seperti yang ditentukan oleh standar Unicode.

Konvensi sintaks transact-SQL

Sintaksis

NCHAR ( integer_expression )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

integer_expression
Ketika kolatasi database tidak berisi bendera Karakter Tambahan (SC), ini adalah bilangan bulat positif dari 0 hingga 65535 (0 hingga 0xFFFF). Jika nilai di luar rentang ini ditentukan, NULL dikembalikan. Untuk informasi selengkapnya tentang karakter tambahan, lihat Kolate dan Dukungan Unicode.

Ketika kolatasi database mendukung bendera SC, ini adalah bilangan bulat positif dari 0 hingga 1114111 (0 hingga 0x10FFFF). Jika nilai di luar rentang ini ditentukan, NULL dikembalikan.

Jenis Kembalian

nchar(1) ketika kolamen database default tidak mendukung karakter tambahan.

nvarchar(2) ketika kolater database default mendukung karakter tambahan.

Jika parameter integer_expression terletak pada rentang 0 - 0xFFFF, hanya satu karakter yang dikembalikan. Untuk nilai yang lebih tinggi, NCHAR mengembalikan pasangan pengganti yang sesuai. Jangan buat pasangan pengganti dengan menggunakan NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>). Sebagai gantinya, gunakan kolatasi database yang mendukung karakter tambahan lalu tentukan titik kode Unicode untuk pasangan pengganti. Contoh berikut menunjukkan metode gaya lama untuk membangun pasangan pengganti dan metode yang disukai untuk menentukan titik kode Unicode.

CREATE DATABASE test COLLATE Finnish_Swedish_100_CS_AS_SC;  
DECLARE @d NVARCHAR(10) = N'𣅿';
-- Old style method.  
SELECT NCHAR(0xD84C) + NCHAR(0xDD7F);   
  
-- Preferred method.   
SELECT NCHAR(143743);   
  
-- Alternative preferred method.  
SELECT NCHAR(UNICODE(@d));    

Contoh

J. Menggunakan NCHAR dan UNICODE

Contoh berikut menggunakan fungsi dan NCHAR untuk mencetak UNICODE nilai dan NCHAR (karakter Unicode) dari karakter kedua dari København string karakter, dan untuk mencetak karakter kedua yang sebenarnya, ø.UNICODE

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

Berikut adalah hasil yang ditetapkan.

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

B. Menggunakan SUBSTRING, UNICODE, CONVERT, dan NCHAR

Contoh berikut menggunakan SUBSTRINGfungsi , , UNICODECONVERT, dan NCHAR untuk mencetak nomor karakter, karakter Unicode, dan nilai UNICODE dari setiap karakter dalam string København.

-- The @position variable holds the position of the character currently  
-- being processed. The @nstring variable is the Unicode character   
-- string to process.  
DECLARE @position INT, @nstring NCHAR(9);  
-- Initialize the current position variable to the first character in   
-- the string.  
SET @position = 1;  
-- Initialize the character string variable to the string to process.  
-- Notice that there is an N before the start of the string. This   
-- indicates that the data following the N is Unicode data.  
SET @nstring = N'København';  
-- Print the character number of the position of the string you are at,   
-- the actual Unicode character you are processing, and the UNICODE   
-- value for this particular character.  
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  

Berikut adalah hasil yang ditetapkan.

Character # Unicode Character UNICODE Value  
  
----------- ---- ----------------- -----------   
1           K    K                 75  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
2           ø    ø                 248  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
3           b    b                 98  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
4           e    e                 101  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
5           n    n                 110  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
6           h    h                 104  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
7           a    a                 97  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
8           v    v                 118  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
9           n    n                 110  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
10          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
11          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
12          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
13          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
14          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
15          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
16          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
17          NULL                   NULL  
  
(1 row(s) affected)  
  
----------- ---- ----------------- -----------   
18          NULL                   NULL  
  
(1 row(s) affected)  

Lihat Juga

ASCII (T-SQL)
CHAR (Transact-SQL)
UNICODE (Transact-SQL)
Tipe Data (Transact-SQL)
Fungsi String (Transact-SQL)