【问题标题】:sql join with default parameter带有默认参数的sql连接
【发布时间】:2015-08-25 19:11:05
【问题描述】:

假设我有一个名为 t_employee 的表,它有一个 name 列和一个 company_id 列。 我有一个存储过程,可以在其中列出所有员工或仅列出公司,

create procedure p_listEmployees( @companyID integer = null)

在程序中,而不是说@companyID 是否为空...... 我宁愿加入处理我可能会或可能不会过滤的事实。 我确信前段时间我已经看到使用 COALESC 完成此操作。

有什么想法吗?

【问题讨论】:

标签: sql parameters filtering


【解决方案1】:
from t_employee e left join company c on COALESCE(c.company_id,1) = COALESCE(e.company_id,1)

【讨论】:

    【解决方案2】:

    类似这样的:

    from t_employee e left join company c on c.company_id = e.company_id
    where (@companyId is not null and e.company_id = @companyId)
    or @companyId is null
    

    注意这是左连接。

    【讨论】:

      猜你喜欢
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2012-01-11
      相关资源
      最近更新 更多