首页 > 解决方案 > 选择以数字开头的列名

问题描述

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

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解释列名?

标签: sqldatabase-design

解决方案


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

select 1st

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

select 1 st

或者

select 1 as st

推荐阅读