使用 UNION 将数据拉入网格

2024-02-14

我的网站上有一个数据网格,我从两个表中提取公司信息。

我正在创建一个表单来根据 3 个过滤器(类别、州、城市)对这些结果进行排序

这是我最初将数据加载到网格中的查询。我希望它填充我的所有表数据,直到用户决定过滤它,这就是为什么我使用 UNION,因为如果没有它,我的查询正在等待我传递查询字符串值来完成它的 WHERE 语句。

SELECT * FROM BND_listing left join BND_ListingCategories
on BND_Listing.CatID=BND_ListingCategories.CatID

UNION

SELECT * FROM BND_listing left join BND_ListingCategories
on BND_Listing.CatID=BND_ListingCategories.CatID
WHERE (CategoryName = '[querystring:filter-Category]' OR     '[querystring:filter-Category]' is NULL)

我不确定这是否是执行此操作的正确程序。

我很难理解这个查询的 NULL 参数。页面加载时没有查询字符串。

仅当用户按下“排序”按钮时,查询字符串才会添加到 URL 中。用户可以选择按 1 个或全部 3 个过滤器进行排序,但在这种情况下,他们仅按其中 1 个选项进行排序。查询字符串将为剩下的另外两个字符串传递 ALL。

IE:过滤器类别/Barber%20Shop/过滤器城市/全部/过滤器州/全部 此处,用户仅从 1 个下拉列表中选择“理发店”,并将“城市和州”下拉列表保留为默认选择。

我的“监听”查询字符串参数的查询在我的应用程序上无法正常工作。但是,当在 SQL Management studio 中使用以下内容时,它确实可以正确提取我的记录。

SELECT * FROM BND_listing left join BND_ListingCategories
on BND_Listing.CatID=BND_ListingCategories.CatID
WHERE (CategoryName = 'Barber Shop' OR '[querystring:filter-Category]' is      NULL)

这将是我的数据网格查询,其中包含所有 3 个“监听”WHERE 语句。

SELECT * FROM BND_listing left join BND_ListingCategories
on BND_Listing.CatID=BND_ListingCategories.CatID

UNION

SELECT * FROM BND_listing left join BND_ListingCategories
on BND_Listing.CatID=BND_ListingCategories.CatID
WHERE (CategoryName = '[querystring:filter-Category]' OR     '[querystring:filter-Category]' is NULL)
AND (city = '[querystring:filter-City]' OR '[querystring:filter-City]' IS     NULL)
AND (state ='[querystring:filter-State]' OR '[querystring:filter-State]' IS     NULL)

任何帮助、意见、示例、见解都将受到高度赞赏!

Examples Online & SQL Studio enter image description here enter image description here enter image description here enter image description here


联盟不会给你你想要的。其目的是将两个或多个查询的结果连接在一起并保持不同的值。在您的情况下,联合的前半部分捕获所有数据,后半部分捕获过滤后的数据。由于前半部分捕获了所有内容,因此所有内容都会被返回。

您似乎这样做是因为您没有用于第一次运行的过滤器,但您希望在第二次运行时使用过滤器。

如果查询字符串不存在,请勿添加 where 子句。如果存在,请添加 where 和适当的子句。

您提到排序,但您的查询缺少 order by 子句。 如果您希望对数据进行排序,则需要添加一个。

第一次加载,没有 where 子句或所有过滤器设置为“ALL”

SELECT * FROM BND_listing left join BND_ListingCategories
on BND_Listing.CatID=BND_ListingCategories.CatID
order by CategoryName, state, city

后续加载,带有 where 子句。

SELECT * FROM BND_listing left join BND_ListingCategories
on BND_Listing.CatID=BND_ListingCategories.CatID
WHERE (CategoryName = '[querystring:filter-Category]' OR     '[querystring:filter-Category]' is NULL)
AND (city = '[querystring:filter-City]' OR '[querystring:filter-City]' IS     NULL)
AND (state ='[querystring:filter-State]' OR '[querystring:filter-State]' IS     NULL)
order by CategoryName, state, city

编辑:你不能有 2 个查询,因为该插件只允许 1 个。

我假设“监听”是指 querystring:filter-Category 将被类别查询字符串中的任何内容替换。由于它在您的查询中被替换,因此您无法与 null 进行比较。由于没有过滤器是“全部”,因此您需要考虑到这一点。 尝试这个:

SELECT * 
FROM BND_listing 
left join BND_ListingCategories
    on BND_Listing.CatID=BND_ListingCategories.CatID
