我在SQL中有一个dbo表,我需要根据分隔符(,)将其拆分为多个列。完成这个的代码在这个问题的最后。代码完美地作为一个查询,但是我想在MS Access 2010中导入最终的表格(所以在拆分之后)。这是错误的,因为我无法用ODBC或查询文件找到表格。此外,由于“声明”功能,我不能把这段代码放在视图函数中。代码是从(它也显示了我想要用我的代码): https://raresql.com/2015/08/22/sql-server-how-to-split-one-column-into-multiple-columns/无法在MS Access 2010中导入SQL查询
你能帮我吗?
分裂1列到多列下面的代码被用于:
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
预先感谢您
你为什么不排除声明和使用 替换([门],“”,‘’) 。你没有变数,可以查看。 – PSVSupporter