בחירת סוג ה-SELECT בעזרת CASE WHEN

מיקיdream

New member
בחירת סוג ה-SELECT בעזרת CASE WHEN

יש לי 5 טבלאות . ואני רוצה לשלוף מידע מאחת מהן בעזרת תנאי פרמטר המתקבל מהמשתמש ומושווה ל -string הנמצא בשאילתא. רציתי לעשות זאת ע"י CASE WHEN ככה שהפרמטר מושווה בתנאי ה -CASE ורק לאחר מכן מתבצעת שאילתת ה- SELECT הרצויה. חשבתי לעשות זאת בצורה הבאה: CASE WHEN @EnteredPhase= 'פרס' THEN SELECT * FROM TABLE1 WHEN @EnteredPhase = 'אלכוהולית' THEN SELECT * FROM TABLE2 WHEN @EnteredPhase = 'התחל' THEN SELECT * FROM TABLE3 WHEN @EnteredPhase = 'מלולקטית' THEN SELECT * FROM TABLE4 WHEN @EnteredPhase = 'קראש' THEN SELECT * FROM TABLE5 END כמו שמוצג פה אני מתחיל את השאילתא עם ה- CASE והשאילתת השליפה ה- SELECT מתבצעת רק לפי התנאי של ה WHEN האם אפשר להתחיל שאילתה ב- CASE ללא צירופה בתוך SELECT? אשמח לסינטקס שיבצע את הרצוי תודה מראש
 

arik20101

New member
IF

Hi, You should use IF: IF (@EnteredPhase = 'פרס') BEGIN SELECT .. FROM TABLE1 END ELSE IF (@EnteredPhase = 'אלכוהולית') BEGIN SELECT.. FROM TABLE2 END . . ELSE IF (@EnteredPhase = 'קראש') BEGIN SELECT.. FROM TABLE5 END -- The BEGIN and END are Not a must when you have only one command -- after IF, but I prefer writing them for clarity.
 

s h i m s h o n

New member
UNION ALL

מה קרה למקש ה-Enter שלך?

select * from tbl1 where @p = 1 union all select * from tbl2 where @p = 2 union all select * from tbl3 where @p = 3​
בברכה, ש.
 
למעלה