Die Verkettung von Zeichenfolgen funktioniert in SQLite nicht

136

Ich versuche, eine SQlite-Ersetzungsfunktion auszuführen, verwende jedoch ein anderes Feld in der Funktion.

select  locationname + '<p>' from location;

In diesem Snip ist das Ergebnis eine Liste von Nullen. Ich hätte eine Zeichenfolge mit dem Text von locationname und den '<p>'Literalen erwartet .

Ian Vink
quelle

Antworten:

266

Versuchen Sie es ||anstelle von+

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

Aus der SQLite-Dokumentation :

Die || Der Operator ist "verkettet" - er verbindet die beiden Zeichenfolgen seiner Operanden.

Codaddict
quelle
26
Feld1 || field2 gibt null zurück, wenn eines der Felder null ist. Man könnte ifnull (Feld1, '') || ifnull (Feld2, '') machen wollen. Das gibt Ihnen eine Antwort, wenn eines oder beide Felder null sind. Dann müssen Sie herausfinden, was Sie tun möchten, wenn beide null wären.
Tom Cerul
5
@ TomCerul oder verwendenCOALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')
zx8754
38

Der ||Operator ist die Verkettung in SQLite. Verwenden Sie diesen Code:

select  locationname || '<p>' from location;
Shamittomar
quelle
11
Die Doppelpipe ist auch die ANSI-Methode zum Verketten von Zeichenfolgen, die auch von Oracle und PostgreSQL unterstützt wird ...
OMG Ponies
32

Zum Vergleich,

SQLite ||  
Oracle CONCAT (string1, string2) oder ||
MySQL CONCAT (string1, string2, string3 ...) oder || wenn PIPES_AS_CONCAT aktiviert ist
Postgres CONCAT (string1, string2, string3 ...) oder ||
Microsoft SQL Server 2012+ CONCAT (Zeichenfolge1, Zeichenfolge2, Zeichenfolge3 ...) oder + 
Microsoft Access +  
Brian Burns
quelle
1
Ab 2012 unterstützt SQL Server auchCONCAT(string1, string2, string3...)
Tim Cooke
1
MySQL unterstützt auch, ||wenn der PIPES_AS_CONCATModus aktiviert ist.
Paul Spiegel
2

In Visual Studio 2010 haben Sie Probleme mit der Verwendung von ||, wenn Sie den Datenquellen-Designer oder Assistenten verwenden Operator. Erstellen Sie eine Ansicht in der SQLite-Datenbank und erstellen Sie daraus Ihre Datenquelle (n).

Siehe auch diesen Thread .

schnelle Zeichnung
quelle