gpt4 book ai didi

sql - 没有找到列?

转载 作者:行者123 更新时间:2023-12-04 19:10:08 24 4
gpt4 key购买 nike

我正在尝试按升序显示 2017 年 1 月 13 日之后加入的所有用户的用户名、姓氏、加入日期和国家/地区名称。但是,每次我尝试调用任何列时,都会收到错误消息“列:标识符无效”。

SELECT Username, LastName, JoinDate, CountryName
FROM BR_USER, BR_COUNTRY
WHERE JoinDate = '01-JAN-17' AND JoinDate IS NOT NULL
ORDER BY JoinDate ASC;

这是如何创建 BR_USER 表的图像。
enter image description here

简单的代码如:
SELECT UserId
FROM BR_USER;

给出相同的无效标识符错误,帮助

最佳答案

documentation解释:

Every database object has a name. In a SQL statement, you represent the name of an object with a quoted identifier or a nonquoted identifier.

  • A quoted identifier begins and ends with double quotation marks ("). If you name a schema object using a quoted identifier, then you must use the double quotation marks whenever you refer to that object.


如果您使用双引号定义列名,则在引用该列时必须使用双引号。或 table 或其他任何有名字的东西。

实际上,我不认为文档是 100% 正确的。 Oracle 将所有标识符大写以进行解析。所以,如果你定义了一个全大写的带引号的标识符,那么它就可以在没有引号的情况下工作。所以这有效:
create table t (
"COL" int
);

select "COL", COL, col
from t;

Here是一个db<> fiddle 。

但是谁想记住这样的规则——规则如此神秘和复杂,以至于文档甚至具有误导性。

简单的解决方案:不要使用双引号。

关于sql - 没有找到列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59436799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com