WHERE   
    (
        '[querystring:filter-Category]' = 'ALL' -- for when the queryString is set to ALL
        or '[querystring:filter-Category]' = '' -- for when the queryString isn't available like first load. this replaces the is null comparison. you can't compare a string literal to null as they are wrapped in quotes
        or CategoryName = '[querystring:filter-Category]' -- this is the comparison to your column
    )
    AND (
         '[querystring:filter-City]' = 'ALL'
        or '[querystring:filter-City]' = ''
        or city = '[querystring:filter-City]' 
    )
    AND (
        '[querystring:filter-State]'  = 'ALL'
        or '[querystring:filter-State]' = ''
        or state = '[querystring:filter-State]' 
    )
order by CategoryName, state, city
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 UNION 将数据拉入网格 的相关文章

  • REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除逗号

    我在 oracle 论坛网站找到了一个例子 输入字符串 a b c x y z a xx yy zz x WITH t AS SELECT a b c x y z a xx yy zz x col1 FROM dual SELECT t c
  • 如何在 PostgreSQL 中使用条件和子查询创建唯一索引?

    我使用 PGSQL 并尝试添加下面的索引 CREATE UNIQUE INDEX fk client ON user client fk client WHERE fk client NOT IN SELECT fk client FROM
  • SQL Server 2012:有条件地增加计数器用户 ROW_NUMBER()

    我正在尝试申请ROW NUMBER 根据特定条件增加计数器 我的数据如下所示 目标计数器是Prep column id DSR PrepIndicator Prep 1662835 1 1 1 1662835 14 2 2 1662835
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • 如何进行数据透视并计算列平均值

    我承认这是迄今为止我必须面对的最复杂的 SQL 语句之一 我在这件事上碰壁了 我希望有人能帮我一把 我在数据库中有这张表 Item ActiveTime sec DateTime 1 10 2013 06 03 17 34 22 gt Mo
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 如何连续添加起始行和下一行的值

    我只想创建一个 sql 查询 结果就像图片上的那样 类似于 SQL 中的斐波那契数列 Ex Column 1 10 则 Result 列的值为 Result 10 因为这是第一行 然后假设column1第二行的值为50 那么Result第二
  • hive sql查找最新记录

    该表是 create table test id string name string age string modified string 像这样的数据 id name age modifed 1 a 10 2011 11 11 11 1
  • 以编程方式插入行(父行和子行)

    我正在使用 Spring 和 JDBCTemplate 该场景是 CUSTOMER 表和 ORDERS 表的父子关系 我想做一个插入 例如 1 个客户和 5 个订单 但我不确定如何以编程方式在 CUSTOMER 表中插入一行 如何获取 Or
  • 带有可变 WHERE 子句的批量 UPDATE 表

    我有一堆值对 foo1 bar1 foo2 bar2 我想做一堆更新 将 foo 列设置为 foo1 其中 bar 列为 bar1 我正在使用 psycopg2 在 Python 中执行此操作 我可以executemany与查询UPDATE
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 将两个表合并为一个输出

    假设我有两张表 已知营业时间 ChargeNum CategoryID Month Hours 111111 1 2 1 09 10 111111 1 3 1 09 30 111111 1 4 1 09 50 222222 1 3 1 09
  • SQL Server 中高效的字符串后缀搜索?

    我想找到与谓词匹配的所有行MyColumn LIKE FooBar 但通过使用索引查找而不是扫描 一种方法本质上是创建 MyColumn 的反向版本并搜索反向模式 ooF 在该列上 在反向列上有一个常规索引 然而 我不喜欢手动创建这个反向列
  • 更好地理解 SQL Server 中的架构

    就像标题一样 我还是一个SQLServer菜鸟 当我创建表 Mytable 时 数据库中显示 dbo Mytable 但有人能让我更好地理解模式吗 另外 在 Server 2008 TSQL 一书中 Itzik 说 在你的数据库中 表属于模
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • Oracle:按月分区表

    我的解决方案 德语几个月 PARTITION BY LIST to char GEBURTSDATUM Month PARTITION p1 VALUES JANUAR PARTITION p2 VALUES Februar PARTITI

