NCHAR (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Mengembalikan karakter Unicode dengan kode bilangan bulat yang ditentukan, seperti yang ditentukan oleh standar Unicode.
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 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 set hasilnya.
----------- -
248 ø
(1 row(s) affected)
B. Menggunakan SUBSTRING, UNICODE, CONVERT, dan NCHAR
Contoh berikut menggunakan SUBSTRING
fungsi , , UNICODE
CONVERT
, 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)