You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLite中将输入数组的值转换为单列行数据?

在SQLite中将数组值转为行数据的方法

要把给定数组的每个元素作为akshar列的行数据(保留所有数组元素,不受数据库现有数据影响),可以用以下方式实现:

1. 用VALUES构造临时数据集

SQLite支持通过VALUES子句生成临时行集,直接查询这个行集就能得到目标结果:

SELECT value AS akshar FROM (
  VALUES ('क'), ('ख'), ('ग'), ('घ'), ('च'), ('छ'), ('ज'), ('झ')
);

执行后输出:

akshar
क
ख
ग
घ
च
छ
ज
झ

2. 关联其他表时保留所有数组元素

如果要关联其他表查询字符的相关信息,用LEFT JOIN就能保留数组里的所有元素,即使关联表中没有对应数据:
假设关联表名为char_details,包含akshar和description列,查询语句如下:

SELECT 
  t.akshar, 
  cd.description
FROM (
  VALUES ('क'), ('ख'), ('ग'), ('घ'), ('च'), ('छ'), ('ज'), ('झ')
) AS t(akshar)
LEFT JOIN char_details cd ON t.akshar = cd.akshar;

这样数组里的每个元素都会显示,没有对应描述的行description字段会返回NULL。

为什么IN子句不符合需求

你之前用的WHERE ... IN (...)是从现有表的行中筛选符合条件的数据,只会返回数据库中已存在的字符;而我们需要的是把外部数组作为独立数据源,因此必须用VALUES构造临时表来生成所有行。

内容的提问来源于stack exchange,提问作者Manishoaham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:49:59