重命名SQL Server列中的类别

时间:2018-08-09 13:44:07

标签: sql sql-server ssms

这是查询

select col1
from table

col1包含以下类别值:

A
B
C
NULL

如何将null类别重命名为D

3 个答案:

答案 0 :(得分:3)

SQL Server使用ISNULL()

SELECT ISNULL(value_to_check, use_this_instead_if_valuetocheck_is_null)

输入您的代码:

select ISNULL(col1, 'D') AS col_name
from table

但是,本专栏文章将对此进行全面介绍。您不能使用它来创建序列,例如D然后E然后F。在此列中遇到的任何NULL值都将变为D。

答案 1 :(得分:3)

如果您想使更改永久化

UPDATE table
SET col1 = 'D'
WHERE col1 IS NULL

从那时起,您只需使用...即可查询

SELECT col1
FROM table

...以获得所需的结果。


如果NULL中有多行包含col1的行,则需要按唯一键,最好按主键(顺便说一下,每个表都应具有)进行过滤。假设您有一个类似

的表格
id (PK)   col1
---       ----
1         'A'
2         'B'
3         'C'
4         NULL
5         NULL

然后您可以使用

进行修复
UPDATE table SET col1 = 'D' WHERE id = 4;
UPDATE table SET col1 = 'E' WHERE id = 5;

除非您可以从另一列中计算新值,例如:

UPDATE table 
SET col1 = UPPER(LEFT(name, 1))

答案 2 :(得分:2)

尝试一下:ISNULL()函数用于将NULL值替换为另一个值

select isnull(col1,'D') as col1
from table