我正在使用将使用我正在构建的查询从数据库获取数据的软件。问题在于该软件没有确定表大小的工具,因此我需要在最后一行数据之后添加一个空白行,以便该软件可以识别表的末尾。这是查询将提供的示例:
这是我需要从查询中得到的示例:
我知道最好在应用程序中解决它,但是在这种情况下,我需要更改查询。有可能吗?
编辑:我正在使用SQL Server 2014,数据库名称为Test,表名称为Table2。
在查询后使用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
一个简单的方法是:
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
。
我在dbfiddle上有针对SQL Server 2014的完整解决方案。dbfiddlelink
查询应该是,
Select *
from (select FieldA,FieldB
from Table2
union
select null,null) tab
order by FieldA Desc