繁体   English   中英

SQL Server:返回3个项目

[英]SQL Server : return 3 items

简短版:我需要返回一个查询,该查询包含另一个表中的3个项目,并将其添加到现有表中。

长版:

Table A包含以下信息:

| ID | Name | Date |  Comment  |
--------------------------------
| 1  | AJ   | 9/11 | Howdy     |
| 2  | AW   | 9/13 | Hi        |
| 3  | AK   | 9/15 | Aloha     |
| 4  | AW   | 9/15 | Hello     |
| 5  | AJ   | 9/18 | Greetings |

我需要Table B类似于:

| ID |  Comment  |  Comment2  |  Comment3  |
--------------------------------------------
| 1  | Howdy     |  Aloha     |  Greetings |

我在跑步

SELECT TOP 3 * 
FROM a 
WHERE Name IN ('AJ','AK')

但这会使Table B看起来像:

| ID | Name | Date |  Comment  |
--------------------------------
| 1  | AJ   | 9/11 | Howdy     |
| 3  | AK   | 9/15 | Aloha     |
| 5  | AJ   | 9/18 | Greetings |

甚至有可能得到我想要的东西吗?

不确定每个注释的ID是什么,然后您的输出只有一个带有ID的行(该ID来自何处?),但是可以扩展为:

SELECT
  [1] AS COMMENT1,
  [2] AS COMMENT2,
  [3] AS COMMENT3
FROM
  TABLE_A
PIVOT (MAX(COMMENT) FOR id IN ([1],[2],[3])) AS PVT

请尝试这个,对您有帮助

  select b.id, b.comment as comment
, (select comment from ##temp1 where id = b.id+2 )  as comment1
, (select comment from ##temp1 where id = b.id+4 )  as comment2
  from  ##temp1 b  where b.id=1

我不知道这是否行得通,但我只是在这里提出想法。 让我知道它是否有效!

   Insert into B Values (
    ( SELECT TOP 3 comment FROM a WHERE Name IN ('AJ','AK') limit 1 ),
    ( SELECT TOP 3 comment FROM a WHERE Name IN ('AJ','AK') limit 1,1 ),
    ( SELECT TOP 3 comment FROM a WHERE Name IN ('AJ','AK') limit 2,1 )
    )

这是针对MySQL的。 请针对MSSQL Server进行相应的更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM