2012-07-03 2 views
0

는 그래서 그것을 잘SQL 변화의 결과

SELECT NAME, 
     Country, 
     NORMAL_STATE, 
     CURRENT_STATE 
FROM SOMS_TABLE 
WHERE SOMS_TABLE.NAME LIKE 'AR%' AND 
     NORMAL_STATE <> CURRENT_STATE 
ORDER BY SOMS_TABLE.Country ASC 

출력
enter image description here

입니다이 코드를 작동 한 대신 나는 1과 0의 &가

enter image description here
을 폐 개로 변경하려면 감사합니다.

+2

에 대한 MySQL은, SQL 서버, SQLite는 사용할 수 있습니다, 당신은 RDBMS를 선택할 수 있습니다? –

답변

3
select name, 
    Country, 
    case NORMAL_STATE 
     when 1 then 'OPEN' 
     when 0 then 'CLOSED' 
     else 'UNKNOWN' 
    end as NORMAL_STATE, 
    case CURRENT_STATE 
     when 1 then 'OPEN' 
     when 0 then 'CLOSED' 
     else 'UNKNOWN' 
    end as CURRENT_STATE 
from SOMS_TABLE 
where name like 'AR%' 
    and NORMAL_STATE <> CURRENT_STATE 
order by Country 
+0

더 많은 옵션으로 멋지고 간단합니다. –

0

는 IF 문

SELECT NAME, Country, 
     IF(NORMAL_STATE > 0,'OPEN','CLOSED'), 
     IF(CURRENT_STATE > 0,'OPEN','CLOSED') 
FROM SOMS_TABLE 
WHERE SOMS_TABLE.NAME LIKE 'AR%' AND 
     NORMAL_STATE <> CURRENT_STATE 
ORDER BY SOMS_TABLE.Country ASC 
1

사용이

CASE NORMAL_STATE 
    WHEN 1 THEN 'OPEN' 
    WHEN 2 THEN 'CLOSED' 
END AS NORMAL_STATE 

와 유사 CURRENT_STATE