我该如何转换:
round(DECODE(PC_TTL.WAGETYPE, 3085, PC_TTL.WORKHOURS, DECODE(PC_TTL.UNIT, '010', PC_TTL.WORKHOURS/8, PC_TTL.WORKHOURS)) , 2)
到SQL服务器语法?
答案 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 )