在SQL select查询中插入虚拟行

时间:2014-12-14 08:34:43

标签: sql sql-server stored-procedures

我正在研究SQL Server存储过程。我有一张桌子' User'有字段(身份证,姓名,电子邮件,地址)。

我有以下查询返回所有用户

select * from [User]

它返回所有用户,但我只想在返回之前将以下虚拟用户插入到结果记录中。

用户=> Id = 0,Name =" All"

此记录不会出现在数据库中,但在返回结果时,我想将此记录作为第一条记录插入,然后是剩余的用户。我试图找到这样的东西但是徒劳无功。

2 个答案:

答案 0 :(得分:5)

SELECT 0 AS Id, 'All' AS Name
UNION ALL
SELECT Id, Name FROM Users;

答案 1 :(得分:0)

即使应用了UNION ALL,您甚至可以用数字设置列来保持订单

SELECT 0 RNO, 0 AS Id, 'All' AS Name
UNION ALL
SELECT ROW_NUMBER() OVER(ORDER BY  Id)RNO, Id, Name 
FROM Users

即使Zero列中存在Id(可能是垃圾值),这也会有效