【问题标题】:how to use if in a select statement如何在 select 语句中使用 if
【发布时间】:2015-01-23 01:03:34
【问题描述】:

我的目标是:

选择姓名、地址、日期、工作时间 { 如果工作时间>8 则(工作时间 -8)为 OT 别的 '' } 来自测试表

我怎样才能做到这一点。我尝试过用例,但我不断收到关于无法将 varchar 转换为 INT 的错误。我需要在 select 语句中使用它。

【问题讨论】:

  • 工作时间是否以 varchar 或 int 形式存储在您的表中?

标签: select if-statement case sql


【解决方案1】:

问题是您正在使用 hoursworked-8 建立列的类型,即该列应该是 int,但是您还选择了 '',即 varchar。请改用 NULL 或 0。

SELECT name, address, day, CASE WHEN hoursworked > 8 THEN hoursworked-8 ELSE NULL END AS overtime

【讨论】:

  • 我相信我已经试过了,但问题是工作时间是小数。即 8.52 小时,通过这样做,它会将该数字四舍五入为 INT,并且数据会变得不正确,因为 OT 不准确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-16
  • 2017-03-02
相关资源
最近更新 更多