isnumber函数和case when
时间: 2023-07-06 08:38:55 浏览: 134
`ISNUMERIC` 函数和 `CASE WHEN` 语句都是 SQL Server 中常用的条件判断语句。
`ISNUMERIC` 函数用于判断一个字符串是否可以转换为数字,返回值为 `1` 表示可以转换为数字,返回值为 `0` 表示不可以转换为数字。
`CASE WHEN` 语句用于根据条件判断返回不同的值。它的基本语法为:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END
```
将 `ISNUMERIC` 函数和 `CASE WHEN` 语句结合使用,可以实现更为复杂的条件判断。
例如,假设有一个表 `your_table`,其中包含一个字符串列 `your_column`,需要将其中可以转换为数字的字符串转换为数字,并将其它字符串设为 `NULL`,可以使用以下 SQL 语句:
```sql
SELECT
CASE
WHEN ISNUMERIC(your_column) = 1 THEN CAST(your_column AS INT)
ELSE NULL
END AS converted_column
FROM your_table
```
上述 SQL 语句中,`CASE WHEN` 语句首先使用 `ISNUMERIC` 函数判断 `your_column` 是否可以转换为数字,如果可以,则使用 `CAST` 函数将其转换为整数,否则返回 `NULL`。最终查询结果包含一个新的列 `converted_column`,其中包含转换后的数字或 `NULL` 值。
阅读全文