Order by Hex

02/12/2004 - 17:02 por NickName | Informe spam
buen día...

cómo puedo ordenar por un campo con valores hexadecimales, pero el tipo de
datos es un varchar(10) (debo cambiarlo?)

porque al intentar me ordena como un string y no en orden numérico
hexadecimal ¿?

muchas gracias por cualquier ayuda.

_____________________________________
intente, pero nada:
SELECT DISTINCT Topico.Id, CAST(code AS varbinary(1)) AS hex
FROM miTabla
ORDER BY hex

Preguntas similare

Leer las respuestas

#6 NickName
02/12/2004 - 21:37 | Informe spam
cómo dentro de la query puedo transformar un número hexad a decimal ¿?
de ser así tengo la solución para ordenar


"Víctor Rafael Bocanegra Arias" escribió en
el mensaje news:
y xq no solamente convierten la cadena a NUMERO, al final se tiene que
ordenar en orden NUMERICO no creen ;)

Salu2

Victor


"ulises" escribió en el mensaje
news:0b1901c4d89f$b5d7b970$
Lo único que se me ocurre es cambiarlo a binario y luego
esa representación hexadecimal llevarla a una cadena, algo
como :

DECLARE @cadena varchar(10)
DECLARE @binario varbinary(10)
SELECT @binario = CONVERT(varbinary(10),'ABC')
EXEC master.dbo.xp_varbintohexstr @binario, @cadena OUTPUT
SELECT @cadena

-
0x414243

(1 row(s) affected)

pero no se me ocurre como ejecutarla para todas las filas
sin usar un cursor :(

Saludos,
Ulises

>buen día...
>
>cómo puedo ordenar por un campo con valores hexadecimales,
pero el tipo de
>datos es un varchar(10) (debo cambiarlo?)
>
>porque al intentar me ordena como un string y no en orden
numérico
>hexadecimal ¿?
>
>muchas gracias por cualquier ayuda.
>
>_____________________________________
>intente, pero nada:
>SELECT DISTINCT Topico.Id, CAST(code AS varbinary(1)) AS hex
>FROM miTabla
>ORDER BY hex
>
>
>.
>


Respuesta Responder a este mensaje
#7 NickName
02/12/2004 - 21:41 | Informe spam
Gustavo no entendí tu pregunta, pero trataré de informarte:
la columna es del tipo varchar(10),
registros tipos son: 4c, f, 7b (equivalente a 76, 15, 123 en decimal)
y lo que quiero es ordenar la tabla en relación a este campo cómo ¿? ni
idea

gracias por las ayudas cualquier comentario sirve.


"Gustavo Larriera [MVP]" escribió en el mensaje
news:
Puedes brindarnos un ejemplo de cómo son los datos que tienes almacenados?
Son strings recostados a derecha o izquierda? Tienen relleno por izquierda


o
no?

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> wrote in message
news:
> cualquier ayuda me sirve... no sé cómo solucionarlo.
>
> gracias.
>
>
> "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
> mensaje news:u217u$
>> buen día...
>>
>> cómo puedo ordenar por un campo con valores hexadecimales, pero el tipo
>> de
>> datos es un varchar(10) (debo cambiarlo?)
>>
>> porque al intentar me ordena como un string y no en orden numérico
>> hexadecimal ¿?
>>
>> muchas gracias por cualquier ayuda.
>>
>> _____________________________________
>> intente, pero nada:
>> SELECT DISTINCT Topico.Id, CAST(code AS varbinary(1)) AS hex
>> FROM miTabla
>> ORDER BY hex
>>
>>
>
>


Respuesta Responder a este mensaje
#8 Víctor Rafael Bocanegra Arias
02/12/2004 - 21:52 | Informe spam
1ro... con que version de MSSQL trabajas?... si es que trabajas con MSSQL
2000, lo q puedes hacer es una funcion que te convierta tu Numero
HEXADECIMAL en numero de base 10

Salu2

Victor

"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
mensaje news:%23B3I%
cómo dentro de la query puedo transformar un número hexad a decimal ¿?
de ser así tengo la solución para ordenar


"Víctor Rafael Bocanegra Arias" escribió en
el mensaje news:
y xq no solamente convierten la cadena a NUMERO, al final se tiene que
ordenar en orden NUMERICO no creen ;)

Salu2

Victor


"ulises" escribió en el mensaje
news:0b1901c4d89f$b5d7b970$
Lo único que se me ocurre es cambiarlo a binario y luego
esa representación hexadecimal llevarla a una cadena, algo
como :

DECLARE @cadena varchar(10)
DECLARE @binario varbinary(10)
SELECT @binario = CONVERT(varbinary(10),'ABC')
EXEC master.dbo.xp_varbintohexstr @binario, @cadena OUTPUT
SELECT @cadena

-
0x414243

(1 row(s) affected)

pero no se me ocurre como ejecutarla para todas las filas
sin usar un cursor :(

Saludos,
Ulises

>buen día...
>
>cómo puedo ordenar por un campo con valores hexadecimales,
pero el tipo de
>datos es un varchar(10) (debo cambiarlo?)
>
>porque al intentar me ordena como un string y no en orden
numérico
>hexadecimal ¿?
>
>muchas gracias por cualquier ayuda.
>
>_____________________________________
>intente, pero nada:
>SELECT DISTINCT Topico.Id, CAST(code AS varbinary(1)) AS hex
>FROM miTabla
>ORDER BY hex
>
>
>.
>






Respuesta Responder a este mensaje
#9 NickName
02/12/2004 - 22:34 | Informe spam
muchas gracias, lo revisaré...

"Gustavo Larriera [MVP]" escribió en el mensaje
news:
Mi pregunta se orienta a lo siguiente: Si los números hexadecimales están
almacenados en un texto recostado a la derecha y con caracteres de relleno
por izquierda, por ejemplo: 000000004c, 000000000f, 000000007b... entonces
el ordenamiento alfabetico coincide con el ordenamiento hexadecimal :-)

