当前位置: 首页 > 面试题库 >

SQL多个LIKE语句

唐烨煜
2023-03-14
问题内容

我目前正在制作一份报告,向我显示我们销售团队涵盖的所有邮政编码。

每个团队涵盖100多个邮政编码。我想做的是创建一个报告,将邮政编码内的客户带回去。目前,我的代码如下所示。

SELECT * FROM tbl_ClientFile
WHERE CLNTPOST1 LIKE ('B79%')
OR CLNTPOST1 LIKE ('BB1%')
OR CLNTPOST1 LIKE ('BB10%')
OR CLNTPOST1 LIKE ('BB11%')
OR CLNTPOST1 LIKE ('BB12%')
OR CLNTPOST1 LIKE ('BB18%')
OR CLNTPOST1 LIKE ('BB2%')
OR CLNTPOST1 LIKE ('BB3%')
OR CLNTPOST1 LIKE ('BB4%')
OR CLNTPOST1 LIKE ('BB5%')
OR CLNTPOST1 LIKE ('BB6%')
OR CLNTPOST1 LIKE ('BB8%')
OR CLNTPOST1 LIKE ('BB9%')
OR CLNTPOST1 LIKE ('BB94%')
OR CLNTPOST1 LIKE ('BD1%')
OR CLNTPOST1 LIKE ('BD10%')
OR CLNTPOST1 LIKE ('BD11%')
OR CLNTPOST1 LIKE ('BD12%')
OR CLNTPOST1 LIKE ('BD13%')
OR CLNTPOST1 LIKE ('BD14%')
OR CLNTPOST1 LIKE ('BD15%')
OR CLNTPOST1 LIKE ('BD16%')
OR CLNTPOST1 LIKE ('BD17%')
OR CLNTPOST1 LIKE ('BD18%')
OR CLNTPOST1 LIKE ('BD19%')
OR CLNTPOST1 LIKE ('BD2%')
OR CLNTPOST1 LIKE ('BD20%')
OR CLNTPOST1 LIKE ('BD21%')
OR CLNTPOST1 LIKE ('BD22%')
OR CLNTPOST1 LIKE ('BD3%')
OR CLNTPOST1 LIKE ('BD4%')
OR CLNTPOST1 LIKE ('BD5%')
OR CLNTPOST1 LIKE ('BD6%')

我希望的是有一种更快,更轻松的方式来做到这一点。任何建议将不胜感激。有没有一种方法可以为每个销售团队创建变量,例如@SalesTeam1 = SELECT * FROM tbl_ClientFile WHERE POSTCODE1 like '' or like ''

只是在钓鱼的想法。干杯


问题答案:
WITH CTE AS
(
SELECT VALUE
FROM (
        VALUES ('B79'), ('BB1'), ('BB10'), ('BB11'), ('BB12'), ('BB18'), ('BB2'), ('BB3'), ('BB4'), ('BB5'), ('BB6'), ('BB8'), ('BB9'), ('BB94'), ('BD1'), ('BD10'), ('BD11'), ('BD12'), ('BD13'), ('BD14'),
                ('BD15'), ('BD16'), ('BD17'), ('BD18'), ('BD19'), ('BD2'), ('BD20'), ('BD21'), ('BD22'), ('BD3'), ('BD4'), ('BD5'), ('BD6')
     ) V(VALUE)
)   


SELECT * 
FROM tbl_ClientFile T
WHERE EXISTS ( SELECT TOP 1 1 FROM CTE WHERE T.CLNTPOST1 LIKE CTE.VALUE + '%')


 类似资料:
  • 问题内容: 我有一张表格,其中包含有关零售店的信息。我有一个零售链名称的列表(WalMart,Target,Eaton等)。当用户选择一个时,我基本上会运行一个查询来查找与该链有关的任何内容。 例如,如果用户选择“ WalMart”,则查询将返回名称中带有单词“ WalMart”的任何内容(WalMart Scarborough,WalMart Supercenter Toronto,WalMar

  • 问题内容: 标签列具有“苹果香蕉橙”和“草莓香蕉柠檬”之类的值。我想找到等效的SQLAlchemy语句 我应该怎么做才能做到这一点? 问题答案: 每列都有一个方法,可以在中使用。给定一个搜索字符串,请在任一侧添加一个字符以在两个方向上作为子字符串进行搜索。

  • 当我被处决时 < code > sqlcontext . SQL(" select * from logs where content like“% stream %”) 在我的spark应用程序中,错误显示如下: java.lang.RuntimeException:[1.39]失败:应为“`*”,但找到“%” 从日志中选择*,其中内容如%stream%^在Success.map$. error

  • 问题内容: 我在存储过程中有以下代码。 NOT LIKE语句不起作用,是的,在有人说任何东西之前,COMMENT列中的项目不包含CORE,其他所有列都可以。 有谁知道这是怎么回事? 问题答案: 如果包含,则条件将不匹配。 该查询: 什么也不会返回。 在一列,两者并反对任何搜索字符串将返回。 您能否在一行中发布相关的值,您认为应该将其返回但不是?

  • 主要内容:语法,示例SQL LIKE 子句用于在 WHERE 语句中进行模糊匹配,它会将给定的匹配模式和某个字段进行比较,匹配成功则选取,否则不选取。 LIKE 子句可以和通配符一起使用: 通配符 说明 百分号(%) 代表零个、一个或者多个任意的字符。 下划线(_) 代表单个字符或者数字。 [charlist] 字符列表中的任何单一字符。可以使用连字符(-)根据 ASCII 编码指定一个字符范围,例如: [0-9]

  • 问题内容: 在Couchbase中这可能吗? 好像我必须使用startkey和endkey。但似乎没有得到正确的结果。 问题答案: startKey和endKey将使您可以像“ john%”一样进行操作。Couchbase不允许您执行包含。 如果确实需要包含,则应使用Elastic Search插件。