温馨提示×

SQL中select默认值如何设置

sql
小亿
415
2024-04-11 14:40:20
栏目: 云计算

在SQL中,你可以使用`COALESCE`函数或者`CASE`语句来为`SELECT`查询设置默认值,特别是当你希望针对可能为`NULL`的列返回一个替代值时。虽然这不是在列定义中设置默认值(那是在创建或修改表结构时完成的),但它允许你在查询结果中动态替换`NULL`或满足特定条件的值。

1、使用 `COALESCE`

`COALESCE`函数接受一系列参数,并返回第一个非`NULL`值。如果所有参数都是`NULL`,则返回`NULL`。这可以用来为`SELECT`查询中的`NULL`值指定一个默认值。

```sql

SELECT COALESCE(column_name, 'default_value') FROM table_name;

```

这将返回`column_name`的值,如果`column_name`是`NULL`,则返回`'default_value'`。

2、使用 `CASE`

另一个选择是使用`CASE`语句,它提供了更多的灵活性,允许基于特定条件来返回值。

```sql

SELECT

CASE

WHEN column_name IS NULL THEN 'default_value'

ELSE column_name

END

FROM table_name;

```

这将检查`column_name`是否为`NULL`,如果是,就返回`'default_value'`;否则,返回`column_name`的实际值。

3、示例

假设有一个名为`Employees`的表,其中包含一个名为`Department`的列,该列在某些记录中可能为`NULL`。如果你想在查询结果中将这些`NULL`值替换为`'N/A'`,可以这样做:

使用`COALESCE`:

```sql

SELECT Name, COALESCE(Department, 'N/A') AS Department FROM Employees;

```

使用`CASE`:

```sql

SELECT

Name,

CASE

WHEN Department IS NULL THEN 'N/A'

ELSE Department

END AS Department

FROM Employees;

```

这两个查询都会为`Department`列中的`NULL`值返回`'N/A'`,而不是`NULL`。

0