SQL Server SELECT @VARIABLE = TOP 1

时间:2016-05-04 17:17:20

标签: sql sql-server sql-server-2012

我试图在存储过程中执行以下操作

DECLARE @TICKET_AGE INT
SELECT @TICKET_AGE = TOP 1 (DATEDIFF(second, DATE_ENTERED, GETDATE())/60) AS TICKET_AGE
FROM TICKETS

但是它给出的错误是“NEORRECT SYNTAX NEAR⊤' TOP' 我做错了什么?

所以我已将我的代码更新为如下所示......但现在我在关键字' AS'附近获得了错误的语法。

    -- DECLARE VARIABLE
    DECLARE @TICKET_AGE INT

    -- PULL THE DATA
    SELECT TOP 1 @TICKET_AGE = (DATEDIFF(second, DATE_ENTERED, GETDATE())/60) AS TICKET_AGE
    FROM TICKETS
    WHERE LOWER(STATUS_DESCRIPTION) LIKE '%new%'
    ORDER BY DATE_ENTERED ASC

3 个答案:

答案 0 :(得分:5)

TOP 1 变量之前的

SELECT TOP 1 @TICKET_AGE = DATEDIFF(second, DATE_ENTERED, GETDATE()) / 60
FROM TICKETS

答案 1 :(得分:0)

如果您想将实际变量用于TOP语句(即检索前@TICKET_AGE行),那么您可以使用:

SELECT TOP @TICKET_AGE DATEDIFF(second, DATE_ENTERED, GETDATE()) / 60
  FROM TICKETS

答案 2 :(得分:0)

不确定是否重要,但这应该会给你相同的结果,可能表现更好

DEBUG=True