سؤال

وأحتاج لتغيير الترتيب متغير 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top