sql: 한 열 이 비어 있 을 때 다른 열 을 가 져 옵 니 다 (case when then)

1695 단어 sql
모 바 일 광고 업무 에서 장 비 는 기본적으로 두 개의 진영 으로 나 뉜 다. 안 드 로 이 드 와 ios 이기 때문에 장치 라 이브 러 리 를 설치 할 때 보통 두 개의 필드 가 있 는데 하 나 는 imei 이 고 ios 에 대응 하 는 장치 id 는 idfa 라 고 한다.
핸드폰 이 안 드 로 이 드 일 때 imei 필드 는 값 이 있 고 idfa 는 비어 있 습 니 다.장치 가 ios 일 때 idfa 는 값 이 있 고 imei 는 비어 있 습 니 다.그러나 모든 장치 id 를 가 져 와 야 할 때 모든 imei 와 idfa 의 합 입 니 다.
이렇게 하면 imei 필드 가 비어 있 을 때 idfa 필드 를 취하 고 idfa 필드 가 비어 있 을 때 imei 필드 를 취 하 는 것 과 관련 됩 니 다. 해결 방법 은 당연히 case 를 사용 하 는 것 입 니 다. 다음은 간단하게 소개 하고 실전 에 들 어 갑 니 다.
참고 자료:http://www.cnblogs.com/cyjch/archive/2012/03/21/2410794.html
Case 는 두 가지 형식 을 가지 고 있 습 니 다.간단 한 Case 함수 와 Case 검색 함수.-- Case CASE sex       WHEN '1'   THEN ' '       WHEN '2'   THEN ' ' ELSE ' '   END --Case CASE WHEN sex = '1'   THEN ' '       WHEN sex = '2'   THEN ' ' ELSE ' '   END
이 두 가지 방식 은 같은 기능 을 실현 할 수 있다.간단 한 Case 함수 의 작성 방법 은 상대 적 으로 간결 하지만 Case 검색 함수 에 비해 기능 적 으로 제한 이 있 습 니 다. 예 를 들 어 판단 식 을 쓰 는 것 입 니 다.
실전 은 다음 과 같다.
select sbid, act_type from (select case when imei is null then idfa else imei end as sbid,act_type,act_time from rela_load where act_type=52 or act_type=54 or act_type=55 or act_type=56 or act_type=57 order by act_time) d;  imei null    idfa,   imei。

좋은 웹페이지 즐겨찾기