Axure RP8 | 局部变量

Axure RP8 | 局部变量,第1张

自定义变量分为 局部变量 和全局变量。

局部变量: 只作用于某个部分,而非整体。

在空白处新增五个原型作为页签,其中第一个为灰底白字。全选右键【转换为动态面板】,命名为IndexPanel

复制为5个State,并修改不同状态页签的样式(第几个状态对应第几个序号的页签的样式为灰底白字)

新增一个文本标签,命名为StateIndex,状态设为隐藏。用于记录动态面板ImagePanel切换到的状态名称

① 【状态改变时】-【设置文本】-【StateIndex】-【面板状态,This】

② 【设置面板状态】-【IndexPanel】-【Value】-点击fx

【添加局部变量】,输入变量

mysql中各种类型变量的定义以及赋值使用

MySQL中实现rank排名查询

# 1、局部变量(即@开头的变量)

在一个会话内,只须初始化一次,之后在会话内都是对 上一次计算的结果 ,就相当于在是这个会话内的全局变量。

mysql中局部变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。

# 2、语法

初始值赋值

使用

注意:

使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”

如果直接写:select @name:=password from user

如果这个查询返回多个值的话,那@name变量的值就是最后一条记录的password字段的值 。

题目1:根据学生的年年龄进行排序,相同年龄的学生为一组,组内编号依次为1,2,3...

实现:一个字段内部的排序。

MySQL中row_number的实现

通常,用group by 可以实现一个字段的聚合,再结合order by进行排序。但是在一个字段内部不同的'值'再聚合并排序,就不是group by能够做到的了。

此处可以使用局部变量实现自增,给字段内不同value 使用case...when...进行条件判断后打上标签,也就实现了排序功能。

使用

具体运行过程成:

另一种用户变量的初始赋值技巧:

得到相同的运行结果

题目2:按各科成绩进行排序,并显示排名, Score 重复时也继续排名

set @i:=0,@j:=null

select sid,cid,@i:=if(@i=@j,@i,@i+1) as stu_rank,@j:=score as stu_score

from sc

order by stu_score desc

方法一:case ...when...

另一种初始赋值形式也可以写成:

运行结果:

方法二:if(exp1,exp2,exp3)

另一种初始赋值形式也可以写成:

运行结果:

题目中的要求要简单些,不需要判断是否与上一行相等,一直继续排序即可。相当于根据成绩排名后添加行号。

运行结果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11548862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存