sql server 替代 case when 的语法
时间: 2024-10-09 10:08:50 浏览: 119
sql 中 case when 语法使用方法
5星 · 资源好评率100%
在 SQL Server 中,当你想要基于多个条件进行逻辑判断并返回不同的结果时,除了 `CASE` 表达式,还有其他几种替代方法。以下是几个常见的例子:
1. **IF...ELSE** 语句:
```sql
SELECT
column_name,
IIF(condition1, value_if_true, value_if_false)
ELSE
IIF(condition2, value_if_true, value_if_false)
FROM table_name;
```
这里有两个 `IIF` 函数,每个函数都对一个条件进行判断。
2. **T-SQL Switch/CASE** 语句(新版本支持更简洁形式):
```sql
SELECT column_name,
CASE WHEN condition1 THEN value1
WHEN condition2 THEN value2
ELSE default_value
END
FROM table_name;
```
如果有默认值,则可以省略 ELSE 关键字。
3. **计算列+COALESCE**:
```sql
SELECT column_name,
COALESCE(CASE WHEN condition1 THEN value1
WHEN condition2 THEN value2
ELSE NULL
END,
other_value)
FROM table_name;
```
使用 `COALESCE` 函数来提供默认值,当所有条件都不满足时。
以上每种方法都有其适用场景,你可以根据实际需求选择最合适的方式。在某些情况下,`CASE` 可能会更为直观和清晰,尤其是当条件较多且不需要显式指定默认值时。
阅读全文