0
私はテーブル名とテーブル名を持っています。以下はそのデータです。アルファベットを削除し、先頭の0を特定の文字数まで挿入します。
ABC123
ABC1234
ABC12345
HA11
K112
L1164
アルファベットを削除して先頭に0を置き、文字の合計長は9にする必要があります。以下は結果です。
00000
0000
000
000000011
000000112
000001164
私はABC(特定のアルファベットセット)のみを変更する方法を知っていますが、私はCASE文を作成することは知らないです。以下は私が成功したものです。
select REPLICATE('0',9-LEN(A.B)) + A.B
from
(select replace(Item, 'ABC','') as B from Table) as A
私はCASEとSELECTを組み合わせようとしましたが、そのようには見えません。
Case when Item like '%ABC%' then
select REPLICATE('0',9-LEN(A.B)) + A.B
from
(select replace(Item, 'ABC','') as B from Table) as A
when Item like '%HA%' then
select REPLICATE('0',9-LEN(A.B)) + A.B
from
(select replace(Item, 'HA','') as B from Table) as A
when Item like '%K%' then
select REPLICATE('0',9-LEN(A.B)) + A.B
from
(select replace(Item, 'K','') as B from Table) as A
when Item like '%L%' then
select REPLICATE('0',9-LEN(A.B)) + A.B
from
(select replace(Item, 'L','') as B from Table) as A
else Item
End
どのように結果を達成する方法を知っていますか? SQL Server 2012を使用しています。
ありがとうございます。
おかげミハル。それは= Dで動作します。列全体を変更するには、値を1つずつ宣言する必要がありますか?私が値をdeclare @ varchar(20)= Tableから項目を選択するように変更しようとしたので、それは好きではありません。助けてくれてありがとう= D。 –
@AdhityaSanusi編集をご覧ください。また、モデレータの注意を必要としないように答えを受け入れてください。 –
おかげでミハル。あなたは再びそれをしました= D。申し訳ありません。休暇中です。 –