Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Menggunakan Operator ANTARA di SQL Server

SQL Server BETWEEN operator memungkinkan Anda menguji di antara rentang nilai dalam kueri Anda. Misalnya, Anda dapat menguji apakah suatu nilai berada di antara dua angka.

BETWEEN operator bersifat inklusif, artinya mencakup nilai yang Anda tentukan dalam rentang. Artinya, itu mencakup nilai-nilai yang lebih besar atau sama dengan nilai yang lebih rendah, dan nilai-nilai yang kurang dari atau sama dengan nilai yang lebih tinggi. Oleh karena itu seperti menggunakan >= dan <= .

Contoh

Berikut ini contoh untuk didemonstrasikan.

SELECT Name, Population
FROM city
WHERE Population BETWEEN 22000 AND 24000
ORDER BY Population ASC;

Hasil:

+--------------+--------------+
| Name         | Population   |
|--------------+--------------|
| Thimphu      | 22000        |
| Weno         | 22000        |
| Nuku´alofa   | 22400        |
| Douglas      | 23487        |
| Saint John´s | 24000        |
+--------------+--------------+

Seperti yang disebutkan, BETWEEN inklusif, jadi hasilnya menyertakan dua nilai yang saya tentukan di kiri dan kanan AND argumen.

Ini setara dengan melakukan hal berikut.

SELECT Name, Population
FROM city
WHERE Population >= 22000 AND Population <= 24000
ORDER BY Population ASC;

Hasil:

+--------------+--------------+
| Name         | Population   |
|--------------+--------------|
| Thimphu      | 22000        |
| Weno         | 22000        |
| Nuku´alofa   | 22400        |
| Douglas      | 23487        |
| Saint John´s | 24000        |
+--------------+--------------+

NOT BETWEEN

Anda dapat menggunakan NOT argumen untuk menentukan bahwa nilainya harus tidak berada di antara dua nilai yang ditentukan.

SELECT Name, Population
FROM city
WHERE Population NOT BETWEEN 300 AND 9696300
ORDER BY Population ASC;

Hasil:

+-----------------+--------------+
| Name            | Population   |
|-----------------+--------------|
| Adamstown       | 42           |
| West Island     | 167          |
| São Paulo       | 9968485      |
| Seoul           | 9981619      |
| Mumbai (Bombay) | 10500000     |
+-----------------+--------------+

Kali ini kita mendapatkan hasil yang sama seperti jika kita menggunakan operator yang lebih kecil dan lebih besar.

SELECT Name, Population
FROM city
WHERE Population < 300 OR Population > 9696300
ORDER BY Population ASC;

Hasil:

+-----------------+--------------+
| Name            | Population   |
|-----------------+--------------|
| Adamstown       | 42           |
| West Island     | 167          |
| São Paulo       | 9968485      |
| Seoul           | 9981619      |
| Mumbai (Bombay) | 10500000     |
+-----------------+--------------+

Saat menggunakan NOT BETWEEN , jika kita ingin memasukkan nilai yang ditentukan dalam pengujian, kita perlu menambah/mengurangi nilai.

SELECT Name, Population
FROM city
WHERE Population NOT BETWEEN 301 AND 9696299
ORDER BY Population ASC;

Hasil:

+-----------------+--------------+
| Name            | Population   |
|-----------------+--------------|
| Adamstown       | 42           |
| West Island     | 167          |
| Fakaofo         | 300          |
| Shanghai        | 9696300      |
| São Paulo       | 9968485      |
| Seoul           | 9981619      |
| Mumbai (Bombay) | 10500000     |
+-----------------+--------------+

Kali ini kita melihat bahwa dua kota ditambahkan ke kumpulan hasil kita; Fakaofo dengan populasi 300, dan Shanghai dengan populasi 9696300.

Omong-omong, ini semua adalah data sampel lama sehingga angka populasi mungkin tidak mencerminkan kenyataan sebenarnya dalam banyak kasus.

Berikut cara kami melakukannya dengan operator Kurang Dari atau Sama Dengan dan Lebih Besar dari atau Sama Dengan.

SELECT Name, Population
FROM city
WHERE Population <= 300 OR Population >= 9696300
ORDER BY Population ASC;

Hasil:

+-----------------+--------------+
| Name            | Population   |
|-----------------+--------------|
| Adamstown       | 42           |
| West Island     | 167          |
| Fakaofo         | 300          |
| Shanghai        | 9696300      |
| São Paulo       | 9968485      |
| Seoul           | 9981619      |
| Mumbai (Bombay) | 10500000     |
+-----------------+--------------+

BETWEEN dengan Tanggal

Saat Anda menggunakan BETWEEN operator pada tanggal (seperti datetime , datetime2 , atau datetimeoffset nilai), sebaiknya gunakan format YYYYMMDD untuk menghindari masalah lokal (misalnya, jika pengguna telah mengubah format tanggal untuk sesi mereka).

Juga, jika Anda tidak memberikan komponen waktu, defaultnya adalah 12:00 A.M.

Oleh karena itu, kueri berikut tidak akan mengembalikan baris apa pun yang berisi bagian waktu setelah pukul 12:00. pada 1973-12-31.

SELECT * FROM Artists
WHERE ActiveFrom  BETWEEN '20010101' AND '20011231';

Anda dapat menyesuaikan nilai tanggal yang sesuai, atau Anda mungkin lebih suka menggunakan operator Lebih Besar Dari atau Sama Dengan dan Kurang Dari.

Seperti ini:

SELECT * FROM Artists
WHERE ActiveFrom  >= '20010101' AND ActiveFrom < '20011231';

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa fungsi SQL Server Scalar-valued menjadi lebih lambat?

  2. Daftar Operator Perbandingan SQL Server

  3. Bisakah kita meneruskan parameter ke tampilan di SQL?

  4. Cara memasukkan data Excel atau CSV ke dalam Tabel dengan menggunakan Graphical User Interface di SQL Server - Tutorial SQL Server / TSQL Part 102

  5. Bagaimana RANK() Bekerja di SQL Server