。その後、ビジネスロジックの適用を開始することができますが、それが何であるかを理解するのは難しいです。引用符は意味がないと仮定すると
(誰かがCSVファイルに書き込まれたことで、実際の引用文字と、それは"""xxx"""
になったので、既存の引用符を保護するために追加ので、余分な引用符を持っていた"xxx"
のような文字列を持っていたように見えます)それらを削除するにはcompress()
関数を使用することができます。
これで、結果の文字列を3文字の部分文字列に分割できます。
data want ;
set have ;
array h history1 history2 ;
do history=1 to dim(h);
h(history)=compress(h(history),'"');
length index 8 value $3 ;
do index=1 by 1 until (value=' ');
value=substrn(h(history),3*(index-1)+1,3);
if value ne ' ' then output;
end;
end;
drop history1 history2;
run;
ですから、このようなもので終わる:
Obs id type history index value
1 1 13 1 1 STD
2 1 13 1 2 STD
3 1 13 1 3 058
4 1 13 1 4 030
5 1 13 2 1 STD
6 1 13 2 2 030
7 1 13 2 3 066
8 1 13 2 4 036
9 1 13 2 5 030
10 1 13 2 6 STD
11 1 13 2 7 STD
12 1 13 2 8 STD
13 1 13 2 9 STD
14 1 13 2 10 STD
15 1 3 1 1 STD
16 1 3 1 2 STD
17 1 3 1 3 STD
18 1 3 1 4 XXX
19 1 3 1 5 STD
20 1 3 1 6 XXX
21 1 3 1 7 S
出典
2017-10-08 15:04:25
Tom
これは、私はまだそれで問題に直面し、それを実行しようとしているSQLよりもデータの段階で優れているとSUBSTR – Reeza
を使用。 –
投稿した番号の論理を説明してください。値> 30を数えると、顧客2には1つしかない場合に3が表示されます。そしてなぜ顧客3は0を持っていますか? – Tom