sql

  • 備份資料

    1. 備份資料庫:

      備份 Reporting Services sql 資料庫。

    2. 備份加密金鑰:

      開啟 Reporting Services 組態管理員 → 點選加密金鑰 → 備份 → 指定加密檔的儲存位置及密碼

  • sqlimages

    如上述資料,我們分別要找出S001,亂馬客,2010/04/01、S002,造雨人,2010/03/01及S003,阿光,2010/05/01的資料! 因為要最大值,所以使用GROUP+MAX函式來處理!實際操作應用方法如下:

  • 許多情況下,我們需要刪除整個資料表內的資料,重新輸入新資料,有三種方法可以參考使用,分別是使用DeleteTrancateDrop,那使這三種方式的差異為何呢?

  • sql要複製某個資料表有二步驟,首先要先建立LIKE複製一個,與原先資料表一樣的一個新的資料表,之後把原本的資料INSERT新增到剛建立的新資料表

    建立新資料表 Create Table

    CREATE TABLE new_table LIKE old_db.old_table;

    複製資料 Copy Table

    INSERT new_table SELECT * FROM old_db.old_table;

    兩個Table欄位不對應方法

    若兩個Table欄位名稱數量不一樣,INSERT資料的方式可參考下面範例,如old_table欄位id,需要新增至new_table欄位parent_id。注意在這個使用方法,如下INSERT(parent_id,employee_id,hi_premium,li_premium)四個欄位需要新增,SELECT就需要有四個欄位,不然會有錯誤訊息Column count doesn't match value count at row 1。(這邊指的是在寫sql語句時,本身兩個table欄位數量不一樣沒關係)

    INSERT new_table (parent_id,employee_id,hi_premium,li_premium) 
    SELECT id,employee_id,hi_premium,li_premium 
    FROM old_db.old_table;

    SQL查詢欄位新增括號報錯:需要特別注意SELECT後的欄位值,不需要包在括弧()內,會顯示的錯誤訊息如Operand should contain 1 column(s)

  • [SQL]使用BETWEEN要注意的地方

    BETWEEN... AND 會選取介於2個值之間的資料。

    BETWEEN數值

    BETWEEN 1 AND 5

    包含1, 1.01, 1.1, 4.9, 4.99到5.0

    BETWEEN字串

    BETWEEN 'S' AND 'Z'

    比如找 S – Z 的BOOK書名
    包含S, SQL, 到Z,但不包含Zero的書名哦!

    範例BETWEEN (number) (string)

    資料準備

    DECLARE @BOOKLIST TABLE
    (
    ID INT IDENTITY(1,1) 
    , BOOK_NAME NVARCHAR(32)
    , PRICE DECIMAL(9,3)
    , PUBLISH_DATE DATETIME
    );
    INSERT INTO @BOOKLIST(BOOK_NAME, PRICE, PUBLISH_DATE) VALUES('S', 1, '2011/10/10');
    INSERT INTO @BOOKLIST(BOOK_NAME, PRICE, PUBLISH_DATE) VALUES('S1', 1.01, '2011/10/10 10:10');
    INSERT INTO @BOOKLIST(BOOK_NAME, PRICE, PUBLISH_DATE) VALUES('S2', 1.111, '2011/12/10 10:10');
    INSERT INTO @BOOKLIST(BOOK_NAME, PRICE, PUBLISH_DATE) VALUES('ZERO', 3, '2011/12/10');
    INSERT INTO @BOOKLIST(BOOK_NAME, PRICE, PUBLISH_DATE) VALUES('Z', 5.001, '2011/11/10');
    INSERT INTO @BOOKLIST(BOOK_NAME, PRICE, PUBLISH_DATE) VALUES('Z1', 5, '2011/11/10 12:10');
    INSERT INTO @BOOKLIST(BOOK_NAME, PRICE, PUBLISH_DATE) VALUES('TIGER', 10, '2011/12/10 20:30');

    找出單價1~5間的書 (number)

    SELECT * FROM @BOOKLIST
    WHERE PRICE BETWEEN 1 AND 5
    ORDER BY PRICE
    --單價大於5的不會找出來

    BETWEEN