sql >> Database teknologi >  >> RDS >> Mysql

Brug af en sagserklæring med IS NULL og IS NOT NULL

Du misbruger case udtryk. Der er to former. Formen du ønsker er:

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

Bemærk:Der er ingen userName efter CASE .

Dette kontrollerer, at hver tilstand stopper ved den første.

MySQL fortolker booleaner som en gyldig værdi. Så din version er enten:

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

Dette vil returnere NULL .

Eller:

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

Formentlig userName er en streng. Dette vil konvertere userName til et heltal baseret på førende cifre. Hvis der ikke er førende cifre, får du 0 , hvorfor der er et match.



  1. Bedste måde at gemme en PHP-apps indstillinger?

  2. Slet entitet i EF4 uden at indlæse hele entiteten

  3. Delt hit-cache i postgreSQL

  4. Mysql union forespørgsel duplikerede rækker