1

複雑な文字列置換があり、読み取り専用アクセスしか許可されていません。

substring関数とcharindex関数が正しいかどうかを確認できるように、それぞれが前の列に依存するいくつかの列が必要です。

基本的にこれ:

DECLARE @myvar NVARCHAR(100) = 'ThisIsMyTest'

SELECT REPLACE(@myvar, 'My', 'Our') AS Part1
    ,Part1 + ' added to the end'

2 番目の列の出力を次のようにします。

ThisIsOurTest added to the end

これは私が達成しようとしていることの非常に単純化されたバージョンなので、コンセプトを探しています。この答えは必要ありません:

SELECT REPLACE(@myvar, 'My', 'Our') as Part1, REPLACE(@myvar, 'My', 'Our') + ' added to the end'

それが今私がしていることだからです。

4

1 に答える 1

1

SQL Server では、1 つのオプションで横結合が使用されます。「次の」結合は、前の結合によって生成されたデータセットにアクセスできるため、この状況では便利です。基本的に、各中間計算を個別の (スカラー) サブクエリに入れることができます。

簡単な例から始めると、次のようになります。

select t1.part1, t2.part2
from (values (replace(@myvar, 'My', 'Our'))) t1(part1)
cross apply (values (t1.part1 + ' added to the end')) t2(part2)
于 2020-09-30T21:18:27.003 に答える