私は1つのテーブルのようなデータを持ってい:私は別のテーブルに上記のデータを挿入したい近くに無効な構文「ケース」
ID | Fill
---------------
1 | @@@@
2 | @@@@Y
3 | @@@@Y245
となるように結果表を期待:
ID | Fill
----------------
1 | (Space)
2 | Y
3 | Y245
をつまり、@@@@が見つかると、それはスペースで置き換えられるはずです(4 @と同じように4スペースの文字)
ここで私はこれをやろうとしています:
insert into table1
(
id
,case
when contains(substring([fill],1,4),'@@@@') then ' '+substring([fill],5,100)
else [fill]
end
)
select
id
,convert(char(100),[col1]+[col2]+[col3]+[col4])
from
table2
ただし、 "case"の近くに構文エラーがあります。私は間違って何をしていますか?どのように私は望ましい結果を達成することができますか?
を達成するために置き換える '、あなたが'たときに[塗りつぶし] '「@@@@%」のようなを探しているようですか? –
また、構文が間違っています。 'insert into table into(挿入する列のリスト) 'を選択すると、「列のリスト」の中にcase式が置かれています。これは間違っています。そうです、構文が正しくありません。 –
'patindex'を見てください。また、先頭の文字を取り除く/トリムすることに関する一般的な質問も探してください。 – shawnt00