我要求选择以' _H'结尾的所有表名。 我尝试了下面的查询,但它给了我所有的表格名称以' H'。
结尾请帮我查询表格名称以' _H'。
结尾db2 "SELECT TABNAME FROM SYSIBMADM.ADMINTABINFO where tabname like '%_H' with ur"
YFS_PRICE_MATCH - >在查询结果中不会出现这种情况。
YFS_PROMOTION_AWARD_H - >这是预期的结果。
答案 0 :(得分:0)
在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
个字符。您可以根据您的数据选择任何一种。
希望这会有所帮助。
答案 1 :(得分:0)
在Db2和其他一些SQL数据库系统中,字符?
和_
表示LIKE
表达式中的通配符。要将_
或?
用作常规字符,您需要将其转义。在Db2中,转义字符是plus sign (+
) on Db2 for z/OS或backslash (\
) on Db2 (Linux, UNIX, Windows)。所以,根据平台,你的表达看起来像
%+_H
或%\_H
。