在where子句oracle中切换case

时间:2018-05-01 23:57:05

标签: sql oracle

我有一个下面的场景。您能否请更正以下查询..

somefunc: function (token, filter, op) {
    var test = Ext.create({
        xtype: 'container',
        height: 30,
        layout: {
            type: 'hbox',
            align: 'middle'
        },
        text: "AND"
    });
    var filter = Ext.create({
        xtype: 'container',
        height: 30,
        cls: 'purge-filter-item',
        layout: {
            type: 'hbox',
            align: 'middle'
        },
        items: [
            this.typeCombo = new Ext.form.ComboBox({
                emptyText: $L('Select a filter...'),
                store: this.menuStore = new Ext.data.ArrayStore({
                    fields: ['key', 'title'],
                    data: this.getFilterValues()
                })
            })
        ]
    });
    this.remove(filter, test);

    this.doLayout();
}

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以使用ORAND代替CASE WHEN

你可以试试这个。

我对acad_plan is null提出了一个小问题,acad_plan您要检查l.acad_plan还是m.acad_plan

where l.au=m.acad_group 
AND l.acad_prog = m.acad_prog
AND (acad_plan is null  OR( acad_plan is not null AND l.acad_plan = m.acad_plan))
AND (l.acad_sub_plan is null  OR( l.acad_sub_plan  is not null AND l.acad_sub_plan=m.acad_sub_plan))

答案 1 :(得分:1)

请勿在{{1​​}}子句中使用CASE WHEN。使用WHEREAND以及括号。

OR