NCHAR (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
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 )
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
integer_expression
Ketika kolae 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 kolate 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 Pengembalian
nchar(1) ketika kolab database default tidak mendukung karakter tambahan.
nvarchar(2) ketika kolab 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 membangun pasangan pengganti dengan menggunakan NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>). Sebagai gantinya, gunakan kolase 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
A. Menggunakan NCHAR dan UNICODE
Contoh berikut menggunakan fungsi dan NCHAR untuk mencetak UNICODE nilai dan NCHAR (karakter Unicode) dari karakter kedua string København 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 tataan hasil.
----------- -
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 (SQL Bertransaksi)
CHAR (transact-SQL)
UNICODE (SQL Bertransaksi)
Tipe Data (Transact-SQL)
Fungsi String (SQL Transact)
