根据结果 制作限制变量?

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

我有一个SQL查询,我可以选择至少10个项目,但我希望限制根据SQL条件增长。

SELECT *
FROM table
ORDER BY timestamp DESC
LIMIT 10
 --LIMIT more if 
(SELECT count(timestamp) FROM table WHERE timestamp IS NOT NULL) > 10

因此,如果存在更多非空时间戳,则查询限制仅会增加,但如果存在更少,则显示至少10个字段。

更新

我的数据库没有DECLARE能力。我是否正确地认为这不仅仅需要SQL?

mysql sql
1个回答
0
投票

您可以使用简单的CASE

    DECLARE @limit INT;
    SET @limit = 0;
    SELECT TOP(@limit) *
    FROM table
    CASE 
    WHEN (SELECT count(timestamp) FROM table WHERE timestamp is not NULL) > 10 THEN @limit = 'yourValue' 
    ELSE @limit = 10,
    END,
© www.soinside.com 2019 - 2024. All rights reserved.