อยากสร้างเงื่อนไขในการเลือก Column

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: อยากสร้างเงื่อนไขในการเลือก Column

อยากสร้างเงื่อนไขในการเลือก Column

โดย [email protected] » 29/06/2018 12:03 pm

ที่ตาราง1 (TB1) โดยมี Column (Col) ทั้งหมด 12 Column โดยต้องการเลือก Column ตามเงื่อนไขดังนี้
ถ้าตัวแปร (@Val1) เป็น A ให้เรียกข้อมูลที่ Column [1,2,3,4,5] โดยให้ 5 เป็น Spe1, และนำค่าตัวแปรไปห้อยท้ายในทุก ๆ Row (Record) โดยกำหนดเป็น Spe2
โดยที่ Col8 ต้องมีค่าเป็น 0 และ Col5 มีค่ามากกว่า 0
ถ้าตัวแปรเป็น B ให้เรียกข้อมูลที่ Column [1,2,3,4,6] โดยให้ 6 เป็น Spe1, และนำค่าตัวแปรไปห้อยท้ายในทุก ๆ Row เหมือนข้างบน
โดยที่ Col9 ต้องมีไม่ใช่ค่าว่าง และ Col10 ต้องมีค่าเป็น 0

จากความต้องการข้างต้นเขียนออกแบบด้านล่าง ซึ่งไม่ผ่าน เพราะเขียนผิดไวยกรณ์ อยากให้ช่วยดูให้หน่อยครับ ว่าต้องแก้ไขตรงไหนได้บ้าง

DECLARE @Val1 varchar(1);
SET @Val1 = 'A';
SELECT TB1.Col1, TB1.Col2, TB1.Col3, TB1.Col4,
CASE
WHEN @Val1 = ‘A’ THEN TB1.Col5 as Spe1,
WHEN @Val1 = ‘B’ THEN TB1.Col6 as Spe1,
ELSE TB1.Col7 as Spe1,
END
@Val1 AS Spe2
FROM TB1
WHERE CASE
WHEN @Val1 = ‘A’ THEN (TB1.Col8 = '0')and (TB1.Col5 > 0)
WHEN @Val1 = ‘B’ THEN (TB1.Col9 is not null) and (TB1.Col10 = '0')
ELSE (TB1.Col11 is not null) and (TB1.Col12 = ‘0’)
END
ORDER BY TB1.Col4

ขอบคุณครับ

ข้างบน