2011-10-21 10 views
0

私はテーブルPart(No、Desc、Draw)を持っています。列を処理してクエリの一部として返す方法

私は、この形式のテーブル内のすべての部品のリストを返したい:ドロー列がnullの場合とないではない場合、結果セットで

Part Number| Description | Is Packed ? (Yes/No)| 
------------------------------------------------ 

、あるパックヘッダがはいでなければなりませんさもないと。

私はPL/SQLを使用しています。

私はこれを行う方法がわかりません。それは予約語なので

答えて

4
SELECT No AS "Part Number", Desc AS "Description", 
CASE 
WHEN Draw IS NOT NULL THEN 'Yes' 
ELSE 'No' 
END AS "Is Packed" 
FROM Part 

あなたはフィールドリストにDescをエスケープする必要がある場合があります。

+0

'desc'を列名として使用した場合、テーブルを作成するときに' ORA-00904:invalid identifier'が返されますが、言及すると良い点です。 –

+0

@BQの場合、テーブル作成スクリプトで列名が二重引用符で囲まれていれば、それは可能です。残念ながら、私はしばしば私たちのベンダーから受け取ったスクリプトに二重引用符で囲まれたオブジェクト名を見ます。 – AndyDan

1

使用CASE:ところで

​​

CASEに代わる方法として

CASE WHEN Draw IS NOT NULL THEN 'Yes' 
    ELSE 'No' 
END AS column_alias 
2

あなたがNVL2を使用することができ、この場合には(他の回答を参照してください)あなたはDBオブジェクトを作成ネーヴ必要があります(表/列...)予約語(あなたの場合はDesc)の名​​前 - これは本当に奇妙なものにつながる可能性があります...

+1

実際に 'desc'を列名として使用した場合、テーブルを作成するときに' ORA-00904:invalid identifier'と表示されますが、言及するとよい点です。 –

+0

@BQの場合、テーブル作成スクリプトで列名が二重引用符で囲まれていれば、それは可能です。残念ながら、私はしばしば私たちのベンダーから受け取ったスクリプトに二重引用符で囲まれたオブジェクト名を見ます。 – AndyDan

関連する問題