当前位置: 首页 > 知识库问答 >
问题:

将一个查询的结果转换为另一个查询

萧辰沛
2023-03-14

我有两个表TABLE_A,列名为COLUMN1 COLUMN2 COLUMN3 COLUMN 4 COLUM5

abc def ghi jkl mno

123 456 789 001 121

TABLE_B列名为COLUMN6 COLUMN7,其数据为

专栏5 124

第4列bca

第3列aaa

列5 BBB

所以我将Table_A的列名作为Table_B中的数据

所以我想在一个查询中做这样的事情

$query1=从TABLE_B中选择COLUMN6,其中COLUMN7 = ' aaa

$query2=从TABLE_A中选择$query1,其中COLUMN1='123';

谢谢

共有2个答案

栾弘新
2023-03-14

您可以使用 CASE 或 DECODE 来执行此操作:

select a.* from tableA a, tableB b
WHERE
b.column7 = 'aaa'
and case
when b.column6 = 'COLUMN1' then a.column1
when b.column6 = 'COLUMN2' then a.column2
when b.column6 = 'COLUMN3' then a.column3
when b.column6 = 'COLUMN4' then a.column4
when b.column6 = 'COLUMN5' then a.column5
else null end = '123' -- condition for tableA

您可以将此语句设置为最多1000列(ORACLE硬限制):)

须景辉
2023-03-14

您需要有一个与表 a 匹配的值 -

表A -

此查询将起作用:

SELECT a.name, b.name
FROM tableA as a
JOIN tableB as b ON a.id=b.table_a_id AND b.name='123'
WHERE a.name='aaaa'

来获取表A和表b的名称。为了便于阅读,我在这里使用了表名的别名。我希望,用这个例子,可以回答你的问题。

如果没有任何匹配的值,但希望所有列都交叉,可以这样做:

SELECT a.name, b.name
FROM tableA a, tableB b
WHERE a.name='aaa' AND b.name='123'
 类似资料:
  • 我有以下型号 我试图通过名称和组名称获得一个实例。 我可以用下面的代码来做 但是我想把它变成一个查询。对如何实现这一点有什么想法吗?

  • 问题内容: 我有一个查询。现在,此查询当然返回一个结果集,我想要的是查询此查询的结果集,例如,我只希望上述查询具有唯一的名称。我应该提一下,我知道我可以在Query1中使用,但这只是一个示例,我的实际情况有些不同,我想知道的是是否可以查询上一个查询的结果集。我正在使用SQL Server 2012。 问题答案: 您可以使用该子句

  • 我正在尝试计算配置单元中视图的平均/最小/最大记录计数 并试图实现如下内容: 但我收到一条错误消息: avg=5 min=4 max=6

  • 我正在尝试查找一个查询唯一的名称列表,并排除两个查询结果之间的共同名称。例如,我想要学生A、B和C所选课程的名称,并从该列表中排除学生D和E所选的课程。在这个问题的答案的帮助下(Neo4j Cypher:从结果中排除某些节点),我尝试了这个密码代码,它是有效的,但我得到的结果是节点。我希望它是一个名称列表,而不是节点。 非常感谢。

  • 问题内容: 我有一个团队时间表表,如下所示: 谢德勒 我想用另一个表中存在的相应团队替换团队值: DBO团队 尝试执行此操作:如何在查询结果中用“ The Monsters”和“ Bug Bites”替换Schedule中的1和2? 问题答案: 基本上只是做两个连接,一个连接为家乡名称,一个连接为客场名称。 我添加了反引号,因为schedule是一个关键字,所以为了不弄乱任何内容,您应该在表名上使

  • 本文向大家介绍sqlalchemy 将查询结果转换为字典,包括了sqlalchemy 将查询结果转换为字典的使用技巧和注意事项,需要的朋友参考一下 示例 首先为示例进行设置: 如果您要分别查询列,则该行是KeyedTuple具有_asdict方法的。方法名称以单个下划线开头,以匹配namedtupleAPI(它不是私有的!)。 使用ORM检索对象时,默认情况下不可用。应该使用SQLAlchemy检