سؤال

هذا واحد حصل لي في اليوم الآخر. ماذا تتوقع ما يلي العودة؟

SELECT 'X' AS line
UNION
SELECT 'X ' AS line

لاحظ المساحة في الاختيار الثاني. يبدو جيدا SQL 2000 و 2005 عودة كل من العائد 1. على الرغم من أن اتحادها (وليس الاتحاد الجميع).

لا يوجد شيء أستطيع أن أرى في الكتب على الخط عن هذا. لماذا يحدث ذلك؟ أنا أظن أنه خطأ. هل هو أو هل هناك سبب وجيه؟

هل كانت مفيدة؟

المحلول

يتم تحديد مساحة زائدة ليتم التعامل معها بطريقة خاصة في قياسي ANSI SQL:

http://support.microsoft.com/default.aspx/kb/316626.

http://support.microsoft.com/kb/154886/EN-US/

لست متأكدا من أن الترتيب الثنائي ستحل هذا:

IF 'X ' COLLATE Latin1_General_BIN = 'X' COLLATE Latin1_General_BIN 
    PRINT 'Equal'

هذه المطبوعات "متساوية"

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