问:我现在试图将含有特殊符号(*, ?, <, >, |)的行列出来。试了下面的查询但是还是无法实现。请专家帮助一下,谢谢!(dname是一个字符串) select dataid, dname, max(to_char(auditdate,’YYYY-MM-DD’)) as “Audit Date” from daudit where dname like ‘%*%’ or (dname like ‘%?%’) or (dname like ‘%%’),or (dname like ‘%|%’) group by dataid, ……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
![TechTarget微信公众号二维码](/wp-content/uploads/res/images/spriteimg/ttweixin.jpg)
TechTarget
官方微博
![TechTarget中国官方微博二维码](/wp-content/uploads/res/images/spriteimg/ttweibo.jpg)
TechTarget中国
问:我现在试图将含有特殊符号(*, ?, <, >, |)的行列出来。试了下面的查询但是还是无法实现。请专家帮助一下,谢谢!(dname是一个字符串)
select dataid, dname, max(to_char(auditdate,'YYYY-MM-DD')) as "Audit Date" from daudit where dname like ‘%*%’ or (dname like ‘%?%’) or (dname like ‘%<%’) or (dname like ‘%>%’),or (dname like ‘%|%’) group by dataid, dname order by dataid
你是收到错误信息还是没有得到想要的结果?
乍一看来,你的查询是OK的,除了其中的单引号,一对单引号和两个单引号是有区别的(’’和‘ ’)。不知道这是你使用文字编辑器的问题还是手写的时候就出了问题。
如果在auditdate上使用to_char()函数的目的仅仅是移除时间组件,那么你可以考虑使用trunc()。字符串转换比其他操作函数更占系统资源。在一个字符串中查找一个或多个特定的字符时,使用正则表达式会更加高效(前提是你使用的10g以上版本)。或者你可以使用translate()函数将特殊字符转换到空间,然后看经转换后的字符串与没有转换的字符串是否有差别:
Where dname != translate(dname, '*?<>|', ' ')
作者
翻译
相关推荐
-
解决创建动态表时的PL/SQL错误
创建的表不会动态地出现在编译时(compile time)里。任何模式对象的静态引用都需要在编译时中进行验证。
-
关于PL/SQL中to_date和to_char函数的几点解读
在使用Oracle数据库中PL/SQL的to_date 和 to_char函数时需要注意哪些问题,专家Dan Clamage给出了一些提示。
-
Oracle数据库中对BLOB数据的操作问题
在Oracle数据库中,如何插入并检索二进制大对象数据(BLOB)?专家建议先阅读一下“Oracle应用开发者指南”中的相关内容,然后通过实践积累知识。
-
Quest发布数据库管理工具Toad for Oracle v11
Quest软件公司近期发布了其最流行的Oracle数据库管理软件Toad for Oracle 11版,新特性包括自动化代码分析以及生成所有数据库的报告。