Sql 从2个字段中选择数据,并仅使用1个值
假设我有如下数据Sql 从2个字段中选择数据,并仅使用1个值,sql,oracle,Sql,Oracle,假设我有如下数据 Col1 Col2 A E C C C D G C 输出如下所示 Column A C C D G 所以我只想获取有值的值,如果这两列都有值,只从column1获取 select nvl(col1,col2) from table1 NVL将检查col1是否为null,如果不是,则取col1值。如果为null,
Col1 Col2
A E
C C
C
D
G C
输出如下所示
Column
A
C
C
D
G
所以我只想获取有值的值,如果这两列都有值,只从column1获取
select nvl(col1,col2) from table1
NVL将检查col1是否为null,如果不是,则取col1值。如果为null,则需要第二个col2值您可以使用合并 比如说,
SQL> WITH sample_data AS(
2 SELECT 'A' col1, 'E' col2 FROM dual UNION ALL
3 SELECT 'C' col1, 'C' col2 FROM dual UNION ALL
4 SELECT '' col1, 'C' col2 FROM dual UNION ALL
5 SELECT 'D' col1, '' col2 FROM dual UNION ALL
6 SELECT 'G' col1, 'C' col2 FROM dual
7 )
8 SELECT COALESCE(col1, col2) val FROM sample_data;
V
-
A
C
C
D
G
SQL>
您还可以使用
CASE
作为常用方法
SELECT CASE
WHEN col1 IS NULL THEN col2
ELSE col1
END
FROM table1;