Minying's Blog

Just another WordPress.com weblog

Archive for the ‘SQL語法’ Category

查用的SQL語法做一個小小的記錄!!

資料庫中查前幾筆資料語法

Posted by minying 於 5 五月, 2009

各資料庫中,查詢前幾筆資料語法有所差異。

DB2:

Select * From Table1 Order By Column1 Fetch First 10 Row Only

SQL Server:

Select Top 10 * From Table1 Order By Column1

MySQL:

Select * From Table1 Limit 10

Select * From Table Limit 10,5     查詢第11筆開始後5筆

Select * From Table Limit 10,-1     查詢第11筆開始至最後一筆

Posted in SQL語法 | 已加上的標籤: | Leave a Comment »

SQL 語法中 CASE 的用法

Posted by minying 於 13 二月, 2009

CASE是SQL用來做為 if…then…else 之類的邏輯判斷的關鍵字。CASE的語法如下:
簡單的CASE函數:
SELECT CASE “欄位名"
    WHEN “條件1″ THEN “結果1″
    WHEN “條件2″ THEN “結果2″
    ….
    [ELSE “結果N"]
    END

例:
SELECT 類別,CASE 類別
    WHEN ‘A’ THEN 單價*2
    WHEN ‘B’ THEN 單價*1.5
    ELSE 單價
    END AS 售價
FROM 資料表
如果類別是A,則售價為單價*2,若類別是B,則售價為單價*1.5。
如果有比較複雜的判別式,可寫如下方式:
搜尋的CASE函數:
SELECT CASE
    WHEN ‘布林值條件1’ THEN ‘結果1’
    WHEN ‘布林值條件2’ THEN ‘結果2’
    ….
    [ELSE ‘結果N’]
    END
例1:
SELECT ProductNumber, Name, ‘Price Range’ =
    CASE
    WHEN ListPrice = 0 THEN ‘Mfg item – not for resale’
    WHEN ListPrice = 50 and ListPrice = 250 and ListPrice < 1000 THEN ‘Under $1000’
    ELSE ‘Over $1000’
    END
FROM Production.Product

例2:為區分兩個類別(一般客戶及契約客戶),在某一日期區間內,每日的數量。一般客戶沒有客戶編號,一侓用99999999代表。
Select 日期,
    Sum(Case When 客編 = ‘99999999’ Then 1 Else 0 End) AS 一般客戶 ,
    Sum(Case When 客編 ‘99999999’ Then 1 Else 0 End) AS 契約客戶
From 資料表A
WHERE (日期 >= 980101 and 日期 <= 980131)
GROUP BY 日期 ORDER BY 日期

Posted in SQL語法 | 已加上的標籤: | Leave a Comment »

SQL Join 語法範例

Posted by minying 於 4 十二月, 2008

SQL是關連式資料庫重要的語言,很少有資料查詢只來自一個資料表,因資料在寫入時,會進行一些正規劃的動作,可以增加寫入、更新、刪除的動作,但對查詢來講,反而增加了它的複雜度。因此記錄下一些查用的SQL語法,對於太難太複雜的語法,我也沒有太過於研究。

繼續閱讀文章 »

Posted in SQL語法 | 已加上的標籤: | Leave a Comment »