传递给存储过程的字段名称的SQL查询

用户名

我在SQL Server中有一个存储过程,该过程使用3个参数并返回如下的Orders列表:

@fieldToFilter VARCHAR(100), --Will only be 1 of these values 'Order Date', 'Delivery Date' or 'Dispatch Date'
@StartDate DATE,
@EndDate DATE

SELECT 
    o.Number, o.Customer
FROM 
    Order o
WHERE 
    (o.OrderDate > @StartDate) 
    AND (o.OrderDate < @EndDate) 
    AND (SoftDeleted = 0)

上面查询的问题在于,我已经OrderDate对该WHERE子句中的列进行了硬编码

我想做的是使用中的值@fieldToFilter来确定应在哪一列上进行过滤。例如

  • 如果@fieldToFilter是,Order Date则在该OrderDate上进行过滤
  • 如果@fieldToFilter是,Delivery Date则在该DeliveryDate上进行过滤
  • 如果@fieldToFilter是,Dispatch Date则在该DispatchDate上进行过滤

实现这样的最佳方法是什么?

etoisarobot

我不确定语法是否正确,但是类似的东西应该可以工作

SELECT o.Number, o.Customer
    FROM Order o
    WHERE (@StartDate < case when @fieldToFilter = 'Order Date' then o.OrderDate
                            when @fieldToFilter = 'Delivery Date' then o.DeliveryDate
                            when  @fieldToFilter = 'Dispatch Date' then o.DispatchDate
                            else o.OrderDate end)
    and (@EndDate > case when @fieldToFilter = 'Order Date' then o.OrderDate
                            when @fieldToFilter = 'Delivery Date' then o.DeliveryDate
                            when  @fieldToFilter = 'Dispatch Date' then o.DispatchDate
                            else o.OrderDate end) 
    and (SoftDeleted=0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅查询Mongodb中的字段名称

来自分类Dev

使用Dapper从存储过程中获取字段名称

来自分类Dev

在数据透视SQL查询中为字段名称添加别名

来自分类Dev

MySQL查询中的动态字段名称选择

来自分类Dev

SQL Server检索子查询的字段名称

来自分类Dev

子查询中的动态字段名称?

来自分类Dev

传递结构的字段名称以访问函数内部

来自分类Dev

在Hibernate SQL查询中,如何转义?字段名称中的字符

来自分类Dev

将字段名称作为参数传递给自定义验证方法Rails 4

来自分类Dev

INSERT INTO sql查询正在使用变量字符串而不是字段名称

来自分类Dev

在dapper查询中传递字段名称

来自分类Dev

有没有一种方法可以将字段名称传递给setter函数?

来自分类Dev

具有动态字段名称的mongo组查询

来自分类Dev

仅查询Mongodb中的字段名称

来自分类Dev

使用Dapper从存储过程中获取字段名称

来自分类Dev

SQL查询-替换字段名称中的句点

来自分类Dev

将别名添加到Pivot SQL查询中的字段名称

来自分类Dev

MySQL查询中的动态字段名称选择

来自分类Dev

传递结构的字段名称以在函数内部访问

来自分类Dev

如何在Oracle PL / SQL查询中动态获取字段名称?

来自分类Dev

在Hibernate SQL查询中,如何转义?字段名称中的字符

来自分类Dev

C#MVC Link-To-Sql将表名和字段名传递给函数

来自分类Dev

Excel查询中的动态字段名称

来自分类Dev

如何将字段名称传递给属性文件中的全局消息

来自分类Dev

查询集注释中的动态字段名称

来自分类Dev

通用实体字段名称的动态查询

来自分类Dev

Laravel 查询中的 orderBy 字段名称

来自分类Dev

如何使用sql select查询通过动态字段名称获取值

来自分类Dev

Doctrine 从查询中返回奇怪的字段名称

Related 相关文章

  1. 1

    仅查询Mongodb中的字段名称

  2. 2

    使用Dapper从存储过程中获取字段名称

  3. 3

    在数据透视SQL查询中为字段名称添加别名

  4. 4

    MySQL查询中的动态字段名称选择

  5. 5

    SQL Server检索子查询的字段名称

  6. 6

    子查询中的动态字段名称?

  7. 7

    传递结构的字段名称以访问函数内部

  8. 8

    在Hibernate SQL查询中,如何转义?字段名称中的字符

  9. 9

    将字段名称作为参数传递给自定义验证方法Rails 4

  10. 10

    INSERT INTO sql查询正在使用变量字符串而不是字段名称

  11. 11

    在dapper查询中传递字段名称

  12. 12

    有没有一种方法可以将字段名称传递给setter函数?

  13. 13

    具有动态字段名称的mongo组查询

  14. 14

    仅查询Mongodb中的字段名称

  15. 15

    使用Dapper从存储过程中获取字段名称

  16. 16

    SQL查询-替换字段名称中的句点

  17. 17

    将别名添加到Pivot SQL查询中的字段名称

  18. 18

    MySQL查询中的动态字段名称选择

  19. 19

    传递结构的字段名称以在函数内部访问

  20. 20

    如何在Oracle PL / SQL查询中动态获取字段名称?

  21. 21

    在Hibernate SQL查询中,如何转义?字段名称中的字符

  22. 22

    C#MVC Link-To-Sql将表名和字段名传递给函数

  23. 23

    Excel查询中的动态字段名称

  24. 24

    如何将字段名称传递给属性文件中的全局消息

  25. 25

    查询集注释中的动态字段名称

  26. 26

    通用实体字段名称的动态查询

  27. 27

    Laravel 查询中的 orderBy 字段名称

  28. 28

    如何使用sql select查询通过动态字段名称获取值

  29. 29

    Doctrine 从查询中返回奇怪的字段名称

热门标签

归档