Bonjour
Existe-il en MS Sql l'equivalent des fonctions tres pratique RPAD et LPAD disponibles en MySql et Oracle ?
Bonjour
Existe-il en MS Sql l'equivalent des fonctions tres pratique RPAD et LPAD disponibles en MySql et Oracle ?
...répondu trop vite...
![]()
Non, mais vous avez SPACE, REPLICATE, RTRIM, LTRIM... pour faire ce genre de choses. Tout dépend de votre besoin !
Au pire, programmez là sous forme d'UDF.
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Bonjour
RTRIM et LTRIM me semble l'inverse de ce que je recherche
L'idée en gros c'est que comme j'utilise un query dont le resultat constitue le body d'un mail, j'aimerais que les colonnes soient correctement allignées en longueur fixe et les chifres allignés a droite
En MySql je faisait cela acec des LTRIM
Un jeu de données éventuellement ?
++
Voici un exemple de résultat actuelEnvoyé par MikeDavem
Ce n'est evidemment pas tres joli
Les fonctions RPAD et LPAD en MySQL permettent d'avoir un bon alignement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Gewicht |ChauffeurID|ChauffeurName |Date -----------|-----------|--------------------------------------------------|----------------------- 1000| 6|GILBERT |2011-03-09 15:36:23.000 751| 7|PATRICK |2011-03-09 15:37:08.000 508| 23|FRANCIS |2011-03-09 04:53:15.000 4086| 23|FRANCIS |2011-03-10 10:24:55.000 (4 rows affected)
Bonjour
transtypez vos VARCHAR en CHAR, cela devrait suffire à aligner les caractères à gauche.
Pour les nombres, préfixez les par des espaces (taille voulue pour la colonne - nombre de caractères dans le nombre), ou alors faites un reverse du cast du reverse du cast:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 DECLARE @Nombre INT = 123 DECLARE @Texte AS VARCHAR(20) = 'toto' SELECT REVERSE( CAST( REVERSE( CAST(@Nombre AS VARCHAR(10)) ) AS CHAR(10) ) ) + '|' + CAST(@Texte AS CHAR(20)) + '|' ----------------------------------------- -- 123|toto |
Partager