出現這個問題,剛好是因為我的資料表格裡面(MELearn)原先用來紀錄是否上架(IsShelf)與是否Demo(IsDemo)的欄位格式都是使用 int 格式. 但是在網頁呈現上,我應該用 是/否 來取代 1/0,所以就會有了下面這種轉換查詢結果的需求.
在這過程中,我發現畫線處的SELECT用法,是我所好奇的.原來
執行: SELECT #1 #2
會產生一個新的資料表格,裡面的值為 #1,對應欄位為 #2
執行: SELECT #1 #2, #3 #4
會產生
#2 | #4 |
#1 | #3 |
搭配 UNION的語法,就可以讓我們多加一筆新紀錄
所以下面的語法就會變成
ID | NAME |
1 | 是 |
0 | 否 |
SELECT MELearn.ELearnID,MELearn.LessonName,TMP1.NAME IsShelf,TMP2.NAME IsDemo
FROM MELearn
INNER JOIN (SELECT 1 ID, '是' NAME UNION SELECT 0 ID, '否' NAME) AS TMP1 ON MELearn.IsShelf=TMP1.ID
INNER JOIN (SELECT 1 ID, '是' NAME UNION SELECT 0 ID, '否' NAME) AS TMP2 ON MELearn.IsDemo=TMP2.ID
沒有留言:
張貼留言