Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于连接ID在两个不同列中显示值_Sql_Sql Server - Fatal编程技术网

Sql 基于连接ID在两个不同列中显示值

Sql 基于连接ID在两个不同列中显示值,sql,sql-server,Sql,Sql Server,我正在尝试为SQL Server创建一个select语句,如标题所示。 我的数据是: ID | JoiningID | Value | 1 | 1 | 10 2 | 1 | 11 3 | 2 | 10 4 | 2 | 10 5 | 3 | 15 6 | 3 | 9 我试图输出三列,如下所示: JoiningID | Column1值| Column2值 1 | 10 | 11 2 | 10 | 10 3 | 15 | 9 这样做的条件是,它需要位于select语句中,而不

我正在尝试为SQL Server创建一个select语句,如标题所示。 我的数据是:

ID | JoiningID | Value | 

1 | 1 |  10

2 | 1 | 11

3 | 2 | 10

4 | 2 | 10

5 | 3 | 15

6 | 3 | 9
我试图输出三列,如下所示:

JoiningID | Column1值| Column2值

1 | 10 | 11

2 | 10 | 10

3 | 15 | 9
这样做的条件是,它需要位于select语句中,而不是where语句中


谢谢您的时间。

您可以枚举这些值,然后使用
pivot
或条件聚合:

select joiningid,
       max(case when seqnum = 1 then value end) as value1,
       max(case when seqnum = 2 then value end) as value2
from (select t.*, row_number() over (partition by joiningid order by id) as seqnum
      from t
     ) t
group by joiningid;

您可以枚举这些值,然后使用
pivot
或条件聚合:

select joiningid,
       max(case when seqnum = 1 then value end) as value1,
       max(case when seqnum = 2 then value end) as value2
from (select t.*, row_number() over (partition by joiningid order by id) as seqnum
      from t
     ) t
group by joiningid;
你可以这么做

SELECT * FROM TABLE1
WHERE JoiningID IN(SELECT JoiningID from TABLE2)
或者

或者,你可以做一个连接或左连接..

你可以简单地做

SELECT * FROM TABLE1
WHERE JoiningID IN(SELECT JoiningID from TABLE2)
或者


或者,您可以执行连接或左连接..

如果joiningid的值超过2个怎么办?@vkp抱歉,从来没有超过2个值。什么决定了哪个值应该在
Column1 value
中,哪个值应该在
Column2 value
中?如果joiningid的值超过2个怎么办?@vkp道歉,从来没有超过2个值。什么决定了哪个值应该在
列1值中
,哪个值应该在
列2值中