【问题标题】:Dynamic query based on user selection基于用户选择的动态查询
【发布时间】:2014-05-21 10:12:39
【问题描述】:

如何根据用户选择的数据生成动态查询。 IE。 表 1 有基本人员数据:姓名、社会安全号码... 表 2 有地址信息:addr、city、state、zip 表 3 有已履行合同的工作历史记录。

用户可以选择要返回的数据: 姓名、地址、当前合同、当前签约地点名称等...

我已经向他们展示了选项列表,并且我将其存储在信息所在的数据库中 - tableName 和 fieldName ...

但我不确定如何将数据动态编译成查询。我得到了动态 sql,但这是一个结构和检索的问题。

有人做过这样的事还是没地方看?

【问题讨论】:

  • 必须返回一个数据集吗?如果您不这样做,那么我将为查询的每一位返回一个表,因为它会更有效且更易于阅读。如果您需要将它们全部归还;堆栈上有很多 DSQL 示例可以帮助您前进。
  • 获得数据后,我将其放入 XML 并填写 PDF 表单。问题是使用适当的 JOIN 和 WHERE 子句获取数据。

标签: sql dynamic dynamic-sql


【解决方案1】:

如果您需要一直将此信息提供给报告,我建议您将所有数据返回到您的报告中,然后在前端应用程序中动态隐藏您不需要的列。这通常更容易。

如果您绝对必须从 SQL 端执行此操作,您可以执行以下操作:

SELECT 
    CASE WHEN @paramDisplayName = 1 THEN Name ELSE NULL END AS Name,
    CASE WHEN @paramDisplayAddress = 1 THEN Address ELSE NULL END AS Address
    ...
    ...
    ...
FROM 
    Wherever

这仍然会返回该列,尽管它会是空的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2017-12-22
    • 2017-12-28
    • 1970-01-01
    • 2017-09-23
    • 2023-03-25
    • 2021-09-20
    相关资源
    最近更新 更多