获取两个通配符 T-sql 查询语法之间的范围

Posted

技术标签:

【中文标题】获取两个通配符 T-sql 查询语法之间的范围【英文标题】:Getting range between two wildcards T-sql query syntax 【发布时间】:2017-12-21 14:20:29 【问题描述】:

我有一个十进制列,我需要在 case 语句中运行通配符查询,但是通配符需要一个介于一个通配符和另一个通配符之间的 between 子句,例如

当 pct 在 '999.0%' 和 '700.0%' 之间时的情况,然后是 'Top percentile' 请问这个怎么写

【问题讨论】:

你需要什么between 700 and 999没有提供? 我已经这样做了,因为我已经安排了具有不同小数位的值,但是即使我将 % 标记放在通配符上,它也不起作用 到目前为止你做了什么?您能否提供您的代码、示例数据和实际/预期输出? SELECT ITEM , CASE WHEN pct > = 1000 THEN '1000%' WHEN pct BETWEEN '999%' and '800%' then '999 - 800%' Edit 您的帖子以包含此类重要信息。请勿将其发布在可能随时删除的未格式化的 cmets 中。并澄清为什么你认为你需要通配符,即你得到的结果似乎不正确。这里没有明确的理由需要通配符。 【参考方案1】:

因为pctdecimal,所以你不能也不需要使用通配符。只需删除通配符和逗号' '

SELECT ITEM 
  , CASE WHEN pct > = 1000 THEN '1000% ' 
         WHEN pct BETWEEN 800 and 999 then '800 - 999% ' END
FROM table

此外,800 应该排在第一位,而不是 between 中的 999。 对于小于 800 的其他值,您还需要 ELSE

【讨论】:

@Spinx - 随时欢迎您,如果您觉得有用,请接受答案。

以上是关于获取两个通配符 T-sql 查询语法之间的范围的主要内容,如果未能解决你的问题,请参考以下文章

SQL多表模糊查询

sql查询

SQL:一个表多列模糊查询

在雄辩的 Where 子句中使用类似通配符的语法在两个字符串之间进行搜索

Kibana查询语法

查询中的通配符在 Access * 和 Ansi % 之间随机切换