【问题标题】:Filter my result by multiple selects/dropdowns which will accept multiple value each通过多个选择/下拉列表过滤我的结果,每个选择/下拉列表将接受多个值
【发布时间】:2020-03-19 07:49:11
【问题描述】:

我有多个下拉菜单

  1. 特希尔

All 可以选择多个值,默认全选。

现在我想编写一个高效的 SQL 查询来完成工作。我正在考虑使用 where col in () 语句,但是当我没有传递任何值时,它会导致错误。

实现给定结果的更好方法是什么。

需要更新以获取更多信息

我正在开发一个仪表板,其中我的图表需要对选择多种功能的多个下拉菜单(过滤器)进行反应,并且我认为where col in () 子句可以支持我。唯一的问题是在使用此子句时它不能为空,因为在未应用过滤器时无法从 SQL Server 获取数据。

【问题讨论】:

  • 您需要提供更多详细信息 - 因为我们不知道您在做什么。

标签: sql sql-server rest knex.js


【解决方案1】:

我通过阅读这篇文章找到了解决方案arrays-in-sql

例如:省 = [1,2,3],地区 = [1,2,3] 首先将省和区转换为字符串,例如省='1,2,3' 使用如下参数创建过程

CREATE PROC myFilterTable ( @province AS VARCHAR ( 50 ) = NULL,@district AS VARCHAR ( 50 ) = NULL ) AS BEGIN SELECT * FROM myTable WHERE ( @province IS NULL OR province_id IN ( SELECT CONVERT ( INT, VALUE ) FROM string_split ( @province, ',' ) ) ) AND ( @district IS NULL OR district_id IN ( SELECT CONVERT ( INT, VALUE ) FROM string_split ( @district, ',' ) ) ) END

现在执行: exec myFilter '1,2', '1,3'

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 1970-01-01
    • 2018-04-16
    • 2021-12-14
    • 2018-12-16
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多