最初の方法は変数に依存するため、答えは いいえ です
ただし、変数を使用せずに 2 番目の方法を簡単に使用できます。変数を少し変更する必要があるだけです。
SELECT SUBSTRING( (SELECT ';' + strContract FROM tblContractMail FOR XML PATH('')), 2, 2147483647 )
プレ>ご覧のとおり、セパレーターは 前 にあります アイテム。その結果、先頭のセミコロンを省略して、2 番目の文字から文字列を切り取り始めます。長さ指定子は正確に長さから 1 を引いたものである必要はありません。かなり大きな数値を指定できます。関数は 2 番目の文字から末尾までのすべてを返します。この場合、最大の
int
値が指定されました。