Dacă e să fie poezie, dară să fie poezie ...
...
declare @i bigint
declare @char varchar(1)
set @i=1
while @i<len(@NR)
begin
select @char=substring(@NR,@i,1)
if @char in ('0','1','2','3','4','5','6','7','8','9')
begin
set @i=@i+1
continue
end
set @NR=replace(@NR,@char,convert(varchar,ascii(@char)-55))
set @i=@i+1
end
...
||
\/
CREATE TABLE Corepondenta (C CHAR(1) PRIMARY KEY, N CHAR(2) NOT NULL);
INSERT INTO Corepondenta VALUES ('A','10');INSERT INTO Corepondenta VALUES ('B','11');INSERT INTO Corepondenta VALUES ('C','12');...
Având în vedere
declare @NR varchar(100)
atunci secvenţa de cod de mai sus va fi înlocuită de:
UPDATE Corepondeta SET @NR = REPLACE(@NR,C,N)
Vorba poetului: dacă e set oriented atunci să fie set oriented. Există şi niste semne de întrebare.
PS: Există o variantă şi pentru fanii codurilor ASCII