在4个标志之间拆分SQL行

Lyn*_*hie 1 sql t-sql sql-server

如何在不同用户之间划分每4行数据.

Number

1
2
3
4
5
6
7
8
Run Code Online (Sandbox Code Playgroud)

然后运行一个查询,以便我得到以下格式:

Number | User 
1      | joe
2      | jim
3      | gill
4      | jack
5      | joe
6      | jim
7      | gill
8      | jack
Run Code Online (Sandbox Code Playgroud)

等等

UPDATE

我的代码最终成为(T-SQL/SQL 2008)

SELECT CASE 
    WHEN ROW_NUMBER() OVER(ORDER BY number) % 4 = 1 THEN 'joe'
    WHEN ROW_NUMBER() OVER(ORDER BY number) % 4 = 2 THEN 'jim'
    WHEN ROW_NUMBER() OVER(ORDER BY number) % 4 = 3 THEN 'gill'
    WHEN ROW_NUMBER() OVER(ORDER BY number) % 4 = 0 THEN 'jack'
END
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

只需在case声明中使用模数运算符:

select number,
       (case when mod(number, 4) = 1 then 'joe'
             when mod(number, 4) = 2 then 'jim'
             when mod(number, 4) = 3 then 'gill'
             when mod(number, 4) = 0 then 'jack'
        end)
from t;
Run Code Online (Sandbox Code Playgroud)