如何得到:
id Name Value
1 A 4
1 B 8
2 C 9
Run Code Online (Sandbox Code Playgroud)
至
id Column
1 A:4, B:8
2 C:9
Run Code Online (Sandbox Code Playgroud) 为了说明,假设我有两个表如下:
VehicleID Name
1 Chuck
2 Larry
LocationID VehicleID City
1 1 New York
2 1 Seattle
3 1 Vancouver
4 2 Los Angeles
5 2 Houston
Run Code Online (Sandbox Code Playgroud)
我想写一个查询来返回以下结果:
VehicleID Name Locations
1 Chuck New York, Seattle, Vancouver
2 Larry Los Angeles, Houston
Run Code Online (Sandbox Code Playgroud)
我知道这可以使用服务器端游标完成,即:
DECLARE @VehicleID int
DECLARE @VehicleName varchar(100)
DECLARE @LocationCity varchar(100)
DECLARE @Locations varchar(4000)
DECLARE @Results TABLE
(
VehicleID int
Name varchar(100)
Locations varchar(4000)
)
DECLARE VehiclesCursor CURSOR FOR
SELECT
[VehicleID]
, [Name]
FROM [Vehicles]
OPEN VehiclesCursor
FETCH NEXT …Run Code Online (Sandbox Code Playgroud) 我有两个表,Books和Authors,它们之间通过名为book_authors的第三个表具有多对多关系,我试图使用内部联接列出每本书的作者的所有书籍,以便将它们显示在DataList控件,但是join 导致了几个重复的行,因为每本书可能有很多作者,所以每个作者都会有一行。
例子:
book_title author
b1 a1
b1 a2
Run Code Online (Sandbox Code Playgroud)
解决此问题的最佳方法是什么,使其变为:
book_title author
b1 a1, a2
Run Code Online (Sandbox Code Playgroud) 我正在编写一个SQL查询,我需要在表上执行子选择,这通常会返回多行.我需要能够将所有行中某个字段的结果连接到一个字段中才能输出.这有可能,怎么样?
例如,如果SQL查询返回
id | field
1 | test1
2 | test2
3 | test3
Run Code Online (Sandbox Code Playgroud)
我需要输出的字段是"test1 test2 test3".谢谢
我有一个值为表的表:
Key1 Key2 ColumnKey
============================
1 idx1 here
2 idx2 there
Run Code Online (Sandbox Code Playgroud)
我需要返回,因为逗号分隔了多个列结果.
例:
1,2 idx1,idx2, here,there
Run Code Online (Sandbox Code Playgroud) 查询:
CREATE TABLE #Temp1 (ID int)
CREATE TABLE #Temp2 (ID int, Value varchar(10))
INSERT INTO #Temp1 (ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
INSERT INTO #Temp2(ID, Value)
SELECT 1,'One-One'
UNION ALL
SELECT 1,'One-Two'
UNION ALL
SELECT 1,'One-One'
UNION ALL
SELECT 2,'Two-One'
UNION ALL
SELECT 2,'Two-Two'
UNION ALL
SELECT 2,'Two-One'
SELECT T1.ID, T2.Value FROM #Temp1 T1 INNER JOIN #Temp2 T2 ON T1.ID = T2.ID
DROP TABLE #Temp1
DROP TABLE #Temp2
Run Code Online (Sandbox Code Playgroud)
电流输出:
ID Value
1 One-One
1 One-Two …Run Code Online (Sandbox Code Playgroud)