SELECT
sum(TotalHoursM)
+ (TotalHoursT)
+ (TotalHoursW)
+ (TotalHoursTH)
+ (TotalHoursF)
AS TOTAL
FROM LeaveRequest
Odpowiedz
Jeśli kolumna ma wartość 0, oznacza to, że masz problem z wartością Null. W takim przypadku musisz użyć wartości IsNull(Column, 0)
, aby mieć zawsze minimum 0.
Można użyć ISNULL
:
ISNULL(field, VALUEINCASEOFNULL)
SELECT sum(isnull(TotalHoursM,0))
+ isnull(TotalHoursT,0)
+ isnull(TotalHoursW,0)
+ isnull(TotalHoursTH,0)
+ isnull(TotalHoursF,0)
AS TOTAL FROM LeaveRequest
brakuje jednego ")" przed "AS" –
wygląda chcesz sumują wszystkie kolumny (nie jestem pewien, gdzie "Sum 3 kolumny" pochodzi z), a nie tylko TotalHoursM, więc spróbuj to:
SELECT
SUM( ISNULL(TotalHoursM ,0)
+ ISNULL(TotalHoursT ,0)
+ ISNULL(TotalHoursW ,0)
+ ISNULL(TotalHoursTH ,0)
+ ISNULL(TotalHoursF ,0)
) AS TOTAL
FROM LeaveRequest
dzięki za głosowanie w dół prawie 8 lat po udzieleniu odpowiedzi! ha ha, to jest ta sama odpowiedź udzielona przez innych na to pytanie. Odpowiedziałem przed nimi, ale mają dużo głosów. –
Poprzednie odpowiedzi za pomocą funkcji ISNULL
są poprawne. Działa również funkcja COALESCE
. W danym przykładzie:
SELECT sum(COALESCE(TotalHoursM,0))
+ COALESCE(TotalHoursT,0)
+ COALESCE(TotalHoursW,0)
+ COALESCE(TotalHoursTH,0)
+ COALESCE(TotalHoursF,0) AS TOTAL FROM LeaveRequest
ten jest identyczny z roztworem ISNULL
z tą tylko różnicą, nazwa funkcji. Jest pewien spór w świecie SQL, który jest "lepszy". Ale obie działają. Przedstawię tę alternatywę z dwóch powodów. COALESCE
jest standardem ANSI, a ISNULL
nie jest. Ale ważniejszy jest fakt, że COALESCE
jest bardziej elastyczny. ISNULL
będzie działać tylko z dwoma parametrami. Jeśli pierwszy parametr ma wartość NULL, zwracana jest wartość drugiego parametru, w przeciwnym razie zwracana jest wartość pierwszego parametru. COALESCE potrwa od 2 do n (nie znam limitu "n") parametrów i zwróci wartość pierwszego parametru, który nie jest NULL
. Gdy są tylko dwa parametry, efekt jest taki sam jak ISNULL
.
Ponadto Oracle SQL nie ma wartości ISNULL. Jednak z mojego doświadczenia wynika, że możesz osiągnąć lepsze wyniki dzięki NVL(): http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions105.htm – Darren
Tylko ten, którego szukałem - postgres nie ma isnull ether. –
Isnull nie działał zgodnie z oczekiwaniami w MySQL. Coalesce wykonał zadanie. Dzięki. – George
chciałbym spróbować to:
select sum (case when TotalHousM is null then 0 else TotalHousM end)
+ (case when TotalHousT is null then 0 else TotalHousT end)
+ (case when TotalHousW is null then 0 else TotalHousW end)
+ (case when TotalHousTH is null then 0 else TotalHousTH end)
+ (case when TotalHousF is null then 0 else TotalHousF end)
as Total
From LeaveRequest
Just for reference, the equivalent statement for MySQL is: IFNull(Column,0).
Stwierdzenie to ocenia się jako wartość kolumny, jeśli nie jest pusta, w przeciwnym razie jest ona oceniana jako 0.
Jeśli chcesz uniknąć IsNull use wartość zerowa (kolumna 1)
- 1. SQL: Niepowtarzalne ograniczenie, gdy kolumna ma określoną wartość:
- 2. WHERE warunku gdy jedna kolumna jest NULL
- 3. Wybierz wartość kolumny, gdy inna kolumna jest maksimum grupy
- 4. SQL Server, jak ustawić wartość domyślną, gdy kolumna jest null
- 5. Jak sprawdzić, czy pole ma wartość pustą lub pustą mysql?
- 6. Alter SQL stół - pozwalają NULL wartość kolumny
- 7. organizuje 3-kolumna 2-kolumny w Twitter Bootstrap 3
- 8. MySQL zwraca wartość maksymalną lub zerową, jeśli jedna kolumna nie ma wartości
- 9. Entity Framework: kolumna musi być odwzorowana, chociaż ma domyślną wartość?
- 10. Szyny: Jak sprawdzić, czy kolumna ma wartość?
- 11. Mapowanie hibernacji: jedna kolumna na wiele tabel
- 12. SQL: Sprawdź, czy kolumna ma właściwość "Niezerowa"
- 13. SQL: Identyfikacja kolumnę, która ma największą wartość w każdym rzędzie
- 14. zmień wartość domyślna kolumna
- 15. Linq zastępuje pustą wartość pustą inną wartością
- 16. zamień wartość NULL na wartość pustą lub zero w serwerze sql
- 17. Domyślnie wstaw wartość pustą w sql datetime domyślnie
- 18. Jedna wartość Mysqli
- 19. Jak uzyskać wartość kolumny z kursora sqlite?
- 20. Wyjątek, gdy parametr AddWithValue ma wartość NULL
- 21. Dane sprężyny - ignoruj parametr, jeśli ma wartość pustą
- 22. MySQL wylicza pustą wartość
- 23. SQL: kolumna klucza głównego. Sztuczne „id” column vs „naturalne” kolumny
- 24. Obliczona kolumna SQL Server 2005 jest utajniona
- 25. Linq do SQL - jak znaleźć wartość kolumny IDENTITY po InsertOnSubmit()
- 26. Jak sprawdzić, czy wartość kolumny ma wartość NULL lub ma wartość domyślną w Mysql
- 27. SQL przyrost całkowitą kolumna nawet jeśli zerowy
- 28. Zręczny - filtruj wiersz, jeśli kolumna ma wartość Null
- 29. Fabryka AngularJS zwraca wartość pustą
- 30. Jawnie ustawić wartość kolumny na wartość null SQL Developer
Dziękuję Mitchel, mam problemy z wartością pustą. Dzięki za wejście. – Yves
Yonita jest odpowiedzią Michaela, który odpowiedział na twój znak zapytania jako odpowiadający za pomocą znacznika wyboru. – ahsteele
Ahsteele dzięki. – Yves