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;
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;
实际运用,有一个只有星期字段的表,如何根据每天动态自动获取当天的比率。
思路: 手动构造一个将星期的天数与比率结合的数据集
table :
exp_tb
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:
获取当天的比率:
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;
不包含重复行,进行默认排序
select 1 test , 2 test2 union select 1 ,3 union select 1 ,5 union select 1 ,4 union select 1 ,3;
test | test2 |
---|---|
1 | 2 |
1 | 3 |
1 | 4 |
1 | 5 |
包含重复的数据,不排序
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;
test | test2 |
---|---|
1 | 2 |
1 | 3 |
1 | 5 |
1 | 4 |
1 | 3 |
思路: 手动构造一个将星期的天数与比率结合的数据集
table :
exp_tb
ID | SUN | MON | TUE | WED | THU | FRI | SAT | UPD |
---|---|---|---|---|---|---|---|---|
1 | 0 | 20 | 20 | 20 | 20 | 20 | 0 | 2004/10/08 13:51:24 |
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_DAY | PART_RATE |
---|---|
1 | 0 |
2 | 20 |
3 | 20 |
4 | 20 |
5 | 20 |
6 | 20 |
7 | 0 |
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;
相关文章推荐
- Wuyin.ShoesManager.Start 程序源代码(包括只启动一个实例及使用XP控件技术)
- Java使用AES加密和解密的实例详解
- 使用标签不当犯错实例
- JDK 1.5 特性使用实例7--运行外部程序
- 使用实例(usecase)的好处
- 利用CVSNT在Eclipse中使用CVS--3.创建一个CVS实例
- 使用 C# 和 C++.NET 开发的 .NET 应用程序实例列表
- JDK 1.5 特性使用实例4--Enum
- JDK 1.5 特性使用实例6--staticimport
- 使用WEBLOGIC7.0配置ProxyServer实例
- 怎样使用IDPOP3控件收取邮件?请给予帮助最好能有一实例?
- 实例讲解.NET中资源文件的创建与使用
- 通过实例说明J2ME通用联网框架的使用
- 通过实例说明J2ME通用联网框架的使用
- 在Windows下使用GCJ+SWT的实例
- 如何在BCB中配置和使用GDI+技术?(附动画实例)
- 使用ASP.NET页面创建可视的UI,在客户机上实例化MSXML分析器的页面从中间层组件取出XML数据、操作并显示 并有问题请高手解决
- JDK 1.5 特性使用实例1--Generics
- 使用实例(usecase)和功能需求
- 避免使用实例陷阱