在查询跟踪报告中检测未设置的$ VARIABLE

|| 我已经撰写了一份追踪报告,内容如下:
SELECT status, 
   id AS ticket, summary, priority, keywords,  
   datetime(changetime/1000000, \'unixepoch\') AS last_updated, 
   milestone AS __group__,
   reporter, owner
  FROM ticket t
  WHERE status NOT IN (\'closed\', \'resolved\') AND milestone in (\'$MILESTONE\')
  ORDER by t.milestone ASC, p.value
但是,如果用户未指定
$MILESTONE
的值,则我想显示按团队分组的我们三个团队中每个团队的结果:
SELECT status, 
   id AS ticket, summary, priority, keywords,  
   datetime(changetime/1000000, \'unixepoch\') AS last_updated, 
   milestone AS __group__,
   reporter, owner
  FROM ticket t
  WHERE status NOT IN (\'closed\', \'resolved\') AND milestone in (\'project1\', \'project2\', \'project3\')
  ORDER by t.milestone ASC, p.value
如何检测sql查询中是否设置了变量?除此以外,是否有一种简单的方法可以设置用户首次单击报表时要显示的“ 3”的默认值? (注意:如果在sql实现中没有通用的方法,请将此标签取消标记为“ sql”,或对此发表评论,以便我这样做。)     
已邀请:
您应该能够在WHERE子句中使用CASE WHEN ELSE语句,如下所示:
SELECT status, 
id AS ticket, summary, priority, keywords,  
datetime(changetime/1000000, \'unixepoch\') AS last_updated, 
milestone AS __group__,
reporter, owner
FROM ticket t
WHERE status NOT IN (\'closed\', \'resolved\') 
AND (CASE WHEN \'$MILESTONE\' != \'\' THEN (milestone=\'$MILESTONE\') 
     ELSE (milestone in (\'project1\', \'project2\', \'project3\')) END)
ORDER by t.milestone ASC, p.value
    

要回复问题请先登录注册