Dans une vue j'ai utilisé une petite astuce pour l'affichage. Je fais
l'affichage avec une police à espacement fixe, et je fais un concat de
plusieurs champs pour avoir 3 colonnes distinctes, voilà ce que ça donne :
L'idée : avoir mon 1er champ, avoir à coup sûr 5 espaces ensuite, puis le 2e
champ et 5 espaces ensuite, et pour respecter mon affichage en 3 colonnes je
veux que si par exemple la désignation est plus petite que 20 (ce que je
prends dans mon LEFT), j'aie suffisamment d'espaces pour que le champ
suivant soit aligné avec les autres.
Et ça marche ! Enfin presque parce que si la longueur de mon champ
désignation est plus grande que 25, le résultat de mon calcul 25 -
LEN(Designation) est < que 0, et mon champ Concat prend la valeur null.
Y a-t-il un moyen d'améliorer ma bidouille ou de faire autrement pour éviter
ç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
Nicolas LETULLIER
Tu vas te faire enguirlander par Fred (le SGBDR ne doit pas répondre aux problèmes de cosmétique, ceux-ci doivent être faits par le client), mais pour répondre à ta question, fais plutôt un
LEFT(Designation + SPACE(25), 25) ou, pour limiter la désignation à 20 : LEFT(Designation + SPACE(20), 20) + SPACE(5) ou LEFT(LEFT(Designation, 20) + SPACE(25), 25) .. vois le genre.
Nicolas.
"sebcou" a écrit dans le message de news: 41922030$
Hello !
Dans une vue j'ai utilisé une petite astuce pour l'affichage. Je fais l'affichage avec une police à espacement fixe, et je fais un concat de plusieurs champs pour avoir 3 colonnes distinctes, voilà ce que ça donne :
L'idée : avoir mon 1er champ, avoir à coup sûr 5 espaces ensuite, puis le 2e champ et 5 espaces ensuite, et pour respecter mon affichage en 3 colonnes je veux que si par exemple la désignation est plus petite que 20 (ce que je prends dans mon LEFT), j'aie suffisamment d'espaces pour que le champ suivant soit aligné avec les autres.
Et ça marche ! Enfin presque parce que si la longueur de mon champ désignation est plus grande que 25, le résultat de mon calcul 25 - LEN(Designation) est < que 0, et mon champ Concat prend la valeur null.
Y a-t-il un moyen d'améliorer ma bidouille ou de faire autrement pour éviter ça ?
Merci de votre aide ! @+ Seb
Tu vas te faire enguirlander par Fred (le SGBDR ne doit pas répondre aux
problèmes de cosmétique, ceux-ci doivent être faits par le client), mais
pour répondre à ta question, fais plutôt un
LEFT(Designation + SPACE(25), 25)
ou, pour limiter la désignation à 20 :
LEFT(Designation + SPACE(20), 20) + SPACE(5)
ou LEFT(LEFT(Designation, 20) + SPACE(25), 25)
..
vois le genre.
Nicolas.
"sebcou" <sebcou@nospam.org> a écrit dans le message de news:
41922030$1_3@news.bluewin.ch...
Hello !
Dans une vue j'ai utilisé une petite astuce pour l'affichage. Je fais
l'affichage avec une police à espacement fixe, et je fais un concat de
plusieurs champs pour avoir 3 colonnes distinctes, voilà ce que ça donne :
L'idée : avoir mon 1er champ, avoir à coup sûr 5 espaces ensuite, puis le
2e
champ et 5 espaces ensuite, et pour respecter mon affichage en 3 colonnes
je
veux que si par exemple la désignation est plus petite que 20 (ce que je
prends dans mon LEFT), j'aie suffisamment d'espaces pour que le champ
suivant soit aligné avec les autres.
Et ça marche ! Enfin presque parce que si la longueur de mon champ
désignation est plus grande que 25, le résultat de mon calcul 25 -
LEN(Designation) est < que 0, et mon champ Concat prend la valeur null.
Y a-t-il un moyen d'améliorer ma bidouille ou de faire autrement pour
éviter
ça ?
Tu vas te faire enguirlander par Fred (le SGBDR ne doit pas répondre aux problèmes de cosmétique, ceux-ci doivent être faits par le client), mais pour répondre à ta question, fais plutôt un
LEFT(Designation + SPACE(25), 25) ou, pour limiter la désignation à 20 : LEFT(Designation + SPACE(20), 20) + SPACE(5) ou LEFT(LEFT(Designation, 20) + SPACE(25), 25) .. vois le genre.
Nicolas.
"sebcou" a écrit dans le message de news: 41922030$
Hello !
Dans une vue j'ai utilisé une petite astuce pour l'affichage. Je fais l'affichage avec une police à espacement fixe, et je fais un concat de plusieurs champs pour avoir 3 colonnes distinctes, voilà ce que ça donne :
L'idée : avoir mon 1er champ, avoir à coup sûr 5 espaces ensuite, puis le 2e champ et 5 espaces ensuite, et pour respecter mon affichage en 3 colonnes je veux que si par exemple la désignation est plus petite que 20 (ce que je prends dans mon LEFT), j'aie suffisamment d'espaces pour que le champ suivant soit aligné avec les autres.
Et ça marche ! Enfin presque parce que si la longueur de mon champ désignation est plus grande que 25, le résultat de mon calcul 25 - LEN(Designation) est < que 0, et mon champ Concat prend la valeur null.
Y a-t-il un moyen d'améliorer ma bidouille ou de faire autrement pour éviter ça ?
Merci de votre aide ! @+ Seb
Fred BROUARD
faire du cosmétique dans une requête SQL est une hérésie...
Tu peut néanmoins limiter à 25 caractères comme ceci :
SELECT LEFT(Numero, 10) + SPACE(15 - LEN(Numero)) + LEFT(Designation, 20) + CASE WHEN SPACE(25 - LEN(Designation)) < 0 THEN '' ELSE SPACE(25 - LEN(Designation)) END + Dimensions as Concat
A +
sebcou a écrit:
Hello !
Dans une vue j'ai utilisé une petite astuce pour l'affichage. Je fais l'affichage avec une police à espacement fixe, et je fais un concat de plusieurs champs pour avoir 3 colonnes distinctes, voilà ce que ça donne :
L'idée : avoir mon 1er champ, avoir à coup sûr 5 espaces ensuite, puis le 2e champ et 5 espaces ensuite, et pour respecter mon affichage en 3 colonnes je veux que si par exemple la désignation est plus petite que 20 (ce que je prends dans mon LEFT), j'aie suffisamment d'espaces pour que le champ suivant soit aligné avec les autres.
Et ça marche ! Enfin presque parce que si la longueur de mon champ désignation est plus grande que 25, le résultat de mon calcul 25 - LEN(Designation) est < que 0, et mon champ Concat prend la valeur null.
Y a-t-il un moyen d'améliorer ma bidouille ou de faire autrement pour éviter ça ?
Merci de votre aide ! @+ Seb
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 ************************ www.datasapiens.com *************************
faire du cosmétique dans une requête SQL est une hérésie...
Tu peut néanmoins limiter à 25 caractères comme ceci :
SELECT LEFT(Numero, 10)
+ SPACE(15 - LEN(Numero))
+ LEFT(Designation, 20)
+ CASE
WHEN SPACE(25 - LEN(Designation)) < 0
THEN ''
ELSE SPACE(25 - LEN(Designation))
END + Dimensions as Concat
A +
sebcou a écrit:
Hello !
Dans une vue j'ai utilisé une petite astuce pour l'affichage. Je fais
l'affichage avec une police à espacement fixe, et je fais un concat de
plusieurs champs pour avoir 3 colonnes distinctes, voilà ce que ça donne :
L'idée : avoir mon 1er champ, avoir à coup sûr 5 espaces ensuite, puis le 2e
champ et 5 espaces ensuite, et pour respecter mon affichage en 3 colonnes je
veux que si par exemple la désignation est plus petite que 20 (ce que je
prends dans mon LEFT), j'aie suffisamment d'espaces pour que le champ
suivant soit aligné avec les autres.
Et ça marche ! Enfin presque parce que si la longueur de mon champ
désignation est plus grande que 25, le résultat de mon calcul 25 -
LEN(Designation) est < que 0, et mon champ Concat prend la valeur null.
Y a-t-il un moyen d'améliorer ma bidouille ou de faire autrement pour éviter
ça ?
Merci de votre aide !
@+
Seb
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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
************************ www.datasapiens.com *************************
faire du cosmétique dans une requête SQL est une hérésie...
Tu peut néanmoins limiter à 25 caractères comme ceci :
SELECT LEFT(Numero, 10) + SPACE(15 - LEN(Numero)) + LEFT(Designation, 20) + CASE WHEN SPACE(25 - LEN(Designation)) < 0 THEN '' ELSE SPACE(25 - LEN(Designation)) END + Dimensions as Concat
A +
sebcou a écrit:
Hello !
Dans une vue j'ai utilisé une petite astuce pour l'affichage. Je fais l'affichage avec une police à espacement fixe, et je fais un concat de plusieurs champs pour avoir 3 colonnes distinctes, voilà ce que ça donne :
L'idée : avoir mon 1er champ, avoir à coup sûr 5 espaces ensuite, puis le 2e champ et 5 espaces ensuite, et pour respecter mon affichage en 3 colonnes je veux que si par exemple la désignation est plus petite que 20 (ce que je prends dans mon LEFT), j'aie suffisamment d'espaces pour que le champ suivant soit aligné avec les autres.
Et ça marche ! Enfin presque parce que si la longueur de mon champ désignation est plus grande que 25, le résultat de mon calcul 25 - LEN(Designation) est < que 0, et mon champ Concat prend la valeur null.
Y a-t-il un moyen d'améliorer ma bidouille ou de faire autrement pour éviter ça ?
Merci de votre aide ! @+ Seb
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 ************************ www.datasapiens.com *************************
sebcou
Hello !
"Nicolas LETULLIER" a écrit dans le message de news:
Tu vas te faire enguirlander par Fred (le SGBDR ne doit pas répondre aux problèmes de cosmétique, ceux-ci doivent être faits par le client)
--> Je sais ! Mais là j'ai choisi cette solution, car je dois afficher des données dans une listbox databound en c# avec affichage en plusieurs colonnes, et je ne peux pas utiliser une listview à la place. Alors en attendant de trouver mieux et par manque de temps je fais comme ça pour l'instant !
vois le genre.
--> Merci !
@+ Seb
Hello !
"Nicolas LETULLIER" <nletullier@provibe.ASUPPRIMER.com> a écrit dans le
message de news:OuZSiYzxEHA.3120@TK2MSFTNGP12.phx.gbl...
Tu vas te faire enguirlander par Fred (le SGBDR ne doit pas répondre aux
problèmes de cosmétique, ceux-ci doivent être faits par le client)
--> Je sais ! Mais là j'ai choisi cette solution, car je dois afficher des
données dans une listbox databound en c# avec affichage en plusieurs
colonnes, et je ne peux pas utiliser une listview à la place. Alors en
attendant de trouver mieux et par manque de temps je fais comme ça pour
l'instant !
"Nicolas LETULLIER" a écrit dans le message de news:
Tu vas te faire enguirlander par Fred (le SGBDR ne doit pas répondre aux problèmes de cosmétique, ceux-ci doivent être faits par le client)
--> Je sais ! Mais là j'ai choisi cette solution, car je dois afficher des données dans une listbox databound en c# avec affichage en plusieurs colonnes, et je ne peux pas utiliser une listview à la place. Alors en attendant de trouver mieux et par manque de temps je fais comme ça pour l'instant !