Ⅰ 資料庫欄位補'0'
寫個函數:
CREATE Function xfn_UpdateZero(@Str VARCHAR(20),@Len INT)
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @ALEN INT
SET @ALEN=0
WHILE @ALEN<@Len-1
BEGIN
SET @Str='0'+@Str
SET @ALEN=@ALEN+1
END
RETURN @Str
END
然後更新欄位值:
update table_name set 欄位名=dbo.xfn_UpdateZero(欄位名,5)
這樣這個欄位的所有數據長度都變成了5
(PS:前提是這個欄位中不可以有值的長度大於五位,否則這個值不會更新)
Ⅱ 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
Ⅲ access資料庫中如何將數字部分不足4位數的在數字前面用「0」補足
首先要確定一下具體的修改方法,比方說小於10的都改為10,大於20的都改為20。
然後在查詢中切換到SQL視圖,輸入:
update
表名
set
欄位名=10
where
欄位名<10;
然後運行這個查詢,完畢後再把上述語句修改為:
update
表名
set
欄位名=20
where
欄位名>20;
再次運行這個查詢即可。
這樣只需兩步就改完全部記錄了。
PS:一定要記得把逗表名地和逗欄位名地改為你的資料庫中的真實名稱哦!
Ⅳ sql查詢沒有數據的時候怎麼用0填充
這樣:
SELECT
a.dt AS '時間',
ISNULL(b.yield, '0') AS '數據'
FROM
(
SELECT
dateadd(d, number, '2018-11-01') dt
FROM
master..spt_values
WHERE
type = 'p'
AND dateadd(d, number, '2018-11-01') <= '2018-11-30'
) a
LEFT JOIN CE_BD_E_ELECTRIC_WORKSHIFT_T b ON a.dt = b.opdate
(4)資料庫值補0擴展閱讀:
注意事項
COALESCE是一個函數, (expression_1, expression_2, …,expression_n)依次參考各參數表達式,遇到非null值即停止並返回該值。如果所有的表達式都是空值,最終將返回一個空值。使用COALESCE在於大部分包含空值的表達式最終將返回空值。
場景一:你想要獲取最大值,然後+1返回(即返回的值已經默認為空了),程序接收了本來不該為空的值去運算,就會出錯。
SELECT MAX(my_money)+1 FROM tb_test;
改進方法:使用 coalesce函數 COALESCE(值1, 值2,......, 值n) ,只要遇到非null值就返回。
這樣子就可以設置一個值,讓你第一個不成功後,返回指定的值,如下面,返回的是1.
SELECT COALESCE(MAX(my_money)+1, 1) FROM tb_test;
Ⅳ 如何把資料庫中NULL值設置為0
1、如果還沒有導入數據,通用的做法是將表的這個欄位設置默認值為0,所以當新增的時候如果該欄位沒有給值就會默認0這個值
2、如果已經導入數據,則可以使用修改語句修改update 表名 set 表欄位='0' where ..... --這條是將表中某個欄位符合where條件的值設置為0
3、針對第一點
a、oracle 的修改語句是alter table 表名 modify 欄位名 default(0);
b、sqlserver需要刪除原有表的約束alter table 表名 drop constraint 約束名字
添加新約束並賦予默認值alter table 表名 add constraint 約束名字 DEFAULT 默認值 for 欄位名稱
Ⅵ 如何給資料庫的數據添加時自動補零
假如你是6位
select right('000000'+'212',6)
//212是你插入的值
Ⅶ 怎麼在SQL資料庫中填充「0」或者「1」這樣的數據
--循環插入:把十進制轉換成二進制,然後把二進制換成字元型,SUBSTRING取位插入CREATE FUNCTION dbo.inttobit (@number int)
returns varchar(100)
as
BEGIN
DECLARE @i int
DECLARE @j float
DECLARE @m int
DECLARE @OUT1 varCHAR(1)
DECLARE @OUT2 varchar(20)
SET @i=@number
set @out2=' '
WHILE @i>=1
BEGIN
SET @j=@i/2
SET @m=@i%2
SET @i=floor(@j)
SET @OUT1=cast(@m as char(1))
SET @OUT2=@OUT1+@OUT2
END
RETURN @OUT2
END
Ⅷ SQL怎樣在固定值後面補0
具體什麼資料庫?
以sqlserver,mysql,oracle各自為例:
sqlserver:
createtabletest
(點名varchar(20));
insertintotestvalues('HS901');
insertintotestvalues('HS9010');
insertintotestvalues('HS9010');
執行:
selectLEFT(點名+'00000000',8)fromtest
結果:
Ⅸ 在資料庫中怎麼讓int轉換成varchar時前邊添上0補位
sql server
set number = right(REPLICATE('0',7) + rtrim(id),7)
mysql
LPAD(id,7,'0')
Ⅹ 資料庫欄位補'0'
你好!
先看一下欄位屬性,長度能否達到5位
如果你只改一條001改為00001
update
table_name
set
欄位名='00001'
where
欄位名='001'
如果所有的都補兩個0
update
table_name
set
欄位名='00'+欄位名
如有疑問,請追問。