الترتيب يلقي المتغيرات NVARCHAR في T-SQL
-
06-07-2019 - |
سؤال
وأحتاج لتغيير الترتيب متغير NVARCHAR. href="http://msdn.microsoft.com/en-us/library/ms184391.aspx" بواسطة وثائق :
<اقتباس فقرة>و(...) 3. يمكن تحديد بند COLLATE على عدة مستويات. وتشمل هذه التالي:
وصب ترتيب ل التعبير. يمكنك استخدام COLLATE شرط لتطبيق تعبير حرف إلى ترتيب معين. حرف يتم تعيين الحرفية والمتغيرات الترتيب الافتراضي للتيار قاعدة البيانات. مراجع أعمدة هي تعيين الترتيب تعريف العمود. من أجل جمع ل التعبير، انظر ترتيب الأسبقية (SQL للعمليات).
اقتباس فقرة>ولكن أنا لا يمكن معرفة بناء الجملة الصحيح لاستخدام CAST ()، وتحويل () أو تعريف متغير مع DECLARE لهذا الغرض.
المحلول
SELECT CAST('abc' AS varchar(5)) COLLATE French_CS_AS
نصائح أخرى
وCAST
أو CONVERT
هو لزوم لها!
SELECT N'abc' COLLATE French_CS_AS
ومن نافلة لمجرد تغيير الترتيب لا تغيير نوع البيانات NVARCHAR
.
إذا كنت تقوم بتغيير ما بين 2 و 1 بايت، أو العكس النسخة سا، المحارف ثم الزهر أو تحويل ضروري. أنها ليست زائدة عن الحاجة في هذه الحالات.
عند العمود المصدر هو تسلسل الأحرف 2 بايت (NCHAR، NVARCHAR) ويطلب من إسقاط الاختيار لتكون ذات طابع بايت واحد (شار، VARCHAR)، يجب تحديد المدلى بها وتحويلها. تطبيق تحويل الترتيب قبل الصب بين النظم نوع.
SELECT CAST(N'ФBC' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) AS ProjectedSingleByte
إذا كنت ترغب في مقارنة أو الانضمام عمودين من ترتيب مختلف وهذا يمكن أن يساعد. في حالتي كان لي لمقارنة عمودين مع واحد باستخدام "SQL_Latin1_General_CP1_CI_AS" والآخر باستخدام 'Latin1_General_CP1_CI_AS ".
وكنت ببساطة هذا الخيار حيث كنت انضمام هذين.
<اقتباس فقرة>وعلى A.Person = B.NAME جمع database_default
اقتباس فقرة>