DB2选择查询来查找表名以'_H'结尾
我有一个要求是选择所有以'_H'结尾的表名。 我试过下面的查询,但它给了我所有的表名以'H'结尾。DB2选择查询来查找表名以'_H'结尾
请帮我查询以'_H'结尾的表名。
db2 "SELECT TABNAME FROM SYSIBMADM.ADMINTABINFO where tabname like '%_H' with ur"
YFS_PRICE_MATCH - >这不是查询结果。
YFS_PROMOTION_AWARD_H - >这是预期的结果。
在ANSI SQL中,可以使用escape
子句来搜索通配符,以获得所需的结果。
SELECT TABNAME FROM SYSIBMADM.ADMINTABINFO where tabname like '%x_h' escape 'x';
在DB2/z
,另一个选择可以是使用如下的正当性短形式。
SELECT TABNAME FROM SYSIBMADM.ADMINTABINFO where tabname like {escape 'x'} '%x_h';
在上述两种查询x
被用作escape
字符。你可以根据你的数据选择任何一种。
希望这会有所帮助。
感谢您的答案。 下面一个为我工作。 SELECT TABNAME FROM SYSIBMADM.ADMINTABINFO其中tabname如'%x_h'转义'x'; 平台:AIX中的DB2 10.5 – Lakshmikanth
在Db2和其他一些SQL数据库系统中,字符?
和_
表示LIKE
表达式中的通配符。要使用_
或?
作为常规角色,您需要将其转义。在Db2中,转义字符是plus sign (+
) on Db2 for z/OS或backslash (\
) on Db2 (Linux, UNIX, Windows)。因此,根据平台的不同,您的表情看起来像 %+_H
或%\_H
。
感谢您的更新。 – Lakshmikanth
'_'是DB2中'''的通配符等效项。尝试用'\ _' – Jens
Hi Jens, 感谢您的回复。 我尝试了以下所有模式,但结果集为空。 '%\ _ H' '\ _H' '\\ _ H' '%\\ _ H' – Lakshmikanth
请阅读:https://www.ibm.com/support/knowledgecenter/en/SSEPEK_11.0.0/sqlref/ src/tpc/db2z_likepredicate.html也许这有助于 – Jens