web-dev-qa-db-fra.com

Comment fractionner 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 un tableau avec des données 1/1 à 1/20 dans une colonne. Je veux que la valeur 1 à 20 soit 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 je souhaite mettre à jour cette nouvelle colonne

Merci d'avance...!

37
SHEKHAR SHETE

Essaye ça:

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

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

Select Substring(@String1,0,CharIndex(@delimeter,@String1))
9
user5151121
SELECT SUBSTRING(ParentBGBU,0,CHARINDEX('-',ParentBGBU,0)) FROM dbo.tblHCMMaster;
2
Ankur Shah

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

1
mbarkhau

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
1
Arion