2013-09-26 44 views
1

我想使用如果其他(或類似的情況下確定技術:)在篩選條款其中。 這是我的示例代碼。如何在WHERE子句下實現IF ELSE?

select * from some_table 
where 
record_valid_flg = 1 and 
if(user_param = '1') 
then age > 20 
else 
name like 'Mr%' 
end if 

我該怎麼弄出來。我真的很感激任何建議..謝謝!

+0

現在,我得到正確的和有價值的答案。感謝所有。 – Cataclysm

回答

1

使用案例是這樣的:

select * from some_table 
    where 
    record_valid_flg = 1 
    and CASE 
     WHEN user_param = '1' THEN age > 20 
     ELSE name like 'Mr%' 
    END; 
+0

現在你的答案將解決我的問題。提前致謝。 – Cataclysm

1
CASE WHEN user_param = '1' THEN age > 20 ELSE name like 'Mr%' END 
1

嘗試使用CASE;

SELECT * from some_table 
WHERE record_valid_flg = 1 
AND 
CASE 
    WHEN (user_param = '1') THEN age > 20 
    ELSE name like 'Mr%' 
END 
+0

感謝您的格式答案。但我按時間順序接受。感謝您寶貴的時間。 – Cataclysm

+0

我以爲我是第一個回答,但後來看到其他結果! –

+0

@Nadeem_MK你可能會誤解我的意見 –

1

你可以簡單地做這樣的

SELECT 
    * 
FROM some_table 
WHERE record_valid_flg = 1 
    AND IF(user_param = '1', age > 20, name LIKE 'Mr%') 
+0

感謝您驚人的代碼。 – Cataclysm