【问题标题】:Convert integer to text in SQLite's SELECT query?在 SQLite 的 SELECT 查询中将整数转换为文本?
【发布时间】:2012-09-07 08:00:42
【问题描述】:

我想创建一个 SELECT 查询,它将以 integer 格式的列中的数字作为 text 格式返回 - 我可以在 SQLite 中执行吗?

【问题讨论】:

    标签: sql sqlite type-conversion


    【解决方案1】:

    SQLite 支持CAST 和:

    将 INTEGER 或 REAL 值转换为 TEXT 会像通过 sqlite3_snprintf() 一样呈现该值,但生成的 TEXT 使用数据库连接的编码。

    所以你可以这样做:

    select cast(some_integer_column as text) from some_table;
    

    或者,根据您要执行的操作,您可以将数字视为字符串并让 SQLite 强制转换它认为合适的类型:

    select some_int || ' pancakes' from some_table;
    select some_int || '' from some_table;
    

    【讨论】:

    • 有趣的是,官方文档的语法一直是错误的CAST(<expr> TO <type>)(注意那里的TO)。
    • @Martijn:我什至没有在文档中注意到这一点,因为我习惯了标准的 as 语法。官方文档列出了多少次完整的 CAST 语法?我只看到一个提及,但我想这算是一致的:)
    • 语法图是正确的,但 2.8.2 的变更日志也使用了错误的语法。但是,在整个网站上拼出语法的 3 次使用中有 2 次是错误的;但我可能夸大了一点。 :-) 我向项目报告了。
    • 似乎CAST(... TO ...) 不起作用,但AS 起作用?至少在撰写此评论时。
    • @Brad 看起来cast(... to ...) 在某些时候是文档中的错字。 “CAST 表达式”文档(当前)使用 AS,语法图使用 AS,SQL 标准使用 AS,AS 甚至可以工作:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2015-08-06
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    相关资源
    最近更新 更多