SELECT 列名以数字开头

SELECT column name starting with numeral

这是出于病态的好奇心。我这里有一个 非常 名字很糟糕的 table:

CREATE TABLE badtable (
    id INT PRIMARY KEY,
    "customer name" VARCHAR(63),
    "order" VARCHAR(12),
    "1st" date,
    "last-date" date
);

我试图展示您何时可能迫切需要分隔的列名。但是,以下不是错误:

SELECT
    "customer name",
    "order",
    1st,    --  no delimiter
    "last-date"
FROM badtable;

相反,它很高兴地给了我一个名为 st.

的专栏

这适用于 PostgreSQL 和 Microsoft SQL 服务器,因此它不限于其中之一的怪癖。

如何解释 1st 列名称?

在某些情况下,只要 DBMS 能够明确读取表达式,就不需要空格。

select 1st

选1,后面是别名。因此与

相同
select 1 st

select 1 as st