根据结果​​制作限制变量?

时间:2018-03-01 14:21:16

标签: mysql sql

我有一个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?

1 个答案:

答案 0 :(得分: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,