我需要编写一个将从空表中返回特定值的查询

时间:2013-05-25 03:23:59

标签: sql oracle

所以我需要编写一个查询,它将使用空表返回由4列组成的单行数据。我还需要指定将返回的列的名称。 我不能在查询中使用以下单词:insert,update,delete,drop,create,union,minus,intersect,order by。

例如,查询可以返回:

  

|课程|状态|学期|年|

     

|数学| (null)| s1 | 2013 |

我不确定如何描述我追求的内容,如果您需要更多详细信息,请告诉我。

2 个答案:

答案 0 :(得分:2)

SELECTSelecting from the DUAL Table

上做一些阅读
SELECT 'math' course 
       ,NULL  status
       ,'s1'  semester
       ,2013  year 
  FROM dual;

输出:

| COURSE | STATUS | SEMESTER | YEAR |
-------------------------------------
|   math | (null) |       s1 | 2013 |

<强> SQLFiddle

由于您只返回常量值,因此您可以使用您想要的任何表名(不仅仅是dual),如果它存在于您的模式中。但是Oracle中存在dual专门针对此类需求。

答案 1 :(得分:2)

如果在Oracle中需要单行结果,则可以使用名为dual的特殊表。它有一行,所以你得到一行。请注意,在下面的选择中,我们没有从dual获取任何实际值,它只是用于给我们一行,我们选择常量。

SELECT 'Math' AS Course, 
       NULL AS Status, 
       's1' AS Semester, 
       '2013' AS Year
FROM DUAL;

(旁白:这看起来像一个奇怪的问题 - 空表在这里没有帮助。或者你的意思是,只有当表是空的时候?)

相关问题