একাধিক শর্ত সহ কেস


14

বেশ কয়েকটি শর্তের ভিত্তিতে আমাকে নির্বাচিত বিবৃতি থেকে ফেরত মান পরিবর্তন করতে হবে। আমি এরকম কিছু চেষ্টা করেছি:

,CASE i.DocValue
  WHEN 'F2' AND c.CondCode IN ('ZPR0','ZT10','Z305') THEN c.CondVal
  ELSE 0
END as Value

এটি কেন কাজ করছে না এবং এটি করার প্রস্তাবিত উপায় কী? এরপরে বেশ কয়েকটি WHEN শর্ত থাকবে।

ধন্যবাদ

উত্তর:


25
,CASE WHEN i.DocValue ='F2' AND c.CondCode IN ('ZPR0','ZT10','Z305') THEN c.CondVal
  ELSE 0
END as Value

দুটি ধরণের CASEস্টেটমেন্ট রয়েছে, সিম্পল এবং লকড

আপনি একটি সাধারণ কেস এক্সপ্রেশনটিতে একাধিক অভিব্যক্তি মূল্যায়ন করতে পারবেন না, যা আপনি যা করার চেষ্টা করছেন।

-- Simple CASE expression: 
CASE input_expression 
     WHEN when_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END 
-- Searched CASE expression:
CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END

সাধারণ CASE এর উদাহরণ:

CASE x
  WHEN 'a' THEN 'b'
  WHEN 'c' THEN 'd'
  ELSE 'z'
END

অনুসন্ধান করা CASE এর উদাহরণ:

CASE 
  WHEN x = 1 AND y = 2 THEN 'a'
  WHEN x = 2 AND y = 1 THEN 'b'
  ELSE 'z'
END

আরও পঠন: http://msdn.microsoft.com/en-us/library/ms181765.aspx


1

আপনার একাধিক প্রয়োজনীয়তা থাকলে আপনিও এটির মতো লিখতে পারেন:

CASE WHEN CITY='HYDERABAD' THEN       
 CASE WHEN AREA='BHILL' THEN PIN='12345'      
 WHEN AREA='DSNR' THEN PIN='67890'          
 ELSE '33333'          
 END           
END AS PIN_COD

আপনি ঠিক বলেছেন, জটিল অবস্থার জন্য নেস্টেড
কেসটিও কার্যকর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.