MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Menggabungkan String dan Angka dalam SQL

Dalam kebanyakan kasus, menggabungkan string dan angka dalam SQL tidak berbeda dengan menggabungkan dua string.

Sebagian besar DBMS akan menggabungkan string dan nomor seolah-olah keduanya adalah string. Ini karena angka biasanya dikonversi ke string sebelum operasi penggabungan.

Sebagian besar RDBMS utama menyediakan CONCAT() fungsi untuk operasi penggabungan, serta CONCAT_WS() fungsi yang memungkinkan Anda menentukan pemisah untuk memisahkan argumen gabungan.

Sebagian besar RDBMS utama juga menyertakan operator penggabungan string, yang memungkinkan kita untuk menggabungkan operan-operannya.

CONCAT() Fungsi

Sebagian besar RDBMS utama menyediakan CONCAT() fungsi untuk menggabungkan argumen string. Umumnya, argumen non-string dikonversi ke string sebelum penggabungan terjadi.

Contoh:

SELECT CONCAT('Player', 456);

Hasil:

Player456

Jika kita ingin menyertakan spasi di antara argumen yang digabungkan, kita bisa menambahkan spasi ke salah satu string, atau menyertakan spasi sebagai argumen terpisah:

SELECT 
    CONCAT('Player ', 456) AS "Option 1",
    CONCAT('Player', ' ', 456) AS "Option 2";

Hasil:

+------------+------------+
| Option 1   | Option 2   |
+------------+------------+
| Player 456 | Player 456 |
+------------+------------+

RDBMS yang memiliki CONCAT() fungsi termasuk MySQL, MariaDB, SQL Server, Oracle, dan PostgreSQL.

SQLite tidak memiliki CONCAT() fungsi. SQLite bisa memiliki operator rangkaian string (lihat di bawah).

CONCAT_WS() Fungsi

Cara lain untuk memasukkan spasi adalah dengan menggunakan CONCAT_WS() fungsi. Fungsi ini memungkinkan Anda untuk menentukan pemisah yang akan digunakan untuk memisahkan semua argumen yang digabungkan.

Contoh:

SELECT CONCAT_WS(' ', 'Player', 456);

Hasil:

Player 456 

Fungsi ini bisa sangat berguna jika Anda memiliki banyak argumen untuk digabungkan:

SELECT CONCAT_WS(', ', 'Red', 2, 'Green', 456, 'Black');

Hasil:

Red, 2, Green, 456, Black

Dalam kasus seperti itu, Anda hanya perlu menentukan pemisah sekali. Dalam contoh ini, saya menetapkan koma dan spasi sebagai pemisah.

RDBMS yang memiliki CONCAT_WS() fungsi termasuk MySQL, MariaDB, SQL Server, dan PostgreSQL.

SQLite dan Oracle tidak memiliki CONCAT_WS() berfungsi, tetapi mereka melakukannya memiliki operator rangkaian string (lihat di bawah).

Operator Penggabungan String

Sebagian besar RDBMS menyertakan operator rangkaian string yang menggabungkan operan-operannya.

Jika Anda menggunakan SQLite, ini adalah satu-satunya pilihan Anda.

Contoh:

SELECT 'Player' || 456;

Hasil:

Player456

Perhatikan bahwa di MySQL, Anda harus mengaktifkan operator penyambungan pipa terlebih dahulu.

Hal yang sama berlaku untuk MariaDB.

SQL Server

Contoh di atas tidak akan berfungsi di SQL Server. Di SQL Server, gunakan tanda plus (+ ) operator penggabungan string.

Selain itu, nomor tersebut juga perlu diubah menjadi string sebelum mencoba menggabungkan:

SELECT 'Player' + CAST(456 AS varchar(3));

Hasil:

Player456

Inilah yang terjadi jika saya mencoba melakukannya tanpa terlebih dahulu mengubah angka menjadi string:

SELECT 'Player' + 456;

Hasil:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'Player' to data type int.

SQL Server berpikir bahwa kami mencoba menambahkan dua angka (karena + juga merupakan operator penjumlahan) dan karena itu mengembalikan kesalahan, karena salah satu operan adalah string.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apa hak istimewa pengguna MongoDB yang saya perlukan untuk menambahkan pengguna ke database mongo baru/lain?

  2. MongooseError [MongooseServerSelectionError]:koneksi <monitor> ke 52.6.250.237:27017 ditutup

  3. Membuat model untuk skema teman di luwak?

  4. MongoDB $log10

  5. MongoDB $round vs $trunc:Apa Bedanya?