新加坡联合早报app:sql问题!

来源:百度文库 编辑:高考问答 时间:2024/05/06 02:12:49
SELECT @MemberId = case when @MemberId = MemberId then @MemberId + 1 else @MemberId end
FROM Member order by MemberId这句话是什么意思啊?那位大虾可以告诉我。谢谢!

@Memberid是个变量,应该在这条语句之前进行了声明,并已经被赋值,看语句应该是个数字

这条语句是在Member 中查找MemberId 为@MemberId 的数据,如果找到了,就将@MemberId 的值加1,如果找不到则@MemberId 的值不变。

比如@memberid开始被赋值为1
如果member表中存在memberid=1的数据,则@MemberId 的值为2,否则@MemberId 的值还是1

case 约等于decode
看下例:

SELECT count(*),
CASE code WHEN 'M' THEN '男性' WHEN 'F' THEN '女性' ELSE '不明' END
FROM table1 GROUP BY code;