Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL mengubah data string dalam format heksadesimal menjadi teks string

Untuk MS-SQL 2008 proc tersimpan berikut akan mengubah string hex menjadi varchar(max):

if exists (select * from dbo.sysobjects where name = 'f_hextostr' and xtype = 'FN')
drop function [dbo].[f_hextostr]
GO

CREATE FUNCTION [dbo].[f_hextostr] (@hexstring VARCHAR(max))
RETURNS VARCHAR(max)

AS

begin
 declare @char1 char(1), @char2 char(1), @strlen int, @currpos int, @result varchar(max)
 set @strlen=len(@hexstring)
 set @currpos=1
 set @result=''
 while @currpos<@strlen
  begin
   set @char1=substring(@hexstring,@currpos,1)
   set @char2=substring(@hexstring,@currpos+1,1)
   if (@char1 between '0' and '9' or @char1 between 'A' and 'F')
    and (@char2 between '0' and '9' or @char2 between 'A' and 'F')
    set @[email protected]+
     char((ascii(@char1)-case when @char1 between '0' and '9' then 48 else 55 end)*16+
     ascii(@char2)-case when @char2 between '0' and '9' then 48 else 55 end)
   set @currpos = @currpos+2
  end
 return @result
end
GO

Untuk menggunakan cukup lakukan sesuatu seperti:

select dbo.f_hextostr('0x3031323')

atau

select dbo.f_hextostr(X) from MyTable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghitung hari akhir pekan dari rentang tanggal

  2. Kembalikan Nama Server Lokal di SQL Server dengan @@SERVERNAME

  3. Pencarian SQL Disesuaikan dengan karakter khusus

  4. ekspor ke Excel dari daftar dengan EPPLUS

  5. SQL:Transpose Nyata