Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как извернуться в запросе , чтобы преобразовать char в hex (dec) / 7 сообщений из 7, страница 1 из 1
27.12.2001, 16:33
    #32019962
Vit.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извернуться в запросе , чтобы преобразовать char в hex (dec)
AFAIK, писать в MSSQL7 UDF'ы нельзя, а надо иметь возможность
представлять символы 'A'-'F' как соотв. цифры 10-15
Кто что предложит сделать это имеющимися cast, convert итп
...
Рейтинг: 0 / 0
28.12.2001, 07:05
    #32019982
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извернуться в запросе , чтобы преобразовать char в hex (dec)
REPLACE
...
Рейтинг: 0 / 0
28.12.2001, 07:08
    #32019984
Fompro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извернуться в запросе , чтобы преобразовать char в hex (dec)
--**************************************
--
-- Name: HEX string value to int convers
-- ion.sql
-- Description:Code to convert a hexadec
-- imal value stored in a string to integer
--
-- By: Umachandar
--
--This code is copyrighted and has-- limited warranties.Please see http://
-- www.Planet-Source-Code.com/xq/ASP/txtCod
-- eId.123/lngWId.5/qx/vb/scripts/ShowCode.
-- htm--for details.--**************************************
--
CREATE TABLE Numbers( number int )
-- where number is between 1 and 255 or
-- so.
DECLARE @t varchar (
SELECT @t = 'FFFFFFFF'
SELECT sum(
CASE lower( substring( hexstr , number , 1 ) )
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 * convert( decimal( 28 , 0 ) , power( 16 , number - 1 ) )
)
FROM
(
SELECT reverse( @t ) AS hexstr
) AS h1
join
Numbers n
ON number BETWEEN 1 AND len( hexstr )
go
...
Рейтинг: 0 / 0
28.12.2001, 08:23
    #32019998
BiSas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извернуться в запросе , чтобы преобразовать char в hex (dec)
Мне кажется можно сделать проще
select convert(int,convert(varbinary(4),'0xAF01'))
...
Рейтинг: 0 / 0
28.12.2001, 08:40
    #32019999
BiSas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извернуться в запросе , чтобы преобразовать char в hex (dec)
Пардон! Глупость сморозил.
...
Рейтинг: 0 / 0
28.12.2001, 10:15
    #32020006
Vit.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извернуться в запросе , чтобы преобразовать char в hex (dec)
2GreenSunrise
При выборе из таблицы заранее не известно какой символ появится, поэтому вставить
REPLACE в select запрос не получится
Значит "на лету" преобразования нет.Будем думать
Всем спасибо
...
Рейтинг: 0 / 0
29.12.2001, 09:29
    #32020062
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как извернуться в запросе , чтобы преобразовать char в hex (dec)
Ну кое-что можно сделать и cast'ом... Во всяком случае у меня получилось. Но это слишком громоздко. Раз нельзя функции писать, то, наверное, оптимально будет создать таблицу маппинга символов в инты. Пока ничего лучше не придумалось.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как извернуться в запросе , чтобы преобразовать char в hex (dec) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]