例如 表数据有两列A,B ,存在重复情况,那么可以
select A,B,COUNT() FROM table t group by A,B
其中COUNT() 的结果是重复条数,为1表示不重复。
多表查询类似
嵌套查询, 就是我主查询的 不是一个表, 而是另外一个查询
例如 SQL Server 2008 当中
我需要查询 某个表的 第 11行 到第20行的数据。
也就是翻页处理, 每页10行, 现在要查询第2页。
SELECT
TOP 10
top20
FROM
(
SELECT
TOP 20
FROM
表
ORDER BY
排序列 ASC
) AS top20
ORDER BY
排序列 DESC
内部的子查询, 是查询 表的, 查询 20行数据。
外部的主查询, 是查询子查询的, 从子查询的20行结果中,查询其中的10行
你的查询当然会有问题:用等于号的话,后面的值必须是一个标量(所谓标量就是只能有一个值,或者没有值)。而你的查询中SNO等于之后的子查询返回的明细是有多个记录,故会出错(如果无符合条件的记录,或者只有一个记录那么也是可以执行的)。
从你的查询来看,似乎只需要DEGREE在70和90之间的SNO记录,那么直接用子查询就好了:
select SNO from score where degree between 70 and 90;
如果想要sutdent的资料,那么内连接子查询:
select sfrom student s
inner join (select distinct SNO from score where degree between 70 and 90) t on sSNO = tSNO;
SELECT CCOMPANYNAME,AUSERID,ALOGINNAME,BDEPARTMENTID,APASSWORD
FROM USER A
LEFT JOIN DEPARTMENT B
ON ADEPARTMENTID = BDEPARTMENTID
LEFT JOIN COMPANY C
ON BCOMPANYID = CCOMPANYID
WHERE ALOGINNAME LIKE 'Tony%'
以上就是关于sql 嵌套查询全部的内容,包括:sql 嵌套查询、数据库中什么时候用嵌套查询、数据库里的一个嵌套查询问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)