SQLite中的unicode()
函数只接受一个参数;如果我执行此查询:
select unicode(text) from table
并假设table
只有1行abc
;那么结果将是:97
这是仅a
个字符的数字unicode代码;如果我想获取查询结果中所有字符的数字unicode代码怎么办?在SQLite中是否可以这样做?
(我知道我可以在编程语言的环境中从SQLite中获取数字代码;我只是好奇是否可以在SQLite中使用SQL命令来实现这一点。)
答案 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
中的单个特定行执行此操作会更容易。