SQL
跳至導覽
跳至搜尋
Connection Strings
- ConnectionStrings.com……各種資料庫的Connection Strings範例
SQL分頁select
分頁前SQL
SELECT [欄位1, 欄位2, ...] FROM [資料表] WHERE [篩選條件] ORDER BY [排序欄位] [ASC/DESC]
MsSQL
Type A
- 無排序,在關聯式查詢時,可能導致每次查詢同一分頁的資料時,出來的資料都不一樣。
SELECT [欄位1, 欄位2, ...] FROM [資料表] WHERE [主要索引欄位] IN ( SELECT * FROM ( SELECT TOP [每頁長度*第幾頁] [主要索引欄位] FROM [資料表] WHERE [篩選條件] ) as [資料表别名1] WHERE [主要索引欄位] NOT IN ( SELECT TOP [每頁長度] [主要索引欄位] FROM [資料表] WHERE [篩選條件] ) )
Type B
- 有排序,又稱【夾擠式分頁查詢】。
SELECT * FROM ( SELECT TOP [每頁長度] * FROM ( SELECT TOP [每頁長度*第幾頁] [欄位1, 欄位2, ...] FROM [資料表] WHERE [篩選條件] ORDER BY [排序欄位] [DESC/ASC] ) as [資料表别名1] ORDER BY [排序欄位] [ASC/DESC] ) as [資料表别名2] ORDER BY [排序欄位] [DESC/ASC]
MySQL
SELECT [欄位1, 欄位2, ...] FROM [資料表] WHERE [篩選條件] ORDER BY [排序欄位] [ASC/DESC] LIMIT [每頁長度] OFFSET [每頁長度*第幾頁]
跨資料庫轉換
SQL資料隱碼
- 『資料隱碼』SQL Injection的源由與防範之道 繁體中文(台灣)
- SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(上) 繁體中文(台灣)
- SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(下) 繁體中文(台灣)
- 安全的多層式部署 繁體中文(台灣) for MS-SQL
- SQL 資料隱碼 繁體中文(台灣) for MS-SQL
FAQ
當Table或欄位的名稱衝到SQL預設的保留字時
- MS-SQL 或 MS-Access 使用 [與] 來將衝突的Table或欄位的名稱包起來。
- Oracle 或 IBM-DB2 或 PostgreSQL 使用雙引號字元 " 來將衝突的Table或欄位的名稱包起來。
- MySQL 使用反單引號字元 ` 來將衝突的Table或欄位的名稱包起來。
無法解析 equal to 作業中 "Chinese_Taiwan_Stroke_CI_AS" 與 "Latin1_General_CI_AI" 之間的定序衝突。
- 在Select子句的後面加上 COLLATE Chinese_Taiwan_Stroke_CI_AS ,做字串定序的轉換。