Oracle sql:有没有办法使用别名为整个子句组成查询?

时间:2018-01-22 10:08:08

标签: sql oracle oracle-sqldeveloper

分析我的应用程序的Oracle DB,我总是运行以相同的“order by”子句结束的查询,因为每个表都有一个日期类型“DT_EXTRACTION”列。

有没有办法为字符串“按DT_EXTRACTION desc命令”(比如等于$ DD)定义别名,并像这样写我的查询?

select *
from foo
$DD;

1 个答案:

答案 0 :(得分:2)

由于您正在使用SQL Developer,因此可以(ab)使用替换变量:

define DD='order by DT_EXTRACTION desc'

select * from your_table
ⅅ

但是您必须在每个脚本/会话中使用define该字符串,或者将其添加到登录脚本中以使其始终可用(您可以从工具中选择>首选项 - &gt ;数据库)

这也适用于SQL * Plus。

SQL Developer也有“#snippets'”,您可以在View-> Snippets透露的面板中查看和管理它们。您可以为该order by子句添加自己的代码段,然后可以将其从代码段面板拖放到您需要使用它的代码中。不是你要求但仍然有用。 @thatjeffsmith has a write up with pictures,所以我不会在这里重复这些细节,因为它不是你所需要的。

您可能会发现code templates也很有用。从工具 - >首选项 - >数据库选择SQL编辑器代码模板,并为您的字符串定义一个新模板:

enter image description here

然后在工作表中输入:

select * from your_table DD

点击控制空间,它会自动扩展到

select * from your_table order by dt_extraction desc