Mysql 在前8个结果之后的列中添加迭代器编号
我有一个专栏叫Wosequence。到目前为止,当我查询时,该列中没有填充任何内容,因为从技术上讲,该列中没有任何内容。我希望如何处理我的结果集。是在前8个结果之后应用迭代器。然后,它将用迭代器的结果填充wosequence。我不需要在序列中插入数据。我只需要在结果集中填充wosequence 我可以做两个不同的查询。一个用于前8个查询,然后在另一个查询上进行Union,该查询将获得剩余的结果集。我只是好奇如何实现迭代器函数来填充我的wosequence列 表格Mysql 在前8个结果之后的列中添加迭代器编号,mysql,sql,Mysql,Sql,我有一个专栏叫Wosequence。到目前为止,当我查询时,该列中没有填充任何内容,因为从技术上讲,该列中没有任何内容。我希望如何处理我的结果集。是在前8个结果之后应用迭代器。然后,它将用迭代器的结果填充wosequence。我不需要在序列中插入数据。我只需要在结果集中填充wosequence 我可以做两个不同的查询。一个用于前8个查询,然后在另一个查询上进行Union,该查询将获得剩余的结果集。我只是好奇如何实现迭代器函数来填充我的wosequence列 表格 wonum parent
wonum parent taskid wosequence
===== ====== ====== ========
10 0 10
20 0 20
30 0 30
.. .. ..
90 0 90
100 0 100
所需输出
wonum parent taskid wosequence
===== ====== ====== ========
10 0 10
20 0 20
30 0 30
.. .. ..
<------iterator would begin and insert its value
90 0 90 1
100 0 100 2
110 0 110 3
wonum父任务ID WO序列
===== ====== ====== ========
10 0 10
20 0 20
30 0 30
.. .. ..
我会和你一起去
SELECT
CASE
WHEN ROW_NUMBER() > 7
THEN
ROW_NUMBER()-7
ELSE
''
END AS Wosequence
, colum2, column3
FROM dbo.abc [..]
由于mysql中没有行号,您可以从子查询中获取行号,然后执行检查:
SELECT
wonum,
parent,
taskid,
CASE
WHEN Wosequence >=8
THEN Wosequence
FROM
(
SELECT
wonum,
parent,
taskid,
@row_number:=@row_number+1 AS Wosequence
FROM
table1,
(
SELECT
@row_number:=0
) AS t
)
这个解决方案有效。我想添加您必须在ROW_NUMBER()函数之后添加以包含OVER(诸如此类)。