Entonces podrias orientar la solución a: simplemente rellenar con 0 a la
izquierda. En este mismo foro ya hemos hablado acerca de cómo hacerlo.

use tempdb
go

create table hexa (hexstring varchar(10))
go

insert hexa values ('000000004c')
insert hexa values ('000000000f')
insert hexa values ('000000007b')
go

select * from hexa order by hexstring

select * from hexa order by hexstring desc

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> wrote in message
news:OQW%
> Gustavo no entendí tu pregunta, pero trataré de informarte:
> la columna es del tipo varchar(10),
> registros tipos son: 4c, f, 7b (equivalente a 76, 15, 123 en decimal)
> y lo que quiero es ordenar la tabla en relación a este campo cómo ¿?
> ni
> idea
>
> gracias por las ayudas cualquier comentario sirve.
>
>
> "Gustavo Larriera [MVP]" escribió en el


mensaje
> news:
>> Puedes brindarnos un ejemplo de cómo son los datos que tienes
>> almacenados?
>> Son strings recostados a derecha o izquierda? Tienen relleno por
>> izquierda
> o
>> no?
>>
>> Gustavo Larriera, MVP
>> Uruguay LatAm
>> http://sqljunkies.com/weblog/gux/
>> Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga


ningun
>> derecho / This posting is provided "AS IS" with no warranties, and
>> confers
>> no rights.
>> "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> wrote in
>> message
>> news:
>> > cualquier ayuda me sirve... no sé cómo solucionarlo.
>> >
>> > gracias.
>> >
>> >
>> > "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en
>> > el
>> > mensaje news:u217u$
>> >> buen día...
>> >>
>> >> cómo puedo ordenar por un campo con valores hexadecimales, pero el
>> >> tipo
>> >> de
>> >> datos es un varchar(10) (debo cambiarlo?)
>> >>
>> >> porque al intentar me ordena como un string y no en orden numérico
>> >> hexadecimal ¿?
>> >>
>> >> muchas gracias por cualquier ayuda.
>> >>
>> >> _____________________________________
>> >> intente, pero nada:
>> >> SELECT DISTINCT Topico.Id, CAST(code AS varbinary(1)) AS hex
>> >> FROM miTabla
>> >> ORDER BY hex
>> >>
>> >>
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#10 Víctor Rafael Bocanegra Arias
02/12/2004 - 23:00 | Informe spam
lo que tendrias que ejecutar seria algo como esto:

update tblDatos
set numeros-hexa= replicate(10-len(numeros-hexa),'0')+numeros-hexa

suerte

salu2

Victor

"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
mensaje news:%
claro!?, quiero probar primero con la idea de Gustavo, pero tengo una
pregunta, y dejo de molestar =), hay una forma de generar un texto
recostado
a la derecha.
hoy tengo los números-hexa en varchar(10), ejemplo '4ce'... cómo lo puedo
llevar a un '00000004ce'

gracias por toda la colaboración... y por esta de antemano.



"Víctor Rafael Bocanegra Arias" escribió en
el mensaje news:
1ro... con que version de MSSQL trabajas?... si es que trabajas con MSSQL
2000, lo q puedes hacer es una funcion que te convierta tu Numero
HEXADECIMAL en numero de base 10

Salu2

Victor

"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
mensaje news:%23B3I%
> cómo dentro de la query puedo transformar un número hexad a decimal ¿?
> de ser así tengo la solución para ordenar
>
>
> "Víctor Rafael Bocanegra Arias" escribió


en
> el mensaje news:
>> y xq no solamente convierten la cadena a NUMERO, al final se tiene que
>> ordenar en orden NUMERICO no creen ;)
>>
>> Salu2
>>
>> Victor
>>
>>
>> "ulises" escribió en el mensaje
>> news:0b1901c4d89f$b5d7b970$
>> Lo único que se me ocurre es cambiarlo a binario y luego
>> esa representación hexadecimal llevarla a una cadena, algo
>> como :
>>
>> DECLARE @cadena varchar(10)
>> DECLARE @binario varbinary(10)
>> SELECT @binario = CONVERT(varbinary(10),'ABC')
>> EXEC master.dbo.xp_varbintohexstr @binario, @cadena OUTPUT
>> SELECT @cadena
>>
>> -
>> 0x414243
>>
>> (1 row(s) affected)
>>
>> pero no se me ocurre como ejecutarla para todas las filas
>> sin usar un cursor :(
>>
>> Saludos,
>> Ulises
>>
>> >buen día...
>> >
>> >cómo puedo ordenar por un campo con valores hexadecimales,
>> pero el tipo de
>> >datos es un varchar(10) (debo cambiarlo?)
>> >
>> >porque al intentar me ordena como un string y no en orden
>> numérico
>> >hexadecimal ¿?
>> >
>> >muchas gracias por cualquier ayuda.
>> >
>> >_____________________________________
>> >intente, pero nada:
>> >SELECT DISTINCT Topico.Id, CAST(code AS varbinary(1)) AS hex
>> >FROM miTabla
>> >ORDER BY hex
>> >
>> >
>> >.
>> >
>>
>>
>
>






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida