使用 SQL 服务器通过存储过程调用手动将记录添加到 SQL select 查询的结果

Manually add records to the result of a SQL select query via stored procedure call using SQL Server

CREATE PROCEDURE [dbo].[GetAllLocations] 

AS
BEGIN
    SET NOCOUNT ON;

    SELECT DISTINCT [Location] from Emp WHERE [Location] IS NOT NULL;
END

我需要一个存储过程来从一个 select 查询中提取结果,然后我需要向该查询添加 2 个额外的结果。我不想将另外两个结果插入 table,我只想 "hardcode them in"。

所以基本上如果上面的查询有这个结果:

New York
Kansas 
California
New Mexico 

我想手动将缅因州和佛罗里达州添加到该列表,但我不想将这些记录添加到该查询中的 "Emp" table。我假设某种 temp table 可能会完成这项工作,但我无法在线找到任何解决方案,而且我不熟悉 temp tables。

您可以使用 union,如:

SELECT [Location] 
FROM Emp
WHERE [Location] IS NOT NULL
UNION  -- on purpose to remove duplicates
SELECT Location
FROM (VALUES ('Maine'), ('Florida')) v(Location);

就是说,我认为没有充分的理由将其作为存储过程。您应该将其设为视图或用户定义的 table 函数。也就是说,代码可以在 SELECT 查询中使用。