SQL SERVER資料庫 – 初識函數

來源:互聯網
上載者:User

問題一:

某公司印了一批儲值卡,卡的密碼是隨機產生的,現在出現這個問題:
    卡裡面的“O和0”(哦和零)“i和1”(哎和一),使用者反映說看不清楚,公司決定,把儲存在資料庫中的密碼中所有的“哦”都改成“零”,把所有的“i”都改成“1”;

請編寫SQL語句實現以上要求;
資料庫表名:Card;密碼欄位名:PassWord;

 

分析:

這是更新語句,需要使用UPDATE語句;
因為牽涉到字串的替換,需要使用到SQL Server中的函數Replace;

如果用兩行SQL語句,則為

Update Card Set PassWord = Replace(密碼,'O','0')
Update Card Set PassWord = Replace(密碼,'i','1')

如果用一行來表示,則可以寫成:

Update  Card
Set  PassWord = Replace(Replace(密碼,'O','0'),'i','1')

 

問題二:

在資料庫表中有以下字元資料,如:
 13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2

現在希望通過SQL語句進行排序,並且首先要按照前半部分的數字進行排序,然後再按照後半部分的數字進行排需,輸出要排成這樣:
 13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2

資料庫表名:SellRecord;欄位名:ListNumber;

 

分析:

這是查詢語句,需要使用SELECT語句
需要使用到ORDER BY進行排序,並且在ORDER BY的排序列中,也需要重新計算出排序的數字來
前半部分的數字,可以從先找到“-”符號的位置,然後,取其左半部分,最後再使用Convert函數將其轉換為數字:
 Convert(int, Left(ListNumber, CharIndex('-', ListNumber)-1))
後半部分的數字,可以先找到“-”符號的位置,然後把從第一個位置到該位置的全部字元替換為空白格,最後再使用Convert函數將其轉換為數字:
 Convert(int, Stuff(ListNumber,1, Charindex('-', ListNumber), ''))

 

最後代碼如下:

SELECT ListNumber
FROM    SellRecord
ORDER BY
Convert(int, Left(ListNumber, CharIndex('-', ListNumber)-1)),
Convert(int, Stuff(ListNumber,1, Charindex('-', ListNumber), ''))

 

 

日期函數:

 

數學函數:

 

系統函數:

 

 字串函數:

 

(北大青鳥的PPT上看到的)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.