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

Posted

技术标签:

【中文标题】字符串连接在 SQLite 中不起作用【英文标题】:String concatenation does not work in SQLite 【发布时间】:2011-04-03 21:13:01 【问题描述】:

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

select  locationname + '<p>' from location;

在这个片段中,结果是一个 0 列表。我本来希望有一个字符串,其中包含来自 locationname 的文本和 '&lt;p&gt;' 文字。

【问题讨论】:

【参考方案1】:

尝试使用|| 代替+

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

来自SQLite documentation

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

【讨论】:

field1 ||如果字段之一为空,则 field2 返回空。有人可能想做 ifnull(field1,'')||ifnull(field2,'')。如果一个或两个字段为空,这会给你一个响应。然后你就可以弄清楚如果两者都为空,你想做什么。 @TomCerul 或使用COALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')【参考方案2】:

|| 运算符是 SQLite 中的连接。使用此代码:

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

【讨论】:

双管道也是连接字符串的ANSI方法,Oracle和PostgreSQL也支持...【参考方案3】:

为了比较,

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...) 或 + 微软访问 +

【讨论】:

从2012年开始,SQL Server也支持CONCAT(string1, string2, string3...) 如果启用PIPES_AS_CONCAT模式,MySQL也支持||【参考方案4】:

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

另见this thread。

【讨论】:

以上是关于字符串连接在 SQLite 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

连接属性在 Azure ServiceBus 订阅触发的函数中不起作用

带有日期字符串的 Android SQLite rawquery 在 WHERE 子句中不起作用

与正则表达式捕获字符串一起使用时,SQLite SELECT 在 Ruby 中不起作用,但与字符串文字一起使用

为啥 SQLite pragma foreign_keys 在数据库连接中不持久?

访问更新语句在 C# 中不起作用

更新查询在带有 MS Access 的 VB.NET 中不起作用