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

Ian*_*ink 134 sql sqlite string concatenation operators

我正在尝试执行SQlite替换功能,但在函数中使用另一个字段.

select  locationname + '<p>' from location;
Run Code Online (Sandbox Code Playgroud)

在此剪辑中,结果是0的列表.我希望有一个字符串,其中包含来自locationname和'<p>'文字的文本.

cod*_*ict 263

尝试使用||代替+

select  locationname || '<p>' from location;
Run Code Online (Sandbox Code Playgroud)

SQLite文档:

|| operator是"concatenate" - 它将两个操作数字符串连接在一起.

  • field1 || 如果其中一个字段为null,则field2返回null.有人可能想做ifnull(field1,'')|| ifnull(field2,'').如果一个或两个字段为空,那将给出响应.然后,如果两者都为空,你就可以弄清楚你想要做什么. (26认同)
  • @TomCerul或使用`COALESCE(nullable_field,'')|| COALESCE(another_nullable_field,'')` (5认同)

sha*_*mar 38

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

select  locationname || '<p>' from location;
Run Code Online (Sandbox Code Playgroud)

  • 双管道也是连接字符串的ANSI方法,Oracle和PostgreSQL也支持... (11认同)

Bri*_*rns 31

为了比较,

SQLite                      ||  
Oracle                      CONCAT(string1, string2) or ||
MySQL                       CONCAT(string1, string2, string3...) or || if PIPES_AS_CONCAT enabled
Postgres                    CONCAT(string1, string2, string3...) or ||
Microsoft SQL Server 2012+  CONCAT(string1, string2, string3...) or + 
Microsoft Access            +  

  • 从 2012 年开始,SQL Server 还支持`CONCAT(string1, string2, string3...)` (2认同)
  • 如果启用了`PIPES_AS_CONCAT` 模式,MySQL 也支持`||`。 (2认同)