遇到NULL值时显示所有行

时间:2013-03-14 08:53:37

标签: null sybase

我使用sysbase,我在这里有一个表,

id type value
1   aa    11
2   bb    22
2   bb    22
2   dd    44
3   aa    11
3   bb    22
4   dd    44

我只是想表现出来:

id  aa  bb
1   11  
2       22
3   11  22
4       

即为所有id选择所有“aa”和“bb”属性,如果id没有aa属性或bb属性,则将其保留为空白。 我想也许工会对我来说很有帮助,但是任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

试一试。它可能不是您想要的100%输出,但它为您提供了良好的开端。

您也可以在此处查看:http://www.sqlfiddle.com/#!6/f9eb8/1/0

SELECT
  P0.ID,
  ISNULL(MAX(P0.aa), '') as 'aa',
  ISNULL(MAX(P0.bb), '') as 'bb',
  ISNULL(MAX(P0.cc), '') as 'cc',
  ISNULL(MAX(P0.dd), '') as 'dd'
FROM
(
  SELECT
    ID,
    CASE type
      WHEN 'aa' THEN Value
      ELSE NULL
    END AS 'aa',
    CASE type
      WHEN 'bb' THEN Value
      ELSE NULL
    END AS 'bb',
    CASE type
      WHEN 'cc' THEN Value
      ELSE NULL
    END AS 'cc',
    CASE type
      WHEN 'dd' THEN Value
      ELSE NULL
    END AS 'dd'
  FROM
    blah
 ) P0
GROUP BY
  P0.ID