आप case
. का दुरुपयोग कर रहे हैं अभिव्यक्ति। दो रूप हैं। आप जो फॉर्म चाहते हैं वह है:
(CASE WHEN userName IS NULL THEN 'was null'
WHEN userName IS NOT NULL THEN 'was not null'
END) AS caseExpressionTest
नोट:कोई userName
नहीं है case
. के बाद ।
यह पहली बार में रुकने वाली प्रत्येक स्थिति की जाँच करता है।
MySQL बूलियन को मान्य मान के रूप में व्याख्या करता है। तो आपका संस्करण या तो है:
-- when userName is NULL
(CASE userName
WHEN 0 THEN 'was null'
WHEN 1 THEN 'was not null'
END AS caseExpressionTest
यह NULL
लौटाएगा ।
या:
-- when userName is not NULL
(CASE userName
WHEN 1 THEN 'was null'
WHEN 0 THEN 'was not null'
END AS caseExpressionTest
संभवतः, userName
एक स्ट्रिंग है। यह userName
convert को रूपांतरित कर देगा अग्रणी अंकों के आधार पर एक पूर्णांक के लिए। यदि कोई अग्रणी अंक नहीं हैं, तो आपको 0
मिलता है , यही कारण है कि एक मैच है।