我正在处理使用我正在构建的查询从数据库中获取数据的软件。问题是软件没有确定表大小的工具,所以我需要在最后一行数据之后添加一个空白行,这样软件就可以识别表的末尾。下面是查询提供的一个示例:
下面是我需要从查询中得到的一个例子:
我知道在应用程序中解决这个问题会更好,但是在这种情况下,我需要更改我的查询。有可能吗?
编辑:我使用的是Server 2014,数据库名是Test,表名是Table2。
发布于 2020-04-07 19:16:10
在查询后使用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
发布于 2020-04-07 19:11:26
一个简单的方法是:
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
。
发布于 2020-04-07 19:29:58
我有完整的解决方案可用于Server 2014的dbfiddle。dbfiddlelink
查询应该是,
Select *
from (select FieldA,FieldB
from Table2
union
select null,null) tab
order by FieldA Desc
https://stackoverflow.com/questions/61087584
复制相似问题