性別欄位在資料庫中儲存數字,查詢時,如何查詢出數字對應的男和女?(case when的應用)
阿新 • • 發佈:2019-01-03
今天敲程式碼的時候,剛好遇到這個問題,寫部落格記一下。
情況如下:性別欄位在資料庫中儲存的是數字,男對應1,女對應0。然後,查詢的時候,我想查詢出男和女兩個字,而不是1和0。
一開始,我寫的sql語句,是直接從查詢出性別對應的數字,sql語句如下:
SELECT Employee.Id, Employee.Account, Pwd, Employee.Name, Sex, Email, Phone, Position.Name as PositionId, Team.Name as TeamId, Store.Name as StoreId, Enabled from Employee ,Position,Team, Store where Employee.PositionId=Position.Id and Employee.TeamId=Team.Id and Employee.StoreId=Store.Id
查詢出的結果如下,性別只能查詢出數字。
在網友的提示下,我將sql語句修改如下:
SELECT Employee.Id, Employee.Account, Pwd, Employee.Name, ( CASE Sex WHEN '1' THEN '男' WHEN '0' THEN '女' ELSE ' ' END )as Sex, Email, Phone, Position.Name as PositionId, Team.Name as TeamId, Store.Name as StoreId, Enabled from Employee ,Position,Team, Store where Employee.PositionId=Position.Id and Employee.TeamId=Team.Id and Employee.StoreId=Store.Id
在使用了case when(oracle只用decode函式) 之後,查詢到的性別終於顯示了文字,而不是數字