仍然是小菜一碟! 我正在使用SAP數據服務,並有一張表,我試圖過濾。沒有什麼我能想到的SAP工作,但是如果我使用可能的SQL查詢。SQL查詢過濾掉第一行和最後一行
SOOO ....我的問題是...我如何做一個查詢,將過濾掉表中的第一行和最後一行?
謝謝你們!
仍然是小菜一碟! 我正在使用SAP數據服務,並有一張表,我試圖過濾。沒有什麼我能想到的SAP工作,但是如果我使用可能的SQL查詢。SQL查詢過濾掉第一行和最後一行
SOOO ....我的問題是...我如何做一個查詢,將過濾掉表中的第一行和最後一行?
謝謝你們!
SELECT ROW_ID, RECORD_TIMESTAMP, TRANSACTION_NO FROM MyTable
EXCEPT
SELECT TOP(1) ROW_ID, RECORD_TIMESTAMP, TRANSACTION_NO FROM MyTable ORDER BY ROW_ID ASC
EXCEPT
SELECT TOP(1) ROW_ID, RECORD_TIMESTAMP, TRANSACTION_NO FROM MyTable ORDER BY ROW_ID DESC
select *
from MY_TABLE
where TRANSACTION_NO > (select min(TRANSACTION_NO) from MY_TABLE)
and TRANSACTION_NO < (select max(TRANSACTION_NO) from MY_TABLE)
您可以substiute你想取列TRANSACTION_NO(ROW_ID等)來匹配什麼是「第一」,「最後」爲您的數據。
select *
from (
select t.*,
row_number() over (order by ROW_ID) as rn,
count(*) over() as total_count
from the_table
) t
where rn > 1 and rn < total_count;
如果你的「第一」和「最後」的定義不通過ROW_ID
的順序定義,那麼你需要的窗函數的over(...)
子句中調整order by ROW_ID
。
你使用的是MySQL還是SQL Server?請僅用您實際使用的數據庫標記問題。此外,這個問題沒有提供足夠的信息來回答問題。桌子是什麼樣的? –
什麼是第一個和最後一個是什麼? –
如果您說出「第一個」和「最後一個」的含義,它也將有所幫助:是否有某個字段,例如日期/時間,允許您排序行?或者更可能有一些數字順序ID自然地命令行? SQL本身在表中沒有任何「first」和「last」的概念。 –