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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.