1 回答

TA貢獻(xiàn)1831條經(jīng)驗 獲得超4個贊
這是我為解決我的問題所做的(希望它可以幫助其他嘗試做類似事情的人)
似乎 CASE 不能用于決定運行哪個語句,而是似乎只決定將哪些文本放入查詢/執(zhí)行字符串中。因此,我必須四處移動才能做到這一點,使用 CASE 來決定將我的數(shù)組設(shè)置為等于什么,而不是決定對數(shù)組執(zhí)行什么操作。
UPDATE userdata
SET age = $1,
weight = CASE WHEN date[array_upper(date,1)] = $7 THEN array_replace(weight, weight[array_upper(weight, 1)], $2)
ELSE array_append(weight, $2) END,
deadlift = CASE WHEN date[array_upper(date,1)] = $7 THEN array_replace(deadlift, deadlift[array_upper(deadlift, 1)], $3)
ELSE array_append(deadlift, $3) END,
squat = CASE WHEN date[array_upper(date,1)] = $7 THEN array_replace(squat, squat[array_upper(squat, 1)], $4)
ELSE array_append(squat, $4) END,
bench = CASE WHEN date[array_upper(date,1)] = $7 THEN array_replace(bench, bench[array_upper(bench, 1)], $5)
ELSE array_append(bench, $5) END,
overhead = CASE WHEN date[array_upper(date,1)] = $7 THEN array_replace(overhead, overhead[array_upper(overhead, 1)], $6)
ELSE array_append(overhead, $6) END,
date = CASE WHEN date[array_upper(date,1)] = $7 THEN array_replace(date, date[array_upper(date, 1)], $7)
ELSE array_append(date, $7) END
WHERE email = $8;
- 1 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報