Home
R
Cancel

[SQL] 取得第n筆到第m筆資料 (Row_Number())

範例 商品清單的販賣單價以降幕排序,並取得第6~8列的資料 --商品清單的販賣單價以降幕排序,並取得第6~8列的資料 select a.* from ( select *,row_number() over (order by 販賣單價 desc) as rowid from 商品清單) a where a.rowid between 6 and 8 執行結果: ...

[SQL] 取得前N筆資料 (Top、Top * Percent、With Ties)

TOP:指定筆數 TOP * PERCENT :指定百分比 WITH TIES: 加上with ties包括相同值 top 5 with ties top 10 percent with ties TOP (expression) [PERCENT] [ WITH TIES ] Top 取得前 N 筆資料...

[SQL] Dense_Rank()、Rank()、Row_Number() 序列號/排名

次序函數: Dense_Rank 數字連續。同名次後,名次連續。數字是連續的,不會有間距。 (例如:1223) Rank 數字不連續。同名次後,名次會跳號。 數字不一定是連續的。(例如:1224) Row_Number 流水號。 (例如:1234) Row_Number 為流水號, 而Rank 與 Dense_Rank 的差異就在於 同名後,數字是不是連續...

[SQL] 顯示資料庫物件的定義 (sp_help、sp_columns)

查詢資料表的結構: sp_help table_name sp_columns table_name 語法 sp_help table_name --顯示欄位定義、條件約束... sp_columns table_name --顯示資料表欄位的定義 範例 顯示販賣資料的定義 --顯示販賣資料的定義 sp_help 販賣資料 --顯示欄位定義、條件約束... sp_co...

[SQL] 以 Select 的結果來建立資料表

Select Into語法可以將 Select的結果拿來製作成資料表。 語法 SELECT * INTO new_table FROM old_table WHERE condition; 範例 從負責人清單來製作員工清單(MGR_ID不為null) --從負責人清單來製作員工清單 --MGR_ID不為null select * into 員工清單 from 負責人清單 where...

[SQL] Stored Procedure 小細節

TSQL邏輯太複雜,請使用SP 如果查詢陳述句太過複雜,請使用SP: 如果你的商業邏輯複雜導致查詢陳述句過長又龐大, 建議可以使用SP來撰寫,因為用戶端(client)只會傳SP Name給SQL Server(而不是一長串的TSQL), 所以網路的傳輸量也會降低不少。 請使用兩節式命名 請使用兩節式命名: 相關的物件請都使用兩節式(schema name+objec...

[SQL] Stored Procedure 預存程序的建立與刪除

stored procedure命名勿使用 sp_ 開頭(使用 usp_開頭) 因為使用sp_開頭的預設都會先至SQL Server的master database搜尋完後,才會搜尋現階段連線的database,不僅耗時更容易有機會出錯(比方跟master db存有的sp撞名)。 --建立SP create procedure usp_test as select get...

[SQL] View 檢視表的製作與刪除

View 檢視表、視圖 (SQL View) 「檢視View」是指以一個以上的資料表為基礎所製作出來的邏輯資料表,可以用與一般資料表相同的方式來使用。View的基礎資料表為「實際資料表」。(View 內的資料紀錄是由實際存在的資料表中產生的) View它就像是一個虛擬資料表,View本身並不持有任何的資料,而是在每一次發生詢問時從實際資料表取得資料,所有的 SQL 查詢語法都可以操作在此...

[SQL] Index 索引的製作與刪除

所謂的索引Index是能夠讓資料搜尋更快的一種方法。 為什麼使用索引Index之後就可以加快檢索速度呢?以書為例子來說,假設要從一本電腦書當中找到有關「資料庫」的頁面,一般來說有兩個方法: 從書的最前頭開始尋找「資料庫」這個關鍵字 從書本最後的索引中找到與「資料庫」有關的頁面 第二個方法不用說也知道是最快的檢索方法。資料庫的索引也具有相同的作用。 索引Index也是有缺點...

[SQL] Delete、Truncate、Drop Table

Delete、Truncate、Drop 這幾個關鍵字都是只要刪除、清空的意思差別在此釐清一下。 drop 資料表完成刪除,包含結構跟內容,如果你想要刪除資料表時可以使用。 truncate 保留資料表的欄位結構,但清空裡面的資料。 delete 保留資料表的欄位結構,一樣可以刪除全部資料(與truncate有一些不同)或部分符合你設定條件的資料。 Drop Table...