【问题标题】:How do I search and select names that start with certain letters?如何搜索和选择以某些字母开头的名称?
【发布时间】:2022-07-13 21:52:47
【问题描述】:
SELECT FirstName, LastName, Email
FROM PATIENT
WHERE [LastName] LIKE 'K%' OR 'Ma%' AND [FirstName] LIKE 'K%' OR 'Ma%';

我需要显示姓氏或名字以“K”或“Ma”开头的患者的名字、姓氏和电子邮件。

这是我的代码,我很困惑,因为 MS Access 无法识别我的 SQL 代码。我也尝试过这种方式,但它不起作用:

SELECT FirstName, LastName, Email
FROM PATIENT
WHERE [LastName] LIKE 'K%' AND 'Ma%' OR [FirstName] LIKE 'K%' AND 'Ma%';

如何让 Access 识别我的代码并打印正确的结果?

【问题讨论】:

  • @ADyson 我得到了意想不到的结果。它不仅显示姓名以“K”或“Ma”开头的患者,还显示姓名以其他字母开头的患者

标签: sql ms-access


【解决方案1】:

对于要进行的每个比较,您都不能跳过提及列名。否则,像 [LastName] LIKE 'K%' OR 'Ma%' 这样的东西会评估为 [LastName] LIKE 'K%' OR true - 因为你没有将 Ma% 与其他任何东西进行比较,所以它本身就是正确的。当然,如果 true 位于 OR 的任一侧,则整个子句最终评估为 true。

另外,您在第二个示例中弄乱了 AND 和 OR - 例如名字不能以K开头并且以Ma开头!

这应该是你需要的。

WHERE 
  [LastName] LIKE 'K%' 
  OR [LastName] LIKE 'Ma%' 
  OR [FirstName] LIKE 'K%' 
  OR [FirstName] LIKE'Ma%';

【讨论】:

    【解决方案2】:

    这取决于您何时只需要以 K 和 Ma 开头的名字和 和 姓氏的 perserons,您可以使用

    SELECT FirstName, LastName, Email
    FROM PATIENT
    WHERE ([LastName] LIKE 'K%' OR [LastName] LIKE 'Ma%') AND ([FirstName] LIKE 'K%' OR [FirstName] LIKE 'Ma%');
    

    如果你不介意字母出现在哪里,你最好使用

    SELECT FirstName, LastName, Email
    FROM PATIENT
    WHERE [LastName] LIKE 'K%' OR [LastName] LIKE 'Ma%' OR [FirstName] LIKE 'K%' OR [FirstName] LIKE 'Ma%';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 2021-12-18
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多