0

我该如何转换:

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

到 SQL 服务器语法?

4

2 回答 2

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 ServerOracle。

于 2013-04-25T20:15:35.763 回答
0

您可以使用简单的 case 语句来完成。

    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 )
于 2013-04-25T21:05:36.580 回答