sql语句查询结果合并union 和union all用法
sql语句查询结果合并union 和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
在DB2里使用union时一定要注意相对应的字段一定是数据类型一样,输出时可以任意显示的列,但不能输出不同类型或不同表结构。因为这样会出错。
相关文档:
sqldataadapter适合用在查询较多字段时.....
string sou = "select * from art where content like '%" + TextBox1.Text + "%'";
SqlDataAdapter da = new SqlDataAdapter(sou, conn);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].rows.count==0)
{
Response.Write("没有记录!");
}
else
{
......
group by主要是用来分组的,怎么个分组呢?
以下用两个例子说明两个使用方面,1是合理的返回合计值(防止笛卡尔积现象),2是用分组来找出重复的记录
====================================================================
★★★例子1:假如有这么一个表:tab_1,它有两个字段:xm、gzlb、je(姓名、工资类别、金额) ......
(1)整合简单,无关联的数据库访问:
如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)
(2)删除重复记录:
最高效的删除重复记录方法 ( 因为使用了ROWID)例子:
DELETE from EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID)
from EMP X WHERE X.EMP_NO = E.EM ......
新建表:
create table [表名]
(
[自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,
[字段1] nVarChar(50) default '默认值' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
[字段7] image null ,
)
删除表:
Drop table [表 ......