求助啊!用sql语句怎样写查询的交集

求助啊!用sql语句怎样写查询的交集,第1张

sql = "select from aa where (red1 in (4,28,50)) or (red2 in (4,28,50)) or (red3 in (4,28,50)) or (red4 in (4,28,50)) or (red5 in (4,28,50));

查询1:查询年龄大于30的水手的名字。

查询2:找出在1998年11月1号之前有预定记录的水手编号。

查询3:找出红色船只的编号和名称。

查询4:找出预订了103号船只的水手的名字。

查询5:找出至少预订了一艘船只的水手的名字。

查询6:找出预订了红色船只的水手的名字。

查询7:找出Lubber预订的船只的颜色。

查询8:找出预订了一艘红色船只或者绿色船只的水手的名字。

查询9:找出同时预订了一艘红色船只和绿色船只的水手的名字。(交集)

查询10:找出年龄在20岁以上而且没有预定一艘红色船只的水手的sid。(差集)

查询11:找出所有预订了名为Interlake船只的水手的名字。

DECLARE @strsql varchar(1000)

if cx <> ''

SELECT @strsql = @strsql + '( sj like %' + cx + '%)'

if @strsql <> ''

SELECT @strsql = @strsql + ' AND '

if zzm <> ''

SELECT @strsql = @strsql + 'zz = ''' +zzm+ ''' '

if @strsql <> ''

SELECT @strsql = @strsql + ' AND '

if lbm <> ''

SELECT @strsql = @strsql + 'lb='''+lbm+''' '

if @strsql = ''

SELECT @strsql = '1=1'

exec('SELECT FROM txl WHERE ' + @strsql + ' ORDER BY id DESC')

你上面的语句逻辑上有些问题,

按照你的意思我改了一下语句

这个是SQL SERVER 的语法

你需要根据你的 数据库语法修改一下。

A 并 B 去掉重复记录----union

select empno, ename ,salary ,deptno from employee_ccy where deptno=10

union

select empno, ename ,salary ,deptno from employee_ccy where salary>100;

--union all 不排序,不去重复

select empno, ename ,salary ,deptno from employee_ccy where deptno=10 union all

select empno, ename ,salary ,deptno from employee_ccy where salary>100;

---交集-----intersect

select empno, ename ,salary ,deptno from employee_ccy where deptno=10

intersect

select empno, ename ,salary ,deptno from employee_ccy where salary>100;

--差集--------minus

select empno, ename ,salary ,deptno from employee_ccy where deptno=10

minus

select empno, ename ,salary ,deptno from employee_ccy where salary>100;

-------------用两个结果集的差集 ,获得

select deptno,dname ,location from department_ccy where deptno in(select deptno from department_ccy

minus

select distinct deptno from employee_ccy );

希望对你有帮助

SELECT FROM 表 WHERE pet IN(SELECT pet FROM 表 WHERE user='userA')

AND pet IN(SELECT pet FROM 表 WHERE user='userB')

集合运算

         这是一种二目运算,一共有四种四种运算符:并,差,交,笛卡尔积;

语法:

         查询语句

                  [UNION | UNIONALL | INTERSECT | MINUS]

         查询语句

UNION(并集)

返回若干个查询结果,但是重复的不显示

Eg:SELECT FROM dept

                  UNION

         SELECTFROM dept WHERE deptno = 10;

注:查询 *** 作编写的过程中尽量使用UNION , UNION ALL代替 OR,提高查询速度;

例:

         查询工作是销售和clerk的;

         SELECT

FROM emp WHEREjob = ‘saleman’ or job = ‘clerk’;

另一种方式:

SELECT FROMemp WHERE job = ‘SALESMAN’

         UNION

SELECT FROMemp WHERE job = ‘CLERK’;

UNION ALL(并集)

返回若干个查询结果,但是重复的也显示

Eg:SELECT FROM dept

                  UNION ALL

         SELECTFROM dept WHERE deptno = 10;

MINUS(差集)

返回若干个结果中不同的部分;

Eg:SELECT FROM dept

                   MINUS

         SELCTFROM dept WHERE deptno = 10;

INTERSECT(交集)

显示查询结果中相同的部分;

Eg:SELECT FROM dept

                   INTERSECT

         SELCTFROM dept WHERE deptno = 10;

————————————————

SELECT FROM aa WHERE ((red1 In (4,28,50))) OR ((red2 In (4,28,50))) OR ((red3 In (4,28,50))) OR ((red4 In (4,28,50))) OR ((red5 In (4,28,50)))

随机需要其他编程手段

in (" 4,28,50") 是不对的,"4,28,50"有问题

以上就是关于求助啊!用sql语句怎样写查询的交集全部的内容,包括:求助啊!用sql语句怎样写查询的交集、数据库,用关系代数完成下面的查询、If…Then…Else…End 如果三选项取交集等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9274573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存