我在SQL中有一个dbo表格,其中有一列需要根据分隔符(,)拆分为多列。实现此操作的代码在本问题的末尾。该代码作为查询完美运行,但我想在MS Access 2010中导入最终的表格(即拆分后)。这时出了问题,因为我找不到ODBC或查询文件中的表格。另外,由于“Declare”函数,我不能将此代码放入视图功能中。该代码来自以下地址(它还显示了我想要对我的代码进行的操作):
https://raresql.com/2015/08/22/sql-server-how-to-split-one-column-into-multiple-columns/
你能帮我解决这个问题吗?
下面是用于拆分1列为多列的代码:
感谢您的预先帮助。
下面是用于拆分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
感谢您的预先帮助。