アルファベットの前後に引用符を英数字の文字列で追加したいと考えています。例:私の文字列が8AB8973の場合、期待される出力は8'AB'8973です。数字や文字が出現する特定のパターンはありません。私はStackOverflowで見つけた次のコードを実行しようとしましたが、数字とアルファベットの間にスペースを追加します。スペースを引用符で置き換えると、クエリは永遠に実行されます。T-SQLを使用して英数字文字列でアルファ文字の前後に引用符を追加しますか?
DECLARE @position INT;
DECLARE @string VARCHAR(max);
SET @string = '9FX8173'
WHILE 1 = 1
BEGIN
SET @position = (SELECT Min(position)
FROM (VALUES (Patindex('%[^ 0-9][0-9]%', @string)),
(Patindex('%[0-9][^ 0-9]%', @string))) AS T(position)
WHERE T.position > 0);
IF @position IS NULL
BREAK;
SET @string = Stuff(@string, @position + 1, 0, ' ');
END
PRINT @string
トン場合、私は、最初の文字の前に引用符を含めるにはどうすればよいです彼は文字列で文字列で始まります。例:TAX000964の場合、上記の文字列は文字で始まります。このため、期待される結果は 'TAX'000964'です。上記の現在のクエリは私にTAX'000964を与えます。 –
また、それは最後の文字の世話をしません。たとえば:00140M、期待される結果は00140'M 'になりますが、私は00140'Mを受け取ります。 –