oracle的sql语句错误记录-20191225

问题描述 :
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

发布了4 篇原创文章 · 获赞 3 · 访问量 147

猜你喜欢

转载自blog.csdn.net/weixin_42538447/article/details/103705099