sql字查詢
『壹』 sql子查詢可以再分組嗎
肯定可以的。
子查詢的結果集也是可以當作一個新的數據表看待,而在SQL語句中,任何數據集都是可以進行分組、排序等常規操作。
『貳』 sql 子查詢如何寫
select id from 表A
full join
(select id,count(id) from 表B group by id)
on A.id=B.id
『叄』 Sql server中, 什麼是子查詢.!
子查詢是指將一條SQL Sever語句嵌入到另一條SQL Sever語句中。資料庫引擎將子查詢做為虛表執行查詢操作。子查詢可做為連接語句中的一個表,可做為選擇語句中的一個值,也可以是SQL Sever查詢子句,還可以是SQL Sever查詢子句的字句,與數據操作語句混合在一起。 子查詢的執行依賴於嵌套查詢。查詢樹從最里層開始,一層一層向外執行。高層的嵌套查詢可以訪問低層嵌套查詢的結果。
有兩種子查詢類型:標准和相關。標准子查詢執行一次,結果反饋給父查詢。相關子查詢每行執行一次,由父查詢找回。
舉一個簡單的例子:要找出「工程部」中工資超過該部門平均工資的員工的員工編號和姓名:
Select 員工編號,姓名
FROM 員工庫
Where WORKDEPT = '工程部'
AND SALARY > (Select AVG(工資)
FROM 員工庫
Where WORKDEPT = '工程部')
看懂沒有?
『肆』 sql 表中的子查詢
select c.學號,c.姓名,d.分數,e.科目 from
student_info c,
(select a.學號,a.課程編號,b.分數 from grade a,(select 學號,max(分數) 分數 from grade group by 學號) b
where a.學號=b.學號 and a.分數=b.分數) d,
curriculum e,
where
c.學號=d.學號
and
d.課程編號=e.課程編號
『伍』 SQL查詢語句中,什麼叫子查詢
嵌套SELECT語句也叫子查詢,一個
SELECT
語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現在Where子句中,也能夠出現在from子句中,作為一個臨時表使用,也能夠出現在select
list中,作為一個欄位值來返回。
1、單行子查詢
:單行子查詢是指子查詢的返回結果只有一行數據。當主查詢語句的條件語句中引用子查詢結果時可用單行比較符號(=,
>,
<,
>=,
<=,
<>)來進行比較。
例:
select
ename,deptno,sal
from
emp
where
deptno=(select
deptno
from
dept
where
loc='NEW
YORK');
2、多行子查詢:多行子查詢即是子查詢的返回結果是多行數據。當主查詢語句的條件語句中引用子查詢結果時必須用多行比較符號(IN,ALL,ANY)來進行比較。其中,IN的含義是匹配子查詢結果中的任一個值即可("IN"
操作符,能夠測試某個值是否在一個列表中),ALL則必須要符合子查詢的所有值才可,ANY要符合子查詢結果的任何一個值即可。而且須注意ALL
和ANY
操作符不能單獨使用,而只能與單行比較符(=、>、<
、>=
、<=
、<>)結合使用。
例:
1).多行子查詢使用IN操作符號例子:查詢選修了老師名叫Rona(假設唯一)的學生名字
sql>
select
stName
『陸』 SQL查詢語句中,什麼叫子查詢
嵌套SELECT語句也叫子查詢,一個 SELECT 語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現在Where子句中,也能夠出現在from子句中,作為一個臨時表使用,也能夠出現在select list中,作為一個欄位值來返回。
1、單行子查詢 :單行子查詢是指子查詢的返回結果只有一行數據。當主查詢語句的條件語句中引用子查詢結果時可用單行比較符號(=, >, <, >=, <=, <>)來進行比較。
例:
select ename,deptno,sal
from emp
where deptno=(select deptno from dept where loc='NEW YORK');
2、多行子查詢:多行子查詢即是子查詢的返回結果是多行數據。當主查詢語句的條件語句中引用子查詢結果時必須用多行比較符號(IN,ALL,ANY)來進行比較。其中,IN的含義是匹配子查詢結果中的任一個值即可("IN" 操作符,能夠測試某個值是否在一個列表中),ALL則必須要符合子查詢的所有值才可,ANY要符合子查詢結果的任何一個值即可。而且須注意ALL 和ANY 操作符不能單獨使用,而只能與單行比較符(=、>、< 、>= 、<= 、<>)結合使用。
例:
1).多行子查詢使用IN操作符號例子:查詢選修了老師名叫Rona(假設唯一)的學生名字
sql> select stName
『柒』 sql子查詢和連接查詢的區別是什麼呢
1、子查詢就如遞歸函數一樣,有時侯使用起來能達到事半功倍之效,只是其執行效率同樣較低,有時用自身連接可代替某些子查詢,另外,某些相關子查詢也可改寫成非相關子查詢。
2、表連接都可以用子查詢,但不是所有子查詢都能用表連接替換,子查詢比較靈活,方便,形式多樣,適合用於作為查詢的篩選條件,而表連接更適合與查看多表的數據。
3、子查詢是一種常用計算機語言SELECT-SQL語言中嵌套查詢下層的程序模塊。當一個查詢是另一個查詢的條件時,稱之為子查詢。
4、子查詢是本質上就是一個完整 的SELECT 語句,它可以使一個 SELECT、SELECT...INTO 語句、INSERT...INTO 語句、DELETE 語句、或 UPDATE 語句或嵌套在另一子查詢中。子查詢的輸出可以包括一個單獨的值(單行子查詢)、幾行值(多行子查詢)、或者多列數據(多列子查詢)。
5、連接查詢是關系資料庫中最主要的查詢,主要包括內連接、外連接和交叉連接等。通過連接運算符可以實現多個表查詢。連接是關系資料庫模型的主要特點,也是它區別於其它類型資料庫管理系統的一個標志。
『捌』 sql子查詢
額,哥們,首先,你的表有沒有主外鍵關系?其次,戶表與人表中有一些什麼欄位,你得說清楚。
建表如下:
戶口表(h) 人表(p)
nub 戶號 pid 身份證號
address 住址 name 姓名
state 說明狀態 relationship 家庭關系
nub 戶號
introction 說明
state 狀態
查詢姓名、身份證號、家庭關系、戶主、住址。
select p.name,p.pid,p.relationship,nvl((select p1.name from p p1 where p1.relationship like "是戶主"),null) huzhuName,h.address
from p,h
where h.nub=p.nub;
nvl(old,new)如果有old值,返回old;否則返回new
上面那條子查詢語句
select p1.name from p p1 where p1.relationship like "是戶主"
是先查出關系是戶主的人的名字,條件具體情況自己定(——)。
『玖』 SQL server 中子查詢的作用是什麼
子查詢的作用:
1、方便理解。
2、實現更復雜的查詢。
3、提高查詢效率。
擴展知識:
1、當直接從SQL的資料庫中查詢(列出)某些數據很困難或辦不到時,可以通過從「查詢結果集」中再次提取數據集來實現復合查詢。這個「查詢結果集」就被叫做子查詢。
2、例,當表1與表2中以ID1關聯,表2與表3以ID2關聯,要以表1為基準復合查詢三表中的數據時,就需要先查出表2與表3的子查詢集,然後再與表1進行多表聯查。
『拾』 sql 分組子查詢怎麼寫
你的意思是不是「找出所有status欄位不是OK的BarCode,然後顯示找到的這些BarCode對應的所有的記錄」
比如:某個BarCode有三條記錄,這三條記錄中有一條status不是OK,那麼就顯示這三條記錄;另一個BarCode有亮條記錄,他們的status狀態都是OK,那麼就不顯示。是這個意思不是。
如果是那麼不需要分組,直接子查詢就可以。
子查詢的內容是查詢status!='OK'(因為不知道是不是只有NG一種不OK的狀態所以用了「不等於」,具體的要根據業務情況來定)的BarCode。
外層就是利用子查詢查到的BarCode去查詢就可以了,可以直接用in或者exist都可以。
比如某個編號為1111的有三條數據,其中有一條的status不是ok,那麼子查詢就會找到這條不是ok的記錄,並返回編號1111,外層查詢在利用編號1111,查到全部的三條記錄。