我對 CASE WHEN 有疑問。
我寫了一個沒有 CASE WHEN 的查詢,它看起來像:
SELECT r.data,
r.data1,
r.godzina,
r.zmiana,
r.nrpartii,
r.nazwadzianiny,
r.nazwamaszyny,
r.rzad,
r.nrmaszyny,
r.starynrmaszyny,
r.nruiglenia,
r.wydzigla,
r.waga,
r.uwagipredkoscmaszyny,
u1.user_nicename,
u1.ID,
u1.display_name
FROM jawe_wpdatatable_8 AS r
INNER JOIN jawe_users as u1 on u1.ID = r.uzytkownik
我想要做的是根據 r.godzina 將 r.zmiana 值更改為“1”或“2”或“3”
我正在嘗試這樣的事情:
SELECT r.data,
r.data1,
r.godzina,
CASE r.zmiana
WHEN (r.godzina BETWEEN '08:00:00' AND '15:59:99') THEN r.zmiana = 1
WHEN (r.godzina BETWEEN '16:00:00' AND '23:59:99') THEN r.zmiana = 2
ELSE r.zmiana = 3
END,
r.nrpartii,
r.nazwadzianiny,
r.nazwamaszyny,
r.rzad,
r.nrmaszyny,
r.starynrmaszyny,
r.nruiglenia,
r.wydzigla,
r.waga,
r.uwagipredkoscmaszyny,
u1.user_nicename,
u1.ID,
u1.display_name
FROM jawe_wpdatatable_8 AS r
INNER JOIN jawe_users as u1 on u1.ID = r.uzytkownik
我 frogot,r.zmiana 的起始值是 NULL 我嘗試了很多變體,但我得到的(在最好的情況下)是具有 NULL 值和名稱的新列,它是整個 'CASE.....END' 代碼。
如何獲取此 CASE ... ENG 將 r.zmiana 中的值從 NULL 替換為 '1' 或 '2' 或 '3' ?
提前致謝。
---已編輯---
'Asgar' 是正確答案的那個。
是的,你是對的阿斯加。但這部分有效(而不是'1'它給了我'3':))。所以我將 BETWEEN 更改為 range ,它看起來像這樣并且現在可以正常作業:
SELECT
r.data,
r.data1,
r.godzina,
CASE
WHEN r.godzina >= '08:00:00' AND r.godzina <'16:00:00' THEN 1
WHEN r.godzina >= '16:00:00' AND r.godzina <='23:59:99' THEN 2
WHEN r.godzina >= '00:00:00' AND r.godzina <'08:00:00' THEN 3
END,
r.nrpartii,
r.nazwadzianiny,
r.nazwamaszyny,
r.rzad,
r.nrmaszyny,
r.starynrmaszyny,
r.nruiglenia,
r.wydzigla,
r.waga,
r.uwagipredkoscmaszyny,
u1.user_nicename,
u1.ID, u1.display_name
FROM jawe_wpdatatable_8 AS r
INNER JOIN jawe_users as u1 on u1.ID = r.uzytkownik
我只有一個問題。是的,它有效,但列名仍然是整個 CASE ... END 代碼。如何將其更改為“zmiana”有這種可能性嗎?
uj5u.com熱心網友回復:
似乎您的 CASE WHEN 語法錯誤。
CASE WHEN Query 的一個簡單說明是:
SELECT
CASE level
WHEN 'A' THEN 'Beginner'
WHEN 'B' THEN 'Junior'
WHEN 'C' THEN 'Senior'
ELSE 'Level doesn`t exist!'
END AS experience_levels
FROM company;
因此,您的查詢需要類似于:
SELECT r.data,
r.data1,
r.godzina,
CASE
WHEN r.godzina BETWEEN '08:00:00' AND '15:59:99' THEN 1
WHEN r.godzina BETWEEN '16:00:00' AND '23:59:99' THEN 2
ELSE 3
END as zmiana,
r.nrpartii,
r.nazwadzianiny,
r.nazwamaszyny,
r.rzad,
r.nrmaszyny,
r.starynrmaszyny,
r.nruiglenia,
r.wydzigla,
r.waga,
r.uwagipredkoscmaszyny,
u1.user_nicename,
u1.ID,
u1.display_name
FROM jawe_wpdatatable_8 AS r
INNER JOIN jawe_users as u1 on u1.ID = r.uzytkownik
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482492.html
上一篇:一次將資料插入到2個相關表中?
下一篇:查找不同組的值的總和
