2

我试图从查询的这一部分中获得最大的价值:

greatest((follette_title.usedbuying_price *1.37) or 
         (amtext.price*1.37) or 
         (nebraska.price *1.2) or 
         (tichenor.price *1.25))

我的问题是表中有空值,所以这只返回空值。如何在不对所有表运行更新以将空值更改为 0 的情况下解决此问题?

4

2 回答 2

2

使用COALESCE功能

例如:

greatest(
    COALESCE((follette_title.usedbuying_price *1.37), 0),
    COALESCE((amtext.price*1.37), 0),
    COALESCE((nebraska.price *1.2), 0),
    COALESCE((tichenor.price *1.25), 0)
    )
于 2013-08-30T18:09:29.363 回答
1

我假设你的意思是:

greatest((follette_title.usedbuying_price *1.37),
         (amtext.price*1.37),
         (nebraska.price *1.2),
         (tichenor.price *1.25)
        )

or在这种情况下没有多大意义。

如果您假设所有价格都大于 0,则可以在以下情况下将它们转换为 0 NULL

greatest(coalesce((follette_title.usedbuying_price *1.37, 0),
         coalesce((amtext.price*1.37, 0),
         coalesce((nebraska.price *1.2, 0),
         coalesce(tichenor.price *1.25, 0)
       )
于 2013-08-30T18:10:43.710 回答