在4个标志之间拆分SQL行
如何在不同用户之间划分每4行数据 i、 e 然后运行查询,以获得以下格式:在4个标志之间拆分SQL行,sql,sql-server,tsql,Sql,Sql Server,Tsql,如何在不同用户之间划分每4行数据 i、 e 然后运行查询,以获得以下格式: Number | User 1 | joe 2 | jim 3 | gill 4 | jack 5 | joe 6 | jim 7 | gill 8 | jack 等等 更新 我的代码最终是T-SQL/SQL 2008 SELECT CASE WHEN ROW_NUMBER() OVER(ORDER BY number) % 4
Number | User
1 | joe
2 | jim
3 | gill
4 | jack
5 | joe
6 | jim
7 | gill
8 | jack
等等
更新
我的代码最终是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
只需在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;
只需在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;
当数字有一些间隙时:
SELECT CASE
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 1 THEN 'joe'
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 2 THEN 'jim'
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 3 THEN 'gill'
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 0 THEN 'jack'
END
FROM t
当数字有一些间隙时:
SELECT CASE
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 1 THEN 'joe'
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 2 THEN 'jim'
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 3 THEN 'gill'
WHEN MOD(ROW_NUMBER() OVER(ORDER BY number), 4) = 0 THEN 'jack'
END
FROM t
顺便说一句,Mod不是一个公认的使用SQLServer2008的内置函数。欢迎回复。顺便说一句,Mod不是一个公认的使用SQLServer2008的内置函数。欢迎回复。顺便说一句,Mod不是一个公认的使用SQLServer2008的内置函数。顺便说一句,使用SQL Server 2008时,replyMod不是公认的内置函数。为回答干杯在这种情况下,您可以使用其他大小写语法:1时,CASE ROW_NUMBER OVERORDER BY NUMBER%4,然后是'joe'当2时,然后是'jim'当3时,然后是'gill'当0时,那么'jack'END将短得多,结果相同。在这种情况下,您可以使用其他大小写语法:1时,CASE ROW_NUMBER OVERORDER BY NUMBER BY NUMBER%4,然后是'joe'当2,然后是“jim”,当3,然后是“gill”,当0,那么“jack”端会短得多,结果相同。