Sql server 在MSSQL中使用IF和外部应用
如果外部条件适用,我想写。我需要返回多个列,所以我不想写子查询Sql server 在MSSQL中使用IF和外部应用,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,如果外部条件适用,我想写。我需要返回多个列,所以我不想写子查询 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
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
也许是这个
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
你的问题是什么?如何编写外部条件中的IF条件来应用不同的查询?谢谢伙计,这确实是一个很好的解决方案,但我需要使用IF条件。可能吗?@Axmed这是你需要的结果,你为什么坚持使用IF?无论如何,在查询中都不能使用IF。