随机推荐

  • Python迭代对象列表“不可迭代”

    Python 新手 但我已经研究了几个小时 如果我错过了一些明显的事情 请原谅我 我有一个名为 LineItem 的类 它有一个属性 lineItems 即属于给定 LineItem 的 LineItem 列表 基本上是一个子列表 我想打印
  • ipython 笔记本中的 Unicode

    我正在尝试从 ipython 笔记本中获取 matplotlib 图中的 度 符号 当我跑步时 ax plt gca ax set xlabel something at 55 unicode xc2 errors replace ax p
  • 如何在文本板中使用正则表达式逐行删除指定字符后的任何内容?

    假设我在 Textpad 中有以下文本 kwejkewrjl ksajdlakj e833ekjh skdjkahak 2098e123809 ksjdkas dkjwhfdkjqhio skjddksjal 98a09asfdsaok k
  • 矢量化 SciPy ode 求解器

    我的问题是关于当前的 scipy ode 求解器 来自scipy 文档页面 http docs scipy org doc scipy reference generated scipy integrate ode html scipy i
  • Linq 中的 ToList 方法

    如果我没记错的话 ToList 方法会迭代提供的集合的每个元素 并将它们添加到 List 的新实例中并返回此实例 假设一个示例 using linq list Students Where s gt s Name ABC ToList tr
  • 为什么将 min 和 max 列为序列运算?

    Python 的文档中有一个表格 其中包含 常用序列操作 https docs python org 3 library stdtypes html common sequence operations 大多数序列类型都支持 它列出了例如x
  • Android 中使用 Google API 的依赖 apache HTTP 客户端

    我一直在使用 Google Play 服务库 仅通过 Google 登录 效果很好 但现在我想将日历 API 包含到我的应用程序中 我正在关注本教程 https developers google com google apps calen
  • 使用 wsdl2java/Apache CXF 生成 Web 服务代理类

    我正在尝试使用 Apache CXF 附带的 wsdl2java 工具生成 Web 服务代理 生成本身似乎一切顺利 但生成的文件中存在一些错误 调用了不存在的构造函数 该文件提供了解决方案 This constructor requires
  • 以编程方式生成 Apache Spark 中数据帧的架构和数据

    我想动态生成一个包含报告标题记录的数据帧 因此根据以下字符串的值创建一个数据帧 val headerDescs String Name Age Location val headerSchema StructType headerDescs
  • 将 HTTP 请求标头键值获取到条件检查中

    我已在 Azure 门户中创建了一个逻辑应用程序 它是由 HTTP POST 触发的 在该 POST 中我设置了一个名为 jmb private key 的密钥 逻辑应用程序收到 HTTP 请求后 我放置了一个条件 我想检查其密钥 检查He
  • .class 样式到 .class B 样式可以轻松制作动画吗?

    有没有一种方法可以在 Jquery 中设置动画而无需指定每个属性 让我们说 classA color red classB color blue function animate selector classA classB time st
  • 猫头鹰的含义:有值吗?

    一个的含义是什么owl hasValue限制 以及它与owl allValuesFrom and owl someValuesFrom 在本体论中 我想写一个公理 每个拥有文凭的人都是有文化的 我该怎么写这个 不同类型的限制类别 考虑一个个
  • Microsoft Bot 中的相同线程重复欢迎消息

    我有一条欢迎消息 配置为在我的机器人第一次启动时出现在 MessagesController 中 private Activity HandleSystemMessage Activity message if message Type A
  • Perl 是否有计算字符串中匹配项数量的快捷方式?

    假设我有 my string one two three four 我应该如何利用上下文来获取模式找到匹配项的次数 3 这可以使用单行完成吗 我试过这个 my number scalar string gi 我认为通过加上括号 number
  • 通过 Graph API 评论 Facebook 页面评级(评论)

    长期潜伏者第一次海报 我们正在与 Facebook API 合作 将其集成到我们的网络应用程序中 并且我们能够通过 page id ratings 部分中的 open graph story 参数获取公司页面评级 但是我们找不到评论 回复的
  • Buffer.BlockCopy 与不安全的 byte* 指针复制

    复制字节块时哪个性能更好 Buffer BlockCopy非常优化 它基本上是原始内存副本的包装器 所以它应该非常快 并且避免弄乱指针和unsafe代码 它应该是默认的 你当然可以用各种方式来衡量
  • HList 选项的幂集

    我正在玩 Shapeless 我正在尝试计算 某种 powerset https en wikipedia org wiki Power set of an HList of Options 基本上 我想解释一下HList作为一个集合 在这
  • Angular2 /错误:找不到集合

    我对 Angular2 很陌生 正在尝试构建一个 Todo 应用程序 这是我的文件结构 My todo service ts代码 里面shared folder import Injectable from angular core imp
  • tkinter 中的“权重”有什么作用?

    我一直在搜索不同的网站 试图找出权重在 tkinter 中的作用 我从那里得到这个TkDocs http www tkdocs com tutorial grid html 每列和行都有一个与之关联的 权重 网格选项 该选项告诉它如果母版中
  • 使用 UNION 将数据拉入网格

    我的网站上有一个数据网格 我从两个表中提取公司信息 我正在创建一个表单来根据 3 个过滤器 类别 州 城市 对这些结果进行排序 这是我最初将数据加载到网格中的查询 我希望它填充我的所有表数据 直到用户决定过滤它 这就是为什么我使用 UNIO