web-dev-qa-db-fra.com

Comment supprimer des caractères spécifiques des chaînes dans SQL

J'ai une table avec une colonne. Je souhaite modifier une partie de certaines chaînes de la colonne.

entrée

6 | Manuels de pilotes

BH-EB531

TRST-BACMN-

sortie souhaitée

Manuels de pilotes

BH-EB531

TRST-BACMN

Ci-dessous, le code que je me fatiguais d'exécuter

 select REPLACE(REPLACE(COL, '6|', ''),'-','') FROM Table

Sortie

Manuels de pilotes

BHEB531

TRSTBACMN

le script doit supprimer "6 |" et le dernier caractère seulement s'il était '-'

Quelqu'un peut-il m'aider à atteindre le résultat souhaité

2
heye
SELECT (
        REPLACE
                (CASE 
                    WHEN RIGHT (COL, 1) = '-' 
                        THEN LEFT(COL, LENGTH(COL) - 1) 
                    ELSE COL
                END, '6|', ''
                )
        )   
FROM Table
2
SQLRaptor