首页 > 解决方案 > 如何从选择查询中选择 7 行或更多行?即使表返回少于 7 行

问题描述

我想要一个能给我准确的 7 行的脚本。例如,如果我的表只返回 2 行,那么我们必须再添加 5 行,所有列都包含空值。但如果表返回超过 7 行,则选择所有返回的行。请帮忙!

标签: sqlsql-serversql-server-2012

解决方案


试试这个下面的逻辑 -

Demo Here少于 7 行

在这里演示超过 7 行

WITH CTE(rn,id,name)
as
(
  select 1, null, null union all
  select 2, null, null union all
  select 3, null, null union all
  select 4, null, null union all
  select 5, null, null union all
  select 6, null, null union all
  select 7, null, null
)


SELECT a.id,a.name 
FROM
(
    select 
    ROW_NUMBER() OVER(order by id) rn,id,name
    from your_table
)A
full join CTE ON A.rn = cte.rn

推荐阅读