sql >> Database >  >> RDS >> Sqlserver

Subtekenreeks na een spatie

Hier is een versie met SUBSTRING en CHARINDEX voor versies van SQL SERVER vóór SQL Server 2016 wanneer STRING_SPLIT werd geïntroduceerd.

Een van de volgende werken:

SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)

SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )

We moeten de positie van de spatie vinden met CHARINDEX (die een getal retourneert dat aangeeft waar de string (de spatie) begint. De string die we willen selecteren begint echter na de spatie, daarom moeten we 1 (+1) toevoegen aan de startpositie van onze SUBSTRING zodat de startpositie CHARINDEX(' ', @string) + 1 wordt.

Het derde argument voor SUBSTRING is de lengte van de string die moet worden geselecteerd, in het eerste geval ga ik er gewoon van uit dat de string die je hebt opgegeven als een varchar(20) niet langer kan zijn dan 20 tekens, vandaar dat ik 20 gebruik. Opmerking SUBSTRING zal niet proberen om selecteer tekens voorbij het einde van de tekenreeks, dus het is veilig om een ​​lengte op te geven die langer is dan het aantal resterende tekens.

Mijn tweede voorbeeld haalt de lengte van de string die moet worden geselecteerd op basis van de lengte van de totale string (DATALENGTH) minus het aantal tekens vóór onze selectie (CHARINDEX + 1)



  1. Host xxxx mag geen verbinding maken met deze MySQL-server

  2. Bericht 28000:geen pg_hba.conf-invoer voor host \xx.xxx.xxx.xxxx\, gebruiker \Gebruiker, database \databasenaam\, SSL uit

  3. Het analyseren van de dood door duizend vermindert de werkdruk

  4. .NET-configuratie uit database lezen