0
我怎样才能改变这种代码到SQL Server 2000,使其分布均匀颜色如何将此代码更改为SQL Server 2000以便均匀分配颜色?
DECLARE @Employees TABLE
(
Name VARCHAR(10)
)
INSERT INTO @Employees (Name)
VALUES ('Sam'), ('John'), ('Jack'), ('April'), ('Sonny'), ('Jill'), ('Jane');
DECLARE @Colors TABLE
(
Name VARCHAR(10)
)
INSERT INTO @Colors (Name)
VALUES ('Red'), ('Green'), ('Blue');
DECLARE @ColorCount INT
SELECT @ColorCount = COUNT(*) FROM @Colors
;WITH Employees(SNumber, Name) AS
(
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS SNumber, Name
FROM @Employees
),
Colors(CNumber, Name) AS
(
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS CNumber, Name
FROM @Colors
)
SELECT E.Name, C.Name FROM Employees E
INNER JOIN Colors C ON
CASE
WHEN (E.SNumber % @ColorCount) = 0
THEN @ColorCount
ELSE E.SNumber % @ColorCount
END = C.CNUmber
结果:
Sam - Red
April - Red
Jane - Red
John - Green
Sonny - Green
Jack - Blue
Jill - Blue
你确定它的SQL服务器2000? AFAIK公用表表达式仅在2005年开始...... –
@ZoharPeled他期待*将此脚本转换为SQL 2000。 –