sql >> Databáze >  >> RDS >> Mysql

Použití případu s IS NULL a IS NOT NULL

Zneužíváte case výraz. Existují dvě formy. Požadovaný formulář je:

(CASE WHEN userName IS NULL THEN 'was null'
      WHEN userName IS NOT NULL THEN 'was not null'
 END) AS caseExpressionTest

Poznámka:Neexistuje žádné userName za CASE .

Toto kontroluje každou podmínku, která se zastaví na první.

MySQL interpretuje booleany jako platnou hodnotu. Vaše verze je tedy buď:

-- when userName is NULL
(CASE userName
    WHEN 0 THEN 'was null'
    WHEN 1 THEN 'was not null'
END AS caseExpressionTest

To vrátí NULL .

Nebo:

-- when userName is not NULL
(CASE userName
    WHEN 1 THEN 'was null'
    WHEN 0 THEN 'was not null'
END AS caseExpressionTest

Pravděpodobně userName je řetězec. Tím se převede userName na celé číslo založené na úvodních číslicích. Pokud nejsou žádné úvodní číslice, dostanete 0 , což je důvod, proč existuje shoda.



  1. Porovnání řešení selhání DBaaS s ručním nastavením obnovy

  2. Jak převedu produkční databázi do stagingu na Heroku pomocí pgbackups? Získání chyby

  3. přístup odepřen uživateli @ 'localhost' do databáze ''

  4. ORA-03113:konec souboru na komunikačním kanálu po dlouhé nečinnosti v aplikaci ASP.Net