【问题标题】:SELECT column name starting with numeral选择以数字开头的列名
【发布时间】:2021-12-26 09:57:12
【问题描述】:

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

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 Server,因此它不仅限于其中之一。

1st 列名是如何解释的?

【问题讨论】:

    标签: sql database-design


    【解决方案1】:

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

    select 1st
    

    选择一个1。接下来是别名。因此与

    相同
    select 1 st
    

    select 1 as st
    

    【讨论】:

    • 我一直认为可选的AS 是个坏主意,因为它会导致很多歧义。感谢您清除它。
    猜你喜欢
    • 2022-12-24
    • 2013-08-24
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2012-02-26
    • 2021-08-01
    相关资源
    最近更新 更多