Voilà je recherche à construire une requete sql qui me permette d'extraire
d'une table la première entrée de chaque lettre alphabétique par apport à un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier
contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1 lettre
(ici 'a') :
SELECT TOP 1 t_Contact.contact
FROM t_Contact
WHERE t_Contact.contactLIKE N'a%'
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
AXL
Bon ma requete c'est pas la joie mais c'est un debut et ca fonctionne
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'A%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'B%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'C%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'D%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'E%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'F%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'G%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'H%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'I%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'J%'
"lo" a écrit dans le message de news:bn9i7d$601$
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire d'une table la première entrée de chaque lettre alphabétique par apport à
un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1
lettre
(ici 'a') : SELECT TOP 1 t_Contact.contact FROM t_Contact WHERE t_Contact.contactLIKE N'a%'
Merci d'avance pour ce casse tête.
Bon ma requete c'est pas la joie mais c'est un debut et ca fonctionne
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'A%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'B%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'C%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'D%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'E%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'F%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'G%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'H%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'I%'
union
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact)
like 'J%'
"lo" <icioula@ailleurs.com> a écrit dans le message de
news:bn9i7d$601$1@aphrodite.grec.isp.9tel.net...
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire
d'une table la première entrée de chaque lettre alphabétique par apport à
un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier
contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1
lettre
(ici 'a') :
SELECT TOP 1 t_Contact.contact
FROM t_Contact
WHERE t_Contact.contactLIKE N'a%'
Bon ma requete c'est pas la joie mais c'est un debut et ca fonctionne
select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'A%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'B%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'C%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'D%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'E%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'F%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'G%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'H%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'I%' union select top 1 t_Contact.contact from t_Contact where upper(t_Contact.contact) like 'J%'
"lo" a écrit dans le message de news:bn9i7d$601$
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire d'une table la première entrée de chaque lettre alphabétique par apport à
un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1
lettre
(ici 'a') : SELECT TOP 1 t_Contact.contact FROM t_Contact WHERE t_Contact.contactLIKE N'a%'
Merci d'avance pour ce casse tête.
Fred BROUARD
1) Faire une table contenant les lettres de l'alphabet Par exemple : CREATE TABLE T_ALPHABET_ALB (ALB_LETTRE CHAR(1) NOT NULL PRIMARY KEY)
2) Y insérer toutes les lettres de a à z INSERT INTO T_ALPHABET_ALB VALUES ('a') ... INSERT INTO T_ALPHABET_ALB VALUES ('z')
3) faire la requête suivante : SELECT MIN(CONTACT) FROM T_CONTACT CTC INNER JOIN T_ALPHABET_ALB ALB ON UPPER(SUBSTRING(CONTACT, 1, 1) = UPPER(LETTRE) GROUP BY LETTRE
A +
lo a écrit:
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire d'une table la première entrée de chaque lettre alphabétique par apport à un champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1 lettre (ici 'a') : SELECT TOP 1 t_Contact.contact FROM t_Contact WHERE t_Contact.contactLIKE N'a%'
Merci d'avance pour ce casse tête.
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
1) Faire une table contenant les lettres de l'alphabet
Par exemple :
CREATE TABLE T_ALPHABET_ALB
(ALB_LETTRE CHAR(1) NOT NULL PRIMARY KEY)
2) Y insérer toutes les lettres de a à z
INSERT INTO T_ALPHABET_ALB VALUES ('a')
...
INSERT INTO T_ALPHABET_ALB VALUES ('z')
3) faire la requête suivante :
SELECT MIN(CONTACT)
FROM T_CONTACT CTC
INNER JOIN T_ALPHABET_ALB ALB
ON UPPER(SUBSTRING(CONTACT, 1, 1) = UPPER(LETTRE)
GROUP BY LETTRE
A +
lo a écrit:
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire
d'une table la première entrée de chaque lettre alphabétique par apport à un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier
contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1 lettre
(ici 'a') :
SELECT TOP 1 t_Contact.contact
FROM t_Contact
WHERE t_Contact.contactLIKE N'a%'
Merci d'avance pour ce casse tête.
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
1) Faire une table contenant les lettres de l'alphabet Par exemple : CREATE TABLE T_ALPHABET_ALB (ALB_LETTRE CHAR(1) NOT NULL PRIMARY KEY)
2) Y insérer toutes les lettres de a à z INSERT INTO T_ALPHABET_ALB VALUES ('a') ... INSERT INTO T_ALPHABET_ALB VALUES ('z')
3) faire la requête suivante : SELECT MIN(CONTACT) FROM T_CONTACT CTC INNER JOIN T_ALPHABET_ALB ALB ON UPPER(SUBSTRING(CONTACT, 1, 1) = UPPER(LETTRE) GROUP BY LETTRE
A +
lo a écrit:
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire d'une table la première entrée de chaque lettre alphabétique par apport à un champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1 lettre (ici 'a') : SELECT TOP 1 t_Contact.contact FROM t_Contact WHERE t_Contact.contactLIKE N'a%'
Merci d'avance pour ce casse tête.
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Daniel Carollo
Bonjour lo!
Ne serais-ce pas plus simple de faire un regroupement sur la premiere lettre d'abord?
Du genre: SELECT au_lname from authors where au_id in (select Max(au_id) FROM authors group by Left(au_lname, 1)) ORDER BY au_lnameSELECT au_lname from authors where
S'il n'y a personne avec une certaine lettre, alors cette lettre ne sort pas.
-- Daniel :-)
Computing Technologies International - www.computing-tech.com - We provide solutions...
"lo" wrote in message news:bn9i7d$601$
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire d'une table la première entrée de chaque lettre alphabétique par apport à
un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1
lettre
(ici 'a') : SELECT TOP 1 t_Contact.contact FROM t_Contact WHERE t_Contact.contactLIKE N'a%'
Merci d'avance pour ce casse tête.
Bonjour lo!
Ne serais-ce pas plus simple de faire un regroupement sur la premiere lettre
d'abord?
Du genre:
SELECT au_lname from authors where
au_id in (select Max(au_id) FROM authors group by Left(au_lname, 1))
ORDER BY au_lnameSELECT au_lname from authors where
S'il n'y a personne avec une certaine lettre, alors cette lettre ne sort
pas.
--
Daniel :-)
Computing Technologies International - www.computing-tech.com - We
provide solutions...
"lo" <icioula@ailleurs.com> wrote in message
news:bn9i7d$601$1@aphrodite.grec.isp.9tel.net...
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire
d'une table la première entrée de chaque lettre alphabétique par apport à
un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier
contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1
lettre
(ici 'a') :
SELECT TOP 1 t_Contact.contact
FROM t_Contact
WHERE t_Contact.contactLIKE N'a%'
Ne serais-ce pas plus simple de faire un regroupement sur la premiere lettre d'abord?
Du genre: SELECT au_lname from authors where au_id in (select Max(au_id) FROM authors group by Left(au_lname, 1)) ORDER BY au_lnameSELECT au_lname from authors where
S'il n'y a personne avec une certaine lettre, alors cette lettre ne sort pas.
-- Daniel :-)
Computing Technologies International - www.computing-tech.com - We provide solutions...
"lo" wrote in message news:bn9i7d$601$
Bonjour,
Voilà je recherche à construire une requete sql qui me permette d'extraire d'une table la première entrée de chaque lettre alphabétique par apport à
un
champ.
Par exemple, si j'ai une table contact, je voudrais extraire le premier contact pour chaque lettre (M. Aaron, Mme Babe, M. Cabi...).
La requête suivante permet de sortir le premier... mais pour juste 1
lettre
(ici 'a') : SELECT TOP 1 t_Contact.contact FROM t_Contact WHERE t_Contact.contactLIKE N'a%'