角本如下:
/****** script for selecttopnrows command from ssms ******/
select top 1000 [id]
,[sn]
,[name]
from [edudb].[dbo].[testtab]
select right('0123456',sn) from testtab;
select right(replicate('0',5)+cast(sn as varchar(10)),5) as 'sn' from testtab;
select right('00000000'+cast(sn as varchar(10)),5) as 'sn' from testtab
複製**
效果如下:
*****===
select
right(cast('000000000'+convert(int,code)as varchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
from zlemployee
工號的型別是int的,請問為什麼用id就可以呢?為什麼用code就不行了?
已經搞定了,一定在臨時表中char轉int,不能直接轉
咱們來看:
1cast('000000000'+convert(int,code)as varchar(20))
首先:convert(int,code) :你把code 轉為 int
然後'000000000'+convert(int,code)我估計sqlserver肯定把表示式作為數字相加了,那麼0000...的相加就沒有作用了。
最後就不是你要的結果了。
大致應該這樣:12
34select
right(cast('000000000'+rtrim(code) as varchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
from zlemployee
*****===
請教,我想將乙個字段值在sql語句中,自動補齊位數,是否可以做到,有這樣的函式麼?
比如為 3時,
select 的結果是 '003',
為333時,結果就是 '333'
這樣在sql裡,能否直接做到呢??
update 表 set 字段 = right('000' + cast(字段 as varchar),3)
select right('000' + cast(col as varchar(10),3) as col from [table]
*****===
select right('0000'+cast( '123' as nvarchar(50)),4) dwbh
公式 right('位數'+cast(要判斷的字段 as nvarchar(50)),位數 )
*****===
select right('00000'+'1',5)
問題:需要格式為00001、00002、00003、00004 ... 00010 ... 00100 ...
思路:用5個長度的00000,去拼接後面自增的數字(必須轉為字元),然後從右側開始擷取5個長度。
*****===
oracle:lpad函式
[sql] view plain copy
語法格式如下:
lpad( string, padded_length, [ pad_string ] )
string
準備被填充的字串;
padded_length
填充之後的字串長度,也就是該函式返回的字串長度,如果這個數量比原字串的長度要短,lpad函式將會把字串擷取成從左到右的n個字元;
pad_string
填充字串,是個可選引數,這個字串是要貼上到string的左邊,如果這個引數未寫,lpad函式將會在string的左邊貼上空格。
例項:[sql] view plain copy
select lpad(22,10,'0') from dual;
結果:
1 0000000022
sqlserver:right函式
語法right(string, length)
right 函式的語法具有下面的命名引數:
部分說明
string
必要引數。字串表示式,從中最右邊的字元將被返回。如果 string 包含 null,將返回 null。
length
必要引數;為 variant (long)。為數值表示式,指出想返回多少字元。如果為 0,返回零長度字串 ("")。如果大於或等於 string 的字元數,則返回整個字串。 示例:
right(replicate('0',10)+ltrim(引數),10)
*****===
Oracle和SQLServer補齊字串的方法
oracle lpad函式 語法格式如下 lpad string,padded length,pad string string 準備被填充的字串 padded length 填充之後的字串長度,也就是該函式返回的字串長度,如果這個數量比原字串的長度要短,lpad函式將會把字串擷取成從左到右的n個字...
空白單元格怎麼用0補齊
空白單元格用0補齊的方法 首先開啟excel 選中要填充為0的 然後點選 ctrl g 快捷鍵,調出定位對話方塊 接著選擇空值選項按鈕 最後在單元格中輸入數字0,並按住ctrl鍵不放即可。在電腦端開啟excel 選中要填充為0的 如下圖所示。在選中 之後點選ctrl g快捷鍵,調出定位對話方塊。在彈...
fread總返回0的問題
size t fread void ptr,size t size,size t nmemb,file stream 這個函式以前一直沒理解為什麼 size t size,size t nmemb引數來確定讀取緩衝區的大小,我開始以為兩個可以互換,而且在有些場合互換確實也沒問題,直到今天碰到了開啟乙...