Hi all,
May I use IFN and IFC in SQL?
I receive the following error when I run the code:
Code:
proc sql;
create table aphase as
select USUBJID,
ifn(length(SESTDTC)>10, input(SESTDTC,is8601dt.), input(SESTDTC, is8601dn.)) as PH1SDT
from se
where TAETORD in (4)
order by USUBJID;
quit;
Error:
NOTE: Invalid date value
NOTE: Invalid argument to function INPUT. Missing values may be generated.
NOTE: Table WORK.APHASE11 created, with 44 rows and 2 columns.
14580 quit;
NOTE: PROCEDURE SQL used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
Or, possibly it is a problem with is8601dn. format ?
I had no choice but to change on 'case when':
proc sql;
create table aphase as
select USUBJID,
case when length(SESTDTC)>10 then datepart(input(SESTDTC,is8601dt.))
else datepart(input(SESTDTC, is8601dn.))
end as PH1SDT
from se
where TAETORD in (4)
order by USUBJID;
quit;
IFN/IFC is supported, but your log message is not about that, is about invalid date values.
Also, not sure if IFN/IFC functions gain you something in SQL, where you have CASE.
I had no choice but to change on 'case when':
proc sql;
create table aphase as
select USUBJID,
case when length(SESTDTC)>10 then datepart(input(SESTDTC,is8601dt.))
else datepart(input(SESTDTC, is8601dn.))
end as PH1SDT
from se
where TAETORD in (4)
order by USUBJID;
quit;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.