2011-02-24 3 views
0

내가 좋아하는 뭔가가 필요방법 그룹에 텍스트 열이

24.02.2011 "text" 
25.02.2011 "te" 
25.02.2011 "text" 
26.02.2011 "te" 

아니면

되었다 0
24.02.2011 "c4" "text" 
25.02.2011 "c2" "te" 
25.02.2011 "c4 "text" 
26.02.2011 "c2" "te" 

내가

select dt, с1+с2+с3+с4 as C from select dt,c1,c2,c3,c4

25.02.2011 "tetext" 

이 출력이 나에게 잘못이있을 것이다한다면.

내가 행에 행 + 열을 교환 할 수있는 방법을

25.02.2011 "te" 
25.02.2011 "text" 

그래서 난 어떤 생각을 필요로해야합니다.

감사합니다.

MS SQL 서버 2008

내 현재의 아이디어는로/선택한 다음 데이터를 내가 필요로하는 구조로 일시적 또는 어쩌면 정적 테이블을 만들고 삽입합니다.

답변

1

간단한 아마 ALL UNION과 같습니다

SELECT dt,'c1' as Col,c1 from table1 where c1 is not null 
UNION ALL 
SELECT dt,'c2' as Col,c2 from table1 where c2 is not null 
UNION ALL 
SELECT dt,'c3' as Col,c3 from table1 where c3 is not null 
UNION ALL 
SELECT dt,'c4' as Col,c4 from table1 where c4 is not null 

COALESCE/ISNULL을 사용하는 솔루션이 파멸 할 수 있다는 것을 의미하는 샘플 데이터의 중간 행 (두 개의 출력 행을 생성하기 위해 만들어진)입니다.

0

이 MS SQL 서버에 어떻게 모르겠어요
그러나 MySQL은 당신이이 ifnull을 기능 볼 수 있었다 if

관련 문제