全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2655
推到 Plurk!
推到 Facebook!

請說明這一段SQL語法

答題得分者是:Victor4022
sendelphi
一般會員


發表:1
回覆:0
積分:0
註冊:2012-08-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-08-07 21:42:26 IP:114.33.xxx.xxx 訂閱


請說明以下這語法 我不了解以下語法 謝謝

UPDATE table1 SET sort_=CONVERT(float, floor(sort) '.' RIGHT('0' ABS(CHECKSUM(NEWID())),8))
------
元中
Victor4022
中階會員


發表:0
回覆:76
積分:90
註冊:2011-02-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-08-08 22:56:25 IP:118.161.xxx.xxx 訂閱


如果沒猜錯, sort_ 和 sort 這兩個是資料欄位,此段 T-SQL 是為了計算目前的 sort 值,透過下方步驟運算後,轉存至 sort_(有底線) 這個欄位。
一共使用 6 個 system procedure 或 system function,分別是:
1. CONVERT() -> 型別轉換用
2. FLOOR() -> 數字處理用,捨棄小數點
3. RIGHT() -> 字串處理用,只取從右方往前數 n 個字,以您的範例來看,是取右方 8 個字
4. ABS() -> 數字處理用,取絕對值
5. CHECKSUM() -> 資料檢查用,計算某欄位的 check sum 值
6. NewID() -> 系統函數,亂數產生 g_uuid 格式,例如:6F9619FF-8B86-D011-B42D-00C04FC964FF
您可以上 MSDN 分別查詢這 6 個用途,我以第1個 CONVERT()為例:
[code sql]
UPDATE table1
SET sort_ =
CONVERT(float, -- CONVERT 的第一個參數,轉型成 float 型別
FLOOR(sort) '.' RIGHT('0' ABS(CHECKSUM(NEWID())), 8))-- CONVERT 的第二個參數,要被轉型成 float 型別的原始資料

[/code]

系統時間:2018-01-18 23:24:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!