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

CASE WHEN statement as a stored procedure or function?

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

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

谢谢!

您可以使用代码片段和模板:

https://ctrlshiftb.wordpress.com/2010/03/01/snippets-for-sql-server-management-studio-ssms/

您当然可以将 CASE-WHEN 封装在一个函数中,然后从您的 SQL 中调用它。但是,如果您经常这样做,您可能需要考虑将这些值放在查找中是否更有意义 table 并通过加入找到值。

下面是 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;