Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从2个字段中选择数据,并仅使用1个值_Sql_Oracle - Fatal编程技术网

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;