SQL Union使用实例


union :
  不包含重复行,进行默认排序
    select 1 test , 2 test2 union select 1 ,3 union select 1 ,5 union select 1 ,4  union select 1 ,3;
 
testtest2
12
13
14
15

union all :
   包含重复的数据,不排序
   select 1 test , 2 test2 union all select 1 ,3 union all select 1 ,5 union all select 1 ,4 union all select 1 ,3;
testtest2
12
13
15
14
13

实际运用,有一个只有星期字段的表,如何根据每天动态自动获取当天的比率。
思路: 手动构造一个将星期的天数与比率结合的数据集

table :

exp_tb
IDSUNMONTUEWEDTHUFRISATUPD
1020202020200
2004/10/08 13:51:24

sql:                               select 1 WEEK_DAY,SUN PART_RATE
                                    from exp_tb union
                                    select 2 WEEK_DAY,MON PART_RATE
                                    from exp_tb union
                                    select 3 WEEK_DAY,TUE PART_RATE
                                    from exp_tb union
                                    select 4 WEEK_DAY,WED PART_RATE
                                    from exp_tb union
                                    select 5 WEEK_DAY,THU PART_RATE
                                    from exp_tb union
                                    select 6 WEEK_DAY,FRI PART_RATE
                                    from FNAEDRT00 union
                                    select 7 WEEK_DAY,SAT PART_RATE
                                    from exp_tb;

result:
WEEK_DAYPART_RATE
10
220
320
420
520
620
70

获取当天的比率:
with wr as (
select 1 WEEK_DAY,SUN PART_RATE
                                    from exp_tb union
                                    select 2 WEEK_DAY,MON PART_RATE
                                    from exp_tb union
                                    select 3 WEEK_DAY,TUE PART_RATE
                                    from exp_tb union
                                    select 4 WEEK_DAY,WED PART_RATE
                                    from exp_tb union
                                    select 5 WEEK_DAY,THU PART_RATE
                                    from exp_tb union
                                    select 6 WEEK_DAY,FRI PART_RATE
                                    from FNAEDRT00 union
                                    select 7 WEEK_DAY,SAT PART_RATE
                                    from exp_tb)
         select wr.PART_RATE
                                from   wr
                                where datepart(weekday,getdate()) = wr.WEEK_DAY;









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值