Member 14124697 Ответов: 1

Как мы выполняем операцию сложения в двух разных столбцах в oracle


В приведенной ниже таблице.....Я хочу выполнить операцию сложения в Столбцах M1 и M2 через запрос.


Идентификатор emp_id М1 М2
1 10 20
2 20 ноль
3 ноль 50
4 40 70
5 50 ноль

Таблица результатов будет выглядеть так, как показано ниже.

ИДЕНТИФИКАТОР EMP_ID ОБЩАЯ
1 30
2 20
3 50
4 110
5 50

Может ли кто-нибудь помочь с этим.

Спасибо!

Что я уже пробовал:

выберите EMP_ID, (M1+M2) в качестве итога из таблицы 1;

Santosh kumar Pithani

ваш запрос выглядит хорошо;есть ли какие-либо ошибки?Если вы нашли исключение нулевого типа, используйте следующее "NVL(M1,0)+NVL(M2,0)"

Richard Deeming

Это звучит как ответ на мой вопрос. Вы должны опубликовать его как решение. :)

Member 14124697

Спасибо.

Результаты теперь выглядят хорошо с помощью команды NVL.

Не могли бы вы описать мне в приведенном ниже запросе,почему мы использовали (Column_Name, 0) для лучшего понимания.

NVL(M1,0)+NVL(M2,0)

CHill60

На НВЛ функция говорю, что если есть значение null в столбце M1 затем используйте 0, в противном случае используйте значение, найденное в столбце. Если бы мы использовали

NVL(M1,100)
вместо этого он будет использовать 100 везде, где есть нуль, иначе он будет использовать значение в столбце M1.
Это поможет?

Member 14124697

Отлично..... ясно понял...

Спасибо УР помощь каждый раз

1 Ответов

Рейтинг:
11

Santosh kumar Pithani

--NVL(p1,p2) function has two parameters.If p1 is null then its take p2 AS values

--EX:-NVL(M1,0) means "M1" columns as null value then its take "0" instead of null values.

--In your query M1,M2 columns has null values so arithmetic operation is not possible so NVL function is used.

SELECT EMP_ID
      ,(NVL(M1,0)+NVL(M2,0)) AS TOTAL
  FROM table1


Member 14124697

Спасибо, Сантош...

Я получил ответ.

Santosh kumar Pithani

NVL(m1,0) принимает только два параметра, но функция coalesce(m1,m2,0) работает более чем для двух параметров.Дай мне звезды