Axmed
Axmed

Reputation: 55

USING IF WITH OUTER APPLY IN MSSQL

I want to write IF conditition in OUTER APPLY. I need to return more than one column so i don't want to write subqueries

SELECT name FROM v_users 
OUTER APPLY
(
    IF CAST(reg_date AS DATE)<CAST('03/25/2017' AS DATE)
   SELECT gender,email,age,class FROM tb_register_old WHERE id=v_users.user_id;
ELSE 
   SELECT gender,email,age,class FROM tb_register_new WHERE id=v_users.user_id;
)s

Upvotes: 5

Views: 109

Answers (1)

TriV
TriV

Reputation: 5148

Maybe this?

SELECT name FROM v_users 
OUTER APPLY
(
 SELECT gender,email,age,class 
 FROM tb_register_old 
 WHERE id=v_users.user_id and CAST(reg_date AS DATE)<CAST('03/25/2017' AS DATE)

 UNION ALL  

 SELECT gender,email,age,class 
 FROM tb_register_new 
 WHERE id=v_users.user_id and CAST(reg_date AS DATE) >= CAST('03/25/2017' AS DATE)
)s

Upvotes: 4

Related Questions