لماذا مثل عدم عودة الصفوف المتغيرات مع '%' في النهاية ؟

StackOverflow https://stackoverflow.com/questions/1245084

سؤال

أجد أن هذا أمر غريب جدا في Microsoft SQL Server:

SELECT * FROM deliveries WHERE code LIKE '01999195000%'
-- 9 rows returned. Works.

DECLARE @a VARCHAR(10)
SET @a='01999195000%'
SELECT * FROM deliveries WHERE code LIKE @a
-- 0 rows returned? Why not?

SET @a = '01999195000'
SELECT * FROM deliveries WHERE code LIKE @a + '%'
-- 9 rows returned. Works.

ما هو مختلف بين البحث عن @a التي تضم % حرف واحد لا ولكن '%' إلحاق?

إذا كان أي من كنت SQL المعلم أن تبادل الأفكار التي من شأنها أن تكون كبيرة.

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

المحلول

ذلك لأنك عرفت @ A as varchar (10)، لكنك حاولت وضع 12 حرفا في ذلك ... وهذا يعني أن "٪" تضيع من النهاية

نصائح أخرى

تعلن @VARCHAR(10) هو الجواب.@لا يحتوي على %.

مثل شخصية البدل، وهذا يعني "أي شيء تريده هنا".

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