关于在SQL语句中定义变量的问题,求助

假如我在一个SQL语句中直接使用变量selectid,CASEWHENid!=1THEN@row:=@row+1ELSE@row:=1ENDASrownumfromtes... 假如我在一个SQL语句中直接使用变量

select id,CASE WHEN id!=1 THEN @row:=@row+1 ELSE @row:=1 END AS rownum from test_table
这个SQL就是在id为1的那条记录存在的时候,给一个序号字段

但是如果我把id为1的那条记录删除之后,第一条记录的序号字段为null,之后的却有值,并且我执行了几次之后发现这个变量是一直存在的,执行一次序号增加一些,变量好像是一个全局的了

关于这点有点不明白,在SQL中直接定义变量到底作用域是什么范围?
而且这样写是否合适? 是不是需要创建一个存储过程来完成这个查询呢?
还有就是这样的语句能不能在程序中去执行,例如写到mybaits的XML文件中
展开
 我来答
爱未动心已死
2015-10-13 · 超过60用户采纳过TA的回答
知道答主
回答量:106
采纳率:100%
帮助的人:88.9万
展开全部
局部变量只在你当前这一段中有意义,超过这个页面,就失效无意义,你在使用变量前,是否有申明。你写的这句话,根据ID是否为1来判断,和你初始值是什么并没有直接关系
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式