0
votes

L'ordre par expressions doit apparaître dans Sélectionner la liste

J'ai cette requête: xxx

Il renvoie: xxx

parfait!

Je voudrais Appliquez un distinct comme celui-ci (voir le mot-clé "distinct"): xxx

Il renvoie: xxx

J'ai essayé un beaucoup de choses sans succès. Comment puis-je faire cela?


2 commentaires

Vous ne voulez que une ligne par carte d'identité?


Oui absolument. Bur La solution que j'ai écrite ci-dessous convient à moi. Je pense que je vais l'adopter. Merci


3 Réponses :


1
votes

J'ai trouvé la solution comme celle-ci: xxx

Toutes les colonnes doivent apparaître dans la sélection (elle est écrite dans le message d'erreur ...). Désolé pour le désagrément ...


0 commentaires

0
votes
select distinct (j.id, j.short_name, j.status)
from jobs as j inner join job_translations as jt on j.id = jt.job_id 
where j.deleted_at is null 
and short_name ilike '%GES.PAY%' 
order by case when j.short_name = 'GES.PAY' then 0 else 1 end, j.short_name;
The ORDER BY clause cannot be applied before distinctit can only be applied after the DISTINCT been applied. Only the fields in the SELECT statement are taken into consideration for the DISTINCT operations, those are the only fields may be used in the ORDER BY.

2 commentaires

distinct est pas une fonction. Votre requête renvoie une colonne Single un type d'enregistrement anonyme avec trois champs


Salut malik. Merci pour votre réponse. Quand j'ai ajouté le (), j'ai le même message d'erreur. Votre solution ne fonctionne pas ...



1
votes

Vous pouvez mettre les distincts dans une table dérivée (sous-requête AKA), puis appliquer la commande par la requête extérieure: xxx

si vous souhaitez choisir un identifiant unique, vous souhaitez Peut également utiliser distinct sur () xxx


0 commentaires