2011-10-21 66 views
0

我有一個表部分(不,描述,繪製)。如何處理列並將其作爲查詢的一部分返回?

我想在表中以這種形式返回所有部分的列表:

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

如果他真的lly使用'desc'作爲列名,當創建表時他會得到'ORA-00904:invalid identifier',但這是一個很好的提及。 –

+0

@BQ,如果列名稱在表格創建腳本中使用雙引號,則完全可以這樣做。不幸的是,我經常從我們的供應商處收到的腳本中看到雙引號的對象名稱。 – AndyDan

1

使用CASE

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

作爲替代CASE(見其他答案)在這種情況下,你可以使用NVL2

​​

BTW:你應該韋迪創建一個數據庫對象(表/列...)與一個名稱是一個保留字(在你的情況下Desc) - 這可能會導致真正奇怪的事情...

+1

如果他實際上使用了'desc'作爲列名,他在創建表時會得到'ORA-00904:invalid identifier',但這是一個很好的提及。 –

+0

@BQ,如果列名稱在表格創建腳本中使用雙引號,則完全可以這樣做。不幸的是,我經常從我們的供應商處收到的腳本中看到雙引號的對象名稱。 – AndyDan

相關問題