2009-09-16 7 views
0

J'essaie d'écrire une requête SQL qui remplirait une liste déroulante d'emplacements. En outre, j'ai besoin de la requête pour sélectionner automatiquement l'emplacement associé à un utilisateur (par exemple: être le premier dans les résultats de la liste.) J'ai eu ce qui suit, mais j'ai récemment réalisé que la liste n'est pas complètement alphabétisée. Pour ajouter un autre niveau à ceci, supposons que je n'ai que l'accès SELECT à cette base de données.Liste alphabétique de la requête avec une ligne associée spécifique sélectionnée dans la liste déroulante

select 
    [LOCATION] 
from User_Table 
where [ALIAS] = 'UserName' 
UNION all 

select 
    distinct [LOCATION] 
from Location_Table 
where [STATUS_VALUE] ='Open' 

Si je « l'ordre de 1 », l'emplacement associé à l'utilisateur est mélangé avec les autres et non le premier élément de la liste.

Toute aide serait géniale.

EDIT: Peut-être que cela aidera à le rendre plus clair. La plus grande liste d'emplacements semble être construite par ordre alphabétique en fonction de leurs index. Donc, à mi-chemin dans la liste, je reçois des résultats comme celui-ci:

WOODBRIDGE YOKOTA/JAPON ABERDEEN Proving Grounds ALBUQUERQUE

Répondre

1
SELECT [LOCATION] 
FROM 
(
select 
    [LOCATION], 1 AS [Sort] 
from User_Table 
where [ALIAS] = 'UserName' 
UNION all 

select 
    distinct [LOCATION], 0 AS [Sort] 
from Location_Table 
where [STATUS_VALUE] ='Open' 
) Locations 
ORDER BY [Sort] 
+0

valeurs de tri sont en arrière pour les utilisateurs Lieu apparaissent en premier. –

+0

Fait intéressant, cela produit les mêmes résultats que ma requête, sauf que l'emplacement actuel est en bas. Ajout de "desc", à elle fournit exactement les mêmes résultats. Merci! – jktravis

+0

Presque, assez proche :) Pouvez-vous marquer cela comme réponse? –

Questions connexes