La concaténation de chaînes ne fonctionne pas dans SQLite


136

J'essaie d'exécuter une fonction de remplacement SQlite, mais j'utilise un autre champ dans la fonction.

select  locationname + '<p>' from location;

Dans ce snip, le résultat est une liste de 0. J'aurais attendu une chaîne avec le texte de locationname et les '<p>'littéraux.

Réponses:


266

Essayez d'utiliser ||à la place de+

select  locationname || '<p>' from location;

À partir de la documentation SQLite :

Le || L'opérateur est "concaténer" - il joint les deux chaînes de ses opérandes.


26
field1 || field2 renvoie null si l'un des champs est nul. On pourrait vouloir faire ifnull (field1, '') || ifnull (field2, ''). Cela vous donnera une réponse si un ou les deux champs sont nuls. Ensuite, vous pouvez déterminer ce que vous voulez faire si les deux étaient nuls.
— Tom Cerul

5
@TomCerul ou utilisezCOALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')
— zx8754

38

L' ||opérateur est la concaténation dans SQLite. Utilisez ce code:

select  locationname || '<p>' from location;

11
Le double tube est également la méthode ANSI de concaténation de chaînes, prise en charge également sur Oracle et PostgreSQL ...
— OMG Ponies

32

En comparaison,

SQLite ||  
Oracle CONCAT (chaîne1, chaîne2) ou ||
MySQL CONCAT (chaîne1, chaîne2, chaîne3 ...) ou || si PIPES_AS_CONCAT activé
Postgres CONCAT (chaîne1, chaîne2, chaîne3 ...) ou ||
Microsoft SQL Server 2012+ CONCAT (chaîne1, chaîne2, chaîne3 ...) ou + 
Microsoft Access +  

1
À partir de 2012, SQL Server prend également en chargeCONCAT(string1, string2, string3...)
— Tim Cooke

1
MySQL prend également en charge ||si le PIPES_AS_CONCATmode est activé.
— Paul Spiegel

2

pour Visual Studio 2010, à l'aide du concepteur ou de l'assistant de sources de données, vous ne parvenez pas à utiliser || opérateur. Créez une vue dans la base de données sqlite et créez vos sources de données à partir de là.

Voir aussi ce fil .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.