Строка в WIN-кодировке
01.01.2007
-- Возвращает строку в WIN кодировке, на базе WIN_DOS_String()
-- dbo.DOS_WIN_STRING(expression)
-- expression - строка в DOS кодировке
CREATE FUNCTION dbo.DOS_WIN_STRING
(
@ds VARCHAR(8000) -- строка в DOS кодировке
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @ss int, -- счетчик
@ws varchar(8000), -- WIN строка
@ls int, -- длина обр. строки
@os int -- код 1-го обраб-го символа
SET @ws=''
SET @ls=LEN(@ds)
SET @ss=0
WHILE @ss<@ls
BEGIN
SET @os=ASCII(SUBSTRING(@ds,1,1))
SET @ws=@ws+CASE
WHEN @os>=128 AND @os<=180 THEN CHAR(@os+64)-- 192.239
WHEN @os>=224 AND @os<=239 THEN CHAR(@os+16)-- 240.256
WHEN @os=240 THEN CHAR(168) --Ё
WHEN @os=241 THEN CHAR(184) --ё
ELSE CHAR(@os)
END
SET @ss=@ss+1
SET @ds=SUBSTRING(@ds,2,LEN(@ds)-1)
END
RETURN @ws
END
Взято с Vingrad.ru https://forum.vingrad.ru