2013-06-29 3 views
0

SQL Server를 사용하기 시작했습니다. 이것은 아주 쉬워야 할 것처럼 보이지만 아직 답을 찾지 못했습니다. 이에출력 열의 SQL Server 동적 선택

id fruit value 
1 apple 10 
2 orange a 
3 orange b 
4 apple 20 
5 apple 30 

:이에서 이동하려고

fruit quantitative qualitative 
apple 10 NULL 
orange NULL a 
orange NULL b 
apple 20 NULL 
apple 30 NULL 

뭔가 같은 ...

  • 만약 사과 -> 2 열에서 값을 넣고, 열 3 = NULL
  • 주황색 -> 값을 3 열에 넣으면 2 열 = NULL

고맙습니다!

+0

답변 방법이 작업을 수행하는 방법을 알려드립니다. 저는 다른 디자인을 권하고, 우선 자신의 컬럼에 질적 속성과 양적 속성을 넣어 두었습니다. 데이터 유형은 친구입니다. – Tim

답변

3
select 
fruit, 
case when fruit = 'apple' then value else null end as quantitative, 
case when fruit = 'orange' then value else null end as qualitative 
from mytable 

SqlFiddle

3

당신은 ISNUMERICCASE를 사용할 수 있습니다

SELECT fruit, 
     quantitative=CASE WHEN ISNUMERIC(value)=1 THEN value ELSE NULL END, 
     qualitative=CASE WHEN ISNUMERIC(value)=0 THEN value ELSE NULL END 
FROM dbo.Fruits 

Demo

FRUIT QUANTITATIVE QUALITATIVE 
apple 10    (null) 
orange (null)   a 
orange (null)   b 
apple 20    (null) 
apple 30    (null) 
+0

'value'열의 데이터 형식 대신 논리에서 열 이름 'fruit'를 사용하고 싶습니다. –