2013-11-02 5 views
0

저는 SQL에 새 메시지를 표시하고 잘못된 내용을 확인했습니다. 내 쿼리는 논리를 나타내지 만 내 INT_VALUEVARCHAR_VALUE으로 변환하지 않습니다. 나는 ALTER을 사용하여 INT 값을 유지해야하고 int 값에 이름을 지정하려고합니다.변환이 varchar에서 데이터 유형 int로 변경되지 못했습니다.

-- BEGIN 

SELECT CAST(CASE WHEN COLUMN_NAME = INT_VALUE THEN 'VARCHAR_VALUE' 
ELSE COLUMN_NAME END)AS VARCHAR(15)) FROM TABLE_NAME 

-- END 

내가 CONVERT aswell으로 시도 않았다하지만 난 같은 오류를 가지고 나를 위해 매우 논리적 보이는 원인 내가이 오류가 이유를 설명해주십시오. 고맙습니다.

+0

'COLUMN_NAME'의 데이터 유형은 무엇입니까? – shf301

답변

0

column_name이 int 열이라고 가정하면이 작업을 수행 할 수 있습니다.

Select 
    case column_name 
     when int_value then 'varchar_value' 
     else cast(column_name as varchar(15)) 
    end 
from 
    table_name 

사례 명세서의 모든 분기는 동일한 데이터 유형을 반환해야합니다.

관련 문제