Sqlite 返回按列分组并按其他列值命名的多行

Sqlite 返回按列分组并按其他列值命名的多行,sqlite,field,rename,Sqlite,Field,Rename,不确定标题是否正确表述,因此有更好的解释: 表:用户\u数据 uid | key | value 1 | "age" | "23" 1 | "city" | "London" 1 | "name" | "John" 2 | "age" | "19" 2 | "city" | "Tokio" 2 | "name" | "Aiko" 查询:选择23岁用户的数据 结果应该如下所示: uid | age | city | name 1 | "23" |

不确定标题是否正确表述,因此有更好的解释:

表:用户\u数据

uid | key    | value
1   | "age"  | "23"
1   | "city" | "London"
1   | "name" | "John"
2   | "age"  | "19"
2   | "city" | "Tokio"
2   | "name" | "Aiko"
查询:选择23岁用户的数据

结果应该如下所示:

uid | age  | city     | name
1   | "23" | "London" | "John"

我甚至没有最新的代码,因为我不知道是否可以通过字段的值来命名列,对不起。

在SQL中,您完全可以轻松完成这项工作。。。不幸的是,我认为SQLite不支持Pivot by

另一种方法是代码密集型的,只有在事先知道密钥的情况下才有效

Select name.uid name.value, city.value, age.value from
       (Select uid, value from users_data where key="name") as name
  join (Select uid, value from users_data where key="city") as city on name.uid=city.uid
  join (Select uid, value from users_data where key="age") as age on name.uid=age.uid