在MySQL中,你被允许做这样的事情临时变量赋值/在选择查询
SELECT @n := @n + 1 n,
first_name,
last_name
FROM table1, (SELECT @n := 0) m
ORDER BY first_name, last_name
*(码块最初是从https://stackoverflow.com/a/16555527/2279200拍摄)
增量是否有Oracle或SQL的任何等同方法服务器
注:
一些与SQL Server中的
update
可以做类似的事情,但我问是否可以用select来完成。使用
row_number
不是一种选择,因为我想处理@n的值如何变化。我知道SQL Server不允许在select语句中同时存在临时变量和表列。
* ...因为我要处理的是如何@n的观念正在转变*这是不明确的,至少不能我。你真的想用'@ n'做什么? –
@GiorgosBetsos我的意思是我不想像'1'那样增加这个例子。例如。如果last_name以'f'开始,我可以在'@ n'的赋值中添加一个控制块。我现在没有一个真实的例子,我只是在探索可能性。 – Athafoud
你几乎肯定仍然想使用'row_number',但没有你想要的具体例子,没有人能回答这个问题。 – DavidG