gpt4 book ai didi

SQL - 在新列而不是新行上使用多个 WHERE 条件进行 SELECT

转载 作者:行者123 更新时间:2023-12-03 18:28:18 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to pivot in SQLite or i.e. select in wide format a table stored in long format?

(5 个回答)


4年前关闭。




我有一个 SQLite 短语数据库及其形式的本地翻译

code | language_id | script_source | script_target | transliteration
| | | |
yes | 1 | Yes. | Yes. | NULL
no | 1 | No. | No. | NULL
yes | 3 | Oui. | Oui. | NULL
no | 3 | Non. | Non. | NULL

其中 language_id 指定语言。我正在尝试编写 SELECT 的查询是代码,来自一种语言的 script_source 和来自另一种语言的 script_target 以及音译, 全部在一行 .我设法得到的最接近的是
SELECT code, script_source, transliteration FROM phrases WHERE language_id=001
UNION
SELECT code, script_target, transliteration FROM phrases WHERE language_id=003;

产生这个查询结果:
code | script_source | transliteration
yes | Yes. | NULL
yes | Oui. | NULL
no | No. | NULL
no | Non. | NULL

这没关系,但如果 `script_target' 有它自己的列,这对我的目的会更好,如下所示:
code | script_source | script_target | transliteration
yes | Yes. | Oui. | NULL
no | No. | Non. | NULL

我认为这可能需要 JOIN某种功能,但到目前为止我还没有得到想要的结果。任何帮助将不胜感激。

编辑:我的错,我要的是 script_target对应的音译值(value)。

最佳答案

一种方法是join :

SELECT p1.code, p1.script_source,p2.script_source as script_target, 
p2.transliteration as transliateration
FROM phrases p1 JOIN
phrases p2
ON p1.code = p2.code
WHERE p1.language_id = 1 AND p2.language_id = 3;

目前尚不清楚您想要哪种音译。

关于SQL - 在新列而不是新行上使用多个 WHERE 条件进行 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44628824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com