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

SQL-在AF之间查找名称的条件

陈志
2023-03-14
问题内容

简单的问题:

我需要一个解决方案,以便可以在AF之间查找名称,包括所有以F开头的名称。

如果您使用BETWEEN或A> =值<= F,您会发现它停在F位置。因此,我将其发布为建议。

注意:用户将看到2个文本框,它们可以接受用户输入的范围。
用户可以像这样细化F边界的距离:用户键入’Fa’意味着结果应该返回:Fauder,Fail,Famber等。

我目前有2个解决方案,但是有一种更好的方法。

解决方案1:这会将1加到外边界,但如果名称为单个“ G”,则可能会包含结果,尽管可能性很小。名称> =’A’AND <= CHAR(ASCII(’F’)+
1)

解决方案2:此解决方案附加字母字段长度时间的最后一个字母。名称> =’A’和<=’FZZZZZZZZZZZZZZZZZZZZZZZ’

尽管上述解决方案是可行的,但我的搜索可以这样细化:A到Fs(应该给我从A到Fs以及包括Fs
....的所有内容)。使用此解决方案后,#1被破坏了,因为它可以与单个ascii一起使用。

欢迎提出建议。


问题答案:

在注释中,将要求扩展为包括A- Fxxx

SET @start = 'A'
SET @end   = 'Fxxx'

SELECT
  *
FROM
  table
WHERE
  (name >= @start AND name < @end)
  OR (name LIKE @end + '%')

请注意,这不包括该name字段上的函数。此类功能可防止在索引上进行范围查找。但是,包含OR降级也会降低索引搜索。尽管这是额外的代码,但在某些情况下,这实际上可以提高性能……

SELECT
  *
FROM
  table
WHERE
  (name >= @start AND name < @end)

UNION ALL

SELECT
  *
FROM
  table
WHERE
  (name LIKE @end + '%')

编辑

事后看来,虽然您不喜欢 Solution 2 ,但它可能是最好的。

谈及FxxxFxxxZZZZZZZZZZ是很简单的使用STUFF(),前提是你知道的最大字符串长度,你应该做的数据库是你的。

它在name字段上没有任何功能,并且ORWHERE子句中不使用。这意味着您可以在任何索引上获得纯范围搜索。

在性能方面,我认为您不能对此进行改进。



 类似资料:
  • 问题内容: 输入tb1 该查询只能在数字和名称上找到相同的重复项,但无法在第3和第4行中找到重复项!!! 这个查询可以找到所有重复的名字!!!它完美地工作 这个查询可以找到所有重复的数字!!!它完美地工作 我想要一个查询,该查询可以查找名称和数字中的所有重复项,无论名称是否包含小写和大写 问题答案: 更新的问题 “在编号和名称上都获取重复” …“在不同的列上使用名称和编号” 在这里行可以被计数两次

  • 问题内容: 是通过其他方式或查询来查找具有特定列而不是如下所示的数据库表名称的方法, 问题答案: 在SQL Server中,您可以查询。 就像是: 如果您有多个模式中的表,则可能需要其他查找来解析模式名称。

  • 我正在使用OpenNLP的NameFinder API示例文档。初始化名称查找器后,文档使用以下代码作为输入文本: 然而,当我将其引入eclipse时,“documents”(而不是“document”)变量给了我一个错误,表示变量documents无法解析。“documents”数组变量所指的文档是什么?我是否需要初始化一个名为“documents”的数组,该数组包含txt文件,以消除此错误?

  • 我是一个新手在python和我试图弄清楚,我如何区分2列表,如下所示 而且 问题是,这两个列表都有元素,我需要一个可靠的条件来满足,如果列表中有一个项是字符串而不是。列表也可能有7个,只有一个项目是字符串。

  • 问题内容: 我正在尝试建立一个查询,以分析我们的时间跟踪系统中的数据。每次用户向内或向外滑动时,都会记录记录滑动时间以及“打开”或“关闭”站点(进入或退出)。在用户“ Joe Bloggs”的情况下,有4行,我想进行配对并计算出Joe Bloggs在网站上花费的总时间。 问题是有些记录不那么容易配对。在给定的示例中,第二个用户有两个连续的“ on”,我需要找到一种方法来忽略重复的“ on”或“ o

  • 问题内容: 我有以下问题,我需要删除“ cfdi”的“ cfdi_”: 我使用了命名空间来解决这个问题,但是每个节点都重复了这些命名空间,因此无法消除它们,如果您能帮助我,我将不胜感激 结果1: 第二次尝试: 结果: 我的代码更大,并且重复了太多次,我不知道如何消除它们 问题答案: 从XML来看,第二个结果是自给自足的XML元素,而第一个结果只能是定义前缀名称空间的其他元素的一部分。因此,我想所有