Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

comment séparer la chaîne en différentes colonnes?

Au lieu d'utiliser la fonction split, il existe une fonction appelée ParseName qui renvoie la partie spécifiée de l'objet qui divise la chaîne délimitée par . Veuillez passer par le lien ParseName qui m'a aidé à écrire cette requête

Declare @Sample Table
(MachineName varchar(max))

Insert into @Sample
values 
('Ab bb zecos'),('a Zeng')


  SELECT 
  Reverse(ParseName(Replace(Reverse(MachineName), ' ', '.'), 1)) As [M1]
 , Reverse(ParseName(Replace(Reverse(MachineName), ' ', '.'), 2)) As [M2]
 , Reverse(ParseName(Replace(Reverse(MachineName), ' ', '.'), 3)) As [M3]

  FROM  (Select MachineName from @Sample
  ) As [x]