Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Postgres在If中设置Select值_Sql_Postgresql - Fatal编程技术网

Sql Postgres在If中设置Select值

Sql Postgres在If中设置Select值,sql,postgresql,Sql,Postgresql,我想在select语句中设置列的值,但仅在特定条件下设置 如下所示: SELECT IF (MIN(mode) <> MAX(mode)) THEN "Start Mode" = 'Multiple' ELSE "Method" = MIN(mode) ENDIF FROM sessions --Where condition here 选择 用户id, 情况(最小(模式)最大(模式)) 然后 “多重” 其他的 最小值(模式) 结束 作为“启动模式” 来自会话

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

如下所示:

SELECT 
IF (MIN(mode) <> MAX(mode))
THEN
    "Start Mode" = 'Multiple' 
ELSE
    "Method" = MIN(mode)
ENDIF
FROM sessions
--Where condition here
选择
用户id,
情况(最小(模式)最大(模式))
然后
“多重”
其他的
最小值(模式)
结束
作为“启动模式”
来自会话
--这里的条件在哪里
按用户id分组

这可以使用
CASE
语句来完成。但是我完全搞不懂
“启动模式”=“多个”
。那该怎么办?请添加一些示例数据和该数据的预期输出。请参阅编辑。我添加了更多细节,请考虑这一章,并对Postgres中的值使用单引号(
)。
Userid Mode 
1     WEB
1     CALL
2     WEB
2     WEB

csv
User Id   Start Mode
1         Multiple
2         WEB
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