2016-07-22 9 views
1

모든 열에 대해 Null 값과 데이터 유형이있는 테이블이 정수/실제입니다. 데이터를 CSV에 쓸 때 필드가 null이면 'no data'라고 쓰고 싶습니다.조건이있는 SQL IFNULL 및 CSV 쓰기

다음은 testTable입니다.

id  test1 test2 test3 
------ ------ ------ ------ 
1  1  2  3 
2    5  6 
3  7    9 
4    11  12 

ID가 2 내 SQL 문 어디는 열 TEST1에서 '문자열'을 표시 할은

SELECT id, (ifnull(test1, 'string')) as test1, test2, test3 from testTable;

이며이를 생성합니다.

id  test1 test2 test3 
------ ------ ------ ------ 
1  1  2  3 
2  string 5  6 
3  7    9 
4  string 11  12 

IFNULL에 대한 조건 조항을 넣을 수있는 방법이 있나요 또는 마지막 테이블을 생성하는 또 다른 방법은 무엇입니까?

원하는 최종 테스트 테이블.

id  test1 test2 test3 
------ ------ ------ ------ 
1  1  2  3 
2  string 5  6 
3  7    9 
4    11  12 

감사합니다.

답변

1
깨끗하고 빠른 경우 수 있습니다 그것은 또한뿐만 아니라 CASE 문을 사용하여 수행 할 수

,이 많은 양의 데이터입니다.

SELECT id, 
     CASE WHEN test1 IS NULL AND id = 2 THEN 'string' ELSE test1 END, 
     test2, 
     test3 
    from testTable; 
+0

아, 내가 성명을 일찍 사용하고 귀하의 코드를보고, 내가 완전히 잘못된있어 케이스를 사용했다. 다시 한 번 감사드립니다! –

1

당신은 상관 하위 쿼리를 사용하여 ID가 ​​2 인 경우에만 '문자열'을 끌어 수 :

SELECT id, ifnull(test1, 
        (select 'string' from testTable tt 
        where tt.id =2 and testTable.id = tt.id)) as test1, 
     test2, test3 
from testTable; 
+0

거기에 하위 쿼리를 넣을 수 있는지 알지 못했습니다. 고맙습니다! –