在SQL select和Oracle中重命名SQL选择列

时间:2016-03-23 07:10:38

标签: sql oracle select

为SQL Server正确编写了以下请求,但对Oracle没有。

SELECT col1 AS 'col1_new_title',
       col2 AS 'col2_new_title',
       col3
FROM table

对于Oracle,它需要是一个等号,前面有新名称。

有没有办法编写该请求,以便它可以在两个环境中执行,而不必每次都重写它?

2 个答案:

答案 0 :(得分:1)

您的声明在Oracle中不起作用的原因是由单引号引起的。在SQL标识符中,如果您希望它们区分大小写,则需要用双引号括起来。单引号用于字符串常量。

以下

SELECT col1 AS "col1_new_title",
       col2 AS "col2_new_title",
       col3
FROM table

应该适用于两个系统(实际上在符合SQL标准规范标准的任何 DBMS上)

对于SQL Server,这需要将配置选项“ANSI_QUOTES”(或类似的我不记得的确切名称)设置为ON - 我认为这是任何最新SQL Server版本中的默认设置。

如果您不关心UPPER /小写标识符,则根本不要使用任何引号:

SELECT col1 AS col1_new_title,
       col2 AS col2_new_title,
       col3
FROM table

答案 1 :(得分:0)

SELECT 
       col1 col1_new_title
     , col2 col2_new_title
     , col3
FROM table

如果你没有空格并且避免使用保留字,那么上面的准系统方法将适用于大多数SQL方言。

注意oracle不需要as,实际上在某些情况下不接受它,例如表别名。

如果这种裸方法不起作用,请在列别名中添加双引号。