im试图将查询结果保存到声明的varchar中,但出现错误msg“在子查询中不能为前n个”
DECLARE d TIMESTAMP(6);
SET d = (SELECT TOP 1 DATE_S FROM db1_SC.LOG_SP_STATUS WHERE SP_ID = 1 AND Status IS NULL AND Date_S IS NOT NULL AND DATE_E IS NULL ORDER BY ID DESC);
尝试一下。
DECLARE d TIMESTAMP(6);
SELECT t1.DATE_S INTO d
FROM
(SELECT DATE_S, ROW_NUMBER() OVER (ORDER BY ID DESC) rn
FROM db1_SC.LOG_SP_STATUS
WHERE SP_ID = 1 AND Status IS NULL AND Date_S IS NOT NULL AND DATE_E IS NULL) t1
WHERE t1.rn = 1
我没有要测试的TD系统,但是您可以尝试
DECLARE d TIMESTAMP(6);
SELECT TOP 1 DATE_S INTO d
FROM db1_SC.LOG_SP_STATUS
WHERE SP_ID = 1
AND Status IS NULL
AND Date_S IS NOT NULL
AND DATE_E IS NULL
ORDER BY ID DESC;