在 PostgreSQL 中,条件表达式用于根据指定的条件执行不同的代码块。以下是一些常用的条件表达式和相关的函数:

IF 条件表达式:

1. CASE WHEN ... THEN ... [WHEN ... THEN ...] [ELSE ...] END:
   - 描述:执行基于条件的分支。
   - 示例:
     SELECT
       CASE
         WHEN grade > 90 THEN 'A'
         WHEN grade > 80 THEN 'B'
         WHEN grade > 70 THEN 'C'
         ELSE 'D'
       END AS result
     FROM student_scores;

NULL 条件检查:

1. COALESCE:
   - 描述:返回参数列表中的第一个非 NULL 值。
   - 示例:
     SELECT COALESCE(column_name, 'default_value') FROM table_name;

2. NULLIF:
   - 描述:如果两个表达式的值相等,则返回 NULL;否则返回第一个表达式的值。
   - 示例:
     SELECT NULLIF(column1, column2) FROM table_name;

空字符串和非空字符串检查:

1. NULLIF 或 CASE WHEN ... THEN ... ELSE ... END:
   - 描述:用于处理空字符串。
   - 示例:
     SELECT NULLIF(column_name, '') FROM table_name;
     -- 或
     SELECT
       CASE
         WHEN column_name = '' THEN 'N/A'
         ELSE column_name
       END AS result
     FROM table_name;

条件函数:

1. COALESCE 和 NULLIF:
   - 描述:可用于处理多个可能为空的值。
   - 示例:
     SELECT COALESCE(column1, NULLIF(column2, ''), 'default_value') FROM table_name;

EXISTS 条件:

1. EXISTS:
   - 描述:用于检查子查询是否返回结果。
   - 示例:
     SELECT column_name FROM table_name WHERE EXISTS (SELECT * FROM another_table WHERE condition);

其他条件表达式:

1. GREATEST 和 LEAST:
   - 描述:返回参数列表中的最大值或最小值。
   - 示例:
     SELECT GREATEST(column1, column2, column3) FROM table_name;

这些条件表达式和函数可以帮助你根据不同的条件执行相应的操作,使 SQL 查询更加灵活和具有逻辑。


转载请注明出处:http://www.zyzy.cn/article/detail/8188/PostgreSQL