如何将Oracle round语句转换为SQL Server语法?

时间:2013-04-25 20:09:18

标签: oracle sql-server-2008

我该如何转换:

round(DECODE(PC_TTL.WAGETYPE, 3085, PC_TTL.WORKHOURS, DECODE(PC_TTL.UNIT, '010', PC_TTL.WORKHOURS/8, PC_TTL.WORKHOURS)) , 2)

到SQL服务器语法?

2 个答案:

答案 0 :(得分:0)

除非我误解了DECODE逻辑,否则这应该可以解决问题:

ROUND(
  CASE WHEN PC_TTL.WAGETYPE = 3085 THEN PC_TTL.WORKHOURS
  ELSE
    CASE WHEN PC_TTL.UNIT = '010' THEN PC_TTL.WORKHOURS/8
    ELSE PC_TTL.WORKHOURS
    END
  END, 2)

这适用于SQL Server Oracle。

答案 1 :(得分:0)

您可以使用简单的案例陈述来完成。

    ROUND (
CASE
    WHEN PC_TTL.WAGETYPE = 3085  THEN PC_TTL.WORKHOURS
    WHEN PC_TTL.UNIT     = '010' THEN PC_TTL.WORKHOURS / 8
    ELSE PC_TTL.WORKHOURS
END, 2 )