Come fare SELEZIONARE in questo caso? [duplica]

0

Domanda

Come creare un singolo MSSQL query di selezione in questo caso:

  1. Abbiamo 2 tabelle: la frutta e la scadenza
  2. L'obiettivo è quello di ricevere tabella in cui si specifica la frutta numero di informazioni di presenza di NULL in expirationDate colonna. Quelli di frutta numeri che non hanno nulla sarebbe uno zero in quella colonna. Il numero 4 non esiste in scadenza tabella, in modo che avrebbe anche 0 dei risultati, perché non hanno nulla.

Tavoli

sql-server
2021-11-23 09:44:47
3
0

Si può facilmente ottenere la data di scadenza sul formato che si desidera. Tuttavia, non importa davvero(?). Presumo che tu vuoi 1 o 0 nel vostro nuovo tavolo perché si desidera utilizzare un'istruzione if per controllare se il frutto è cattivo o non. Si può risolvere facilmente:

if(expirationDate == null){/*something*/} 

o, si potrebbe anche essere in grado di fare

if(expirationDate) //this is all fruit that is not bad
else{/*your code to deal with expirated fruit here*/}

Nota: non so cosa linguaggi di programmazione che si sta utilizzando. Ma la maggior parte di loro: null e 0 sono FALSE.

if(null) // false
if(0) //false
if(undefined) //false, in javascript
//everything that is not a false value, is true.
if("oiaehgtaoiwgneawg") //true
if(-1) //true

Per rispondere alla tua query SQL domanda:

Hai già tutto il necessario in scadenza la tabella

SELECT fruit_number, expiration_date
FROM expiration;

Spero che questo aiuta

2021-11-23 10:13:04

Grazie per la risposta, ma questo non funziona. Prima di tutto, si riceverà più frutto stesso numeri e.g 1 ha due record. E in secondo luogo, se il frutto numero NULL, che non dovrebbe mostrare alla data di scadenza.
Grzegorz Kaczmarczyk

ah ok... non ho abbastanza cattura che da voi la domanda. La mia pausa pranzo è finita proprio ora, ma date un'occhiata dopo il lavoro, se nessun altro ha risolto il problema di sicurezza :)
CodeAddict
0

Si deve usare con Case Condizione. Ma cambiare affermazione un po':

select fruit_number, --distinct(fruit_number),
x =case expiration_date
when NULL then null
else 0
end
2021-11-23 10:07:49
0

Il mio amico ha trovato la soluzione.

SELECT
    fruit_number, 
    MAX(expirationDate) as expirationDate
FROM
    (SELECT
        f.fruit_number,
        CASE
            WHEN e.expiration_date is NULL AND e.fruit_number IS NOT NULL THEN 1
            ELSE 0
            END AS expirationDate
    FROM
        expiration as e
        FULL OUTER JOIN fruits as f ON f.fruit_number = e.fruit_number
    WHERE
        f.fruit_number IS NOT NULL
    ) t
GROUP BY
    fruit_number
ORDER BY
    fruit_number
2021-11-23 10:23:25

Benvenuti a Stack Overflow. Codice senza alcuna spiegazione sono raramente utili. Stack Overflow è circa l'apprendimento, non fornendo frammenti, alla cieca, copia e incolla. Si prega di modificare la tua domanda e spiegare come si risponde alla specifica domanda. Vedere Come Rispondere.
Sfili_81

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................