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

Hvordan analyserer man en streng og opretter flere kolonner fra den?

SELECT substring(NameValue, 1, charindex('_', NameValue)-1) AS Names, 
  substring(NameValue, charindex('_', NameValue)+1, LEN(NameValue)) AS Values
FROM Table
 

REDIGER :Noget som dette sat i en funktion eller lagret procedure kombineret med en midlertidig tabel burde virke for mere end én linje, afhængigt af linjeafgrænseren bør du også fjerne CHAR(13) før du starter:

DECLARE @helper varchar(512) DECLARE @current varchar(512) SET @helper = NAMEVALUE WHILE CHARINDEX(CHAR(10), @helper) > 0 BEGIN SET @current = SUBSTRING(@helper, 1, CHARINDEX(CHAR(10), NAMEVALUE)-1) SELECT SUBSTRING(@current, 1, CHARINDEX('_', @current)-1) AS Names, SUBSTRING(@current, CHARINDEX('_', @current)+1, LEN(@current)) AS Names SET @helper = SUBSTRING(@helper, CHARINDEX(CHAR(10), @helper)+1, LEN(@helper)) END SELECT SUBSTRING(@helper, 1, CHARINDEX('_', @helper)-1) AS Names, SUBSTRING(@helper, CHARINDEX('_', @helper)+1, LEN(@helper)) AS Names

  1. Brug kolonnealias i Vælg erklæringsberegning Oracle SQL

  2. fe_sendauth:ingen adgangskode angivet fejl i postgresql + laravel

  3. Tving nøjagtig streng MATCH for PDO-forberedte udsagn

  4. Oracle SQL :Henter ikke-eksisterende værdier fra IN-sætning