我创建了一个有效的SQL查询,但它很丑。我现在用的语句:清理SQL代码
CASE WHEN p.Guests is null THEN 0 ELSE p.Guests
在一些计算约10倍,而在查询完成,我想知道是否有可能做这样的事情:
variable = CASE WHEN p.Guests is null THEN 0 ELSE p.Guests
,然后代替123 * (CASE WHEN p.Guests is null THEN 0 ELSE p.Guests)
我可以做123 * variable
。 p.Guests是参加活动的客人数量,它根据查询中的每一行而有所不同。 所以我的问题是:有没有办法在SQL中制作这样的变量?
为什么不使用子查询? 'SELECT 123 * variable,456 * variable FROM(SELECT variable = COALESCE(p.Guests,0)FROM ...)AS x;' –
...即使您*可以*简化表达式,为什么重复表达式multiple次,不管复杂性如何? –
我在查询中的多个点使用表达式。我对SQL很陌生,所以它可能是一个很长的路要做,但它也是我想要的。 – Austin