[英]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.