Question: Please help me with the query 
Below are the table and requirement details

[![enter image description here](https://i.stack.imgur.com/ux4O6.png)](https://i.stack.imgur.com/ux4O6.png)

Answer: 
Case statement constructs one variable.

For your example you can try this, with one statement of Case :

```
data example;
  input x $;

  datalines;
  A
  A
  A
  B
  B
  ; 
run;

proc sql;
  create table make_two_from_one_2 as
  select *
  , case
      when x = 'A' then 'Result1A,Result2A'
      when x = 'B' then 'Result1B,Result2B'
      else 'Error'
    end as thing0

  from example
  ;
quit; 

data example1(drop=thing0);
  set make_two_from_one_2;
  thing1=scan(thing0,1,',');
  thing2=scan(thing0,2,',');
run;

```
Personally I think this need, i.e., to overcome a cumbersome syntactic barrier with something that can be maintained in one place, is a good use case for SAS macro. 

The macro version also avoids the perils of parsing, is nicely tabular, and makes no type assumptions.

```
%macro _case(when_A, when_B, error='Error');
      case
          when x = 'A' then &when_A
          when x = 'B' then &when_B
          else &error
      end
%mend;

proc sql;
  create table make_two_from_one_v2 as
  select *
  , %_case('Result1A', 'Result1B') as thing1
  , %_case('Result2A', 'Result2B') as thing2
  from example
  ;
quit; 

```