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等