2010-03-05 6 views
2

텍스트 필드 (또는 데이터 유형)의 배열을 정의하고 그 중 하나의 문에서 값을 선택할 수 있습니까? 예를 들어 :SELECT 문의 배열에서 값 가져 오기

SELECT ARRAY['First', 'Second', 'Third'][mytable.state] as interpreted_state WHERE mytable.id = 1; 

답변

3

당신은 정렬의 수 할 수있는 SQL "CASE"문, 아니?

SELECT CASE mytable.state 
    WHEN 0 THEN 'First' 
    WHEN 1 THEN 'Second' 
    WHEN 2 THEN 'Third' 
    END 
    FROM mytable 
WHERE mytable.id = 1 
+0

완벽한, 감사합니다. – John

1
SELECT * FROM mytable.id WHERE columns IN ("1","2","3"); 

은 당신이 무엇을 의미하는지 제대로 이해하면 ..

+0

상태를 나타내는 정수 필드 (위의 예에서 상태)가 있습니다. 정수 값이 아닌 상태에 대한 텍스트 표현을 반환하고 싶습니다. 그러나 텍스트 표현은 ID에 따라 다릅니다. – John

0

그건 정말 바보 같은 방법입니다. 조회 테이블을 가지고 조인을 사용하십시오.

0

너는 가깝고, 팸플릿이 필요하다.

SELECT (array['one','two','three'])[state] 
FROM mytable 
WHERE id = 1; 

그러나 이미 언급 한 것처럼 CASE 문은 표준 및 휴대용 메서드입니다.

관련 문제