sql语句查询结果合并union all用法_数据库技巧

--合并重复行
select * from A
union
select * from B

--不合并重复行
select * from A
union all
select * from B

按某个字段排序
--合并重复行
select *
from (
select * from A
union
select * from B) AS T
order by 字段名

--不合并重复行
select *
from (
select * from A
union all
select * from B) AS T
order by 字段名

//sql server版
Select * From (
select top 2 id,adddate,title,url from bArticle where ClassId=1 order by adddate desc) A
Union All
Select * From (
select top 2 id,adddate,title,url from bArticle where ClassId=2 order by adddate desc) B
Union All
Select * From (
select top 2 id,adddate,title,url from bArticle where ClassId=3 order by adddate desc) C
Union All
Select * From (
select top 2 id,adddate,title,url from bArticle where ClassId=4 order by adddate desc) D

//mysql版
Select * From (
select id,adddate,title,url from bArticle where ClassId=1 order by adddate desc limit 0,2) A
Union All
Select * From (
select id,adddate,title,url from bArticle where ClassId=2 order by adddate desc limit 0,2) B
Union All
Select * From (
select id,adddate,title,url from bArticle where ClassId=3 order by adddate desc limit 0,2) C
Union All
Select * From (
select id,adddate,title,url from bArticle where ClassId=4 order by adddate desc limit 0,2) D
时间: 2024-08-29 11:07:37

sql语句查询结果合并union all用法_数据库技巧的相关文章

【Access2003】表的新建、用sql语句查询;关闭警告信息;修改数据库密码;修复数据库

一.表的新建 打开Access2003只有一个数据库控制器,选择使用设计器创建表,可以图形化设置一个表的 对某个字段按右键可以设置为主键 之后把所有字段弄好之后,按Ctrl+s保存, 你可以会发现在数据库控制器中多出一张表.如同Excel那样编辑就可以了.在ASP控制Access数据库也可以. 二.表的查询 在数据库控制器中选择"查询"一项,选择"在设计视图中创建查询",弹出的对话框中选择"关闭",之后,在空白的灰色区域点击右键.选择SQL视图.

LINQ to SQL语句(8)之Concat/Union/Intersect/Except

Concat/Union/Intersect/Except操作 适用场景:对两个集合的处理,例 如追加.合并.取相同项.相交项等等. Concat(连接) 说明:连接 不同的集合,不会自动过滤相同项:延迟. 1.简单形式: var q = ( from c in db.Customers select c.Phone ).Concat( from c in db.Customers select c.Fax ).Concat( from e in db.Employees select e.Ho

提高SQL语句查询效率

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放

使用sql语句查询日期在一定时间内的数据

使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0   //查询当天日期在一周年的数据 select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0   //查询当天的所有数据 SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天 S

ORACLE基本SQL语句-查询篇

一.普通查询 /*查询表数据*/select * from STU /*取出前3行数据*/select * from stu where ROWNUM<=3 /*模糊查询*/select * from stu where stu_id like 'stu001%' 说明:通配符“%”代表一个或者多个字符,通配符“_”代表一个字符. /*别名*/select STU_ID as 学号 from stu 二.联合查询/*普通联合查询*/SELECT STU.STU_NAME, STU.STU_AGE

sql语句查询后几行数据并倒着排列

$conn = mysql_connect("数据库地址","用户名","密码"); if(!$conn) { die("mysql conn failed"); } else{ mysql_query("SET NAMES 'utf8'"); mysql_select_db("数据表",$conn); if(!$conn) { die("database selected f

sql语句查询同一表内多字段同时重复的记录 sql数据库重复记录删除

分享下用sql语句删除数据库中重复记录的方法.比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address可以实现上述效果.几个删除重复记录的SQL语句 1.用rowid方法2.用gr

sql语句查询经纬度范围

指定一个经纬度,给定一个范围值(单位:千米),查出在经纬度周围这个范围内的数据. 经度:113.914619 纬度:22.50128 范围:2km longitude为数据表经度字段 latitude为数据表纬度字段 SQL在mysql下测试通过,其他数据库可能需要修改 SQL语句如下: select * from location where sqrt( ( ((113.914619-longitude)*PI()*12656*cos(((22.50128+latitude)/2)*PI()/

sql语句查询重复的数据

查找所有重复标题的记录:SELECT *FROM t_info aWHERE ((SELECT COUNT(*)FROM t_infoWHERE Title = a.Title) > 1)ORDER BY Title DESC一.查找重复记录1.查找全部重复记录Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)2.过滤重复记录(只显示一条)Select * From HZT Whe