A. 用sql寫有一個選課表和一個學生表,查詢成績最高的的學生的信息
select S.*
from 學生表 S,選課表 C
where S.學號=C.學號 and C.成績 =(select MAX(成績)from 選課表)
-----
上面的回答 where 後面可以接聚合函數??
select max (成績) as 成績
from 選課
where 學號=選課.學號
order by 學號
系統錯誤為除非同時指定了 TOP,否則 ORDER BY 子句在視圖、內嵌函數、派生表和子查詢中無效 ------------系統都告訴你了,子查詢中使用order by 無效
除非跟top一起使用!你把order by 去掉或在子查詢中加個top n 就行了
B. 派生表是什麼意思
派生表是Microsoft公司新推出的SQL2005資料庫的一個增強功能。它將子查詢做為一個表來處理,這個由子查詢得出的新表就是我們說的「派生表」。
C. sql'x%'處理和 '%x%'有啥區別,派生表是什麼意思
'x%'是查詢匹配以'x'開頭的字元串
'%x%'是查詢匹配字元串中有'x'字元的字元串
例如:'x%'能夠匹配上'xa'
'%x%'能匹配上'axa','x%'就不行了
在多表查詢的時候,用到的子查詢就是派生表,就是把一個select 語句看作是一個表來進行操作
D. 篩選出sql 查詢結果中 不包含某個字元
執行sql:select cardno,name from cardtable where cardno not in (select cardno from cardtable where name='C');嵌套一個子查詢來查找包含name包含C的cardno,然後再根據查詢條件把cardno不包含的剔除掉。
運行如下:
(4)sql子查詢派生表擴展閱讀
sql的嵌套查詢包括hen多的子查詢,in的子查詢、帶比較運算符的子查詢、帶any/all的子查詢、帶exists的子查詢以及基於派生表的子查詢,這些查詢嵌套使用可以達到強大的功能,比如篩選,過濾,排序,去重等等。
E. 求大神,告訴我SQL中的派生表有什麼用,用白話說下,謝謝詳細一些!我非常不明白,還有相關子查詢,跪
派生表:比如要查找一個叫張鐵牛的人的信息,我們知道他是男性,為了縮小查找范圍我把所有的男性都找出來,然後從這些男性中裡面再去找張鐵牛。這里男性的集合就相當於派生表,轉成sql語句是這樣select 姓名,住址,身份證 from (select * from 表名 where 性別='男性') t where 姓名='張鐵牛'(這里只是為了舉例子),這里的t這個數據集就是派生表,它是虛表,在資料庫中不存在的,是我們構建的,在這里的目的是為了縮小數據的查找范圍。
相關子查詢:子查詢的執行依賴於外部查詢的數據,外部查詢執行一行,子查詢就執行一次。比如:select * from 外表 where 姓名 in (select 姓名 from 內表 where 外表.姓名=內表.姓名),你看在括弧里的sql語句,是與外表關聯的。這里順便說一下非相關子查詢,還是以上面為例,如:select * from 外表 where 姓名 in (select 姓名 from 內表 where 外表.姓名='張鐵牛'),你看這個語句中括弧里的sql語句,它是單獨執行的,與外表沒有任何關聯,它只執行一次,執行完後將結果集傳遞給外部查詢使用。
這里只是表面上描述了一下,內部還有其他區別,lz需要通過聯系體會,有問題再追問,望採納。
F. SQL語句中如果有order by 後為什麼不可以作為字表被其他表查詢
表子查詢(也叫派生表)中代表的是一個關系表,而關系表中的行是沒有固定順序的。因此,ANSI SQL不允許在表子查詢中包含order by子句。
SQL Server大致遵守了這一規定,但有兩個例外:當表子查詢中有top或for xml子句時,可以包含order by子句。此時order by子句僅僅是為了篩選數據行,並不用於展示的目的。因此,子查詢的結果不能保證是有序的。
G. 關於ASP中SQL語句查詢排序的問題
不能又升序,又降序的...
按學號降序:
SELECT score FROM class order by num desc
按成績升序:
select score from class order by score asc
ORDER BY 子句
指定結果集的排序。除非同時指定了 TOP,否則 ORDER BY 子句在視圖、內嵌函數、派生表和子查詢中無效。
語法
[ ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n ] ]
參數
order_by_expression
指定要排序的列。可以將排序列指定為列名或列的別名(可由表名或視圖名限定)和表達式,或者指定為代表選擇列表內的名稱、別名或表達式的位置的負整數。
可指定多個排序列。ORDER BY 子句中的排序列序列定義排序結果集的結構。
ORDER BY 子句可包括未出現在此選擇列表中的項目。然而,如果指定 SELECT DISTINCT,或者如果 SELECT 語句包含 UNION 運算符,則排序列必定出現在選擇列表中。
此外,當 SELECT 語句包含 UNION 運算符時,列名或列的別名必須是在第一選擇列表內指定的列名或列的別名。
說明 在 ORDER BY 子句中不能使用 ntext、text 和 image 列。
ASC
指定按遞增順序,從最低值到最高值對指定列中的值進行排序。
DESC
指定按遞減順序,從最高值到最低值對指定列中的值進行排序。
空值被視為最低的可能值。
對 ORDER BY 子句中的項目數沒有限制。然而,對於排序操作所需的中間級工作表的大小有 8,060 位元組的限制。這限制了在 ORDER BY 子句中指定的列的合計大小。
H. sqlserver 創建視圖失敗,原因:ORDER BY 子句在視圖、內聯函數、派生表、子查詢和公用表表達式中無效
sqlserver中創建視圖時,as下不能出現order by
其實你要排序的話可以對視圖進行排序嘛,沒必要在視圖創建時候就排序
--創建視圖
create view v$_emp_1
as
select * from emp
where emp.sal > (select min(sal) from emp)
--查詢視圖
select * from v$_emp_1 order by sal--這兒排序不就行了嘛~~~採納哦