Mysql 此格式中id.in(1:6:3)的列总和
我的Ui返回id的格式为1:6:3,因此我希望对该id对应的值求和。例如,如果id返回=1:6:3 然后输出将=100+50+140=290Mysql 此格式中id.in(1:6:3)的列总和,mysql,sql,plsql,oracle-apex-5.1,Mysql,Sql,Plsql,Oracle Apex 5.1,我的Ui返回id的格式为1:6:3,因此我希望对该id对应的值求和。例如,如果id返回=1:6:3 然后输出将=100+50+140=290 从ID位于1,6,3中的表中选择SUMvalue如何?花了一些时间来找出问题所在。我想我现在明白了-它是关于Apex的,它的功能是允许多个选择,例如,选择列表或穿梭项目。执行此操作时,这些多个值将表示为冒号分隔的字符串 如果我们假设它是一个select列表项,那么它需要两个值:display和return。结果字符串包含这些返回值,这意味着您选择了几个返回
从ID位于1,6,3中的表中选择SUMvalue如何?花了一些时间来找出问题所在。我想我现在明白了-它是关于Apex的,它的功能是允许多个选择,例如,选择列表或穿梭项目。执行此操作时,这些多个值将表示为冒号分隔的字符串 如果我们假设它是一个select列表项,那么它需要两个值:display和return。结果字符串包含这些返回值,这意味着您选择了几个返回值为1、6和3的项,并且如上所述,这些项存储为1:6:3 为了处理它们(在您的示例中是表中的求和值),您必须首先将该字符串解析为行,并将结果与您发布其图像的真实表连接起来。让我们称之为测试表;这是:
SQL> create table test (id number, value number, name varchar2(2));
Table created.
SQL> insert into test
2 select 1, 100, 'a' from dual union
3 select 2, 110, 'b' from dual union
4 select 3, 140, 'c' from dual union
5 select 4, 203, 'd' from dual union
6 select 5, 230, 'e' from dual union
7 select 6, 50 , 'f' from dual;
6 rows created.
在Apex中,您可以按如下方式执行:P1_项是包含“1:6:3”字符串的第1页项:
select sum(t.value) result
from test t join (select regexp_substr(:P1_ITEM, '[^:]+', 1, level) id
from dual
connect by level <= regexp_count(:P1_ITEM, ':') + 1
) a on a.id = t.id;
为了在SQL*Plus中进行演示,结果如下:
SQL> select sum(t.value) result
2 from test t join (select regexp_substr('&&P1_ITEM', '[^:]+', 1, level) id
3 from dual
4 connect by level <= regexp_count('&&P1_ITEM', ':') + 1
5 ) a on a.id = t.id;
Enter value for p1_item: 1:6:3
RESULT
----------
290
SQL>
您使用的是MySQL还是Oracle plsql?您的问题没有任何意义是预期结果100+50+140=290?我使用的是sql.jarlh是290..我想要相同的是1:6:3是您的字符串?alpesh它在数字中sql不理解:在查询中的分隔值,它期望是逗号,仅分隔值,您必须将冒号分隔的值转换为逗号分隔的值1,6,3,然后可以尝试