Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak przekonwertować NVARCHAR oddzielony przecinkami na rekordy tabeli w SQL Server 2005?

Możliwy duplikat oddziel wartości oddzielone przecinkami i przechowuj w tabeli na serwerze sql .

Wypróbuj dokładną wartość od Wartość rozdzielana przecinkami do Stół :

CREATE FUNCTION [dbo].[ufn_CSVToTable] ( @StringInput VARCHAR(8000), @Delimiter nvarchar(1))
RETURNS @OutputTable TABLE ( [String] VARCHAR(10) )
AS
BEGIN

    DECLARE @String    VARCHAR(10)

    WHILE LEN(@StringInput) > 0
    BEGIN
        SET @String      = LEFT(@StringInput, 
                                ISNULL(NULLIF(CHARINDEX(@Delimiter, @StringInput) - 1, -1),
                                LEN(@StringInput)))
        SET @StringInput = SUBSTRING(@StringInput,
                                     ISNULL(NULLIF(CHARINDEX(@Delimiter, @StringInput), 0),
                                     LEN(@StringInput)) + 1, LEN(@StringInput))

        INSERT INTO @OutputTable ( [String] )
        VALUES ( @String )
    END

    RETURN
END
GO

Sprawdź wymagania w inny sposób za pomocą XML:

DECLARE @param NVARCHAR(MAX)
SET @param = '1:0,2:1,3:1,4:0'

SELECT 
     Split.a.value('.', 'VARCHAR(100)') AS CVS  
FROM  
(
    SELECT CAST ('<M>' + REPLACE(@param, ',', '</M><M>') + '</M>' AS XML) AS CVS 
) AS A CROSS APPLY CVS.nodes ('/M') AS Split(a)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd MS Access ODBC — wywołanie nie powiodło się. Nieprawidłowa wartość znaku dla specyfikacji rzutowania (#0)

  2. Jak zmienić nazwę kolumny lub nazwę tabeli w SQL Server — samouczek SQL Server / T-SQL, część 36

  3. Zaktualizować tabelę z losowym rekordem w instrukcji aktualizacji w SQL Server?

  4. połącz dwie liczby całkowite i wynik jako łańcuch w SQL

  5. Narzędzia do zarządzania SQL Server 2017