2016-02-10 4 views
3

Пусть говорит, что у меня есть данные, как показано ниже.Выберите данные из поля 2 и используйте только 1 значения

Col1 Col2 
A  E 
C  C 
     C 
D  
G  C 

и выход будет, как показано ниже

Column 
    A  
    C  
    C  
    D  
    G  

Так я хочу только принимать значение, которое имеет значение, если оба столбца имеет значение, только взять только из column1.

ответ

3
select nvl(col1,col2) from table1 

NVL проверит, является ли col1 нулевым, если не будет значения col1. Если значение null, это займет второе значение col2.

+0

это работает, спасибо ... –

1

Вы можете использовать COALESCE.

Например,

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> 
2

Также вы можете использовать CASE для общего подхода.

SELECT CASE 
    WHEN col1 IS NULL THEN col2 
    ELSE col1 
    END 
FROM table1; 
Смежные вопросы