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

Hvordan opnår man standardværdien, hvis kolonneværdien er NULL?

Hvis du skriver dette:

SELECT
    COALESCE(OVER_BID_PRICE, -1)
FROM
    AUCTION_CAR_BID
WHERE
    BID_SEQ = 2354435345;

Resultaterne kan være to typer.

Første resultat:Din forespørgsel returnerer ingen rækker! Din WHERE-tilstand er utilfredsstillende, så du vil læse NULL

Andet resultat:Din forespørgsel returnerer rækker, men værdien af ​​dit felt er NULL, din COALESCE fungerer fint i dette tilfælde

For at løse det kan du prøve dette:

SELECT COALESCE(
   (SELECT
   COALESCE(OVER_BID_PRICE, -1)
   FROM AUCTION_CAR_BID
   WHERE BID_SEQ = 2354435345)
,-1);

Fortæl mig, om det er i orden



  1. SQL for at få særskilt post for en kombination af to kolonner (uanset rækkefølge)

  2. Hvordan man effektivt bestemmer ændringer mellem rækker ved hjælp af SQL

  3. Fandt 'OR 1=1/* sql-injektion i min nyhedsbrevsdatabase

  4. SQL-forespørgsel efter flere tabeller med flere joinforbindelser og kolonnefelt med kommasepareret liste