51 votes

Comment diviser une chaîne après un caractère spécifique dans SQL Server et mettre à jour cette valeur dans une colonne spécifique

J'ai une table avec des données 1/1 à 1/20 dans une colonne. Je veux que la valeur 1 à 20, c'est-à-dire la valeur après que '/' (barre oblique) soit mise à jour dans une autre colonne de la même table dans SQL Server.

Exemple:

La colonne a la valeur 1/1,1/2,1/3...1/20 nouvelle valeur de colonne 1,2,3,..20

c'est-à-dire que je veux mettre à jour cette nouvelle colonne

Merci d'avance...!

116voto

Lamak Points 33901

Essaye ça:

 UPDATE YourTable
SET Col2 = RIGHT(Col1,LEN(Col1)-CHARINDEX('/',Col1))

14voto

user5151121 Points 101

Veuillez trouver que la requête ci-dessous divise également la chaîne avec delimeter.

 Select Substring(@String1,0,CharIndex(@delimeter,@String1))

2voto

Ankur Shah Points 377
SELECT SUBSTRING(ParentBGBU,0,CHARINDEX('-',ParentBGBU,0)) FROM dbo.tblHCMMaster;

2voto

mbarkhau Points 3030

Je sais que cette question est spécifique au serveur SQL, mais j'utilise postgresql et je suis tombé sur cette question, donc pour toute autre personne dans une situation similaire, il y a la fonction split_part(string text, delimiter text, field int) .

1voto

Arion Points 17617

Peut-être quelque chose comme ça :

D'abord quelques données de test:

 DECLARE @tbl TABLE(Column1 VARCHAR(100))

INSERT INTO @tbl
SELECT '1/1' UNION ALL
SELECT '1/20' UNION ALL
SELECT '1/2'

Alors comme ça :

 SELECT
    SUBSTRING(tbl.Column1,CHARINDEX('/',tbl.Column1)+1,LEN(tbl.Column1))
FROM
    @tbl AS tbl

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X