sql - 带有 order by 和 where 子句的内连接

标签 sql sql-server join inner-join sql-query-store

我创建了一个用于填充下拉列表的存储过程。但 order by 子句不适用于我的程序。

ALTER PROCEDURE proc
    -- Add the parameters for the stored procedure here
    @compID bigint,
    @after datetime
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    CREATE TABLE #tmpAuc ( ProjectID BIGINT, Title VARCHAR(256))
    INSERT INTO #tmpAuc
    SELECT SA.ID ProjectID, SA.Title 
    FROM [dbo].[Sessions] S
        INNER JOIN Auc SA ON S.AucID = SA.ID
    WHERE S.Session < 3 AND SA.Status > 0 AND SA.CompanyID = @companyID AND S.LiveBeginDate > @after
    ORDER BY LiveBeginDate

    SELECT DISTINCT * FROM #tmpAuc
END

我想按 LiveBehinDate 的降序排列

最佳答案

在临时表和临时表结果中包含 LiveBeginDate ORDER BY LiveBeginDate

CREATE TABLE #tmpAuctions (ProjectID BIGINT, Title VARCHAR(256), LiveBeginDate DATETIME)
INSERT INTO #tmpAuctions (ProjectID, Title, LiveBeginDate)
SELECT SA.ID AS ProjectID, SA.Title, S.LiveBeginDate
FROM [dbo].[Sessions] S
INNER JOIN [Spectrum_Auctions].[dbo].[Auctions] SA ON S.AuctionID = SA.ID
WHERE S.SessionState < 3 AND SA.Status > 0 AND SA.CompanyID = @companyID AND S.LiveBeginDate > @after

SELECT DISTINCT * 
FROM #tmpAuctions
ORDER BY LiveBeginDate

或者避免临时表并直接在过程中使用带有 JOIN 的 SELECT:

SELECT SA.ID AS ProjectID, SA.Title
FROM [dbo].[Sessions] S
INNER JOIN [Spectrum_Auctions].[dbo].[Auctions] SA ON S.AuctionID = SA.ID
WHERE S.SessionState < 3 AND SA.Status > 0 AND SA.CompanyID = @companyID AND S.LiveBeginDate > @after
ORDER BY S.LiveBeginDate 

关于sql - 带有 order by 和 where 子句的内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56196808/

相关文章:

c# - 有没有办法加快现有数据库的 SQL Server 管理对象遍历?

sql-server - 开发直接访问 SQL 服务器的桌面应用程序是不是一个坏主意?

c# - 我希望数据库表中具有 NULL 的列将其设为空白

php - 在linux服务器上安装dlib并尝试将symfony2与sql服务器连接

sql - 如何在 JSONB 中查询空数组?

mysql - 当我尝试在sequel pro 中运行此查询时出现错误

mysql - 对每对求和 mysql 结果

python - 计算给定日期的记录数

当 IDENTITY_INSERT 设置为 OFF 时,SQL 无法在表 'Table' 中插入标识列的显式值

sql-server - Azure SQL 数据仓库 - 带临时表的慢速 LEFT JOIN