【问题标题】:SQL: Variables with Quotes ""SQL:带引号的变量“”
【发布时间】:2022-01-20 00:22:49
【问题描述】:

我正在使用 SQL-92(也称为 SQL/2、Netezza)。我注意到,即使我的表中的变量名没有引号 (""),以下 SQL 命令也不起作用:

select var_1 from my_table limit 100;

ERROR: ATTRIBUTE "VAR_1" NOT FOUND

但另一方面,这个 SQL 命令确实有效:

select "var_1" from my_table limit 100;

因此,我假设由于某种原因,我现在需要用引号 ("") 指定所有变量

问题:我正在尝试运行以下查询:

create table test as 
select a.*, b.* from (

select "var_1", "var_2", "var_3" from table_1)a

inner join (select "var_4", "var_5", "var_6"  from table_2)b

on (( "a.var3" =  "b.var_4"  or  "a.var2" =  "b.var_5") and ("a.var1" = "b.var6") )

但这会返回以下错误:

ERROR: Attribute "a.var3" not found

谁能告诉我我做错了什么?我尝试在连接变量周围使用/不使用“”运行上述代码,但似乎没有任何效果。

谢谢!

【问题讨论】:

  • 不知道 Netezza。但是,在创建表时如何声明列是否重要? create table test("var_1" int)create table test(var_1 int)
  • @LukStorms:谢谢你的回复!我会调查的!

标签: sql join data-manipulation


【解决方案1】:

"a.var3" 不是引用由表名限定的列名的方式。每个名字都是独立引用的,即"a"."var3"

【讨论】:

  • 感谢您的回答!我尝试了以下代码: create table test as select a.*, b.* from (select "var_1", "var_2", "var_3" from table_1)a inner join (select "var_4", "var_5", "var_6 " 从 table_2)b 开始 (("a"."var3" = "b"."var_4" 或 "a"."var2" = "b".var_5") 和 ("a"."var1" = " b"."var6") )
  • 但这给了我以下错误:关系不存在 database_name.schema_name.a
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 2020-01-02
  • 2014-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-04-30
相关资源
最近更新 更多