存储过程中CASE WHEN的替代语句
现在有一个字段分档的问题,请教下大家,看看怎么解决好。
我有一个用户表,包含user_id和很多指标。比如FLD1,N1M_FLD1(下个月的),N2M_FLD1(下下个月),FLD2,N1M_FLD2,N2M_FLD2等等几十个指标。
现在给定指标的上限、下限。比如FLD1=12,下限是10,上限是20,那么FLD1则被分到(10,20]这一档。
同理,N1M_FLD1、N2M_FLD1也是根据10、20这样上下限来进行分档;
每个指标的可能被分成多档。
以前的做法是写很多case when语句来判断。但是指标数太多,而且分档区间经常变动的话,程序就需要经常修改。
我自己尝试了做一个码表,用FLD1>MIN_FILED AND FLD1<MAX_FILED这样来写。在用户表(百万行数据)非常大的情况下,效率非常低。
请教下大家,这样的情况下,怎么解决这样的问题?谢谢!
我有一个用户表,包含user_id和很多指标。比如FLD1,N1M_FLD1(下个月的),N2M_FLD1(下下个月),FLD2,N1M_FLD2,N2M_FLD2等等几十个指标。
现在给定指标的上限、下限。比如FLD1=12,下限是10,上限是20,那么FLD1则被分到(10,20]这一档。
同理,N1M_FLD1、N2M_FLD1也是根据10、20这样上下限来进行分档;
每个指标的可能被分成多档。
以前的做法是写很多case when语句来判断。但是指标数太多,而且分档区间经常变动的话,程序就需要经常修改。
我自己尝试了做一个码表,用FLD1>MIN_FILED AND FLD1<MAX_FILED这样来写。在用户表(百万行数据)非常大的情况下,效率非常低。
请教下大家,这样的情况下,怎么解决这样的问题?谢谢!
...全文
相关推荐
SQL基础培训资料:-条件语句-美化版.docx
IF语句和CASE WHEN语句在SQL中都扮演着重要的角色,它们各自在不同的环境和需求下发挥着不可替代的作用。
MySQL中的if和case语句使用总结
**CASE 语句** - `CASE` 语句可以替代 `IF` 作为表达式使用。
精通MySQL存储过程和函数
;END IF;```**CASE 语句:**```sqlCASE expressionWHEN value THEN statement_list;WHEN value THEN statement_list
Merge-Sql.zip
在这种情况下,我们需要寻找替代方案。对于MySQL,一种常见的替代方法是使用UNION ALL和CASE表达式来模拟MERGE的效果。
Oracle触发器与存储过程高级编程
**存储过程的变量与控制结构**:存储过程中可以定义局部变量,并使用IF...ELSE、CASE...WHEN、LOOP等控制结构来实现复杂的逻辑。4.


