BookmarkSubscribeRSS Feed
dht115
Calcite | Level 5

Hello, 

 

I need to create a variable and assigned a character value based on the criteria. 

I need to do this step by using the proc sql. 

 

When I am using following code, I am getting an error. 

  • ______
    22
    76
    ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, (, *, **, +, -, '.', /, <, <=, <>, =, >, >=, AND, ELSE, EQ,
    EQT, GE, GET, GT, GTT, LE, LET, LT, LTT, NE, NET, OR, WHEN, ^=, |, ||, ~=.
  • ERROR 76-322: Syntax error, statement will be ignored.
proc sql;
		create table test2 as
		select *, case 
			when ( length(strip(_datetime)) GE 9 ) then 
					when _date1 GT _date2 then 'N'
					end as var1_new
			end

from test1 ;
1 REPLY 1
Reeza
Super User

You can't compound the conditions with another WHEN ( you would need another CASE) or add an AND.

 

	when ( length(strip(_datetime)) GE 9 ) & _date1 GT _date2 then 'N'
	end as var1_new

The other END makes me wonder if this is already part of a nested case statement though, which means you may need to post the whole nest to debug it.

CFC_SAS_Communities_400x225.jpg

Call for content now open!

It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.

Submit your proposal →

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1648 views
  • 1 like
  • 2 in conversation