这是等于加了一个常量进去,与如下写法作用相同select au_id from authors where exists (select 'x' from sales having count(ord_num) >1 )
解决方案 »
- 单MDF文件恢复问题sqlserver2005
- 如何用select into 形式插入存储过程中的临时表
- 字符串比较问题,急.!!!!!!!!!!!!!!!!!!!!!!!!
- 我想问大家,怎么把dts的包导入到sqlserver数据库中,急,在线等!!
- 算法写到存储过程对程序有什么影响?
- 如何修改某字段的查询显示?0为未读,1为已读?select如何写?
- 如何返回一个字符串中符合某种条件的字符的个数?
- 数据庫查询问题
- 对于处理大数据量的应用,该使用何种数据库?
- 如何最快学会sql server 2000和delphi5.0?
- 请大家看看这个试图怎么能做出来。
- 同一服务器上的两个数据库怎么移啊?
这个库不是NORTHWIND 而是在PUBS库中
--------------------------------
楼主给出的sql,不对吧!
至少漏了一个关键的表:titleauthor(作品和作家的对应表)
guohongchen(风) 兄说的也对
select 'x' from sales having count(ord_num) >1
和
select au_id from sales having count(ord_num)>1
应该是一样的。当主查询的AU_ID确定后,在子查询中就成了一个确定的值,被当作常量对待了。
而COUNT(ORD_NUM)是永远大于1的。
不知这样理解对不对?
谢谢诸位!!
也就可以直接写au_id,但是如果在sales也有一列叫au_id的话,那么你就必须写明是那个的.也正是因为这个子查询在EXISTS中所以不必GROUP BY 来进行分组
1.from子句组装来自不同数据源的数据
2.where子句基于指定的条件对记录进行筛选
3.group by子句将数据划分为多个分组
4.使用聚集函数进行计算
5.使用having子句筛选分组
6.计算所有表达式
7.使用order by对结果集进行排序这里用having是必须的