TABLE : **PROFILE**
RUN_ID| Type | code | gender | vacId
1 | A | biz | M | 110
2 | A | pro | M | 113
3 | A | tot | F | 114
必需根据所输入的返回vacId,如果我输入,如果代码+型组合不存在,则仅返回vacId其等于给定类型如果子集组合返回空结果,则查询获取超集?
- TYPE = A和代码= BIZ AND性别= M,那么它应该返回110
- TYPE = A,然后CODE = SYS应返回110 & 113,114有这么回超A的数据
没有A + SYS组合,我怎么能写查询这应该工作pgsql和oracle现在。
有没有一种方法,我可以做到这一点使用COALESCE
这会不止一次地打到数据库?此查询中的任何性能问题?可以在这里添加多个案例吗? – user630209
子查询涉及额外的扫描,但它比主要的扫描便宜,特别是当正在使用适当的索引时。您可以在'case'语句中使用多个子查询,只需在'else'之前添加'when ... then ...'。 – klin
只是一个额外的查询。为了降低性能风险,返回所有json数据并在View(前端)上过滤它会更好吗? – user630209