2011-04-19 3 views
0

하나의 문자열 열이있는 테이블이 있습니다. String 열이 채워지면 DB에 이미 삽입 된 행의 값이 "y"또는 "n"으로 채워지는 다른 열 null을 삽입하려고합니다. 할 수 있습니까?SQL - if 명령을 기반으로하는 기본값

실제로는 기본값이 없습니다. 이를 근거로이 값을 설정할 수있는 경우 난 그냥 알 필요가 명령

+1

나는 당신이 의미하는 바를 이해하지만이 변환 전후에 두세 행이있는 예를 사용하여 게시물을 편집 할 수 있습니까? – Mat

+0

다른 열은 이미 채워져 있습니까? 새 열의 값을 입력 할 때 값을 삽입 하시겠습니까? 왜 이렇게 계산 된 값에 대해 열을 추가해야합니까? – Oded

+0

프로덕션 환경에서 이처럼 실행하고 싶습니다. 전환하고 싶지만 null 포인터 또는 그와 비슷한 것을 갖고 싶지는 않습니다. 내 말은 knopw입니까? – pringlesinn

답변

2

당신은 계산 된 열을 추가 할 수 있습니다 :

ALTER TABLE 
     mytable 
ADD  is_string_filled AS (CASE WHEN string_field IS NULL THEN 'N' ELSE 'Y' END) 
+0

다른 열 다음에 열을 추가하는 방법 예를 들어 열 1과 열 2 사이에 열 3을 삽입하고 싶습니다. – pringlesinn

+1

@Pringlesinn - 테이블을 다시 만들지 않고는 그 열을 입력 할 수 없습니다. 'SELECT col2, col3, col1' 명령으로 순서를 바꿀 수 있기 때문에 중요하지 않습니다. – JNK

+0

@pringlesinn : 할 수 없습니다. 그러나 쿼리에서 열 순서를 변경할 수 있습니다. 실제로 쿼리에서이 계산을 수행합니다. – Quassnoi

2
//You can implement this in a select query as well instead of adding a column. 
select strColumn, 
CASE 
    WHEN strColumn is null THEN 'N' 
    ELSE 'Y' 
END as colCheck 

FROM TABLE1; 

조건절 사용에 대한 자세한 내용은 여기에서 sql out을 참조하십시오. How do I perform an IF...THEN in an SQL SELECT?

열을 추가하는 대신 slect 쿼리로 위의 문제를 계산하는 것이 좋습니다. 표 형식의 표현이 필요한 경우 선택 쿼리에서보기를 만들 수 있습니다.

+0

이 구문을 업데이트했습니다. 지적 해 주셔서 감사합니다. – reggie