我有一个应用程序可以自动统计每个用户花费的时间。每个用户
这里是查询
SELECT
ServiceBase.User
,ServiceBase.Time
,ServiceBase.BillingType
from ServiceBase
这是输出
User 1 | Time
User 2 | Time
User 3 | Time
| Total Time
我希望添加另一列,根据 BillingType 拆分时间,而无需编辑实际的应用程序代码。它将读取一个新的选择字段并自动计算值,因此我希望只在查询中使用一个 IF 来让我的结果显示在应用程序中。
类似的东西:
SELECT
ServiceBase.User
,ServiceBase.Time
,ServiceBase.BillingType
,Select If(ServiceBase.BillingType = 'Fixed'){ echo ServiceBase.Time; }else{ echo 0;}
from ServiceBase
得到这样的结果:
User 1 | Time | Fixed Time
User 2 | Time | Fixed Time
User 3 | Time | Fixed Time
| Total Time | Total Fixed Time
我如何在 SQL 中执行此操作?
最佳答案
对于 SELECT 语句中的 IF,您需要的是 CASE
:
SELECT
ServiceBase.User
,ServiceBase.Time
,ServiceBase.BillingType
,CASE WHEN ServiceBase.BillingType = 'Fixed' THEN ServiceBase.Time ELSE 0 END AS [Fixed Time]
FROM ServiceBase
关于sql - 如果另一个字段值是特定字符串,则选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48815483/