- Popis
- Vzorová tabulka : objednávky
- Příklad : select with distinct na dvou sloupcích
- Obrázkové znázornění výše uvedeného dotazu :
- Příklad : select with distinct na třech sloupcích
- Obrázkové znázornění výše uvedeného dotazu :
- Příklad : select s distinct na všechny sloupce prvního dotazu
- Obrázková prezentace výše uvedeného dotazu :
- Výběr s distinct na více sloupcích a klauzulí order by
- Funkce count() a select s distinct na více sloupcích
Popis
Více polí lze také přidat pomocí klauzule DISTINCT. DISTINCT vyřadí ty řádky, kde jsou všechna vybraná pole shodná.
Tady je jednoduchý dotaz na některé vybrané sloupce v tabulce objednávek, kde agent_code=’A002′
SQL kód:
SELECT agent_code, ord_amount, cust_code, ord_numFROM orders WHERE agent_code='A002';
Výstup:
Výše uvedený obrázek ukazuje, že stejný agent_code, ord_amount a cust_code se v tabulce objednávek vyskytuje vícekrát.
Příklad : select with distinct na dvou sloupcích
Pro získání stejných řádků (na základě dvou sloupců agent_code a ord_amount) jednou z tabulky orders ,lze použít následující sql příkaz :
SQL kód:
SELECT distinct agent_code,ord_amountFROM orders WHERE agent_code='A002';
Výstup:
Obrázkové znázornění výše uvedeného dotazu :
Příklad : select with distinct na třech sloupcích
Pro získání stejných řádků (na základě tří sloupců agent_code, ord_amount a cust_code) jednou z tabulky „orders“ ,lze použít následující sql příkaz :
SQL kód:
SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002';
Výstup:
Obrázkové znázornění výše uvedeného dotazu :
Příklad : select s distinct na všechny sloupce prvního dotazu
Pro získání stejných řádků (na základě čtyř sloupců agent_code, ord_amount, cust_code a ord_num) jednou z tabulky ‚orders‘ ,lze použít následující sql příkaz :
select distinct agent_code,ord_amount,cust_code,ord_num from orders WHERE agent_code='A002';
Výstup:
Ve výše uvedeném výstupu byly vráceny všechny řádky, jejichž agent_code je ‚A002‘, protože neexistuje žádný shodný řádek na agent_code, ord_amount, cust_code a ord_num. Viz následující prezentace :
Obrázková prezentace výše uvedeného dotazu :
Výběr s distinct na více sloupcích a klauzulí order by
V příkazu select s distinct na více sloupcích můžete použít klauzuli order by. Zde je příklad :
SELECT distinct agent_code,ord_amount FROM orders WHERE agent_code='A002' order by ord_amount;
Výstup:
Funkce count() a select s distinct na více sloupcích
V příkazu select s distinct na více sloupcích můžete použít funkci count(), která spočítá odlišné řádky. Zde je příklad :
select count(*) from ( SELECT distinct agent_code, ord_amount,cust_code FROM orders WHERE agent_code='A002');
Výstup:
Výstupy uvedeného příkazu SQL, které jsou zde uvedeny, jsou pořízeny pomocí Oracle Database 10g Express Edition.
.