Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

SQL Tidak Sama Dengan (!=) Operator untuk Pemula

Dalam SQL, tidak sama dengan operator (!= ) membandingkan ketidaksetaraan dua ekspresi. Artinya, ini menguji apakah satu ekspresi tidak sama dengan ekspresi lain.

Jika salah satu atau kedua operan adalah NULL , NULL dikembalikan.

SQL juga memiliki operator lain yang tidak sama (<> ), yang melakukan hal yang sama. Yang mana yang Anda gunakan mungkin bergantung pada DBMS Anda, mana yang paling nyaman Anda gunakan, dan mungkin juga apakah organisasi Anda memiliki konvensi pengkodean yang menentukan mana yang harus digunakan.

Tabel Sumber

Bayangkan database kami berisi tabel berikut. Ini adalah tabel yang akan kita gunakan untuk contoh di halaman ini.

SELECT * FROM Owners;

Hasil:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | [email protected] |
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 3         | Nancy       | Simpson    | (489) 591-0408 | NULL              |
| 4         | Boris       | Trump      | (349) 611-8908 | NULL              |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
| 6         | Burt        | Tyson      | (309) 565-0112 | [email protected]  |
+-----------+-------------+------------+----------------+-------------------+

Contoh

Jika kami ingin mengembalikan daftar semua pemilik yang tidak memiliki OwnerId dari 3 , kita bisa melakukan ini:

SELECT *
FROM Owners
WHERE OwnerId != 3;

Hasil:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | [email protected] |
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 4         | Boris       | Trump      | (349) 611-8908 | NULL              |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
| 6         | Burt        | Tyson      | (309) 565-0112 | [email protected]  |
+-----------+-------------+------------+----------------+-------------------+

Kueri kami menggunakan operator yang tidak sama dengan (!= ) untuk menguji apakah OwnerId kolom tidak sama dengan 3 . Kueri mengembalikan semua pemilik kecuali pemilik nomor 3.

String

Saat membandingkan dengan nilai string, gunakan tanda kutip di sekitar string. Misalnya, jika kita ingin mendapatkan informasi tentang semua pemilik yang nama depannya bukan Homer, kita bisa melakukan hal berikut:

SELECT *
FROM Owners
WHERE FirstName != 'Homer';

Hasil:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 3         | Nancy       | Simpson    | (489) 591-0408 | NULL              |
| 4         | Boris       | Trump      | (349) 611-8908 | NULL              |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
| 6         | Burt        | Tyson      | (309) 565-0112 | [email protected]  |
+-----------+-------------+------------+----------------+-------------------+

Beberapa Kondisi

Jika Anda memiliki beberapa kondisi, Anda dapat menggunakan beberapa operator (baik operator yang sama atau berbeda).

Seperti ini:

SELECT * FROM Owners 
WHERE OwnerId != 1 AND OwnerId != 3;

Hasil:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 4         | Boris       | Trump      | (349) 611-8908 | NULL              |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
| 6         | Burt        | Tyson      | (309) 565-0112 | [email protected]  |
+-----------+-------------+------------+----------------+-------------------+

Setelah Anda mulai menggunakan lebih banyak kondisi, Anda harus menggunakan tanda kurung untuk mengapit kondisi yang ingin Anda evaluasi terlebih dahulu. Jika Anda tidak melakukan ini, Anda mungkin menemukan bahwa Anda mendapatkan hasil yang tidak diharapkan, karena kondisi yang dievaluasi dalam urutan yang tidak Anda inginkan.

Meniadakan Kondisi

Jika Anda menggunakan NOT operator untuk meniadakan kondisi yang diberikan oleh tidak sama dengan operator, Anda akan mendapatkan hasil yang sama (= ) operator:

SELECT *
FROM Owners
WHERE NOT FirstName != 'Homer';

Hasil:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | [email protected] |
+-----------+-------------+------------+----------------+-------------------+

Dalam hal ini, Anda lebih baik hanya menggunakan yang sama (= ) operator, seperti ini:

SELECT *
FROM Owners
WHERE FirstName = 'Homer';

Tentu saja, ini sendiri dapat dinegasikan dengan NOT operator, yang kemudian akan memberi kita hasil yang sama dengan yang tidak sama dengan (!= ) operator memberi kami:

SELECT *
FROM Owners
WHERE NOT FirstName = 'Homer';

Nilai NULL

Anda mungkin telah memperhatikan bahwa tabel sampel asli kami berisi beberapa NULL nilai dalam Email kolom.

Kolom yang berisi NULL berarti tidak ada nilainya. Ini berbeda dengan 0 atau false , atau bahkan string kosong.

Anda tidak dapat menggunakan operator yang tidak sama dengan untuk membandingkan dengan NULL . Sebenarnya, ini mungkin tergantung pada DBMS Anda dan konfigurasinya. Tapi untuk sekarang, mari kita lihat apa yang terjadi jika saya mencoba membandingkan Email kolom ke NULL .

SELECT * FROM Owners 
WHERE Email != NULL;

Hasil:

(0 rows affected)

Cara menguji non-NULL nilainya adalah menggunakan IS NOT NULL .

Oleh karena itu, kita perlu menulis ulang pernyataan di atas sebagai berikut.

SELECT * FROM Owners 
WHERE Email IS NOT NULL;

Hasil:

+-----------+-------------+------------+----------------+-------------------+
| OwnerId   | FirstName   | LastName   | Phone          | Email             |
|-----------+-------------+------------+----------------+-------------------|
| 1         | Homer       | Connery    | (308) 555-0100 | [email protected] |
| 2         | Bart        | Pitt       | (231) 465-3497 | [email protected]  |
| 5         | Woody       | Eastwood   | (308) 555-0112 | [email protected] |
| 6         | Burt        | Tyson      | (309) 565-0112 | [email protected]  |
+-----------+-------------+------------+----------------+-------------------+

Sekarang kita hanya mendapatkan baris yang bukan NULL di Email kolom.

Jika Anda tertarik, lihat SQL Server ANSI_NULLS Explained untuk melihat bagaimana Anda dapat mengubah cara NULL nilai diperlakukan di SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Model Data Pesta Anak-anak

  2. SQL Sentry sekarang menjadi SentryOne

  3. Python:Meminta Data dengan Suara

  4. Membuat lingkungan pengujian dari repositori produksi

  5. Cara Menutupi Cassandra dengan IRI FieldShield