كيف أفعل منطقية على عمودين في الخلية, واحد منها هو Varchar?
سؤال
هذا هو تتمة هذا السؤال.
أود أن الجمع بين ثلاثة أعمدة في واحدة على الخلية حدد.أول عمودين هي منطقية و الثالث هو سلسلة التي هي في بعض الأحيان فارغة.هذا يؤدي إلى نتائج غريبة:
Select *, (payment1_paid && ((payment2_paid || payment2_type ="none"))) as paid_in_full from payments
ملاحظة: payment1_paid
هو منطقية ، payment2_paid
هو منطقية ، payment2_type
هو varchar.
ملاحظة: يرجى تجاهل مدى سخافة هيكل من هذا الجدول.وراء كل قطعة من سيء وهناك شرح طويل :)
تحرير: Null ليست مثيرة للاهتمام بالنسبة لي varchar القيمة.أريد فقط أن أعرف ما إذا كان هو حقا "لا شيء."
شكرا مقدما على مساعدتكم!
المحلول
إذا null ليست مثيرة للاهتمام ثم لك بعد ذلك:
Select *,
(payment1_paid && ((payment2_paid || (payment_type IS NOT NULL && payment_type="none")))
as paid_in_full
from payments
حظا سعيدا!
نصائح أخرى
أعتقد أنك تريد NULL أن تكون خاطئة ؟ محاولة (payment_paid IS NULL || payment2_type = "none")
Select *,
(payment1_paid && ((payment2_paid || coalesce(payment2_type,"null") ="none")))
as paid_in_full
from payments
لا تنتمي إلى StackOverflow