Ⅰ sql在查詢結果中查詢
在SQL Server中,可以使用表變數來存儲查詢的結果集,以便後續的在此結果集上進行新的查詢。(當然,臨時表也是一種方法)。
先定義表變數(在變數名之後用table關鍵字說明定義表變數,然後跟表的具體欄位定義):
declare@tbtable(IDinteger,InTimedatetime,...)
然後,將查詢到的數據插入表變數:
insertinto@tb
selectmin(ID)ASID,InTime...
from....
在查詢中使用表變數作為數據源:
selectTop10ID
From@tbs
orderbyiddesc
如果是在Oracle, PostgreSQL中,則可以用with定義臨時查詢結果集。
Ⅱ Mysql用sql語句查詢結果
關於sql
server
sql語句查詢分頁數據的解決方案:
要求選取
tbllendlist
中
第3000頁的記錄,每一頁100條記錄。-------------------------
----------
方法1:
----------
select
top
100
*
from
tbllendlist
where
fldserialno
not
in
(
select
top
300100
fldserialno
from
tbllendlist
order
by
fldserialno
)
order
by
fldserialno
----------
方法2:
----------
select
top
100
*
from
tbllendlist
where
(fldserialno
>
(select
max(fldserialno)
from
(select
top
300100
fldserialno
from
tbllendlist
order
by
fldserialno)
as
t))
order
by
fldserialno
方法1執行速度比較快!
不過,這種做法還是很麻煩,強烈期待微軟發明新的可分頁的sql語句來!!!!
sql
server
---------------------------------------------------------------------------------
從資料庫表中的第m條記錄開始取n條記錄,利用top關鍵字:注意如果select語句中既有top,又有order
by,則是從排序好的結果集中選擇:
select
*
from
(
select
top
n
*
from
(select
top
(m
+
n
-
1)
*
from
表名稱
order
by
主鍵
desc)
t1
)
t2
order
by
主鍵
asc
例如從表sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select
*
from
(
select
top
20
*
from
(select
top
29
*
from
sys_option
order
by
sys_id
desc)
t1)
t2
order
by
sys_id
asc
oralce資料庫--------------------------------------------------------------------------------
從資料庫表中第m條記錄開始檢索n條記錄
select
*
from
(select
rownum
r,t1.*
from
表名稱
t1
where
rownum
<
m
+
n)
t2
where
t2.r
>=
m
例如從表sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select
*
from
(select
rownum
r,t1.*
from
sys_option
where
rownum
<
30
)
t2
where
t2.r
>=
10
如果你對oracle資料庫分頁不是很熟悉的話,本頁後面有專門對oracle分頁技術的講解。
my
sql資料庫---------------------------------------------------------------------------------------------
my
sql資料庫最簡單,是利用mysql的limit函數,limit
[offset,]
rows從資料庫表中m條記錄開始檢索n條記錄的語句為:
select
*
from
表名稱
limit
m,n
例如從表sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select
*
from
sys_option
limit
10,20
tag:
racle
racle
server
server
server
sql
sql
Ⅲ sql中引用一個表的查詢結果作為條件來查詢另一個表如何實現
sql中引用一個表的查詢結果作為條件來查詢另一個表稱為sql嵌套查詢。
簡單子查詢
示例:Copyselect name,age from person
where age >
( select age from person
where name = '孫權'
)
in嵌套查詢
in關鍵字用於where子句中用來判斷查詢的表達式是否在多個值的列表中。返回滿足in列表中的滿足條件的記錄。
示例:
select name from person
where countryid in
(
select countryid from country
where countryname = '魏國'
)
(3)sql重用查詢結果擴展閱讀
子查詢的語法規則
1、子查詢的select查詢總是使用圓括弧括起來。
2、不能包括compute或for.browse子句。
3、如果同時指定top子句,則可能只包括order by子句。
4、子查詢最多可以嵌套到32層。個別查詢可能會不支持32層嵌套。
5、任何可以使用表達式的地方都可以使用子查詢,只要它返回的是單個值。
6、如果某個表只出現在子查詢中二不出現在外部查詢中,那麼該表的列就無法包含在輸出中。
子查詢的組成
1、包含標准選擇列表組件的標准select查詢。
2、包含一個或多個表或者視圖名稱的標准from子句。
3、可選的where子句。
4、可選的group by子句。
5、可選的having子句。
Ⅳ SQL 用查詢結果作為表名,進行查詢怎麼弄
查詢後有一個結果集,遍歷結果集取出你要查的對象。
你用ID查出你存的字元串(這里你存的是其他表名),返回的結果集是一條記錄。
while(rs.next()){//rs.next()方法是個游標指針
Stringshow=rs.getString("tablename");//方法的參數是你資料庫列名,因為你要返回該列名的數據
}
Ⅳ SQL 如何按查詢條件顯示查詢結果
如果存在
學號
等唯一的
主鍵
,最好用主鍵關聯查詢,如果沒有,那麼用姓名欄位關聯【學生繳納學費
記錄表
】和【學生信息表】查詢。SQL
Server語句示例:
SELECT
名字,學費,繳納時間,班級
FROM
學生繳納學費記錄表
LEFT
JOIN
學生信息表
ON
學生繳納學費記錄表.名字=學生信息表.名字
Ⅵ SQL 怎麼用查詢結果更新列
t表 有沒有 與 published_date 相關聯的欄位?
如果有的話。
UPDATE t
SET
t.AV_L = tmp.AV__L
FROM
t JOIN
(SELECT
published_date,
sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date) AS tmp
ON (t.日期欄位 = tmp.published_date);
Ⅶ Sql資料庫實現查詢結果
首先這個你要弄清楚 null是不是已知條件
是 : select case when 學號 == null then 4 ELSE 99 END AS 學號,姓名,科目 from 表名 where 學號 is null
否: select case when 學號 == null then 4 ELSE 99 END AS 學號,姓名,科目 from 表名 where 姓名 = '王五' and 科目 = '科學'