sql >> Database >  >> RDS >> Sqlserver

Extraheer tekens rechts van een begrensde waarde in een SELECT-instructie

Deze vraag heeft een databasespecifiek antwoord.

Bij gebruik van SQL Server:

SELECT column1
     , RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) as extracted
     , column3 
FROM myTable

U kunt een CASE . toevoegen statement of gebruik NULLIF() voor het geval het koppelteken niet altijd aanwezig is:

SELECT column1
     , CASE WHEN column2 LIKE '%-%' THEN RIGHT(column2,CHARINDEX('-',REVERSE(column2))-1) 
           END as extracted
     , column3 
FROM myTable

Of:

SELECT column1
     , RIGHT(column2,NULLIF(CHARINDEX('-',REVERSE(column2)),0)-1) as extracted
     , column3 
FROM myTable

Als u MySQL gebruikt, wijzigt u gewoon CHARINDEX() naar LOCATE() . Ik geloof dat Oracle het is INSTR() en de eerste twee parameters worden verwisseld, eerst is het de string waarin je zoekt, dan de string waarnaar je zoekt.



  1. MySQL-trigger:voor invoegen of na invoegen

  2. Specificeer SSL dat moet worden gebruikt voor jdbc in context.xml

  3. Log waarschuwingen in een tabel

  4. ajax-formuliervalidatie met mysqli_query