mic*_*e H 3 oracle select wildcard
我正在使用以下查询来查找数据库中表的名称:
SELECT table_name
FROM user_tables
WHERE table_name LIKE 'APP_X_%'
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
APP_X_ABC
APP_X_DEF
APP_X_GHI
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
APP_XYZ
APP_X123
APP_X_ABC
APP_X_DEF
APP_X_GHI
Run Code Online (Sandbox Code Playgroud)
我只需要返回X后面带有下划线的表名。我在做什么错?
您需要使用ESCAPE子句:
您可以使用ESCAPE子句在模式中包含实际字符%或_,该子句标识转义字符。如果转义字符在模式中的字符%或_之前,则Oracle会在模式中按字面意义解释该字符,而不是将其解释为特殊的模式匹配字符。您也可以通过重复搜索转义字符本身。
SELECT table_name
FROM user_tables
WHERE table_name LIKE 'APP!_X!_%' ESCAPE '!';
Run Code Online (Sandbox Code Playgroud)
_被视为通配符(任何单个字符)。但是,您需要_像原义那样。
| 归档时间: |
|
| 查看次数: |
2425 次 |
| 最近记录: |