Ich würde gerne wissen, ob es möglich ist, mehrere Zuweisungen als Folge eines einzigen CASE auszuführen. Das heißt, anstatt zwei CASE-Anweisungen zu haben, haben Sie eine einzelne CASE-Anweisung mit einer "then-do-end" -ähnlichen Struktur.SAS: PROC SQL Mehrere Zuweisungen als Folge eines einzigen CASE
Zum Beispiel, wie würde ich thing1
und thing2
basierend auf x
innerhalb einer einzigen CASE-Anweisung zuweisen?
data example;
input x $;
datalines;
A
A
A
B
B
;
run;
proc sql;
create table make_two_from_one as
select *
, case
when x = 'A' then 'Result1A'
when x = 'B' then 'Result1B'
else 'Error'
end as thing1
, case
when x = 'A' then 'Result2A'
when x = 'B' then 'Result2B'
else 'Error'
end as thing2
from example
;
quit;
Leider funktioniert SQL nicht so. –
Konnten Sie einfach Zählungen in einer Gruppe hinzufügen; Wählen Sie dann die Kombination aus dem Wert und seiner Anzahl? (Für den ersten Teil, siehe hier: http://stackoverflow.com/questions/17006765/get-a-the-row-number-in-a-data-step-using-sas) – johnjps111
Oder Sie könnten dies innerhalb tun ein Datenschritt, da SQL nichts besitzt, was ein Datenschritt nicht einfach replizieren könnte. – Reeza