デリミタ(、)に基づいて複数の列に分割する必要があるSQLでdboテーブルをSQLに作成しました。これを達成するためのコードは、この質問の最後です。コードは完全にクエリとして機能しますが、MS Access 2010で最終的なテーブルをインポートしたいのですが(分割後)、ODBCやクエリファイルでテーブルを見つけることができないので、間違っていました。また、 "Declare"関数のため、このコードをビュー関数に入れることはできません。コードは次のとおりです(私のコードで何をしたいのかを示しています): 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
あなたは、ストアドプロシージャにコードを置くことができ、事前
あなたが宣言を除外し、 ([GATE]、「」、 『』)を交換してくださいを使用していないのはなぜ(アクションクエリが1時間を実行したり、定期的に使用するために保存されたクエリオブジェクトとして保存することができます) 。変数はなく、ビューを作成できます。 – PSVSupporter