Exception 在对列执行某些操作时,是否必须使用别名?

Exception 在对列执行某些操作时,是否必须使用别名?,exception,db2,alias,Exception,Db2,Alias,各位, 在对列执行某些操作时,是否必须使用别名 例如:从表1中选择上部(col1) 当我试图通过rs.getString(“col1”)检索resultset时,它给出了这个异常 COM.ibm.db2.jdbc.DB2Exception:[ibm][jdbc Driver]CLI0611E列名无效。SQLSTATE=S0022 当我将查询更改为: 从表1中选择upper(col1)作为col1,并使用rs.getString(“col1”),工作正常 因此,在列上应用了诸如upper、trim

各位, 在对列执行某些操作时,是否必须使用别名

例如:从表1中选择上部(col1)
当我试图通过rs.getString(“col1”)检索resultset时,它给出了这个异常 COM.ibm.db2.jdbc.DB2Exception:[ibm][jdbc Driver]CLI0611E列名无效。SQLSTATE=S0022

当我将查询更改为:
从表1中选择upper(col1)作为col1,并使用rs.getString(“col1”),工作正常

因此,在列上应用了诸如upper、trim、lower之类的功能时,是否必须使用别名??

我使用的是:DB28.2,类型2驱动程序

谢谢

试试
rs.getString(“上限(col1)”)
?通常,结果中的列名包括应用于该列的任何函数。否则,您将无法获得类似于
选择最小值(col1)、最大值(col1)…的结果。

表达式上限(col1)与col1不同

比较一下:

$ db2 "describe select col1 from session.t1"

SQLDA Information

 sqldaid : SQLDA     sqldabc: 1136  sqln: 20  sqld: 1

 Column Information

 sqltype               sqllen  sqlname.data                    sqlname.length
 --------------------  ------  ------------------------------  --------------
 453   CHARACTER           10  COL1                                         4
为此:

$ db2 "describe select upper(col1) from session.t1"

SQLDA Information

 sqldaid : SQLDA     sqldabc: 1136  sqln: 20  sqld: 1

 Column Information

 sqltype               sqllen  sqlname.data                    sqlname.length
 --------------------  ------  ------------------------------  --------------
 453   CHARACTER           10  1                                            1
请注意,每个结果集中的列名(sqlname.data)都不相同

因此,您要么使用列别名,要么使用rs.getString(“1”)