oracle的sql语句错误记录-20191225
程序员文章站
2022-03-07 14:25:36
...
问题描述 :
sql使用with data as 查询出数据放进data表在对其添加where进行筛选时找不到 data表的字段报00904错误(见下图)
原因:
在子查询内部使用as命名别名时使用的是双引号,双引号在oracle是指明区分大小写,但是在where调节里写的accountNo没有加任何修饰,默认为全部大写,以至于匹配不到data表里的别名。
修改方案:
where 的accountNo改为“accountNo”
普及一下:
在双引号" "中,一般在如下场合使用
表示其内部的字符串严格区分大小写 (比如用作字段别名时区分大小写)
用于特殊字符或关键字 (比如包含空格,#或&时)
不受标识符规则限制
会被当成一个列来处理
当出现在to_char的格式字符串中时,双引号有特殊的作用,就是将非法的格式符包装起
而在单引号’ '中,一般在如下场合使用
表示字符串常量 (比如用于条件限定时where='aa',单引号用于条件限定时对大小写敏感)
字符串中的双引号仅仅当作一个字符串"处理,可以在单引号' '中使用双引号"
如果字符串常量中包含了单引号' ',那么需要使用两个单引号 '' 表示一个单引号常量
————————————————
版权声明:本文为CSDN博主「Ninewind」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Ninewind/article/details/89816284
上一篇: SQL 优化与Explain详解
下一篇: 初识Oracle 自己的一些见解