您的位置:首页 > 数据库

SQL Union使用实例

2017-03-28 16:51 92 查看
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
10202020202002004/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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  database sql server sql