字符串连接在 SQLite 中不起作用
Posted
技术标签:
【中文标题】字符串连接在 SQLite 中不起作用【英文标题】:String concatenation does not work in SQLite 【发布时间】:2011-04-03 21:13:01 【问题描述】:我正在尝试执行 SQlite 替换函数,但在函数中使用了另一个字段。
select locationname + '<p>' from location;
在这个片段中,结果是一个 0 列表。我本来希望有一个字符串,其中包含来自 locationname 的文本和 '<p>'
文字。
【问题讨论】:
【参考方案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 中不起作用,但与字符串文字一起使用