记两则SQL编程中的坑
来源:互联网 发布:菜鸟网络航空港区地址 编辑:程序博客网 时间:2024/06/06 16:27
近期写SQL提取数据时,踩了两个坑。稍做回顾总结,以期对其他人能有所帮助。
concat的使用
concat用于合并多个字符串,很早以前,一直以为如果输入的参数中有null值,concat会自动忽视之。直到有一次的业务需求开发中,需要合并商品的多个类目信息,最后发现总是有很多类目为空的商品,排查明细后,发现了真相:如果输入concat的众多参数中,只要有一个值为null,最终结果就为null !
我们在Mysql中复现这个过程:
解决方案:在输入变量时,先用COALESCE函数进行空值处理,如下:
两表关联
假设表A与表B可分别通过A.item_id与B.item_id进行关联,但是A.item_id是字符串,而B.item_id是整型,如果我们明知道这两个item_id是同一个事物,可以关联得上。同时,整型与数值内容的字符串往往也可以直接做比较,就会直接在JOIN时,用 A.item_id = B.item_id 这样的方式去关联。但笔者在阿里云的ODPS平台上,是遇到过这样做会丢失记录的情况,所以最好是在关联时,用cast函数将键值转换为同一种类型后再进行等值关联。
0 0
- 记两则SQL编程中的坑
- SQL Server2005中的SMO编程
- PL/SQL中的编程总结
- SQL Server2005中的SMO编程
- SQL Server 2005中的SMO编程
- Oracle中的pl/sql编程的数据类型
- Oracle pl/sql编程 4---plsql块中的sql语句
- JAVA WEB编程中的SQL知识 - 达内资料库 - CSDNBlog
- .Net对SQL SERVER编程中的几个对象
- Oracle pl/sql编程 5---plsql中的%type
- Oracle pl/sql编程 6---plsql中的%rowtype
- Sql编程
- sql编程
- SQL编程
- SQL编程
- SQL编程
- SQL编程
- SQL编程
- Android 自定义属性 attrs.xml
- 前端练习3-css完成静态立方体
- Android四大组件详解
- Maven创建web项目详解
- spring与JUnit整合
- 记两则SQL编程中的坑
- C++大数模板
- 跟着大神写一个解释器吧
- 使用Servlet处理HTTP响应
- 查看一个网站使用的开发技术
- wampserver显示红色、橙色的解决方案
- 前端练习4-立方体翻转效果
- IPC第四篇,Socket通信
- 微信自定义分享链接和图文