SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite Изберете Distinct

Резюме :в този урок ще научите как да използвате SQLite SELECT DISTINCT клауза за премахване на дублиращи се редове в набора от резултати.

Въведение в SQLite SELECT DISTINCT клауза

DISTINCT клаузата е незадължителна клауза на SELECT изявление. DISTINCT клаузата ви позволява да премахнете дублиращите се редове в набора от резултати.

Следното изявление илюстрира синтаксиса на DISTINCT клауза:

SELECT DISTINCT	select_list
FROM table;Code language: SQL (Structured Query Language) (sql)

В този синтаксис:

  • Първо, DISTINCT Клаузата трябва да се появи веднага след SELECT ключова дума.
  • Второ, поставяте колона или списък с колони след DISTINCT ключова дума. Ако използвате една колона, SQLite използва стойности в тази колона, за да оцени дубликата. В случай, че използвате няколко колони, SQLite използва комбинацията от стойности в тези колони, за да оцени дубликата.

SQLite разглежда NULL стойности като дубликати. Ако използвате DISTINCT клауза с колона, която има NULL стойности, SQLite ще запази един ред от NULL стойност.

В теорията на базата данни, ако колона съдържа NULL стойности, това означава, че нямаме информация за тази колона от конкретни записи или информацията не е приложима.

Например, ако клиент има телефонен номер с NULL стойност, това означава, че нямаме информация за телефонния номер на клиента към момента на записване на информацията за клиента или клиентът може изобщо да няма телефонен номер.

SQLite SELECT DISTINCT примери

Ще използваме customers таблица в примерната база данни за демонстрация.

Да предположим, че искате да знаете градовете, където се намират клиентите, можете да използвате SELECT изявление за получаване на данни от city колона на customers таблица, както следва:

SELECT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Връща 59 реда. Има няколко дублиращи се реда, като Berlin London и Mountain View За да премахнете тези дублиращи се редове, използвате DISTINCT клауза, както следва:

SELECT DISTINCT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Връща 53 реда, защото DISTINCT клаузата премахна 6 дублиращи се реда.

SQLite SELECT DISTINCT върху множество колони

Следното изявление намира градове и държави на всички клиенти.

SELECT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Наборът от резултати съдържа дублирани град и държава, например Сао Пауло в Бразилия, както е показано на екранната снимка по-горе.

За да премахнете дублирания град и държава, прилагате DISTINCT клауза към колоните за град и държава, както е показано в следната заявка:

SELECT  DISTINCT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Ето частичния изход:

Както споменахме по-рано, SQLite използва комбинацията от град и държава, за да оцени дубликата.

SQLite SELECT DISTINCT с NULL пример

Това изявление връща имената на компании на клиенти от customers таблица.

SELECT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Връща 59 реда с много NULL стойности.

Сега, ако приложите DISTINCT клауза към израза, той ще запази само един ред с NULL стойност.

Вижте следното изявление:

SELECT DISTINCT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Опитайте го

Инструкцията връща 11 реда с един NULL стойност.

Имайте предвид, че ако изберете списък с колони от таблица и искате да получите уникална комбинация от някои колони, можете да използвате GROUP BY клауза.

В този урок научихте как да премахнете дублиращи се редове от набор от резултати с помощта на SQLite SELECT DISTINCT клауза.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite - Създайте таблица

  2. Как да обработваме булеви стойности в SQLite с помощта на прокси сървъри на JavaScript

  3. Как мога да актуализирам поле на моя спинер с въвеждане от потребителя в EditText

  4. По-добре е да използвате адаптер за курсор или адаптер за масив

  5. SQLite CROSS JOIN с практически пример