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/cn.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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP