宣告Varchar-Teradata

问题描述 投票:0回答:2

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);
sql teradata
2个回答
0
投票

尝试一下。

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

0
投票

我没有要测试的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;
© www.soinside.com 2019 - 2024. All rights reserved.