在開發的過程中,往往需要數字和字串互轉。在轉換的過程中,可能需要把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...