sql - “日期”用作列名
问题描述
我有一张名为 nexus 的表。
存在的列名称之一名为“日期”
因此,当我尝试编写一个“日期”处于 where 条件的选择查询时,它会抛出一个错误。这是因为“日期”是 pl/sql 的保留字。
我也不允许更改列名。
select product from nexus where date = '20210621'
我正在尝试使用 where 子句中的“日期”列提取“产品”
这里的日期被声明为字符串数据类型。
我尝试将其用作别名并使用“。” (点)运算符,但没有任何效果。
有没有其他方法可以做到这一点?提前致谢
解决方案
您提到了 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 中进行配置。
推荐阅读
- json - Swift:无法解析对模型的 JSON 响应
- r - R 包描述中的德语“元音变音”
- php - 使用 Microsoft-graph php-sdk 创建事件
- python - 优化从输入文本中查找单词关联强度的过程
- c# - UWP:PointerPressed 未在子元素上触发
- java - 确定在列表末尾附加值的复杂性
- python - macOS下的Python作为框架
- selenium - 我可以选择 Browsermob 代理的替代品吗?
- r - ggplot 有错误:grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : 多边形边未找到
- javascript - 根据另一个 div 中的 id 更改 div 内容