Database 板


LINE

資料庫名稱: SQL Server 資料庫版本: 2008 內容/問題描述: 有一張叫CarTable的資料表,裡面紀錄了客戶名稱及客戶的車牌資料。 現在我想取得所有車牌號碼,但是CarTable卻長這樣: SELECT * FROM CarTable ID | Owner | Number_1 | Number_2 --------------------------------- 1 | John | AB-1234 | NULL --------------------------------- 2 | Tim | CD-5678 | EF-9012 --------------------------------- 3 | Eric | GH-3456 | NULL --------------------------------- 4 | Fred | IJ-7890 | KL-1234 欄位Owner為客戶名稱,Number_1、Number_2則為客戶的車輛號碼。 為了取得所有車牌號碼,我只好分別SELECT Number_1和Number_2兩個欄位, 然後再用UNION的方式把它連結起來,結果如下: SELECT Owner, Number_1 AS Number FROM CarTable UNION ALL SELECT Owner, Number_2 AS Number FROM CarTable WHERE Number_2 IS NOT NULL Owner | Number --------------- John | AB-1234 --------------- Tim | CD-5678 --------------- Tim | EF-9012 --------------- Eric | GH-3456 --------------- Fred | IJ-7890 --------------- Fred | KL-1234 這正是我要的資料,但是現實並非只有Number_1和Number_2兩個欄位而已…… 請問各位前輩,在不改變資料表的結構下是否還有其他做法可以解決這個問題? 感謝。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.17.69
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Database/M.1495896288.A.533.html
1F:推 cutekid: 我也會用 union all 接起來 05/28 00:24
2F:→ SeanBoog: 不同欄位除了union還有別種辦法嗎? 05/28 00:57
3F:→ SeanBoog: 好奇+1 05/28 00:57
4F:→ Kanyahi: 開個新資料表 SELECT Data insert into到新資料表 如何? 05/28 01:36
這樣我怕會有不同步的問題。而且實際的狀況很糟,因為這樣的資料表共有三個。 除了UNION自身欄位外,還得UNION其他外部表格才算是取得所有紀錄在案的車牌資料。 所以我總共得SELECT 15次資料表再將這些結果UNION起來, 但這種做法理所當然的耗費了許多時間成本在裏頭。 雖然我的想法是重新規劃這些資料表,但上級礙於有不少檢視表參照了這三張資料表, 於是拒絕了這項建議,讓我再想想辦法。 目前我先開了一張檢視表來解決煩人的SELECT和UNION問題, 但查詢時間過長的問題仍有待解決。 ※ 編輯: f9968106 (218.173.17.69), 05/28/2017 08:18:10
5F:→ Kanyahi: 啊 抱歉 我理解錯你的需求了 我以為你要把它整理ubion後 05/28 09:52
6F:→ Kanyahi: 的table,所以你的作法是每次查詢都建view 然後查完再刪 05/28 09:52
7F:→ Kanyahi: 掉view麼? 05/28 09:52
K大您好,這個檢視表會一直存在,不會DROP掉。 但由於每次查詢的時候,都需要2至3秒的時間才能得到結果。 再加上寫了一大串了SELECT、UNION實在不太美觀, 所以想請教各位前輩們是否有更優雅的做法。 ※ 編輯: f9968106 (218.173.17.69), 05/28/2017 10:56:39
8F:→ iFEELing: 寫個VIEW把QUERY藏起來然後補INDEX加速? 05/28 17:36
9F:推 lbeeon: http://rextester.com/UIFG16868 05/29 01:40
10F:→ lbeeon: 我試了一下這樣沒問題 05/29 01:41
lbeeon謝謝,我終於可以不用同一張資料表重複SELECT和UNION了,謝謝。 ※ 編輯: f9968106 (218.166.144.30), 05/29/2017 11:30:49
11F:推 cutekid: 推 lbeeon 上面的解法喔(讚) 05/29 17:14
12F:→ Kanyahi: 受教了 原來還有unpivot這種寫法 感謝樓上賜教 感覺很優 05/29 19:23
13F:→ Kanyahi: 雅的 錯樓了 是指lbeeon的寫法 05/29 19:25
14F:推 chocopie: 推 05/29 22:18
15F:推 ken218: 推+1 05/30 17:40







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP