Cum sa faci SELECTAȚI în acest caz? [duplicat]

0

Problema

Cum de a crea un singur MSSQL SELECTAȚI interogare în acest caz:

  1. Avem 2 mese: fructe și de expirare
  2. Scopul este de a primi de masă în cazul în care specifică numărul de fructe are informații despre NULĂ în expirationDate coloana. Aceste fructe numere care nu au NULL ar trebui zerouri în acea coloană. Numărul 4 nu exista la expirarea masă, așa că ar trebui, de asemenea, 0 în rezultate, pentru că nu au NULL.

Mese

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

Nu puteți obține cu ușurință data de expirare de pe formatul pe care doriți. Cu toate acestea, nu contează cu adevărat(?). Presupun că vrei 1 sau 0 în tabel nou pentru că doriți să utilizați un if pentru a verifica dacă fructul este rău sau nu. Puteți rezolva această problemă cu ușurință:

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

sau, ați putea fi chiar posibilitatea de a face

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

Notă: nu stiu ce limbaje de programare pe care îl utilizați. Dar, în cele mai multe dintre ele: nul și 0 sunt 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

Să răspundă la interogare SQL întrebare:

Ai deja tot ce ai nevoie la expirarea masa

SELECT fruit_number, expiration_date
FROM expiration;

Sper că acest lucru vă ajută

2021-11-23 10:13:04

Vă mulțumim pentru răspunsul dumneavoastră, dar acest lucru nu va funcționa. Mai întâi de toate, veți primi mai multe fructe același număr de e.g 1 are două înregistrări. Și în al doilea rând, dacă numărul de fructe a NULL, decât că nu ar trebui să arate altă dată de expirare.
Grzegorz Kaczmarczyk

ah ok... n-am auzit asta de la tine de întrebare. Pauza de prânz este de peste acum, dar o să mă uit după locul de muncă, dacă nimeni nu a rezolvat încă problema :)
CodeAddict
0

Trebuie să-l folosească cu Case Condiție. Dar trebuie să se schimbe declarație un pic:

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

Prietenul meu a găsit soluția.

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

Bine ati venit la Stack Overflow. Cod fără nici o explicație, sunt rareori utile. Stack Overflow este despre a învăța, nu oferă fragmente pentru a copia orbește și inserați codul. Vă rugăm să editați întrebarea dumneavoastră și să explice cum de a răspunde la întrebare specifică fiind întrebat. Vezi Cum să Răspundă.
Sfili_81

În alte limbi

Această pagină este în alte limbi

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