2013-06-12 5 views
0

상태가 저장된 SQLite3 데이터베이스에 일부 행이 있습니다. 일반적으로이 상태는 한 단어이지만 일부 경우에는이 상태에 참조 번호가 추가됩니다. 그래서SQLite에 조건이있는 경우 선택

Created 
Defined 
Converted from xxx <- where xxx is the unique reference number 
Closed/changed from xxx 
... 

과 :

그래서 예를 들어 상태가 같은 값을 포함 할 수 있습니다.

이제 여러 가지 상태를 다른 상태로 매핑하려고합니다. 왜냐하면 이러한 목적의 일부는 동일한 의미를 갖기 때문입니다 (예 : 생성 및 정의 됨).

오라클에서는 적어도 고유 한 문자열에 대해 디코드 기능을 사용할 수 있습니다. 그러나 고유 한 ID로 값을 처리하는 방법은 무엇입니까? 이 기능을 사용할 수있는 decode_like 기능이 있습니까?

결과는 같아야합니다

Created -> CRT 
Defined -> CRT 
Converted from xxx -> CVT 
Closed/changed from xxx -> CL 

이는 심지어 SQL 수행 할 수 있습니다 또는 내 자바 코드에서이 변환을 구현하는 것 등?

답변

1

사용 CASE expression :

UPDATE MyTable 
SET Status = CASE 
      WHEN Status = 'Created' OR Status = 'Defined' THEN 'CRT' 
      WHEN Status LIKE 'Converted from %'   THEN 'CVT' 
      WHEN Status LIKE 'Closed/changed from %' THEN 'CL' 
                  ELSE Status 
      END 
관련 문제