获取两个通配符 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】:
因为pct
是decimal
,所以你不能也不需要使用通配符。只需删除通配符和逗号' '
:
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 查询语法之间的范围的主要内容,如果未能解决你的问题,请参考以下文章