是否有在T-SQL的方式到TINYINT轉換爲VARCHAR自定義數字格式? 例如,我的TINYINT值爲3,我想將它轉換爲03的VARCH,以便它始終顯示一個2位數字。轉換數在SQL爲varchar與格式
我沒有看到轉換功能這種能力。
是否有在T-SQL的方式到TINYINT轉換爲VARCHAR自定義數字格式? 例如,我的TINYINT值爲3,我想將它轉換爲03的VARCH,以便它始終顯示一個2位數字。轉換數在SQL爲varchar與格式
我沒有看到轉換功能這種能力。
RIGHT('00' + CONVERT(VARCHAR, MyNumber), 2)
被警告,這將削弱號> 99.你可能想在可能性因素。
declare @t tinyint
set @t =3
select right(replicate('0', 2) + cast(@t as varchar),2)
同上:關於號碼cripping效果> 99
如果要滿足1-255那麼你可以使用
select right(replicate('0', 2) + cast(@t as varchar),3)
但是這會給你001,010, 100等
使用正確的函數... 如
DECLARE @testnum TINYINT
SET @testnum = 3
PRINT RIGHT('00' + CONVERT(VARCHAR(2), @testnum), 2)
你可以試試這個
DECLARE @Table TABLE(
Val INT
)
INSERT INTO @Table SELECT 3
INSERT INTO @Table SELECT 30
DECLARE @NumberPrefix INT
SET @NumberPrefix = 2
SELECT REPLICATE('0', @NumberPrefix - LEN(Val)) + CAST(Val AS VARCHAR(10))
FROM @Table
什麼是值範圍是多少?是0到10嗎?如果是這樣,那麼嘗試:
SELECT REPLICATE('0',2-LEN(@t)) + CAST(@t AS VARCHAR)
那到9 0處理,以及10至99
現在,TINYINT可以達到255的值。如果你想> 99至255來處理,然後再嘗試這種解決方案:
declare @t TINYINT
set @t =233
SELECT ISNULL(REPLICATE('0',2-LEN(@t)),'') + CAST(@t AS VARCHAR)
要了解解決方案中,表達的+計算零的個數左前綴字符串。
在值3的情況下,該長度爲1。2 - 1爲1。REPLICATE將一個零。 如果值爲10,則長度爲2. 2 - 2爲0. REPLICATE不添加任何內容。 在值100的情況下,長度爲-1,它產生NULL。但是,空值被處理並設置爲空字符串。
現在,如果你決定,因爲TINYINT可以包含多達255個,而您希望的格式爲三個字符,只是改變2-LEN至3-LEN在左側表達和你設置。
Correción:3-LEN
declare @t TINYINT
set @t =233
SELECT ISNULL(REPLICATE('0',3-LEN(@t)),'') + CAST(@t AS VARCHAR)
這裏是最後的答案
declare @t tinyint,@v tinyint
set @t=23
set @v=232
Select replace(str(@t,4),' ','0'),replace(str(@t,5),' ','0')
這將任意數量的工作,並通過改變str()
函數的長度,你可以規定多少以下的替代您需要的前導零。當然,你的字符串長度總是> =你的數字類型可以容納的最大位數。
曾與一個郵政編碼場同樣的問題。有些人給我發了一個帶有拉鍊的excel文件,但他們被格式化爲#。只好將它們轉換爲字符串,以及爲前置0領先的他們,如果他們< 5 LEN ...
declare @int tinyint
set @int = 25
declare @len tinyint
set @len = 3
select right(replicate('0', @len) + cast(@int as varchar(255)), @len)
你只改變@len得到你想要的東西。正如格式化,你會得到...
001
002
...
010
011
...
255
理想情況下,你會 「VARCHAR(@len)」 也一樣,但吹了SQL編譯。必須拋棄一個實際的#而不是var。
歡迎來到Stack Overflow。這個問題最初是在近3年前回答的。當您爲舊問題添加新答案時,最好詳細解釋關於答案的新穎內容或爲什麼原答案不準確(或者更可能不再準確)因爲產品已經改變)。此外,我不清楚'糾正'正在糾正什麼;你也應該清楚這一點。 – 2012-09-22 22:09:13