将SQL语法中的列数据解析为SQL查询

将SQL语法中的列数据解析为SQL查询,sql,Sql,我正在努力解决工作中的一个业务流问题,我有一个想法,希望在SQL中在技术上是可行的。我想尝试并做的是将不同的SQL语法公式存储到数据库列中。在SQL查询中,我会将变量设置为等于这些列,以便将列的内容作为查询的一部分进行解析,并根据select规范弹出不同的SQL语句 简短而甜蜜:我有一些小部件要出售,客户能否获得这些小部件取决于他们购买的其他小部件,应该有和不应该有,国家,客户ID,他们的小部件版本,小部件类别和其他一些东西 我的问题是有人会怎么做?我肯定有人以前也做过类似的设置,但哪些方法对我

我正在努力解决工作中的一个业务流问题,我有一个想法,希望在SQL中在技术上是可行的。我想尝试并做的是将不同的SQL语法公式存储到数据库列中。在SQL查询中,我会将变量设置为等于这些列,以便将列的内容作为查询的一部分进行解析,并根据select规范弹出不同的SQL语句

简短而甜蜜:我有一些小部件要出售,客户能否获得这些小部件取决于他们购买的其他小部件,应该有和不应该有,国家,客户ID,他们的小部件版本,小部件类别和其他一些东西

我的问题是有人会怎么做?我肯定有人以前也做过类似的设置,但哪些方法对我的案例有用?有没有案例研究可以让我找到灵感?我一直在寻找这个,没有任何运气。希望以前解决过类似问题的人能为我指明方向

感谢曾经能够回答并有兴趣阅读我文章的人

致意


Zaid

**好的,这更多的是一个注释,而不是一个答案,但是如果我将其作为注释输入,格式将不起作用

要非常含糊地回答你的问题,我需要一个小部件表

WidgetID | Widget Name
1          Widget1
2          Widget2
3          Widget3
4          Widget4
然后有一个WidgetRequirements表

WidgetRequiredID | WidgetID | RequiredWidgetID
1                  1          2
2                  1          3
3                  1          4
4                  2          4 
5                  3          1
6                  3          4
这说明widgetid1需要小部件2、3和4才能“激活”。 小部件2只需要widget4激活,而Widget3需要小部件1和4


这应该让您开始,扩展这个理论。

如果您使用的是ORACLE,您可以在PL/SQL块中动态构建SQL语句,然后执行它。您使用的数据库是什么?您可以使用函数或存储过程以SQL语法保存
公式,并使用基于角色的访问组或进行表格查找,以查看正在运行的用户是否具有执行权限。您好,AeroX-感谢您的回复,我使用的是MS SQL 2008。你能指定一些你要使用的函数吗?欢迎任何形式的灵感。我曾想过使用存储过程,并在查询的中间调用这些过程,只需要让我思考一下,以及如何继续进行。这也是一个很好的方法,谢谢。我希望类似的事情能够解决:WidgetRequiredID | WidgetID在(2,3,5)中,而不是在(1,6,7)| 1中,并根据选择的小部件将WidgetRequiredID的内容解析到SQL查询中。我在这方面到处寻找灵感。