使用 ALL 、DISTINCT 或 UNIQUE 作为列名

如果想要在 SELECT 语句中使用 ALL 、DISTINCT 或 UNIQUE 这些关键字作为列名,可以采用一种变通方法。

首先,考虑一下当不采用变通方法时试图使用这些关键字之一会发生什么情况。在下面的例子中,使用 all 作为列名导致 SELECT 语句失败,因为数据库服务器将 all 解释成关键字而不是列名:
SELECT all FROM mytab -- fails;
必须使用一个变通方法来使这个 SELECT 语句执行成功。如果设置了环境变量 DELIMIDENT ,就可以通过吧 all 用双引号括起来使用 all 作为列名。在下面的例子里,SELECT 语句执行成功,因为数据库服务器把 all 解释为列名:
SELECT "all" from mytab; -- successful
下面的例子中的变通方法把关键字 ALL 和列名 all 一起使用:
SELECT ALL all FROM mytab;

下面的示例给出了几种在 CREATE TABLE 语句中使用关键字 UNIQUE 或 DISTINCT 作为列名的变通方法。

下一示例没能声明一个名为 unique 的列,因为数据库服务器将 unique 解释成关键字而不是列名:
CREATE TABLE mytab (unique INTEGER); -- fails
下面的变通方法使用了两个 SQL 语句。第一个语句创建列 mycol;第二个语句将列 mycol 重命名为 unique
CREATE TABLE mytab (mycol INTEGER);
        
        RENAME COLUMN mytab.mycol TO unique;
下面的变通方法也使用了两个 SQL 语句。第一个语句创建列 mycol;第二个语句修改表,在其中 unique,并删除列 mycol
CREATE TABLE mytab (mycol INTEGER);
        
        ALTER TABLE mytab 
        ADD (unique INTEGER),
        DROP (mycol);