使用基于条件的值填充列

时间:2014-12-06 21:51:52

标签: mysql

我有一个表格,其中包含名为'类别'和' TotalTime'。当我运行查询时,我需要生成另外两个名为“Cat1Time'和Cat2Time'”的临时列。

如果连续的总时间是4小时且属于类别1,则应显示“' 4'在Cat1Time列下。如果连续的总时间是4小时且属于类别1,则应显示“' 4'根据“Cat2Time'柱。有没有办法做到这一点?

EntryID | Category | Cat1Time | Cat2Time
2       |  1       |   4      |    
3       |  2       |          |   4
4       |  1       |   2.5    |   




Select EntryID, Category, TotalTime AS Cat1Time 
WHERE Category =1, TotalTime as Cat2Time where Category = 2 
from LogEntry

无论如何,我知道不会工作......只是为了让你知道我想做什么。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您需要CASE声明:

SELECT EntryID, Category, TotalTime,
    CASE WHEN Category = 1 THEN
        TotalTime
    ELSE
        NULL
    END AS Cat1Time,
    CASE WHEN Category = 2 THEN
        TotalTime
    ELSE
        NULL
    END AS Cat2Time 
FROM LogEntry