0

刚开始使用 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

就像是...

  • 如果 apple -> 将值放入第 2 列,则第 3 列 = NULL
  • 如果橙色 -> 将值放在第 3 列,第 2 列 = NULL

谢谢!

4

2 回答 2

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

于 2013-06-29T14:14:33.083 回答
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

演示

FRUIT   QUANTITATIVE    QUALITATIVE
apple   10              (null)
orange  (null)           a
orange  (null)           b
apple   20              (null)
apple   30              (null)
于 2013-06-29T14:15:20.627 回答