文字列連結はSQLiteでは機能しません


136

SQlite置換関数を実行しようとしていますが、関数の別のフィールドを使用しています。

select  locationname + '<p>' from location;

この切り取りでは、結果は0のリストです。locationnameのテキストと'<p>'リテラルを含む文字列を期待していました。

回答:


266

||代わりに使用してみてください+

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

SQLiteのドキュメントから:

|| 演算子は「連結」です-オペランドの2つの文字列を結合します。


26
フィールド1 || フィールドの1つがnullの場合、field2はnullを返します。ifnull(field1、 '')|| ifnull(field2、 '')を実行することもできます。これにより、一方または両方のフィールドがnullの場合に応答が得られます。次に、両方がnullの場合に何をしたいかを理解します。
Tom Cerul、2011年

5
@TomCerulまたはuseCOALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')
zx8754

38

||オペレータは、SQLiteので連結したものです。このコードを使用してください:

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

11
二重パイプは、文字列を連結するANSIメソッドでもあり、OracleとPostgreSQLでもサポートされています...
OMGポニー

32

比較のために、

SQLite ||  
Oracle CONCAT(string1、string2)または||
MySQL CONCAT(string1、string2、string3 ...)または|| PIPES_AS_CONCATが有効な場合
Postgres CONCAT(string1、string2、string3 ...)または||
Microsoft SQL Server 2012+ CONCAT(string1、string2、string3 ...)または+ 
Microsoft Access +  

1
2012年以降、SQL ServerもサポートしますCONCAT(string1, string2, string3...)
Tim Cooke

1
MySQLは||PIPES_AS_CONCATモードが有効な場合にもサポートします。
Paul Spiegel、2017

2

Visual Studio 2010の場合、データソースデザイナーまたはウィザードを使用すると、||の使用に問題があります。オペレーター。sqlite dbにビューを作成し、そこからデータソースを作成します。

このスレッドも参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.