如何处理列并将其作为查询的一部分返回?

时间:2011-10-21 16:57:06

标签: sql oracle

我有一个表部分(No,Desc,Draw)。

我想以这种形式返回表格中所有部分的列表:

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

在结果集中,如果Draw列不为null,则Is Packed标头应为Yes,否则为No。

我正在使用PL / SQL。

我不知道该怎么做。

3 个答案:

答案 0 :(得分: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,因为它是保留字。

答案 1 :(得分:2)

在这种情况下,作为CASE的替代方法(请参阅其他答案),您可以使用NVL2

SELECT No AS "Part Number", Desc AS "Description", NVL2 ( DRAW, 'YES', 'NO' ) AS "Is Packed" FROM PART

BTW:你应该创建一个DB对象(表/列......),其名称是一个保留字(在你的情况下为Desc) - 这可能导致非常奇怪的事情... < / p>

答案 2 :(得分:1)

使用CASE

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