unicode()用于查询的所有字符

时间:2014-06-18 10:33:26

标签: unicode sqlite

SQLite中的unicode()函数只接受一个参数;如果我执行此查询:

select unicode(text) from table

并假设table只有1行abc;那么结果将是:97这是仅a个字符的数字unicode代码;如果我想获取查询结果中所有字​​符的数字unicode代码怎么办?在SQLite中是否可以这样做?

(我知道我可以在编程语言的环境中从SQLite中获取数字代码;我只是好奇是否可以在SQLite中使用SQL命令来实现这一点。)

1 个答案:

答案 0 :(得分:0)

SQLite实际上没有循环结构;在编程语言中这样做会容易得多。

在SQLite 3.8.3或更高版本中,您可以使用递归common table expression

WITH RECURSIVE
all_chars(id, u, rest) AS (
    SELECT id, unicode(text), substr(text, 2)
    FROM MyTable
    UNION ALL
    SELECT id, unicode(rest), substr(rest, 2)
    FROM all_chars
    WHERE rest <> ''),
unicodes(id, list) AS (
    SELECT id, group_concat(u)
    FROM all_chars
    GROUP BY id)
SELECT * FROM unicodes

需要ID才能将单个源行的值合并在一起;为MyTable中的单个特定行执行此操作会更容易。