sqlselect嵌套
① sql语句select好象可以嵌套,怎么用法
--方法一
selecttop10from(select*fromsysobjects)asawhere1=1
--方法二
withtsas
(
select*fromsysobjects
)
selecttop10*fromtswhere1=1
② 标准SQL嵌套查询语句
1、简单子查询
select name,age from person
where age >
(
select age from person
where name = '网络'
)
2、in嵌套查询
select name from person
where countryid in
(
select countryid from country
where countryname = '网络'
)
(2)sqlselect嵌套扩展阅读:
嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询,其中外层查询也称为父查询,主查询,内层查询也称子查询,从查询。
子查询的语法规则
1、子查询的select查询总是使用圆括号括起来。
2、不能包括compute或for.browse子句。
3、如果同时指定top子句,则可能只包括order by子句。
4、子查询最多可以嵌套到32层。个别查询可能会不支持32层嵌套。
5、任何可以使用表达式的地方都可以使用子查询,只要它返回的是单个值。
6、如果某个表只出现在子查询中二不出现在外部查询中,那么该表的列就无法包含在输出中。
③ sql 嵌套多条记录selec
select日期,B,COUNT(B)AS出现最多次
fromtable
where日期=20150305and(Ain(
selectA
fromtable
whereC=1and日期>=20150301and日期<=20150305
groupbyAhavingcount(A)=2
))
groupbyB,日期havingcount(B)>0
orderby日期,出现最多次desc
④ sql select 嵌套 我最近在学习asp,想实现这个效果如下面图片所示,主要是sql select嵌套和do while循环
如果只是要实现这样如图的效果,过程如下:
首先在前台放一个gridview控件,
然后调用数据库中的表一表的形式调用出来,方法:
public dataset aa()
{
string str="select *from zcbl ";
sqlconnection sql=new sqlconnection(连接数据库);
SqlDataAdapter sqlda=new SqlDataAdapter(str,sql);
dataset dds=new dataset();
sqlda.fill(dds,"dd");
}
然后将返回的dataset和gridview绑定就好了;
===
如果你必须要do while 的话
就是在string str="select *from zcbl ";
前加
int i=0;
do
{
i++;
}
while(i<16)
string str="select *from zcbl where 最前的列名='i' ";
这是直接调用的表 ,可以调用用存储过程更为方便……
⑤ SQL中SELECT中的FROM子句可否带另外一个SELECT
可以
SQL中SELECT嵌套
SELECT语句
是很常见的
SQL语句
,嵌套SELECT语句也叫
子查询
,一个SELECT
语句的查询结果能够作为另一个语句的输入值。子查询不但能够出现在Where子句中,也能够出现在from子句中,作为一个
临时表
使用,也能够出现在select
list中,作为一个字段值来返回。
例1:select子查询出现在Where子句中
select
ename,deptno,sal
from
emp
where
deptno=(select
deptno
from
dept
where
loc='NEW
YORK');
例2:select子查询出现在from子句中
SELECT
ename,job,sal,rownum
FROM
(SELECT
ename,job,sal
FROM
EMP
ORDER
BY
sal);
例3:select子查询出现在select
list中,作为一个字段值来返回
SELECT
ename,job,sal
FROM
EMP
WHERE
deptno
in
(
SELECT
deptno
FROM
dept
WHERE
dname
LIKE
'A%');
(5)sqlselect嵌套扩展阅读
在select子句里能支持直接嵌套一个select子查询,但是该select子查询返回的
结果集
必须是单行,返回多
行时
会提示ORA-01427:
single-row
subquery
returns
more
than
one
row(ORA-01427:
单行子查询返回多个行
):
select
(
SELECT
id
from
data_
dictionary
where
id=1)
From
v_photosum_attach
;
select
(
SELECT
id
from
data_dictionary
where
id=lock_purpost)
From
v_photosum_attach
;
注释:lock_purpost是表v_photosum_attach里的一列的列名。
参考资料来源:
搜狗网络
-子查询
⑥ SQL select 嵌套的问题
(select job from jobs j where j.jobId=(SUBSTR(s.sysC, 0, 11))) 中有s么?没有当然找不到了,你这个语句根本用不着嵌套。
select s.id,s.name,s.sysC,j.job from where j.jobId=SUBSTR(s.sysC, 0, 11) from students s , jobs j
⑦ sql怎么进行嵌套查询
select a.* from user_info a,waitforpass b where a.passuserid =b.passuserid and b.havepass=1
这样只会查出来 237 238 239 240.
⑧ sql select 嵌套
select * from a1 left join b1 on a1.aid=b1.bid where b1.bname is null
⑨ sql语句嵌套查询
这条SQL 语句书写有问题:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>your wrong statement:
sqlstr="select * from tab_goods where UserName in (select username,id from admin where UserName = "&UserName&") and number2='2008' order by id desc"
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Right Statement.
sqlstr="select * from tab_goods where UserName in (select username from admin where UserName = '"&UserName&"' ) and number2='2008' order by id desc"
⑩ sql select 嵌套 优化
先看看执行计划那部分耗时,才好解决,
先在算法上优化,例如(select count(*)...)那个子查询可以转换成exists语法
再在索引上优化,例如datediff会导致DateTo字段的索引无法使用,在WHERE以后对字段慎用函数理由即此
最后在表设计上优化,例如适当冗余
这三把斧基本上能解决你大部分问题,终极优化是重量级的如KEY-VALUE缓存数据库,增加内存服务器,建分区表,甚至上lucene,SOLOR等