sql >> Database teknologi >  >> RDS >> Sqlserver

Erstatter kun den n'te forekomst af karakter

For at erstatte den første forekomst af et tegn vil jeg anbefale brugen af ​​STUFF og CHARINDEX funktioner. TING indsætter en streng i en anden streng. Den sletter en specificeret længde af tegn i den første streng ved startpositionen og indsætter derefter den anden streng i den første streng ved startpositionen.

DECLARE @str varchar(100) ='^1402 WSN NIAMLAB^teertS htimS 005'SELECT TING(@str, CHARINDEX('^', @str), 1, '&') 

Bemærk, at du også kan bruge STUFF i en forespørgsel som følger:

VÆLG TING(, CHARINDEX('^', ), 1, '&')FRA

  1. Hvordan kan jeg fejlsøge en EXCEPTION_ACCESS_VIOLATION på SQL Server 2008

  2. MySQL group_concat med where-klausul

  3. Tomcat/Hibernate-forbindelse til MySql mislykkes med kommunikationsforbindelsesfejl og tilladelse nægtet

  4. Relation videregivet til #eller skal være strukturelt kompatibel. Inkompatible værdier:[:referencer]