我有以下问题。 我想要这个SQL Server 2008查询
select code , name from customer
我希望在一个单独的列中显示两个或多个相同的数字,如此
code name repeating_numbers
x1 mike 1
x1500 George 2
x200 maria 1
x2098 john 2
a9876 mario 1
如果我过滤查询以仅显示我希望看到的M%的客户
code name repeating_numbers
x1 mike 1
x200 maria 2
a9876 mario 1
如果我想看到名字%o%我需要看
code name repeating_numbers
x1500 George 1
a9876 mario 2
x2098 john 1
换句话说,不管过滤器我需要看到未来的数字1,2或3,重复一遍,谢谢高级
答案 0 :(得分:1)
您可以将ROW_NUMBER
与modulus operator (%
):
SELECT code, name, (ROW_NUMBER() OVER (ORDER BY code ASC) - 1) % 2 + 1 AS repeating_numbers
FROM customer
同样适用于任何其他数字(如3):
SELECT code, name, (ROW_NUMBER() OVER (ORDER BY code ASC) - 1) % 3 + 1 AS repeating_numbers
FROM customer
您还可以使用以下内容来避免ORDER BY
:
SELECT code, name, (ROW_NUMBER() OVER (ORDER BY (SELECT 100)) - 1) % 2 + 1 AS repeating_numbers
FROM customer