我想在我的选择中添加一列,显示一组数字,例如1到4。
实施例: 选择*给我
Id Transaction
1 10
2 11
3 12
4 13
5 14
6 15
我想添加名为" Flow"的列。结果应该是这样的。
Id Transaction Flow
1 10 1
2 11 2
3 12 3
4 13 4
5 14 1
6 15 2
在此示例中,流量为1-4。可能是1-n。 Id和Flow之间不需要特别的关系。
答案 0 :(得分:0)
如果您正在使用允许ROW_NUMBER
的SQL Server或其他DBMS,则可以执行以下操作:
CREATE TABLE #Tbl(Id INT, [Transaction] INT);
INSERT INTO #Tbl VALUES
(1, 10), (2, 11), (3, 12), (4, 13), (5, 14), (6, 15);
DECLARE @N INT = 4;
SELECT *,
Flow = 1 + ((ROW_NUMBER() OVER(ORDER BY Id) - 1) % @N)
FROM #Tbl
DROP TABLE #Tbl;
答案 1 :(得分:0)
如果您使用的是mySql
。
<强>查询强>
set @r := 0;
select Id, `Transaction`,
@r := (@r % 4) + 1 as Flow
from your_table_name
order by Id;
Demo
无论rdbms如何,都可以使用以下sql查询。
<强>查询强>
select *, (
select ((count(*) - 1) % 4) + 1 as Flow
from your_table_name t2
where t1.Id >= t2.Id
) as Flow
from your_table_name t1;