2 回答

TA贡献1827条经验 获得超9个赞
如果我了解您的问题,我相信您正在寻找的是参数化您的查询。这是一个可能的解决方案。由于我没有任何 DDL 或数据,因此我提供了自己的。我看到的表。
CREATE TABLE sample (
id NUMBER,
grpnumber NUMBER,
subject VARCHAR2(255),
mark NUMBER
);
表中的数据。
REM INSERTING into SAMPLE
SET DEFINE OFF;
Insert into SAMPLE (ID,GRPNUMBER,SUBJECT,MARK) values (1,101,'Eng',88);
Insert into SAMPLE (ID,GRPNUMBER,SUBJECT,MARK) values (1,101,'Math',93);
Insert into SAMPLE (ID,GRPNUMBER,SUBJECT,MARK) values (2,102,'Eng',76);
Insert into SAMPLE (ID,GRPNUMBER,SUBJECT,MARK) values (2,102,'Math',83);
使用绑定变量的潜在查询
SELECT
id studentid,
grpnumber,
lower(subject) subject,
mark
FROM
sample s
WHERE (s.id = :id1 AND lower(subject) = 'eng') OR
(s.id = :id2 AND lower(subject) = 'math')
提供给绑定变量的值是 .
:id2 = 1
:id1 = 2
结果:
"STUDENTID" "GRPNUMBER" "SUBJECT" "MARK"
1 101 "math" 93
2 102 "eng" 76

TA贡献1813条经验 获得超2个赞
基本上查询看起来像这样
where (studentId = 1 AND subject = 'eng') OR (studentId = 2 AND subject = 'math')
如何使这种动态真正取决于应该动态的内容和方式......
添加回答
举报