如何解决在选择左分组中区分1000和10000
我目前有一个Select LEFT,它正在抓住ID字段的第1个左数字。只要我们的ID号为4位数字(0到9999),此方法就可以正常工作,但是我们现在引入10,000范围内的5位数字,并且当前的Select LEFT无法分辨出1,000和10,000之间的差异。选择第一个数字的目的是将数字按千位分组(1000、2000、3000,...,100000)。发生的情况是现在将10000分组为1000组,而不是创建新的10000组。参见下面的代码。
SELECT
LEFT(table.IDField,1) as PolicyGroup,CASE LEFT(table.IDField,1)
WHEN '1' THEN '1000 Group'
WHEN '2' THEN '2000 Group'
WHEN '3' THEN '3000 Group'
WHEN '4' THEN '4000 Group'
WHEN '5' THEN '5000 Group'
WHEN '6' THEN '6000 Group'
WHEN '7' THEN '7000 Group'
WHEN '8' THEN '8000 Group'
WHEN '9' THEN '9000 Group'
WHEN '10' THEN '10000 Group'
END as PolicyExplanation,cpsys_Datacurrent.IntegrationId as PolicyNumber2
ID字段的数字前面没有填充任何内容,因此4位数字仅是4位数字,而5位数字只有5位,但是我需要能够将1000分组为10,000个组。
解决方法
为什么不使用算术?
如果您的数据库进行整数除法:
IDField / 1000 * 1000 as PolicyExplanation
如果不是:
floor(IDField / 1000) * 1000 as PolicyExplanation
如果IDField
是字符串,则取决于您的数据库,可能需要显式转换:
floor(cast(IDField as int) / 1000) * 1000 as PolicyExplanation
,
像这样的表达式将处理单位数字问题,以及用于排序目的的左键填充前导零:
<Select
components={animatedComponents}
getOptionLabel={convertToLabel}
getOptionValue={option => option.resource_name}
isMulti
onChange={changeEvent}
options={users}
theme={theme => ({
...theme,borderRadius: 0
})}
defaultValue={(props.value || []).map(convertToValue)}
value={(props.value || []).map(convertToValue)}
/>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。