當前位置:首頁 » 編程語言 » sql怎麼補位
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql怎麼補位

發布時間: 2022-05-15 22:47:19

A. sql數據補位

用lapd函數,左補零

用法
select LPAD(100,5,0) from al

100為欄位名,5為補完後的長度,0為補充的字元

B. 在sql語句里怎麼右補空格

示例:

右補空格,字元長度定為10

declare@strvarchar(1000)
set@str='123'
selectleft(@str+'',10)

C. sql位數不足補0

假設結果值用變數a表示,補位用b表示,需求結果用c表示
if len(a)=1 then
b="000"
elseif len(a)=2 then
b="00"
elseif len(a)=3 then
b="0"
else
b=""
end if

c=b&a

D. sql 不夠七位數 在左側自動補零,怎麼實現

您好:

跟您一個參考資料

第一種方法:
right('00000'+cast(@countasvarchar),5)
其中'00000'的個數為right函數的最後參數,例如這里是5,所以有5個0
@count就是被格式化的正整數
例如:
1、selectright('00000'+cast(dense_rank()over(orderbyzsbh)asVARCHAR(20)),5)
2、declare@countint
set@count=0
while(@count<1000)
begin
printright('00000'+cast(@countasvarchar),5)
set@count=@count+1
end
第二種方法:使用REPLICATE函數,將字串值重復指定的次數。例如:
REPLICATE('重復',3)輸出結果為:重復重復重復
【值得注意的是當integer_expression值為負值,則返回NULL】
因此,補0操作可如下實現:
SELECTREPLICATE('0',5-len('9'))+'9'--左邊補0,如00009
SELECT'9'+REPLICATE('0',5-len('9'))--右邊補0,如90000
第三種方法:使用stuff函數,刪除指定長度的字元,並在指定的起點處插入另一組字元。例如:
第一個字元串abcdef中刪除從第2個位置(字元b)開始的三個字元,然後在刪除的起始位置插入第二個字元串,從而創建並返回一個字元串。
SELECTSTUFF('abcdef',2,3,'ijklmn')

輸出結果為:

aijklmnef。
因此補0操作可如下實現:
selectstuff('00000',len('00000')-len('123')+1,len('123'),'123')

E. SQL不夠10位 補0 補到10位寫何寫


咱們來看:

cast('000000000'+convert(int,code)asvarchar(20))

首先:

convert(int,code) :你把code 轉為 int

然後

'000000000'+convert(int,code)我估計sqlserver肯定把表達式作為數字相加了,那麼0000...的相加就沒有作用了。

最後

就不是你要的結果了。


大致應該這樣:

SELECT
right(cast('000000000'+rtrim(code)asvarchar(20)),10),code,
id,pydate,isnull(lzdate,'9999-12-31'),0
FROMzlemployee



F. Oracle資料庫,在寫SQL語句時,怎樣將一個數精確到小數點後兩位,並在前面補0,補齊規定的位數

你要減小精度,必須修該的列為空才可以,可以先刪除表數據,再修改。
修改的sql語句如下:
alter
table
emp
modify(sal
number(5,1));

G. 這樣的sql/pl自動補位語句怎麼寫

create table test( testid int)
insert into test values(357)
insert into test values(2783)
insert into test values(58690)

--你在創建一個表
create table tab(rowid int)
--在向資料庫裡面插入0到99
insert into tab values(0)
insert into tab values(1)
insert into tab values(2)
insert into tab values(3)
insert into tab values(4)
insert into tab values(5)
insert into tab values(6)
insert into tab values(7)
insert into tab values(8)
insert into tab values(9)
......

select substring(rtrim(str((ltrim(str(testid))+(select left('0000',5-len(testid))))+tab.rowid)),1,10) from test , tab where (5-len(testid))>=len(rowid) or (len(testid)=5 and rowid=0) order by testid,rowid
弄了很久,也不知道你要的結果是不是這個結果,你把這段sql可以考進sqlserver2005或者2000去運行看下結果,上面我只添加了0--9的,你可以添到99在試下。

H. SQL SERVER自動在後面補0滿足8位數請問怎麼寫

如果是字元串的話,可以通過字元串連接的方式實現,由於SQL Server沒有Oracle的lpad和rpad函數,可以使用REPLICATE函數代替
column_name+replicate('0',8-column_name.len()); 缺多少位就補上多少位,

I. 求助各位老師,如何用SQL語句實現某列值的補位和減位

CREATE TABLE #temp
(
F_BH VARCHAR(30)
);

INSERT INTO #temp VALUES('9922010010001');

SELECT
F_BH,
SUBSTRING(F_BH, 1, 4)
+ '0'
+ SUBSTRING(F_BH, 5, 5)
+ SUBSTRING(F_BH, 11, 3)
FROM
#temp

F_BH
------------------------------ -------------------------
9922010010001 9922001001001

(1 行受影響)

如果是要更新的話,就是
UPDATE
#temp
SET
F_BH =
SUBSTRING(F_BH, 1, 4)
+ '0'
+ SUBSTRING(F_BH, 5, 5)
+ SUBSTRING(F_BH, 11, 3);

注意,更新語句不要執行多次,否則編碼規則就要亂了。

J. SQL怎樣在固定值後面補0

具體什麼資料庫?

以sqlserver,mysql,oracle各自為例:

sqlserver:

createtabletest
(點名varchar(20));

insertintotestvalues('HS901');
insertintotestvalues('HS9010');
insertintotestvalues('HS9010');

執行:

selectLEFT(點名+'00000000',8)fromtest

結果: