Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2005 Usando CHARINDEX() Para dividir uma string


Eu não diria exatamente que é fácil ou óbvio, mas com apenas dois hífens, você pode inverter a string e não é muito difícil:
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;

Além disso, você pode querer usar split() em vez de.