UPPER(RIGHT(REVERSE(codeLabel))) pkoi faire ???

UPPER(RIGHT(REVERSE(codeLabel))) pkoi faire ??? - SQL/NoSQL - Programmation

Marsh Posté le 03-02-2005 à 15:30:41    

Salut,
 
Je suis en train de faire des modifs dans une appli, et je suis tombé sur un truc bizarre dans une procédure stockée...
 
La procédure stockée scanne la liste des labels dans une base de données, afin de générer un index (en reprenant la première lettre).
 
Voici la requête :

Code :
  1. -- indexation par Code,
  2.  select  UPPER(RIGHT(REVERSE(codeLabel),1)) as alpha
  3.  from  zLabel
  4.  where  zLabel.orgid = @orgid
  5.  and (typeLabel = @labelType or @labelType = 0)
  6.  and  (activeLabel = 'A' or @iWithInactifs = 1)
  7.  group by UPPER(RIGHT(REVERSE(codeLabel),1))
  8.  order by UPPER(RIGHT(REVERSE(codeLabel),1))


 
Est-ce que vous avez une idée de la raison du pourquoi du comment de ce "RIGHT(REVERSE())" ?
 
A la base, un "LEFT()" m'aurai semblé à la fois plus naturel, et je suis convaincu que c'est plus rapide.
Cependant, il doit y avoir une bonne raison pour avoir fait ça (parceque ça s'invente pas !)
 
Il y a quelques mois encore, l'appli était sous SQL Server 6.5. Maintenant, elle est sous 2000.
 
D'après la personne avec qui je bosse sur l'appli, c'était déjà comme ça quand il est arrivé (il y a quelques années), et il n'a donc aucune idée de la raison de cette manip étrange.
Le champ est de type VARCHAR(255)

Reply

Marsh Posté le 03-02-2005 à 15:30:41   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed