2011-09-14 3 views
1

아래 코드가 공백 값 대신 0 또는 0을 표시하거나 값 열의 빈 행 을 표시하는 이유는 무엇입니까?공백 값 대신 0을 얻음

어떻게 공백 값으로 변경할 수 있습니까?

select ValueA = case when ValueB = 'No' then ValueA 
        when ValueB = 'Yes' then '' 
        else '' 
        end 
From Table 

또는

내가 ValueB = 'Yes' then CAST(NULL AS varchar(25))를 사용하는 경우는 내가 널 제공하고 널 어디 빈 싶지만 빈 로 변환 할 때 나는 제로를 얻을. 왜?

빈칸을 어떻게 얻을 수 있습니까? valueA 숫자이기 때문에 ValueA은 0

+1

인가? – Ben

+0

"ValueA"열은 어떤 유형입니까? –

+0

null 대신 빈칸을 원한다면 ... 왜? asp.net 등에서 데이터를 소비하고 있습니까? 그렇지 않으면 null 값을 처리하지 않는 무언가를 원하는 방식으로 사용하고 있습니까? – Chains

답변

1

는 소리, 그리고 그것은 "빈 행"을 포함 할 수 없습니다. 그것은 0 또는 NULL이 될 것입니다. 공백을 원하면 varchar 또는 이와 동등한 문자 필드를 사용해야합니다.

1

동일처럼

1

ValueA는 숫자 데이터 유형이어야합니다. 또한 WHEN 'Yes'ELSE은 중복됩니다. 보십시오 : 그것은 숫자

SELECT ValueA = CASE ValueB 
     WHEN 'No' THEN CONVERT(VARCHAR(25), ValueA) 
     ELSE '' END 
FROM dbo.[Table]; 
1
select 
    case when ValueB = 'No' then Cast(ValueA as VarChar(10)) 
     when ValueB = 'Yes' then '' 
     else '' 
     end as ValueA 
    From Table 
관련 문제