首页 > 解决方案 > “日期”用作列名

问题描述

我有一张名为 nexus 的表。

存在的列名称之一名为“日期”

因此,当我尝试编写一个“日期”处于 where 条件的选择查询时,它会抛出一个错误。这是因为“日期”是 pl/sql 的保留字。

我也不允许更改列名。

select product from nexus where date = '20210621'

我正在尝试使用 where 子句中的“日期”列提取“产品”

这里的日期被声明为字符串数据类型。

我尝试将其用作别名并使用“。” (点)运算符,但没有任何效果。

有没有其他方法可以做到这一点?提前致谢

标签: sqldatabaseplsql

解决方案


您提到了 PL/SQL,所以我假设您使用的是 Oracle。在 Oracle 中,您可以使用双引号对用作表名的保留名称进行转义:

select product from nexus where "date" = '20210621'

每个 RDBMS 都有自己的转义方法——在 MySQL 中它通常是一个反引号 (`),在 SQL Server 中它是方括号 ([]),等等。

--Oracle
select product from nexus where "date" = '20210621'

--MySQL
select product from nexus where `date` = '20210621'

--Sql Server
select product from nexus where [date] = '20210621'

这些也可以在某些 RDBMS 中进行配置。


推荐阅读