【问题标题】:Getting range between two wildcards T-sql query syntax获取两个通配符 T-sql 查询语法之间的范围
【发布时间】: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 中。并澄清为什么你认为你需要通配符,即你得到的结果似乎不正确。这里没有明确的理由需要通配符。

标签: tsql case wildcard between statements


【解决方案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 - 随时欢迎您,如果您觉得有用,请接受答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-21
  • 2010-12-08
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
相关资源
最近更新 更多