开发者社区> 问答> 正文

在MSSQL中将IF与外部应用一起使用

我想在OUTER APPLY中编写IF条件。我需要返回不止一列,所以我不想写子查询

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

展开
收起
游客ufivfoddcd53c 2020-01-04 16:36:33 861 0
1 条回答
写回答
取消 提交回答
  • 也许这个吗?

    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
    
    2020-01-04 16:36:51
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载