是否有一個函式或者你將如何實作一個函式來檢查字串的最后兩個字符并將這個字串轉換為位元組?
比如“1GB”
convert('1GB')
returns=1073741824
它還需要檢查它是否是 MB 和 TB。
謝謝!
uj5u.com熱心網友回復:
以下是我將如何實作這樣一個函式 - 作為一個表值函式,然后您可以通過相關子查詢、連接或應用來使用它:
create or alter function ValueToBytes(@input varchar(10))
returns table as
return
select Try_Convert(bigint,Replace(v.input,v.ext,'')) * multi [Value]
from (select @input input,Right(@input,2) ext)v
join (
select ext, multi
from (values
('KB',Power(Convert(bigint,1024),1)),
('MB',Power(convert(bigint,1024),2)),
('GB',Power(convert(bigint,1024),3)),
('TB',Power(convert(bigint,1024),4)),
('PB',Power(convert(bigint,1024),5)),
('EB',Power(convert(bigint,1024),6))
)m(ext,multi)
)m on m.ext=v.ext
簡單用法:
select * from ValueToBytes('10GB')
select * from ValueToBytes('5MB')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449521.html
上一篇:將nvarchar值轉換為資料型別intsqlserver時轉換失敗
下一篇:決議具有多個id的表中的JSON
