CASE कथन को केवल एक डेटा प्रकार के लिए हल करना चाहिए। यह इस तथ्य की परवाह किए बिना है कि आप जानते हैं कि @orderby केवल एक शाखा का चयन करेगा और यह एक विशेष डेटा प्रकार होगा।
आप कुछ इस तरह का उपयोग कर सकते हैं, जो कि भद्दा होगा लेकिन काम करेगा।
ORDER BY
CASE @orderBy WHEN 1 THEN received_date -- Last Rx'd message
WHEN 2 THEN 0
WHEN 3 THEN 0
WHEN 4 THEN 0
WHEN 5 THEN ime.[allocated_date] -- Allocated Date
ELSE received_date END,
CASE @orderBy WHEN 1 THEN 0
WHEN 2 THEN message_id -- Message Id
WHEN 3 THEN 0
WHEN 4 THEN 0
WHEN 5 THEN 0
ELSE 0 END,
CASE @orderBy WHEN 1 THEN ''
WHEN 2 THEN ''
WHEN 3 THEN zibmat.short_name -- Message action type
WHEN 4 THEN error_action.short_name -- Status type
WHEN 5 THEN ''
ELSE '' END