Ako urobiť výber v tomto prípade? [duplicitné]

0

Otázka

Ako vytvoriť jednotný MSSQL VYBERTE dotaz v tomto prípade:

  1. Máme 2 tabuľky: ovocie a ukončenia
  2. Cieľom je získať tabuľky, kde konkrétne ovocie číslo má informácie o tom, NULL v expirationDate stĺpci. Tí, ovocie čísla, ktoré nemajú NULL by núl v danom stĺpci. Číslo 4 neexistuje v platnosti stolík, tak to by sa aj 0 vo výsledkoch, pretože to nemá hodnotu NULL.

Tabuľky

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

Nemôžete ľahko dostať do uplynutia lehoty na požadovaný formát. Avšak, to nie je naozaj vec(?). Predpokladám, že chcete, 1 alebo 0 v novej tabuľky, pretože budete chcieť použiť, ak vyhlásenie, ak chcete zistiť, či plod je zlý, alebo nie. Môžete to vyriešiť jednoducho:

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

alebo, môžete byť dokonca schopný urobiť

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

Poznámka: neviem, aké programovacie jazyky, ktoré používate. Ale vo väčšine z nich: null a 0 sú NEPRAVDIVÉ.

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

Ak chcete odpovedať na vaše SQL dotaz otázka:

Už máte všetko, čo potrebujete v platnosti tabuľka

SELECT fruit_number, expiration_date
FROM expiration;

Dúfam, že to pomôže

2021-11-23 10:13:04

Vďaka za vašu odpoveď, ale to nebude fungovať. Po prvé, budete dostávať viac istého ovocia čísla e.g 1 má dva záznamy. A po druhé, ak je ovocie číslo má hodnotu NULL, ako by to nemalo ukázať ostatným dátum vypršania platnosti.
Grzegorz Kaczmarczyk

ah v poriadku... som sa celkom chytiť, že od vás otázku. Môj obed je viac, ale teraz som sa pozrieť po práci, ak sa nikto iný nemá problém je vyriešený ešte :)
CodeAddict
0

Budete musieť použiť s Case Podmienkou. Ale musieť zmeniť vyhlásenie trochu:

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

Môj priateľ našiel riešenie.

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

Vitajte na Pretečenie Zásobníka. Kód bez akéhokoľvek vysvetlenia, ktoré sa len zriedka užitočné. Pretečenie zásobníka je učenie o tom, že poskytuje úryvky slepo kopírovať a prilepiť. Prosím, upravte vaše otázky a vysvetliť, ako to odpovede na konkrétnu otázku riešia otázku. Pozrite sa, Ako Odpovedať.
Sfili_81

V iných jazykoch

Táto stránka je v iných jazykoch

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