【问题标题】:New Line character \n in SQLite concatenateSQLite 连接中的换行符 \n
【发布时间】:2014-07-18 19:30:19
【问题描述】:

我知道,在某些编程语言中,如果您执行以下操作:

'This is on first line \n This is on second line'

然后它会像这样正常显示:

This is on first line
This is on second line

当我在 SQLite 数据库中连接一个字符串时

SELECT *, [FIELD1] || '\n'  || [FIELD2] from TABLE

(其中 [FIELD1] = 这是在第一行 [FIELD2] = 这是在第二行)

显示如下:

This is on first line \n This is on second line

是否有没有正确显示 \n 字符的原因?

【问题讨论】:

    标签: sqlite newline


    【解决方案1】:

    SQL 没有反斜杠转义。

    您可以通过直接在查询中写入来在字符串中生成换行符:

    SELECT [Field1] || '
    ' || [Field2] FROM MyTable
    

    或使用blob literal:

    SELECT [Field1] || x'0a' || [Field2] FROM MyTable
    

    或使用char function:

    SELECT [Field1] || char(10) || [Field2] FROM MyTable
    

    【讨论】:

    • char() 仅在相当新的 SQLite 中有效,如果您使用的是像 CentOS 这样的长期受支持的非常古老的发行版,则可能不存在。
    • @DamianYerrick 确实如此。 2013-03-18 (3.7.16) 的变更日志显示“添加了 SQL 函数 unicode(A) 和 char(X1,...,XN)”。 《Enterprise Linux》6 自带 sqlite 版本 3.6.20。
    【解决方案2】:

    试试char(13)(如果你想在 Windows 记事本中看到它)。

    select col || char(13) from mytable
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 2015-02-24
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2023-01-30
      相关资源
      最近更新 更多