gpt4 book ai didi

sql连接函数

转载 作者:行者123 更新时间:2023-12-05 01:30:54 24 4
gpt4 key购买 nike

这基本上是一个数据库连接问题,但它需要使用列名到列名的映射组件,这让我很困惑。

我有多个调查表;为简单起见,假设我有两个,一个是 2010 年的(称为“d2010”),另一个是 2011 年的(称为“d2011”)。行对应于调查,列(我们可以假设它们被命名为“c1”、“c2”、“c3”……“cN”)对应于对问题的回答。所以,'d2010' 看起来像

         id  c1  c2  c3  .. cX
survey 1
survey 2
survey 3
...
survey N

虽然'd2011'看起来像

         id  c1  c2  c3  .. cY
survey 1
survey 2
survey 3
...
survey N

主要目标是显示从 2010 年到 2011 年对于特定问题的回答如何变化。具体来说,我的目标是创建 SQL 命令来创建新表(包含三列),以针对特定响应显示两年间调查的不同之处:

         id  2010-response  2011-response
survey 1
survey 2
survey 3
...
survey N

如果列名保持一致,那么我需要的东西就很简单了

select d2011.id, d2010.c1 as 'last year', d2011.c1 'this year' from d2010 join d2011 on d2010.id=d2011.id;

不幸的是,创建表的人没有保持列名一致;例如,

c1 of 2010 corresponds to c2 of 2011
c2 of 2010 corresponds to c1 of 2011
c3 of 2010 corresponds to c3 of 2011
c4 of 2010 corresponds to c7 of 2011
...

所以我一直想做的是输入类似的东西

select d2010.id, d2010.c1 as 'last year', d2011.f(c1) 'this year' from d2010 join d2011 on d2010.id=d2011.id;

其中“d2011.f(c1)”表示使用将 2010 年的列名映射到 2011 年的列名的函数。映射不够简单,无法用数学公式表示,因此我假设我需要一个表就像

2010  2011
c1 c2
c2 c1
c3 c3
c4 c7

有没有办法用 SQL 表达我需要的连接操作?也就是说,有了映射表,有没有办法将以下内容转换为标准 SQL(一般)和 SQLite(特别)?

select d2011.id, f(d2010.c1) as 'last year', d2011.c1 'this year' from d2010 join d2011 on d2010.id=d2011.id;.id;

非常感谢!

最佳答案

您的问题似乎并不完全清楚。 . .您可以按以下方式进行连接:

select d2011.id, d2010.c2 as 'last year', d2011.c1 'this year'
from d2010 join d2011 on d2010.id = d2011.id

没有办法在标准 sql 中动态指定列。动态 SQL 确实为您提供了这种能力。

我怀疑您想要做的最简单的方法是将两个表列列表放入 Excel,将它们并排放入两列,然后使用 Excel 函数构建 SQL 语句。

关于sql连接函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724727/

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