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

SQL Server 2005 Utilisation de CHARINDEX() pour fractionner une chaîne

Je ne dirais pas exactement que c'est facile ou évident, mais avec seulement deux traits d'union, vous pouvez inverser la chaîne et ce n'est pas trop difficile :

with t as (select 'LD-23DSP-1430' as val)
select t.*,
       LEFT(val, charindex('-', val) - 1),
   SUBSTRING(val, charindex('-', val)+1, len(val) - CHARINDEX('-', reverse(val)) - charindex('-', val)),
       REVERSE(LEFT(reverse(val), charindex('-', reverse(val)) - 1))
from t;

Au-delà de cela et vous voudrez peut-être utiliser split() à la place.