如何在sql中获取固定数量的行

Fam*_* th 3 sql sql-server

如果我在这样的数据库中有4行.

 |____A____|____B_____|
 |   a1    |    b1    |
 |   a2    |    b2    |
 |   a3    |    b3    |
 |   a4    |    b4    |
Run Code Online (Sandbox Code Playgroud)

但我需要通过添加NO列显示10行以获取每行的序列号

 __NO__|____A____|____B_____|
   1   |   a1    |    b1    |
   2   |   a2    |    b2    |
   3   |   a3    |    b3    |
   4   |   a4    |    b4    |
   5   |         |          |
   6   |         |          |
   7   |         |          |
   8   |         |          |
   9   |         |          |
  10   |         |          |
Run Code Online (Sandbox Code Playgroud)

如何通过sql server查询?

sat*_*esh 7

在这里小提琴:http://sqlfiddle.com/#!3/9a9dd/1

WITH CTE1
AS
(
    SELECT 1 AS [NO]
    UNION ALL
    SELECT [NO]+1 FROM CTE1 WHERE [NO]<10
),
CTE2 AS
(
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS RN, A,B 
FROM  YOURTABLE
)

SELECT C1.[NO],A,B
FROM CTE1 C1 LEFT JOIN CTE2 C2 ON C1.[NO] = C2.RN
Run Code Online (Sandbox Code Playgroud)