Mam tabelę dbo w SQL z kolumną, którą muszę podzielić na wiele kolumn na podstawie ogranicznika (,). Kod do wypełnienia tego znajduje się na końcu tego pytania. Kod działa doskonale jako zapytanie, jednak chciałbym zaimportować ostateczną tabelę (tak po podzieleniu) w MS Access 2010. To wszystko poszło nie tak, ponieważ nie mogę znaleźć tabeli z ODBC lub plikiem zapytania. Ponadto, z powodu funkcji "Zadeklaruj", nie mogę umieścić tego kodu w funkcji widoku. Kod pochodzi z (pokazuje również, co chcę zrobić z moim kodem): https://raresql.com/2015/08/22/sql-server-how-to-split-one-column-into-multiple-columns/Zapytanie SQL nie może zostać zaimportowane do MS Access 2010
Czy możesz mi w tym pomóc?
Aby podzielić się 1 kolumnę w wielu kolumnach poniżej kod jest używany:
DECLARE @delimiter VARCHAR(50)
SET @delimiter=', '
;WITH CTE AS
(
SELECT [Tour number],
[TISLOT Time slot begin],
[TISLOT Delivery day],
[Gate],
CAST('<M>' + REPLACE([Gate], @delimiter , '</M><M>') + '</M>' AS XML) AS [Gate XML]
FROM dbo.TISLOT
)
SELECT [Tour number],
[TISLOT Time slot begin],
[TISLOT Delivery day],
[Gate],
[Gate XML].value('/M[1]', 'varchar(50)') As [Gate1],
[Gate XML].value('/M[2]', 'varchar(50)') As [Gate2],
[Gate XML].value('/M[3]', 'varchar(50)') As [Gate3],
[Gate XML].value('/M[4]', 'varchar(50)') As [Gate4],
[Gate XML].value('/M[5]', 'varchar(50)') As [Gate5],
[Gate XML].value('/M[6]', 'varchar(50)') As [Gate6],
[Gate XML].value('/M[7]', 'varchar(50)') As [Gate7],
[Gate XML].value('/M[8]', 'varchar(50)') As [Gate8],
[Gate XML].value('/M[9]', 'varchar(50)') As [Gate9],
[Gate XML].value('/M[10]', 'varchar(50)') As [Gate10]
FROM CTE
GO
góry dziękuję
Dlaczego nie można wykluczyć zadeklarować i użyć Wymienić ([Brama], „”, «») . Nie masz zmiennych i możesz utworzyć widok. – PSVSupporter