将SQL表的两次查询结果作求交运算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将SQL表的两次查询结果作求交运算相关的知识,希望对你有一定的参考价值。
查询了一个表,想看两次查询出来的结果的交集。
比如说这个表如下:
id property color
1 p1 red
2 p1 red
3 p1 red
4 p1 red
1 p2 green
2 p2 green
9 p2 greed
第一次查询的限制是where color = "red" and property = "p1",结果有4条
第二次查询的限制是where color = "green" and property = "p2",结果有3条
其中ID在第一次和第二次里都有的就是1和2,数量是2,我想知道,怎样查询才能得出在第一次和第二次里都有的ID数量是2这个结果呢?
select * from
(select * from table1 where color='red' and property='p1') t1
inner join
(select * from table1 where color='green' and property='p2') t2
on t1.id=t2.id 参考技术A select *
from
table1 t1
innner join
table2 t2
on
t1.id=t2.id
where
t1.color = "red"
and t1.property = "p1"
and t2.color = "green"
and property = "p2"
在SQL查询结果中添加自增列的两种方法
解决办法《一》:
如果想查询出这个表的信息,并添加一列连续自增的ID,可用如下查询语句:
SELECT Row_Number() over ( order by getdate() ) as init , * FROM 表名
解决办法《二》:
使用关键字IDENTITY创建临时表
SELECT IDENTITY(int,1,1) as Nid,* INTO #T FROM 表名 SELECT * FROM #T
以上是关于将SQL表的两次查询结果作求交运算的主要内容,如果未能解决你的问题,请参考以下文章