0

我想在 select 语句中设置列的值,但仅限于特定条件。

类似于以下内容:

SELECT 
IF (MIN(mode) <> MAX(mode))
THEN
    "Start Mode" = 'Multiple' 
ELSE
    "Method" = MIN(mode)
ENDIF
FROM sessions
--Where condition here

上面的语句会产生错误。可以在这样的选择中使用 IF 语句吗?

编辑

我想确定启动模式是什么。它可以是 WEB 或 CALL。可以有多种启动模式。在那种情况下(MIN不等于MAX),那么我想将启动模式列设置为多个。

我可以使用“模式”作为列名,这个选择将在一个更大的 sql 脚本中,它将生成一个我们将导出到 .csv 的大表。我们希望使用 csv 的人清楚列名。

样品:

Userid Mode 
1     WEB
1     CALL
2     WEB
2     WEB

csv
User Id   Start Mode
1         Multiple
2         WEB
4

1 回答 1

0
SELECT 
User_id, 
CASE WHEN (MIN(mode) <> MAX(mode))
THEN
    'Multiple' 
ELSE
    MIN(mode)
END
as "Start Mode"
FROM sessions
--Where condition here
GROUP BY user_id
于 2013-10-01T15:55:52.067 回答