项目中sql语句使用max函数,但查询结果与需求不符!
来源:互联网 发布:乔丹新秀赛季数据 编辑:程序博客网 时间:2024/06/05 15:21
情景概述:
在最近一次项目中,使用下面sql:
select *
from HEEFSS.CZ_TSLNO
WHERE PK_ID in (
SELECT MAX(B.PK_ID) FROMHEEFSS.CZ_TSLNO B WHERE SVSAC='?'
)
测试时一直未发现问题,但在生产环境,发现MAX()函数无法查询到最大的pk_id,以致后续内容全部报错。bug分析:
由于数据库表中pk_id采用的是字符形式存储,以致于引发的max函数错误,例:如果pk_id存储的是9和10 ,若数据类型是int、decimal类型,则10比9大,若是字符类型,则9比10 大。
修改:
采用转换pk_id数据类型的方式,将其转换为bigint类型,
select *
from HEEFSS.CZ_TSLNO
WHERE PK_ID in (
SELECT MAX( cast(char(B.PK_ID) as bigint)) FROMHEEFSS.CZ_TSLNO B WHERE SVSAC='?'
)
其中cast函数为将一种数据类型转换为另一种类型。
阅读全文
1 0
- 项目中sql语句使用max函数,但查询结果与需求不符!
- 【mybatis】打印SQL与实际结果不符问题
- Oracle中使用pl/sql,查询结果可以直接修改sql语句-for update
- SQL语句中MAX()函数和MIN()函数
- Sql语句中,Contains与Like查询结果不相同的问题
- sql语句里max函数
- SQL语句中 根据FLOAT变量查询无结果
- sql查询语句的结果字段中有空值
- sql语句查询,分批显示查询结果
- T-SQL操作语句之数据查询(二):查询中使用函数
- 数据库中查询语句的使用(sql)
- sql查询语句中使用if示例
- SQL语句in中使用子查询
- SQL中MAX()和MIN()函数的使用
- 在SQL 语句中使用存储过程的结果集
- 查询结果分页显示的SQL语句
- 查询结果分页显示的sql语句
- sql语句查询结果合并unionall用法
- HDU 6044 Limited Permutation 想法
- tomcat启动报错,JDBC注册失败
- 数据挖掘--文本挖掘
- 欢迎使用CSDN-markdown编辑器
- 针对mac系统下安装ipython时出现的OSError的解决方案
- 项目中sql语句使用max函数,但查询结果与需求不符!
- python中argparse库的使用
- Ubuntu安装、切换openjdk8
- String s1==s2面试题
- 关于字符类别的一些设计,含ASCLL码值
- Struts Problem Report Struts has detected an unhandled exception: Messages: node to traverse cann
- windows注册表,关联文件
- HDU 6053 TrickGCD 数论
- Trilateration三边测量定位算法