MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Połącz ciąg i liczbę w SQL

W większości przypadków łączenie ciągu i liczby w SQL nie różni się od łączenia dwóch ciągów.

Większość DBMS łączy ciąg i liczbę tak, jakby były one ciągami. Dzieje się tak, ponieważ liczba jest zwykle konwertowana na ciąg przed operacją łączenia.

Większość głównych RDBMS zapewnia funkcję CONCAT() funkcja do operacji konkatenacji, a także CONCAT_WS() funkcja, która pozwala określić separator, dla którego oddzielone zostaną połączone argumenty.

Większość głównych RDBMS zawiera również operator konkatenacji ciągów znaków, który pozwala nam łączyć jego operandy.

CONCAT() Funkcja

Większość głównych RDBMS zapewnia funkcję CONCAT() funkcja do łączenia jej argumentów ciągu. Ogólnie rzecz biorąc, argumenty niebędące ciągami są konwertowane na ciąg przed konkatenacją.

Przykład:

SELECT CONCAT('Player', 456);

Wynik:

Player456

Jeśli chcemy umieścić spację między połączonymi argumentami, możemy dodać spację do jednego z ciągów lub dołączyć spację jako oddzielny argument:

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

Wynik:

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

RDBMS, które mają CONCAT() funkcja obejmuje MySQL, MariaDB, SQL Server, Oracle i PostgreSQL.

SQLite nie ma funkcji CONCAT() funkcjonować. SQLite robi mieć operator konkatenacji ciągów (patrz poniżej).

CONCAT_WS() Funkcja

Innym sposobem włączenia spacji jest użycie CONCAT_WS() funkcjonować. Ta funkcja pozwala określić separator, który zostanie użyty do oddzielenia wszystkich połączonych argumentów.

Przykład:

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

Wynik:

Player 456 

Ta funkcja może być szczególnie przydatna, jeśli masz wiele argumentów do połączenia:

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

Wynik:

Red, 2, Green, 456, Black

W takich przypadkach wystarczy określić separator tylko raz. W tym przykładzie określiłem przecinek i spację jako separator.

RDBMS, które mają CONCAT_WS() funkcja obejmuje MySQL, MariaDB, SQL Server i PostgreSQL.

SQLite i Oracle nie mają funkcji CONCAT_WS() działają, ale tak mieć operator konkatenacji ciągów (patrz poniżej).

Operator konkatenacji ciągów

Większość systemów RDBMS zawiera operator konkatenacji ciągów, który łączy operandy.

Jeśli używasz SQLite, jest to jedyna opcja.

Przykład:

SELECT 'Player' || 456;

Wynik:

Player456

Zauważ, że w MySQL musisz najpierw włączyć operator konkatenacji potoku.

To samo dotyczy MariaDB.

Serwer SQL

Powyższy przykład nie zadziała w SQL Server. W SQL Server użyj znaku plus (+ ) operator konkatenacji ciągów.

Ponadto liczba będzie musiała zostać przekonwertowana na ciąg przed próbą połączenia:

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

Wynik:

Player456

Oto, co się stanie, jeśli spróbuję to zrobić bez uprzedniej konwersji liczby na ciąg:

SELECT 'Player' + 456;

Wynik:

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

SQL Server myśli, że próbujemy dodać dwie liczby (ponieważ + jest również operatorem dodawania) i dlatego zwraca błąd, ponieważ jeden z operandów jest łańcuchem.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoError:parametr filtra musi być obiektem

  2. MongoDB $ltrim

  3. Jak mogę przechowywać porę dnia w MongoDB? Jako ciąg? Podaj dowolny rok/miesiąc/dzień?

  4. mongoError:Topologia została zniszczona

  5. Wydajność MongoDB przy rosnącej strukturze danych