1

이 문제를 살펴보고 가능한 해결책을 알려주십시오. select 문에서 조건부 null이 아님 - SQL Server

데이터

테이블에서 표시된다 :

select a,b,d,e from table xyz. 
  • C 값으로 널 표시 D 인 경우

또는

  • C는와 널 표시 E 아니다 값
,515,

데이터 요구 : C가 널인 경우

데이터 표시 D = E = B 다른 B, 상기 데이터로부터 본

a b c   d e 
1 2 null   2 
1 2 not null 2 

같다.

위의 조건에 대해 적절한 SQL 쿼리를 작성하는 방법, 작동하지 않는 경우 시도해 보았습니다.

미리 감사드립니다.

+0

다시 시도하고 싶습니다. 고객의 사양과 같은 사양은 변함없는 ... –

답변

1
SELECT CASE WHEN c IS NULL THEN d ELSE e END 
+0

당신은 키워드를 놓치고 있습니다. 정확한 구문은 다음과 같습니다.'SELECT case when c is NULL then e else e END' – Bridge

+0

@Bridge 감사합니다. –

1
SELECT CASE WHEN c IS NULL THEN d ELSE e END 

= 나 다른 전자 = b는 당신이 또한 NULLNULL NOT 값을 비교하려고 할 수 있는게 틀림 없어 디스플레이 D에 대한 비트.

SQL NULL은 "알 수 없음"을 의미하므로 알려진 값과 알 수없는 값 사이에서 비교할 수 없음을 이해해야합니다.

이 경우 로직에 영향을 미치지 않는 값에 대해 NULL 일 때 값을 변경하려면 Coalesce을 사용하는 것이 좋습니다.

Coalesce(d, 0) = b