###Zaunpfahl###
Lt. Commander
- Registriert
- Jan. 2010
- Beiträge
- 1.600
Hallo
ich bräucht mal hilfe in SQL
arbeite mom mit MS SQL 2012, sollte aber auch auf 2008 laufen
So was hab ich denn überhaupt vor.
Quelle ist eine Tabelle mit einer ID.
Die id ist ein varchar (mit slashes...wie ich aber den brauchbaren teil bekommen habe ich schon..) und soll in eine andere tabelle umgewandelt in decimal system und als int eingfügt werden.
Wie das geht hab ich schon.
Blos das ganze funktioniert mit nur einem "hexstring".
Es sollen aber alle ids der quell tabelle umgerechnet und in die neue tabelle eingetragen werden.
Jemand ne idee wie man das am besten macht?
Hierzu hätt ich dann auch noch eine weitere Frage!
Ist es denn irgendwie möglich code zu verlinken??
Bzw. aufzurufen.. so wie Methoden? Dann könnte man das ganze auch ein wenig schöner und überslichtlicher gestalten können...
ich bräucht mal hilfe in SQL
arbeite mom mit MS SQL 2012, sollte aber auch auf 2008 laufen
So was hab ich denn überhaupt vor.
Quelle ist eine Tabelle mit einer ID.
Die id ist ein varchar (mit slashes...wie ich aber den brauchbaren teil bekommen habe ich schon..) und soll in eine andere tabelle umgewandelt in decimal system und als int eingfügt werden.
Wie das geht hab ich schon.
Blos das ganze funktioniert mit nur einem "hexstring".
Es sollen aber alle ids der quell tabelle umgerechnet und in die neue tabelle eingetragen werden.
Jemand ne idee wie man das am besten macht?
Hierzu hätt ich dann auch noch eine weitere Frage!
Ist es denn irgendwie möglich code zu verlinken??
Bzw. aufzurufen.. so wie Methoden? Dann könnte man das ganze auch ein wenig schöner und überslichtlicher gestalten können...
Code:
-- Ein Hexadezimalstring ohne 0x als Präfix
declare @hexstring varchar(30)
-- Ist der aktuelle Char, also stelle im atkuellen durchlauf
declare @hexchar varchar(5)
declare @sum bigint
declare @i bigint
declare @n bigint
set @i = 0
set @n = 0
set @sum = 0
set @hexstring = '1234'
while @i<LEN(@hexstring)
begin
set @hexchar = LEFT(RIGHT(@hexstring, @i+1), 1)
set @n =
CASE @hexchar
WHEN '0' THEN 0
WHEN '1' THEN 1
WHEN '2' THEN 2
WHEN '3' THEN 3
WHEN '4' THEN 4
WHEN '5' THEN 5
WHEN '6' THEN 6
WHEN '7' THEN 7
WHEN '8' THEN 8
WHEN '9' THEN 9
WHEN 'A' THEN 10
WHEN 'B' THEN 11
WHEN 'C' THEN 12
WHEN 'D' THEN 13
WHEN 'E' THEN 14
WHEN 'F' THEN 15
END
set @sum=@sum+@n*POWER(16, @i)
set @i=@i+1
END
select @sum as sum, @i as i, @n as n, LEN(@hexstring) as hexstring, @hexchar as hexchar