我试图在存储过程中执行以下操作
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
答案 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