معين - دوال sql




كيف أقوم بتسلسل النص في استعلام في خادم SQL؟ (4)

SQL التالي:

SELECT notes + 'SomeText'
FROM NotesTable a 

أعطِ الخطأ:

أنواع البيانات nvarchar والنص غير متوافقين في عامل التشغيل الإضافي.


إذا كنت تستخدم SQL Server 2005 (أو أكبر) قد ترغب في التبديل إلى NVARCHAR (MAX) في تعريف الجدول الخاص بك؛ سيتم إهمال أنواع البيانات TEXT و NTEXT و IMAGE من SQL Server 2000 في الإصدارات المستقبلية من SQL Server. يوفر SQL Server 2005 التوافق مع الإصدارات السابقة لأنواع البيانات ، ولكن ربما يجب استخدام VARCHAR (MAX) و NVARCHAR (MAX) و VARBINARY (MAX) بدلاً من ذلك.


إذا كنت تستخدم SQL Server 2005 أو أكبر ، اعتماداً على حجم البيانات في حقل الملاحظات ، قد تحتاج إلى التفكير في الإرسال إلى nvarchar (الحد الأقصى) بدلاً من الإرسال إلى طول محدد مما قد يؤدي إلى اقتطاع سلسلة.

Select Cast(notes as nvarchar(max)) + 'SomeText' From NotesTable a

خيار آخر هو الأمر CONCAT :

SELECT CONCAT(MyTable.TextColumn, 'Text') FROM MyTable

قد ترغب في النظر في القيم الفارغة كذلك. في المثال الخاص بك ، إذا كانت ملاحظات العمود تحتوي على قيمة فارغة ، فستكون القيمة الناتجة فارغة. إذا كنت تريد أن تتصرف القيم الخالية كسلاسل فارغة (بحيث تأتي الإجابة "SomeText") ، فاستخدم الدالة IsNull:

Select IsNull(Cast(notes as nvarchar(4000)),'') + 'SomeText' From NotesTable a




sql-server