Table1 Table2
1 A
2 B
3 C
4 D
预期输出
1=A, 2=B, 3=C, 4=D
答案 0 :(得分:0)
这是一个面试问题。它令人困惑,提供的信息不完整,提示不好,并且处理数据库中的数据有点荒谬。
如果它们实际上是指两个不同的表(我怀疑这是他们要拍摄的),那么他们将无法指定每个表的列名。假设每个表的列名称为“ someColumn”。这将产生所需的输出,而无需使用游标。游标应该是不得已的方法。始终首先尝试找到基于集合的解决方案。
if(status == 'error') {
data.context.addClass('error'); // adds class error to li tag
}
如果它们实际上意味着存在一个包含两列的表,令人困惑的是Table1和Table2,那么答案是微不足道的(尽管在这种情况下,他们没有指定表名,所以我们假设该表是“ SomeTable” ):
select t1.someColumn + '=' + t2.someColumn from (
select someColumn, rowNum = ROW_NUMBER() OVER (ORDER BY someColumn)
from Table1) t1
join (select someColumn, rowNum = ROW_NUMBER() OVER (ORDER BY someColumn)
from Table2) t2 on t2.rowNum = t1.rowNum
答案 1 :(得分:0)
不确定面试官想问什么。他/她给了你两张桌子没有栏。如果我们将table1和table2视为some_table的列,并且具有您提到的值
Table1 Table2
1 A
2 B
3 C
4 D
然后可以通过以下方式实现所需的输出:
select listagg(table1 ||'='||table2,', ') within group(order by table1) req_output
from some_table;
输出:1=A, 2=B, 3=C, 4=D