字符串连接在SQLite中不起作用


136

我正在尝试执行SQlite替换功能,但是在该功能中使用了另一个字段。

select  locationname + '<p>' from location;

在此片段中,结果为0列表。我本来希望有一个字符串,其中包含locationname和'<p>'文字中的文本。

Answers:


266

尝试||代替+

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

SQLite文档中

|| 运算符是“串联的”-将其操作数的两个字符串连接在一起。


26
field1 || 如果字段之一为null,则field2返回null。一个人可能想做ifnull(field1,'')|| ifnull(field2,'')。如果一个或两个字段为空,将为您提供响应。然后,您要弄清楚如果两者都为空,您想做什么。
汤姆·塞鲁

5
@TomCerul或使用COALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')
zx8754 2014年

38

||操作是在SQLite的级联。使用此代码:

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

11
双管道也是连接字符串的ANSI方法,在Oracle&PostgreSQL上也受支持...
OMG Ponies 2010年

32

为了比较,

SQLite ||  
Oracle CONCAT(字符串1,字符串2)或||
MySQL CONCAT(string1,string2,string3 ...)或|| 如果启用了PIPES_AS_CONCAT
Postgres CONCAT(字符串1,字符串2,字符串3 ...)或||
Microsoft SQL Server 2012+ CONCAT(字符串1,字符串2,字符串3 ...)或+ 
Microsoft Access +  

1
从2012年开始,SQL Server还支持CONCAT(string1, string2, string3...)
Tim Cooke,2016年

1
||如果PIPES_AS_CONCAT启用了模式,MySQL也支持。
Paul Spiegel

2

对于Visual Studio 2010,使用数据源设计器或向导,您在使用||时会遇到麻烦 操作员。在sqlite db中创建一个视图,然后从中创建数据源。

另请参见此线程

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.