我直接给测试sql:
--1.创建表
CREATE TABLE TEST_AB(COL_A VARCHAR(100),
COL_B VARCHAR(100));
--2.插入测试数据
INSERT INTO TEST_AB VALUES('猪','PIG');
INSERT INTO TEST_AB VALUES('狗','DOG');
INSERT INTO TEST_AB VALUES(NULL,'CAT');
COMMIT;
-- CAT那里的中文是null,所以COL_A那里会变成英文
SELECT
CASE
WHEN COL_A IS NULL THEN
COL_B
ELSE COL_A END AS COL_A,
COL_B
FROM TEST_AB T
是什么数据库?不同数据库空值函数不一样,oracle是nvl,mysql是ifnull,另外还有个通用的coalesce函数。
或者,可以使用更加通用的case when
select id,
case when a is null then b else a end as a,
b
from 表
select ifnull(name,name2) from student
我来补充一个oracle的吧
SELECT DECODE(A,NULL,DECODE(B,NULL,A,B),A) FROM 表;
Select (Case When A Is Not Null Then A
When A Is Null Then B
End
) As A From Table