0

これを機能させるには、FOR XML PATH をよりよく理解する必要があると思います。たぶん、この簡単な例で私を助けることができます:

与えられた

DECLARE @p VARCHAR(200)
DECLARE @phn TABLE (Phone VARCHAR(25))
INSERT INTO @phn VALUES('204-721-1532')
INSERT INTO @phn VALUES('306-922-2058')
INSERT INTO @phn VALUES('204-728-3852')

@phn.Phone のすべての行を VARCHAR に変更したいのですが、Python のみの場合は次のようになります。

SET @p = ', '.join(@phn.Phone) # Alas

さて、これはある程度まで機能します:

SELECT DISTINCT Phone+', ' FROM @phn FOR XML PATH('')
==> 204-721-1532, 204-728-3852, 306-922-2058, 

末尾にコンマがありますが、問題ありません。必要なのは、この結果を VARCHAR 変数に入れることです。

SELECT DISTINCT @p = Phone+', ' FROM @phn FOR XML PATH('')

しかし、それは許可されていません (メッセージ 6819、レベル 16、状態 3、行 45/ASSIGNMENT ステートメントでは FOR XML 句は許可されていません。)

最終的に、これはスカラー関数に入ります。結合された文字列を返す関数が必要です。

4

2 に答える 2

0

これが必要なものだと思います:

SQLフィドル

DECLARE @p VARCHAR(200)
DECLARE @phn TABLE (Phone VARCHAR(25))
INSERT INTO @phn VALUES('204-721-1532')
INSERT INTO @phn VALUES('306-922-2058')
INSERT INTO @phn VALUES('204-728-3852')

--Using Isnull() function to eliminate tralling comma
select @p = isnull(@p + ', ','') + Phone
from @phn

select @p

Results: 
204-721-1532, 306-922-2058, 204-728-3852
于 2013-04-08T20:55:36.563 に答える