CASE WHEN语句作为存储过程或函数?

时间:2015-03-19 15:31:14

标签: sql sql-server case case-when

我的查询中有很多CASE WHEN语句,我经常在其他查询中使用。

有没有办法存储这些CASE WHEN语句,以便我可以在需要时调用它们?或者,每次必须写出这些吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您当然可以在函数中封装CASE-WHEN,然后从SQL中调用它。但是,如果你这么做很多,你可能想要考虑将这些值放在查找表中并通过连接找到值更有意义。

以下是Oracle的示例函数。

CREATE OR REPLACE FUNCTION case_alternative (value1 NUMBER)
   RETURN NUMBER IS
BEGIN
   RETURN CASE value1
             WHEN 1 THEN 'First Value'
             WHEN 2 THEN 'Second Value'
             ELSE 'Other Value'
          END;
END case_alternative;