Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Microsoft Fabric'te SQL veritabanı
Unicode standardında tanımlandığı şekilde belirtilen tam sayı koduyla Unicode karakterini döndürür.
Transact-SQL söz dizimi kuralları
Sözdizimi
NCHAR ( integer_expression )
Arguments
integer_expression
Veritabanının derlemesinde Ek Karakter (SC) bayrağı bulunmadığında, bu 0'dan 65535'e (0'dan 0xFFFF'e kadar olan pozitif tam sayıdır. Bu aralık dışında bir değer belirtilirse, NULL döner. Ek karakterler hakkında daha fazla bilgi için Collation and Unicode Support'a bakınız.
Veritabanının derlenmesi SC bayrağını desteklediğinde, bu 0'dan 1114111'e (0'dan 0x10FFFF'e kadar pozitif bir tam sayıdır. Bu aralık dışında bir değer belirtilirse, NULL döner.
Dönüş Türleri
nchar(1) varsayılan veritabanı derlemesi ek karakterleri desteklemediğinde.
nvarchar(2) varsayılan veritabanı derlemesi ek karakterleri desteklediğinde bu şekilde kullanır.
Eğer integer_expression parametre 0 - 0xFFFF aralığındaysa, sadece bir karakter döner. Daha yüksek değerler için NCHAR, karşılık gelen vekil çifti döndürür. Bir vekil çift oluşturmayın.NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>) Bunun yerine, ek karakterleri destekleyen bir veritabanı derlemesi kullanın ve ardından vekil çift için Unicode kod noktasını belirtin. Aşağıdaki örnek, hem vekil çift oluşturmanın eski tarz yöntemini hem de Unicode kod noktasını belirleme için tercih edilen yöntemi göstermektedir.
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));
Örnekler
A. NCHAR ve UNICODE kullanımı
Aşağıdaki örnekUNICODE, karakter dizisinin ikinci karakterinin København değerini ve NCHAR (Unicode karakterini) basmak için ve gerçek ikinci karakteri basmak için ve NCHARUNICODE ve gerçek ikinci karakteri basmak için ve fonksiyonlarını kullanır. ø
DECLARE @nstring NCHAR(8);
SET @nstring = N'København';
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),
NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)));
GO
Sonuç kümesi aşağıdadır.
----------- -
248 ø
(1 row(s) affected)
B. SUBSTRING, UNICODE, CONVERT ve NCHAR kullanılarak
Aşağıdaki örnekSUBSTRINGUNICODECONVERT, ve NCHAR fonksiyonlarını kullanarak karakter numarasını, Unicode karakterini ve dizedeki Københavnher karakterin UNICODE değerini yazdırır.
-- 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
Sonuç kümesi aşağıdadır.
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)
Ayrıca Bkz.
ASCII (Transact-SQL)
CHAR (Transact-SQL)
UNICODE (Transact-SQL)
Veri Türleri (Transact-SQL)
Dize İşlevleri (Transact-SQL)