Bagikan melalui


NCHAR (Transact-SQL)

Berlaku untuk:SQL ServerDatabase Azure SQLInstans Terkelola Azure SQLAzure Synapse AnalyticsSistem Platform Analitik (PDW)Database SQL di Microsoft Fabric

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

Konvensi sintaks transact-SQL

Sintaks

NCHAR ( integer_expression )  

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 UNICODE untuk mencetak NCHAR nilai dan UNICODE (karakter Unicode) dari karakter kedua dari NCHAR string karakter, dan untuk mencetak karakter kedua yang sebenarnya, København.ø

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

Berikut set hasilnya.

----------- -   
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 set hasilnya.

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)