Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraction d'une sous-chaîne sous SQL Server

5 réponses
Avatar
Eric
Bonjour,

J'aurais besoin de trier le résultat d'une requête sur les 6 premiers
caractères d'une rubrique. Or, il semblerait bien que SQL Server n'offre
aucune fonction pour cela.

Avez-vous une solution ? Merci d'avance.

--
Eric

5 réponses

Avatar
Eric
Le 20 janvier 2007 à 13:07, dans
<news:45b20600$0$6157$, Antoun nous disait :

Eric wrote:

J'aurais besoin de trier le résultat d'une requête sur les 6 premiers
caractères d'une rubrique. Or, il semblerait bien que SQL Server n'offre
aucune fonction pour cela.



de mémoire, tu as LEFT et/ou SUBSTRING



J'avais vu ces fonctions, mais LEFT est réservé pour les jointures et
SUBSTRING (ou SUBSTR) n'est pas supporté par SQL Server...

--
Eric
Avatar
Antoun
J'avais vu ces fonctions, mais LEFT est réservé pour les jointures et
SUBSTRING (ou SUBSTR) n'est pas supporté par SQL Server...




tu confonds le mot-clé LEFT, utilisé avec JOIN, et la fonction
LEFT(texte, nb_caracteres), qui est ce qui tu cherches
http://doc.ddart.net/mssql/sql70/left.htm

Quant à SUBSTRING, il semble bien qu'il existe également...
http://doc.ddart.net/mssql/sql70/setu-sus_17.htm
Avatar
Eric
Le 20 janvier 2007 à 20:09, dans
<news:45b268d5$0$4288$, Antoun nous disait :

J'avais vu ces fonctions, mais LEFT est réservé pour les jointures et
SUBSTRING (ou SUBSTR) n'est pas supporté par SQL Server...




tu confonds le mot-clé LEFT, utilisé avec JOIN, et la fonction
LEFT(texte, nb_caracteres), qui est ce qui tu cherches
http://doc.ddart.net/mssql/sql70/left.htm

Quant à SUBSTRING, il semble bien qu'il existe également...
http://doc.ddart.net/mssql/sql70/setu-sus_17.htm



Gaspation ! Je m'étais basé là-dessus :
http://sqlpro.developpez.com/cours/sqlaz/fonctions/#L1.4
où il est bien indiqué que SUBSTRING n'est pas supporté par SQL Server.
En ce qui concerne LEFT, cette même page ne le mentionne qu'ici :
http://sqlpro.developpez.com/cours/sqlaz/fonctions/#L1.8

En tout cas, merci de ton aide. Je bookmarque le site auquel tu fais
référence.

--
Eric
Avatar
Fred Brouard - SQLpro
Eric a écrit :
Le 20 janvier 2007 à 20:09, dans
<news:45b268d5$0$4288$, Antoun nous disait :

J'avais vu ces fonctions, mais LEFT est réservé pour les jointures et
SUBSTRING (ou SUBSTR) n'est pas supporté par SQL Server...






tu confonds le mot-clé LEFT, utilisé avec JOIN, et la fonction
LEFT(texte, nb_caracteres), qui est ce qui tu cherches
http://doc.ddart.net/mssql/sql70/left.htm



Quant à SUBSTRING, il semble bien qu'il existe également...
http://doc.ddart.net/mssql/sql70/setu-sus_17.htm



Gaspation ! Je m'étais basé là-dessus :
http://sqlpro.developpez.com/cours/sqlaz/fonctions/#L1.4
où il est bien indiqué que SUBSTRING n'est pas supporté par SQL Server.
En ce qui concerne LEFT, cette même page ne le mentionne qu'ici :
http://sqlpro.developpez.com/cours/sqlaz/fonctions/#L1.8



Vous vous méprenez sur le sens de cette page... En effet elle indique si
la fonction répond à la norme SQL...
Or la fonction SUBSTRING de SQL Server existe bien, mais elle n'est pas
conforme à la norme.
En effet la norme SQL indique que la syntaxde est la suivante :
SUBSTRING(<chaine à parcourir> FROM <caractèere départ> FOR <longueur>)
et SQL Server fait comme ceci :
SUBSTRING(<chaine à parcourir>, <caractèere départ>, <longueur>)

Quand à LEFT et RIGHT ce sont bien aussi des fonctions de SQL Server,
mais elles n'existe pas dans la norme SQL. C'est pourquoi elles ne sont
pas présentent !

A +


En tout cas, merci de ton aide. Je bookmarque le site auquel tu fais
référence.





--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Eric
Le 21 janvier 2007 à 12:29, dans
<news:45b34e3f$0$21142$, Fred Brouard -
SQLpro nous disait :

Vous vous méprenez sur le sens de cette page... En effet elle indique si
la fonction répond à la norme SQL...



Merci de ces précisions.

--
Eric