sql函数踩坑——返回值跟独立执行查询语句结果不符

sql函数踩坑——返回值跟独立执行查询语句结果不符

今天使用sql语言格式创建的函数执行查询一直获取不到想要的结果,函数是这样创建的:
在这里插入图片描述
在这里插入图片描述

一开始我想会不会是我查询语句写错了,于是我单独执行了一下发现结果是正确的。

在这里插入图片描述
这就排除了sql本身的错误,再排除当前数据库的环境问题,那只能是创建的时候函数语法发生了错误。这时我发现在数据库连接工具中sql所有颜色区分的,其中state明显是sql语法内置的关键词,那我更改一下参数的名字:

在这里插入图片描述

结果就返回正确了,那么问题真的是这样的吗?我再次观察,发现并不是这样的,真正的原因是我使用的参数名和数据表字段一样导致where state=state恒等于,直接返回第一条数据

在这里插入图片描述
如上图,期望得到的值为2,但是返回值为4就是因为使用了数据表字段导致where失效。

因此创建sql函数时,为了避免未知的错误,请勿与sql内置关键词和查询的数据表字段名重名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值