【问题标题】:SQL WHERE clause searching for multiple parameters from one fieldSQL WHERE 子句从一个字段中搜索多个参数
【发布时间】:2021-12-06 20:55:19
【问题描述】:

基本上我希望 MS Access 查询输出满足以下所有三个条件的所有记录:

  1. Expanded_Status = "符合条件但未注册"
  2. 医院 = “UHN”
  3. 评论 = “移植”或“tx”或“移植后”

cmets 字段有 3 个不同版本的单词“transplant”,因此某些字段可能有“tx”而不是“transplant”,一些记录可能有“post-transplant”而不是“transplant”。

由于某种原因,下面的查询正在输出与所有三个条件都不匹配的记录。

请帮我修改查询,以便我只能找到满足所有三个条件的记录

SELECT [First Name], [Last Name], [Subject ID], Expanded_Status, Hospital, Comments
FROM [Barriers UHN Screen - 2017 Mailing]
WHERE Expanded_Status = "Eligible but not enrolled" AND Hospital = "UHN"  AND Comments LIKE "transplant"  OR Comments OR "post transplant" OR Comments = "tx";

【问题讨论】:

  • “cmets”字段中有句子,所以我正在寻找“移植”或“tx”这个词

标签: sql ms-access where-clause


【解决方案1】:

祖瓦, 试试这个

SELECT 
    [First Name], [Last Name], [Subject ID], Expanded_Status, Hospital, Comments
FROM 
    [Barriers UHN Screen - 2017 Mailing]
WHERE 
    Expanded_Status = "Eligible but not enrolled" AND Hospital = "UHN"  AND 
(Comments = "transplant"  OR Comments = "post transplant" OR Comments = "tx");

将 where 子句的 Comment 部分括在括号中,告诉访问将每个单独评估为 AND 子句的一部分。

【讨论】:

    【解决方案2】:

    以@Harun24HR 的回答为基础:

    SELECT 
        [First Name], [Last Name], [Subject ID], Expanded_Status, Hospital, Comments
    FROM 
        [Barriers UHN Screen - 2017 Mailing]
    WHERE 
        Expanded_Status = "Eligible but not enrolled" AND Hospital = "UHN"  AND 
    (LOWER(Comments) LIKE "*transplant*"  OR LOWER(Comments) LIKE "*post transplant*" OR LOWER(Comments) LIKE "*tx*");
    

    我添加了两件事:

    1. Comments 上调用 lower 可确保您只比较小写字符串 - 如果有人在 cmets 中有“移植后”,它可能与“移植后”不匹配
    2. 比较字符串开头和结尾的通配符 * - 这告诉 Access 我的比较字符串可以在 cmets 中的任何位置。

    Like Operator

    【讨论】:

    • 我明白了,谢谢。但是我想要下层和上层,所以最好只是省略下层并保持原样吗?
    • 因为左右两边都是小写的(在评论上叫LOWER后),所以无论目标短语在cmets中的大小写如何,都应该匹配。您正在将所有文本“规范化”为小写,以使您必须比较的字符串数量尽可能少。
    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多