لماذا مثل عدم عودة الصفوف المتغيرات مع '%' في النهاية ؟
-
12-09-2019 - |
سؤال
أجد أن هذا أمر غريب جدا في 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) هو الجواب.@لا يحتوي على %.
مثل شخصية البدل، وهذا يعني "أي شيء تريده هنا".
لا تنتمي إلى StackOverflow