sql查询以获取输出1 = A,2 = B,3 = C,4 = D

时间:2018-12-24 16:17:41

标签: sql

Table1 Table2
   1      A   
   2      B
   3      C
   4      D

预期输出

1=A, 2=B, 3=C, 4=D 

2 个答案:

答案 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