【问题标题】:Concatenating Sql query连接 Sql 查询
【发布时间】:2013-12-06 03:12:03
【问题描述】:

我有一张表格,其中包含pes1、pest2、pest3……pest12 列。下面的查询计算每列的总和

SELECT SUM(pestpopulation1)as pestpopulation1,SUM(pestpopulation2)as pestpopulation2,
  SUM(pestpopulation3)as pestpopulation3,SUM(pestpopulation4)as pestpopulation4,
  SUM(pestpopulation5)as pestpopulation5,SUM(pestpopulation6)as pestpopulation6,
  SUM(pestpopulation7)as pestpopulation7,SUM(pestpopulation8)as pestpopulation8,
  SUM(pestpopulation9)as pestpopulation9,SUM(pestpopulation10)as pestpopulation10,
  SUM(pestpopulation11)as pestpopulation11,SUM(pestpopulation12)as pestpopulation12 
FROM transformed_table.

我已经为 c# 中的每一列制作了复选框。我想要的是用户选择查询应该相应运行的选项。

例如,用户检查害虫 1 和害虫 2 查询应该是这样的

SELECT SUM(pestpopulation1)as pestpopulation1,SUM(pestpopulation2)as pestpopulation2
FROM transformed_table.

有什么方法可以连接查询,因为如果我为所有可能的选项编写查询,它将花费很多时间。

【问题讨论】:

  • 您可以使用动态 SQL。基本上,您根据选择的害虫种群项目编写查询。如果您需要帮助,请告诉我。
  • 好吧,我真的很陌生这个请帮助..给我一个例子..

标签: c# sql-server-2008


【解决方案1】:

一个简单的例子:

string sql = "SELECT ";
if (checkBox1.Checked) sql += "SUM(pestpopulation1) as pestpopulation1, ";
if (checkBox2.Checked) sql += "SUM(pestpopulation2) as pestpopulation2, ";
// etc.
sql += "'' as dummy";  // Either this or remove the last comma.
sql += " FROM transformed_table;";

这样就可以了

但是说真的,你应该尝试一下,然后展示你尝试过的东西,以表明你做了什么。

【讨论】:

  • 然而,出于性能和安全性以及可维护性的原因,它仍然更喜欢使用 SPROCS。无论您从哪个角度看,C# 或 SQL - 您仍然需要执行相同的查询
  • 我很惊讶你不知道怎么做 :) 大量的例子和对谷歌的一些研究。您在示例中编写的任何内容都应该转移到 SPROC 中。 SPROC 是 T-SQL 编译的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 2023-03-29
  • 2021-12-25
  • 2016-02-03
相关资源
最近更新 更多