Je veux mettre à jour une ligne qui est dans un format comme ceci ABC - DEF - GHI - ABD
,
Comment utiliser un cmd comme ceci UPDATE tbl SET col = Replace(col,@var, '') WHERE Pk=something.
Comment puis-je supprimer les tirets de fin ou de début? Par exmaple si @var est GHI, après le remplacement, la valeur de la rangée devrait être ABC-DEF-ABD ou si @var est ABC alors la valeur devrait être DEF - GHI - ABD.Remplacer dans TSql
0
A
Répondre
0
D'abord, tout à fait d'accord avec un commentaire ci-dessus .. Modifier Teh sschema de données pour ne pas stocker des listes de valeurs délimitées dans la colonne de base de données.
Mais, si cela est impossible, essayez ceci:
Update Table Set
colName = Replace(Replace(colName, '- ' + @var, ''), @var + ' -', '')
Where pk = @pk
0
Que diriez-vous:
UPDATE tbl SET col = replace(replace(col, @var + ' – ', ''), ' – ' + @var, '')
REPLACE intérieure remplace toutes les instances du milieu et « grands », et la partie extérieure de remplacer toutes les instances prises « finales ».
S'il existe des instances uniques, par ex. GHI
, ajouter un autre et appel externe:
UPDATE tbl SET col = replace(replace(replace(col, @var + ' – ', ''), ' – ' + @var, ''), @var, '')
2
Ajouter un supplément « - » à la fin de la chaîne, remplacez @var avec le tableau de bord en annexe, la bande puis la fuite « - » quand tu as fini.
UPDATE tbl
SET col = LEFT(REPLACE(col + ' - ', @var+' - ', ''), LEN(col)-6)
WHERE Pk = something
0
Vous pouvez utiliser:
-- 1: replace(col,@var, '') => your replacement
-- 2: replace(#1, ' - ', '-') => remove spaces
-- 3: replace(#2, '- ', '') => remove first hyphen and space
-- 4: replace(#3, ' -', '') => remove last hyphen and space
UPDATE tbl
SET col = replace(replace(replace(replace(col,@var, ''), ' - ', '-'), '- ', ''), ' -', '')
WHERE Pk=something
Questions connexes
- 1. TSQL, cas, convertir, remplacer fin
- 2. tsql: comment remplacer une sous-chaîne?
- 3. Performances TSQL avec @@ Erreur et Peut-on les remplacer?
- 4. else Si dans tsql
- 5. dates Constructing dans TSQL
- 6. Parse JSON dans TSQL
- 7. Nouvelle ligne dans TSQL
- 8. ISNULL ne fonctionne pas dans TSQL Sélectionnez
- 9. Dans Tsql, comment remplacer une valeur si la valeur n'est pas nulle?
- 10. Attributs XML TSQL divisés
- 11. Convertir la date dans TSQL
- 12. Coalesce et Pivot dans TSQL
- 13. Copier le contenu dans TSQL
- 14. Fonction dans une fonction TSQL
- 15. Enregistrement TSQL dans la transaction
- 16. Rembourrage de chaînes dans tsql
- 17. TSQL - variables d'utilisation dans OPENXML
- 18. Regroupement de séquences dans TSQL
- 19. TSQL dans SQL 2005: requête
- 20. TSQL dans SQL 2005: requête
- 21. Problèmes avec TSQL dans l'expression
- 22. Que fait "%% DatabaseEx" dans TSQL?
- 23. tsql permission
- 24. transaction tsql
- 25. Arrondi TSQL
- 26. Alternative TSQL
- 27. Accélérer TSQL
- 28. Tsql Traduction
- 29. TSQL OrderedTable
- 30. Continue l'instruction dans while loop dans TSQL?
Faire une hypothèse ici, mais ne pas stocker des listes délimitées dans la base de données. Au lieu d'utiliser une table de jonction de un à plusieurs, il s'agit d'une simple instruction 'delete'. –
Malheureusement, ce n'est pas mon appel. Nous avons une table de relation un à plusieurs, ce col est juste utilisé à des fins d'affichage. – user424134