0

IDでバインドされた2つのテーブルにまたがるデータがあります。問題は、列名ではなく、内部の実際のデータを選択したいということです。そこで、SELECT CASEステートメントを使用することにしましたが、多くのnullを含むテーブルが生成されます。nullではないデータを選択するにはどうすればよいですか?

column value   column name
200              car
300              boat

SQLクエリ:

SELECT 
CASE WHEN  b.name = 'car' THEN a.value END as 'car',
CASE WHEN  b.boat= 'car' THEN a.value END as 'boat' 
WHERE a.id = b.id   

出力は

CAR  BOAT
200  NULL
NULL 300 

null値なしのみを選択するにはどうすればよいですか?

4

1 に答える 1

2

GROUP BY他のMAX列の場合:

SELECT a.id,
       MAX(CASE WHEN  b.name = 'car' THEN a.value END) as 'car',
       MAX(CASE WHEN  b.boat= 'car' THEN a.value END) as 'boat' 
WHERE a.id = b.id   
GROUP BY a.id
于 2012-07-03T15:52:48.813 に答える