Presto检查是否为NULL并返回默认值(NVL模拟)

时间:2017-04-07 10:06:25

标签: sql presto

presto中是否有任何类似的NVL?

我需要检查字段是否为NULL并返回默认值。

我这样解决了这个问题:

List<Category> catList = Control.getCatList();
        editItemCatComboBox.removeAllItems();
        for(Category cat: catList) //This populates the 1st JComboBox
        {
            editItemCatComboBox.addItem(cat);

        }
        String selectedCat = editItemCatComboBox.getSelectedItem().toString(); //maybe this line is wrong
        //editItemDialog.validate();
        for (Category cat: catList) //This block should populate the 2nd JComboBox
        {
            if(selectedCat.equals(cat.getCatName()))
            {
                List<Item> itemList = cat.getCatItems();
                editItemItemsComboBox.removeAllItems();
                for(Item itm: itemList)
                {

                    editItemItemsComboBox.addItem(itm);
                }
            }
        }


        editItemDialog.setVisible(true);

但我很好奇是否有可以简化此代码的内容。

1 个答案:

答案 0 :(得分:26)

ISO SQL函数是COALESCE

coalesce(my_field,0)

https://prestodb.io/docs/current/functions/conditional.html

P.S。 COALESCE可以与多个参数一起使用。它将返回第一个(从左侧)非NULL参数,如果未找到则返回NULL。

e.g。

coalesce (my_field_1,my_field_2,my_field_3,my_field_4,my_field_5)