2017-07-03 10:04 GMT-04:00 José Fermín Francisco Ferreras < josefermi...@hotmail.com>:
> Bueno días! > > > Favor ayudarme con el siguiente caso tengo una tabla de clientes donde se > guarda el sexo. > > Quisiera ver la forma donde yo pueda visualizar los registros de mediante > un select de manera alternada. > > > Ejemplo: > > Necesito alternar la información de la siguiente manera: presentar los > datos que se alternarlos por sexo (osea primero una mujer y luego un > hombre, luego una mujer y después un hombre, así sucesivamente). > > > *nombre, apellido, sexo* > > juana, garcía, femenino > > pedro, lopez, masculino > > maría, flores, femenino > > luis, jimenes, masculino > > > > ing. Jos?? Ferm??n Francisco Ferreras > San Francisco de Macor??s, Rep. Dom. > Hola. Puedes usar funciones de ventana (*row_number()*) para asignar a cada registro el número de linea y con un simple cálculo hacer que el sexo femenino tenga números impares (*(n * 2) - 1*) y el sexo masculino tenga números pares *(n * 2)*. Luego ordenar basado en esta columna calculada y ya está. Te paso un ejemplo que lo puedes modificar a tu gusto. select nombre, apellido, sexo, case when sexo = 'femenino' then (row_number() over (partition by sexo)) * 2 - 1 when sexo = 'masculino' then (row_number() over (partition by sexo)) * 2 end orden from mitabla order by orden Saludos, Walter