Applicables en cas de clause Order by en SQL
Voudrais trier les données suivantes de la façon permet dans l'ordre de choix des mots clés en fonction de la clause like:
Données dans le tableau:
EmpId EmpLotusNotes
10001 Amit B/India
20002 Bharat C/India
30003 Kyo Jun/Japan
40004 Jee Lee/China
50005 Xavier K/USA
La présentation de l'/trié en fonction de certains pays de l'ordre (Japon, Chine, Inde, etats-unis):
EmpId EmpLotusNotes
30003 Kyo Jun/Japan
40004 Jee Lee/China
10001 Amit B/India
20002 Bharat C/India
50005 Xavier K/USA
Note: je ne peux pas créer une autre table qui tient le pays de l'ordre ou de toute autre modification.
- SQL Server 2008 R2 Pas
- Merci de poster votre SQL clause SELECT, nous ne pouvons pas vous aider sans que. Si vous pouviez créer un SQLFiddle, ce serait génial...
- Sont les noms de pays dans une colonne distincte ou d'une partie de la colonne EmpLotusNotes?
- Cela semble très similaire à la précédente réponse: stackoverflow.com/questions/13196010/...
- merci. Regarde comme il l'aidera.
- et pourquoi le Japon avant de la Chine dans la commande ? Des raisons politiques 😉 ?
- Double de stackoverflow.com/questions/8187828/...
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est la table viole première forme normale, EmpLotusNotes ne doit pas contenir le nom d'un employé et le pays, sans doute le pays où ils travaillent.
Vous devez contester les raisons pour lesquelles vous n'êtes pas autorisé à nettoyer la structure et les données.
Voir https://www.google.com.au/search?q=sql+première+normal+forme+atomique
La réponse, si vous ne parvenez toujours pas à normaliser la base de données après difficile, c'est de créer une requête pour les pays, de créer une requête pour fractionner les données dans le premier tableau, en première forme normale, puis rejoindre les deux.
Un exemple qui fonctionne pour mysql suit, pour MS SQL vous utilisez CHARINDEX à la place de l'INSTRUMENT et de la sous-chaîne au lieu de substr.
Résultats.
Cela devrait faire un truc:
Peut-être:
et voici le DÉMO
Vous pouvez utiliser une Expression de Table Commune pour traiter les données brutes de la première et de faire de votre filtrage et/ou de la commande sur les données traitées plus tard. Quelque chose comme ci-dessous. La fonction de myCol peut être modifié avec n'importe quel type de fonction, même en CAS de clause.