Yo decía algo así... aunque repito, no es lo más eficiente (porque tendrías que hacer dos consultas)
Código PHP:
$sql1='select campo1, campo2,campo3.... from tabla where campoX <> "" order by campoX ASC';
$result1=mysql_query($sql1);
while($row1=mysql_fetch_array($result1)){
echo $row1["campo1"]."-".$row1["campo2"]."-".$row1["campo3"]."-"......$row1["campoX"];
}
//HASTA AQUI YA IMPRIMI LOS CAMPOS QUE NO ESTAN VACIOS....
//HAGO UNA NUEVA CONSULTA PARA LOS DATOS VACIOS
$sql2='select campo1, campo2,campo3.... from tabla where campoX == "" ';
$result2=mysql_query($sql2);
while($row2=mysql_fetch_array($result2)){
echo $row2["campo1"]."-".$row2["campo2"]."-".$row2["campo3"]."-"......$row2["campoX"];
}
//AQUI IMPRIMO LOS QUE TIENEN VACIO EL CAMPOX
Aunque como dije antes, no es una solución óptima. La opción proporcionada por
k4 es mejor porque solo hace una consulta
saludos