第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

填充帶有前導(dǎo)零的字符串,使其在SQLServer 2008中有3個(gè)字符長

填充帶有前導(dǎo)零的字符串,使其在SQLServer 2008中有3個(gè)字符長

Cats萌萌 2019-07-02 09:54:52
填充帶有前導(dǎo)零的字符串,使其在SQLServer 2008中有3個(gè)字符長當(dāng)?shù)谝淮卧赟QLServer2008R2中創(chuàng)建它時(shí),我有一個(gè)最多3個(gè)字符的字符串。我想用前導(dǎo)零填充它,所以如果它的原始值是‘1’,那么新的值將是‘001’。或者,如果其原始值為“23”,則新值為“023”。或者,如果其原始值為‘124’,則新值與原始值相同。我正在使用SQLServer2008R2。我將如何使用T-SQL來完成這個(gè)任務(wù)?
查看完整描述

3 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果字段已經(jīng)是字符串,則此操作將有效。

 SELECT RIGHT('000'+ISNULL(field,''),3)

如果你想讓空顯示為‘000’

它可能是一個(gè)整數(shù)-那么你會(huì)想

 SELECT RIGHT('000'+CAST(field AS VARCHAR(3)),3)

正如問題所要求的那樣,這個(gè)答案只有在長度<=3時(shí)才有效,如果您想要更大的值,則需要將字符串常量和兩個(gè)整數(shù)常量更改為所需的寬度。艾格'0000' and VARCHAR(4)),4


查看完整回答
反對 回復(fù) 2019-07-02
?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

雖然問題是關(guān)于SQLServer2008R2的,但是如果有人正在閱讀這個(gè)版本2012及以上版本,那么使用格式.

您可以通過標(biāo)準(zhǔn)數(shù)字格式字符串或者是自定義數(shù)字格式字符串作為格式參數(shù)(謝謝瓦迪姆·奧夫欽尼科夫因?yàn)檫@個(gè)提示)。

對于這個(gè)問題,例如,下面的代碼

DECLARE @myInt INT = 1;-- One way using a standard numeric format stringPRINT FORMAT(@myInt,'D3');-- Other way using a custom numeric format stringPRINT FORMAT(@myInt,'00#');

產(chǎn)出

001
001


查看完整回答
反對 回復(fù) 2019-07-02
?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

下面是一種更通用的技術(shù),用于向左填充到任何需要的寬度:


declare @x     int     = 123 -- value to be padded

declare @width int     = 25  -- desired width

declare @pad   char(1) = '0' -- pad character


select right_justified = replicate(

                           @pad ,

                           @width-len(convert(varchar(100),@x))

                           )

                       + convert(varchar(100),@x)

但是,如果您處理的是負(fù)值,并填充前導(dǎo)零,則這和其他建議的技術(shù)都不起作用。你會(huì)得到這樣的東西:


00-123

[可能不是你想要的]


所以…您必須跳過一些額外的循環(huán),這里有一種方法可以正確地格式化負(fù)數(shù):


declare @x     float   = -1.234

declare @width int     = 20

declare @pad   char(1) = '0'


select right_justified = stuff(

         convert(varchar(99),@x) ,                            -- source string (converted from numeric value)

         case when @x < 0 then 2 else 1 end ,                 -- insert position

         0 ,                                                  -- count of characters to remove from source string

         replicate(@pad,@width-len(convert(varchar(99),@x)) ) -- text to be inserted

         )

應(yīng)該注意到,convert()調(diào)用應(yīng)指定[n]varchar具有足夠的長度來保持轉(zhuǎn)換結(jié)果的截?cái)唷?/p>


查看完整回答
反對 回復(fù) 2019-07-02
  • 3 回答
  • 0 關(guān)注
  • 960 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號