【问题标题】:SQL - Adding a blank rowSQL - 添加一个空白行
【发布时间】:2020-04-07 19:08:20
【问题描述】:

我正在处理将使用我正在构建的查询从数据库中获取数据的软件。问题是软件没有确定表格大小的工具,所以我需要在最后一行数据之后添加一个空白行,这样软件才能识别表格的末尾。 以下是查询将给出的示例:

这是我需要从查询中获得的示例:

我知道在应用程序中解决它会更好,但在这种情况下,我需要更改我的查询。有可能吗?

编辑:我使用的是 SQL Server 2014,数据库名称是 Test,表名称是 Table2。

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 谢谢戈登,我编辑了它

标签: sql sql-server row sql-server-2014


【解决方案1】:

在查询后使用UNION ALL 添加空白行:

select t.* from (
  select FieldA, FieldB
  from Table2
  ..........
  union all
  select null, null 
) t
order by case when coalesce(t.FieldA, t.FieldB) is null then 1 else 0 end

或:

select t.FieldA, t.FieldB from (
  select 0 as isblankrow, FieldA, FieldB
  from Table2
  ..........
  union all
  select 1, null, null 
) t
order by isblankrow

【讨论】:

    【解决方案2】:

    一个简单的方法是:

    select t.*
    from t
    union all
    select t.*
    from (select 1 as x) x left join
         t
         on 1 = 0   -- always fails
    order by (case when fieldA is not null then 1 else 2 end)
    

    这会返回一个额外的行,所有列都是NULL

    注意:SQL 表代表 无序 集,因此您需要一个order by。以上假设第一列永远不是NULL

    【讨论】:

    • @DanielGutierres 。 . .您是否有理由不接受此答案?除了第一之外,它是唯一不需要列出列的。
    【解决方案3】:

    我在 dbfiddle 上为 SQL Server 2014 提供了完整的解决方案。 dbfiddlelink

    查询应该是,

    Select * 
    from (select FieldA,FieldB 
          from Table2 
          union
          select null,null) tab 
     order by FieldA Desc
    

    【讨论】:

    • 非常感谢,成功了!我也不知道dbfiddle,谢谢你的知识!
    猜你喜欢
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多