基于用户选择的动态查询

时间:2014-04-08 15:38:06

标签: sql dynamic dynamic-sql

如何根据用户选择的数据生成动态查询。 I.E. 表1有基本的人事数据:姓名,社会分数......表2有地址信息:地址,城市,州,邮编 表三列出了已经合作的合同工作历史。

用户可以选择要返回的数据: 姓名,地址,当前合同,合同所在地的当前名称等......

我向他们提供了选项列表,我将数据存储在数据库中,其中包含 - tableName和fieldName ...

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

任何人都做过这样的事情或没有地方可以看?

1 个答案:

答案 0 :(得分:0)

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

如果您必须从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

这仍会返回列,但它会为空。