当使用这样的sql:select a/b as c from table,时,会面临被零除的危险,较为简单的解决办法是:
select a/b as c from table where b<>0;
但这样会使读出的数据集比期望的少,经常会造成错误。
应该的解决方法是:
select case when b=0 then NULL else a/b end as c from table
以前不知道还有case这种好语句存在,以后写sql的时候要方便多了
博客介绍了SQL语句中避免被零除的方法。使用“select a/b as c from table where b<>0”虽能避免被零除,但会使读出的数据集比期望少,易造成错误。更好的解决办法是“select case when b=0 then NULL else a/b end as c from table”。
当使用这样的sql:select a/b as c from table,时,会面临被零除的危险,较为简单的解决办法是:
select a/b as c from table where b<>0;
但这样会使读出的数据集比期望的少,经常会造成错误。
应该的解决方法是:
select case when b=0 then NULL else a/b end as c from table
以前不知道还有case这种好语句存在,以后写sql的时候要方便多了
6443