Sql Postgres在If中设置Select值
我想在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
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