在oracle中我想查出库中所有表名类似“T_BD_ACCOUNTVIEW_QX_”的记录,用sql语句查询如下,得到结果却不一样,
SELECT table_name FROM user_tables u where u.table_name like 'T_BD_ACCOUNTVIEW_QX_%';
结果如下:
很显然,最后一个横杠没有匹配生效,查询后才知道,
在Oracle中,下划线(_)是一个通配符,它用于匹配任何单个字符。而百分号(%)是另一个通配符,用于匹配零个或多个字符。因此,在查询中,"T_BD_ACCOUNTVIEW_QX_%"会匹配"T_BD_ACCOUNTVIEW_QXBAK",因为下划线匹配了"BAK"这三个字符。如果你想匹配"T_BD_ACCOUNTVIEW_QXBAK"之外的表名,可以使用转义字符来匹配下划线。例如:
SELECT table_name FROM user_tables u WHERE u.table_name LIKE 'T_BD_ACCOUNTVIEW_QX\_%' ESCAPE '\';
在这个查询中,使用了转义字符(\)来匹配下划线,确保查询结果不会包括"T_BD_ACCOUNTVIEW_QXBAK"。
标签:BD,匹配,下划线,中后,ACCOUNTVIEW,sql,table,name From: https://www.cnblogs.com/ketoli/p/18005985