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