我有两个表T1和T2,其中T1包含保存年信息的列名“ Year”,T2包含保存年信息的列名“ P_year”。
在表T1中,我保存了“ 2011,2012,2013,2014”年的一些数据。在表T2中,我保存了'2015,2016 ...这几年的数据,并且此数据还在继续。
现在,我开发了一个通用的Web表单来查看结果,其中我放置了该年份的下拉列表,以选择所有年份2011、2012、2013、2014、2015 ...
而且我很困惑如何选择...就像用户选择了任何特定年份一样...即如果用户选择了2013,那么我必须选择与表T1相关的select语句,如果用户选择了2015,那么我必须选择与表T2相关的select语句?
如果用户没有选择年份,那么我应该如何显示两个表中的所有数据?
if(year == "2011" !!year == "2012"!!year == "2013"!!year == "2014")
{
query1 = "select * from T1 where year ="Selected Year";
}
else if (year == "2015")
{
query2 = "select * from T2 where year ="2015";
}
else
{
query1 = "select * from T1 where year in('2011','2012','2013','2014');
query2 = "select * from T2 where year ="2015";
}
因此,如果用户选择了任何特定的年份,我可以选择合适的查询来执行执行。但是问题上升了,如果用户没有选择年份,我必须显示执行两个查询的两个表中的数据……就像我在上面的最后一个else语句中显示的那样。
因此,有没有办法以优化的方式编写代码。
注意:-在这里,我只是显示一个单行查询语句,但实际上每个选择语句存在5或6行。
任何人都可以在这方面帮助我。
尽管通常我希望所有数据都在一个表中,但是您可以执行以下操作:
SELECT *
FROM
(SELECT *
FROM T1
UNION
SELECT *
FROM T2
) T3
WHERE [Year]=@Year
或者,如果您需要所有数据:
SELECT *
FROM
(SELECT *
FROM T1
UNION
SELECT *
FROM T2
) T3
您可能还考虑使用像实体框架这样的ORM。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句