T SQL使用案例 結果資料前面自動補0

2021-06-07 08:39:41 字數 1738 閱讀 9821

在開發的過程中,往往需要數字和字串互轉。在轉換的過程中,可能需要把1程式設計00001,這樣的格式。實現這種樣子是有非常多的方法,本文主要提供一種自定義函式來實現

一般來說這種處理主要使用convert或者cast來實現即可。思路是先轉換為字串然後在不上足夠數量的0,最後使用right函式,從右邊取出需要長度。

本例中使用adventurework資料庫作為例子。

首先,執行下面語句:

--查詢部門資料

select

departmentid

,name

from

adventureworks

.humanresources

.department

結果如下:

然後,使用cast將原來部門編號轉換成varchar()字串。接著加上固定數量的0,然後利用right函式,從右邊去除指定數量的字串。

**如下:

--查詢部門資料並將數字根據位數補上0

select

right(

replicate

('0'

,5)+

cast

(departmentid

asvarchar

(10)),5)

as'departmentid'

,name

from

adventureworks

.humanresources

.department

order

bydepartmentid

結果:

以上的是準備工作,現在開始編寫乙個自定義函式來實現,此函式有兩個引數,第乙個引數是要補0或者其他數目的個數,第二個是要轉換的數字。最後把結果以字串方式返回:

函式**:

create

function

fnzero (

@nint, @i

int )

returns

varchar

(125) as

begin

return (

right(

replicate

('0',@n

)+cast(@i

asvarchar

(125)),@n)

)end

使用例子:

--查詢部門資料並將數字根據位數補上0

select

departmentid

as'departmentid'

,dbo

.fnzero

(5,departmentid)as

'departmentid'

from

adventureworks

.humanresources

.department

order

by 1

注意,由於兩個列都是同名,所以order by 那裡使用了1,而不是列名.

結果如下:

當然,也可以改進該函式,使得函式能滿足很多要求.這部分請讀者自己去研究了.

T SQL使用案例 結果資料前面自動補0

在開發的過程中,往往需要數字和字串互轉。在轉換的過程中,可能需要把1程式設計00001,這樣的格式。實現這種樣子是有非常多的方法,本文主要提供一種自定義函式來實現 一般來說這種處理主要使用convert或者cast來實現即可。思路是先轉換為字串然後在不上足夠數量的0,最後使用right函式,從右邊取...

T SQL使用案例 結果資料前面自動補0

原文 t sql使用案例 結果資料前面自動補0 在開發的過程中,往往需要數字和字串互轉。在轉換的過程中,可能需要把1程式設計00001,這樣的格式。實現這種樣子是有非常多的方法,本文主要提供一種自定義函式來實現 一般來說這種處理主要使用convert或者cast來實現即可。思路是先轉換為字串然後在不...

使用T SQL實現資料匯出 匯入

今天嘗試使用transact sql進行資料的匯出匯入,收穫頗豐。與使用dts相比,效率要高很多!一 開啟opendatasource功能 開始 所有程式 microsoft sql server 2005 配置工具 sql server外圍應用配置器 功能的外圍應用配置器 例項名 database...