在SQL中,`IF`用法根據不同的資料庫系統有所差異。以下是幾種常見資料庫系統中`IF`的用法:
MySQL。使用`IF(condition, true_value, false_value)`,當`condition`為真時返回`true_value`,否則返回`false_value`。例如,在查詢員工工資表時,如果獎金大於1000,則將其加到薪水上,可以使用`SELECT 工資, 獎金, 工資+IF(獎金>1000, 獎金,0)as總收入 FROM員工工資表`。
SQL Server。使用`IF condition BEGIN -- true_value END ELSE BEGIN -- false_value END`。例如,查詢學生的及格或不及格狀態,可以使用`IF EXISTS(SELECT * FROM students WHERE score >= 60) BEGIN SELECT '及格' AS result; END ELSE BEGIN SELECT '不及格' AS result; END`。
PostgreSQL。使用`IF condition THEN -- true_value ELSE -- false_value END IF;`。例如,使用`DO BEGIN IF EXISTS(SELECT * FROM students WHERE score >= 60) THEN RAISENOTICE '及格'; ELSE RAISENOTICE '不及格'; END IF; END`。
此外,還有通用的`IF`表達式用法,如`IF(expr1,expr2,expr3)`,當`expr1`為真時返回`expr2`,否則返回`expr3`。例如,在查詢中根據性別顯示不同文字,可以使用`SELECT IF(sex=1,"男","女")AS s FROM t_user`。
需要注意的是,不同的資料庫系統提供了其他控制流函式,如`CASE WHEN`表達式,用於更複雜的條件邏輯。