คำถามติดแท็ก unicode

2
วิธีสร้างพารามิเตอร์ Unicode และชื่อตัวแปร
งานทั้งหมดนี้: CREATE DATABASE [¯\_(ツ)_/¯]; GO USE [¯\_(ツ)_/¯]; GO CREATE SCHEMA [¯\_(ツ)_/¯]; GO CREATE TABLE [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯] NVARCHAR(20)); GO CREATE UNIQUE CLUSTERED INDEX [¯\_(ツ)_/¯] ON [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]); GO INSERT INTO [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]([¯\_(ツ)_/¯]) VALUES (N'[¯\_(ツ)_/¯]'); GO CREATE VIEW [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[¯\_(ツ)_/¯]; GO CREATE PROC [¯\_(ツ)_/¯].[sp_¯\_(ツ)_/¯] @Shrug NVARCHAR(20) AS SELECT [¯\_(ツ)_/¯] FROM [¯\_(ツ)_/¯].[vw_¯\_(ツ)_/¯] …

1
ฉันจะตั้งค่าสตริง SQL Unicode / NVARCHAR ของเซิร์ฟเวอร์เป็นอีโมจิหรืออักขระเสริมได้อย่างไร
ฉันต้องการตั้งค่าตัวแปรสตริง Unicode เป็นอักขระเฉพาะตามจุดโค้ด Unicode ฉันต้องการใช้จุดรหัสเกิน 65535 แต่ฐานข้อมูล SQL Server 2008 R2 SQL_Latin1_General_CP1_CI_ASมีการเปรียบเทียบของ ตามเอกสาร NCHAR ไมโครซอฟท์ที่NCHARฟังก์ชั่นใช้เวลาจำนวนเต็มดังนี้ integer_expression เมื่อการเรียงของฐานข้อมูลไม่มีค่าสถานะอักขระเสริม (SC) นี่เป็นจำนวนเต็มบวกตั้งแต่ 0 ถึง 65535 (0 ถึง 0xFFFF) หากระบุค่านอกช่วงนี้ NULL จะถูกส่งคืน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอักขระเสริมดูที่การเรียงหน้าและการสนับสนุน Unicode เมื่อการเรียงฐานข้อมูลสนับสนุนแฟล็กอักขระเสริม (SC) นี่เป็นจำนวนเต็มบวกตั้งแต่ 0 ถึง 1114111 (0 ถึง 0x10FFFF) หากระบุค่านอกช่วงนี้ NULL จะถูกส่งคืน ดังนั้นรหัสนี้: SELECT NCHAR(128512); ส่งคืนNULLในฐานข้อมูลนี้ ฉันต้องการให้ส่งคืนเช่นนี้: SELECT N'😀'; ฉันจะตั้งค่าตัวแปรสตริง …

1
ทำไมการค้นหา LIKE N '% %' ตรงกับอักขระ Unicode ใด ๆ และ = N' 'ตรงกับหลาย ๆ
DECLARE @T TABLE( Col NCHAR(1)); INSERT INTO @T VALUES (N'A'), (N'B'), (N'C'), (N'Ƕ'), (N'Ƿ'), (N'Ǹ'); SELECT * FROM @T WHERE Col LIKE N'%�%' ผลตอบแทน Col A B C Ƕ Ƿ Ǹ SELECT * FROM @T WHERE Col = N'�' ผลตอบแทน Col Ƕ Ƿ Ǹ การสร้าง "ตัวอักษร" สองไบต์ที่เป็นไปได้ทั้งหมดด้วยด้านล่างแสดงให้เห็นว่า=รุ่นตรงกับ 21,229 ของพวกเขาและLIKE N'%�%'รุ่นทั้งหมดของพวกเขา …

2
เหตุใดอักขระเหล่านี้จึงเท่าเทียมกันใน SQL Server
ฉันแค่ไม่เข้าใจ ดูแบบสอบถาม SQL นี้: select nchar(65217) -- ﻁ select nchar(65218) -- ﻂ select nchar(65219) -- ﻃ select nchar(65220) -- ﻄ if nchar(65217) = nchar(65218) print 'equal' if nchar(65217) = nchar(65219) print 'equal' if nchar(65217) = nchar(65220) print 'equal' ขึ้นอยู่กับความสัมพันธ์สกรรมกริยามันหมายความว่า SQL Server ถือว่าพวกเขาทั้งหมดจะเป็นตัวละครเดียวกัน อย่างไรก็ตามในสภาพแวดล้อมอื่นพูดเช่น C # พวกเขาไม่เหมือนกัน สิ่งที่ฉันสับสนคือ: การเปรียบเทียบสตริงทำงานใน SQL Server …

2
เน้นการเรียงที่ละเอียดอ่อน
ทำไมทั้งสองSELECTคำสั่งจึงส่งผลให้เรียงลำดับที่แตกต่างกัน USE tempdb; CREATE TABLE dbo.OddSort ( id INT IDENTITY(1,1) PRIMARY KEY , col1 NVARCHAR(2) , col2 NVARCHAR(2) ); GO INSERT dbo.OddSort (col1, col2) VALUES (N'e', N'eA') , (N'é', N'éB') , (N'ë', N'ëC') , (N'è', N'èD') , (N'ê', N'êE') , (N'ē', N'ēF'); GO SELECT * FROM dbo.OddSort ORDER BY col1 …

2
ไม่สามารถอัปเดต“ CO2” เป็น“ CO₂” ในแถวตาราง
รับตารางนี้: CREATE TABLE test ( id INT NOT NULL, description NVARCHAR(100) COLLATE Modern_Spanish_CI_AS NOT NULL ); INSERT INTO test (id, description) VALUES (1, 'CO2'); ฉันรู้ว่าฉันไม่สามารถแก้ไขปัญหาเกี่ยวกับการพิมพ์ได้: SELECT * FROM test WHERE id = 1; UPDATE test SET description = 'CO₂' WHERE id = 1; SELECT * FROM test WHERE id = …

4
ทำไมประเภทข้อมูล varchar อนุญาตให้ใช้ค่า unicode
ฉันมีตารางที่มีคอลัมน์ varchar มันช่วยให้ Trademark (ลิขสิทธิ์), ลิขสิทธิ์ (©) และตัวอักษร Unicode อื่น ๆ ที่แสดงด้านล่าง Create table VarcharUnicodeCheck ( col1 varchar(100) ) insert into VarcharUnicodeCheck (col1) values ('MyCompany') insert into VarcharUnicodeCheck (col1) values ('MyCompany™') insert into VarcharUnicodeCheck (col1) values ('MyCompany░') insert into VarcharUnicodeCheck (col1) values ('MyCompanyï') insert into VarcharUnicodeCheck (col1) values ('MyCompany') select …

4
วิธีการตัดเครื่องหมายเน้นภาษาฮิบรู
ฉันต้องการเคล็ดลับการเข้ารหัส Char เพื่อเปลื้องเครื่องหมายสำเนียงภาษาฮิบรู ตัวอย่างก่อน בְּרֵאשִׁ֖יתבָּרָ֣אאֱלֹהִ֑יםאֵ֥תהַשָּׁמַ֖יִםוְאֵ֥תהָאָֽרֶץ ตัวอย่างหลังจาก בראשיתבראאלהיםאתהשמיםואתהארץ

2
Latin1_General_BIN ส่งผลกระทบต่อประสิทธิภาพเมื่อเปลี่ยนการเปรียบเทียบค่าเริ่มต้นของฐานข้อมูล
ฉันได้ตั้งค่าการเปรียบเทียบฐานข้อมูลเป็นLatin1_General_BINเพื่อทำการเปรียบเทียบสตริงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ สิ่งนี้จะส่งผลกระทบต่อประสิทธิภาพหรือไม่ มันจะมีผลกระทบกับการดำเนินงาน DML หรือ DDL ในฐานข้อมูลหรือไม่ ฐานข้อมูลมีอยู่แล้วในตาราง

4
ตรวจสอบว่าค่าใด ๆ ในคอลัมน์ NVARCHAR เป็น Unicode จริงหรือไม่
ฉันได้รับฐานข้อมูล SQL Server บางตัว มีตารางหนึ่งตาราง (ฉันจะเรียกว่า "G") มีประมาณ 86.7 ล้านแถวและกว้าง 41 คอลัมน์จากฐานข้อมูลต้นทาง (ฉันจะเรียกว่า "Q") บนมาตรฐาน SQL Server 2014 ที่ได้รับ ETL ฐานข้อมูลเป้าหมาย (ฉันจะเรียกว่า "P") ด้วยชื่อตารางเดียวกันใน SQL Server 2008 R2 Standard เช่น [Q]. [G] ---> [P]. [G] แก้ไข: 3/20/2017: บางคนถามว่าตารางแหล่งข้อมูลนั้นเป็นแหล่งข้อมูลเดียวกับตารางเป้าหมายหรือไม่ ใช่มันเป็นแหล่งเดียว เท่าที่ ETL ดำเนินไปจะไม่มีการเปลี่ยนแปลงเกิดขึ้นจริง มันมีประสิทธิภาพมีวัตถุประสงค์เพื่อสำเนา 1: 1 ของแหล่งข้อมูล ดังนั้นจึงไม่มีแผนที่จะเพิ่มแหล่งข้อมูลเพิ่มเติมลงในตารางเป้าหมายนี้ มากกว่าครึ่งหนึ่งของคอลัมน์ใน [Q] [G] …

1
การค้นหาแถวที่ไม่ใช่ ASCII จาก Postgres
ไม่[:ascii:]ทำงานในระดับ Postgres ที่ทั้งหมดหรือไม่ มันไม่ได้ระบุไว้ในความช่วยเหลือของพวกเขาแต่ฉันเห็นตัวอย่างในเว็บที่ใช้มัน ฉันมีฐานข้อมูล UTF-8 โดยมีการเปรียบเทียบและc_typ e en_US.UTF-8และรุ่น Postgres คือ 9.6.2 เมื่อฉันค้นหาแถวที่ไม่ใช่ ASCII เช่นนี้: select title from wallabag_entry where title ~ '[^[:ascii:]]'; ฉันจะได้รับทั้ง Unicode และไม่ใช่ Unicode สัญลักษณ์ (เอาท์พุทเต็มรูปแบบที่นี่ ): Сталинская правозащитница: мать Меленкова бабушка Настя Дневник НКВДиста Шабалина: Знает ли Москва положение на фронте? Бег по городу и поездка …

2
เมื่อจะใช้ 'nvarchar / nchar' กับ SQL Server 2019?
กับ SQL Server 2019 ไมโครซอฟท์เปิดตัวสนับสนุน UTF-8สำหรับCHARและVARCHARชนิดข้อมูลและพูดว่า: คุณสมบัตินี้อาจช่วยประหยัดพื้นที่เก็บข้อมูลได้อย่างมากทั้งนี้ขึ้นอยู่กับชุดอักขระที่ใช้งาน ตัวอย่างเช่นการเปลี่ยนชนิดข้อมูลคอลัมน์ที่มีอยู่ด้วยสตริง ASCII จาก NCHAR (10) เป็น CHAR (10) โดยใช้การเปรียบเทียบการเปิดใช้งาน UTF-8 แปลเป็นความต้องการหน่วยเก็บข้อมูลลดลงเกือบ 50% การลดลงนี้เป็นเพราะ NCHAR (10) ต้องการ 22 ไบต์สำหรับการจัดเก็บในขณะที่ CHAR (10) ต้องการ 12 ไบต์สำหรับสายอักขระ Unicode เดียวกัน ดูเหมือนว่า UTF-8 จะรองรับทุกสคริปต์ดังนั้นโดยทั่วไปเราสามารถเริ่มเก็บข้อมูล Unicode ในvarcharและcharคอลัมน์ และตามที่ได้กล่าวไว้ในเอกสารแล้วสิ่งนี้สามารถลดขนาดของตารางและดัชนีและจากนั้นเราจะได้ประสิทธิภาพที่ดียิ่งขึ้นเนื่องจากอ่านข้อมูลในปริมาณที่น้อยลง ฉันสงสัยว่านี่หมายความว่าเราสามารถหยุดใช้nvarcharและncharคอลัมน์ที่ใช้ UTF-16 หรือไม่ ใครสามารถชี้สถานการณ์และเหตุผลที่จะไม่ใช้ชนิดข้อมูลถ่านด้วยการUTFเข้ารหัสและใช้ n-chars ต่อไปได้?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.