Sql NWDS 7.0中的DB2 select查询不返回任何结果
这次我遇到了另一个问题,它是关于运行在NWDS中的DB2查询的。我使用的数据库规范是:Sql NWDS 7.0中的DB2 select查询不返回任何结果,sql,db2,Sql,Db2,这次我遇到了另一个问题,它是关于运行在NWDS中的DB2查询的。我使用的数据库规范是: Database:- EP1, Schema:- W2HCMSC, Tablespace:- W2HCMTS, Table:- TESTEMPLOYEE, Cloumns:- ZONE, Workshop, Year, Employee Name, Designation, DOB. 带有值的数据库快照是select语句,我想运行它,它是一个带有where子句
Database:- EP1,
Schema:- W2HCMSC,
Tablespace:- W2HCMTS,
Table:- TESTEMPLOYEE,
Cloumns:- ZONE, Workshop, Year, Employee Name, Designation, DOB.
带有值的数据库快照是select语句,我想运行它,它是一个带有where子句的select查询,但它不返回任何行。
详情如下:
从w2hcmsc.testemployee中选择*
4行返回
从w2hcmsc.testemployee中选择*,其中“w2hcmsc.Zone”=“1”
0行返回
从w2hcmsc.testemployee中选择*,其中“区域”=1
SQL0420N在的字符串参数中找到无效字符
函数DECFLOAT。SQLSTATE=22018
从w2hcmsc.testemployee中选择*区域=1
SQL0206N区域在其使用的上下文中无效。SQLSTATE=42703
从w2hcmsc.testemployee中选择*区域=1
SQL0206N区域在其使用的上下文中无效。SQLSTATE=42703
从w2hcmsc.testemployee中选择*,其中“区域”=“1”
已选择0条记录
请告诉我为什么带有where子句的select查询不起作用。我是否必须以任何不同的方式编写它?尝试列的完全限定名:
select * from w2hcmsc.testemployee where w2hcmsc.testemployee.ZONE = 1
或者为表创建别名并使用它:
select * from w2hcmsc.testemployee AS t1 where t1.ZONE = 1
您的列名似乎大小写不一。一般来说,避免在列名中使用大小写混合是一个好主意——虽然DB2支持这一点,但它会造成类似这样的麻烦 解决方案是使用双引号而不是单引号引用列名:
select * from w2hcmsc.testemployee where "Zone" = 1
或者,使用表关联名称:
select * from w2hcmsc.testemployee as t1 where t1."Zone" = 1
如果给定t1.Zone和t1.Zone,则得到sql错误-206。如果使用't1.Zone',sql错误-420即将出现,我至少已经解决了这个问题,这就是我的想法。问题是,在DB2中,冒号名称并非都是大写的,但在解释列名称时,却从小写转换为大写,因此出现了列不匹配的情况。感谢您以任何方式提供的帮助: