我已经看到了人们将单个列卷入逗号分隔列表的多个示例,但我还需要更多.
以下是我需要的数据和结果的示例.
DECLARE @SalesPerson table (SalesPersonID int, SalesPersonName varchar(10))
DECLARE @Region table (RegionID int, RegionName varchar(15))
DECLARE @SalesPersonRegion table (SalesPersonID int, RegionID int)
INSERT INTO @SalesPerson (SalesPersonID, SalesPersonName) VALUES (1,'Jeff')
INSERT INTO @SalesPerson (SalesPersonID, SalesPersonName) VALUES (2,'Pat')
INSERT INTO @SalesPerson (SalesPersonID, SalesPersonName) VALUES (3,'Joe')
INSERT INTO @Region (RegionID, RegionName) VALUES (1,'North')
INSERT INTO @Region (RegionID, RegionName) VALUES (2,'South')
INSERT INTO @Region (RegionID, RegionName) VALUES (3,'East')
INSERT INTO @Region (RegionID, RegionName) VALUES (4,'West')
INSERT INTO @SalesPersonRegion (SalesPersonID,RegionID) VALUES (1,1)
INSERT INTO …Run Code Online (Sandbox Code Playgroud) 好的,我有一个输入订单的系统,每个订单都可以附加任意数量的债券,工作和项目编号.该OrderDetails表包含一个orderID用于转到OrderNumbers表并获取所有附加"数字"到此订单,然后根据在numType那里找到的列,它进入三个表之一(bond,job,project)并检索实际数字为用户显示和打印.
这意味着,如果该订单附加了3个项目编号,则尝试查询订单以搜索某个项目编号可以为同一订单返回3行.
我希望能够返回我的查询结果,只有1行的订单,以及包含所有3个分隔形式的项目的列,这可能吗?
这是我当前的查询,当订单附加多个相同类型的数字时,每个订单返回多行...
SELECT
ISNULL(b.Descr,'') as Bond, ISNULL(PO.Description,'') as PO,
ISNULL(j.Descr,'') as Job, ISNULL(Proj.Descr,'') as Project,
d.OrdNbr, d.BillofLadingNbr, d.TripAndDeliveryTicketNbr
FROM
OrderDetail d
LEFT JOIN
OrderItemNumbers n ON d.OWID = n.LoadOWID
LEFT JOIN
Bond b ON n.NumberOWID = b.OWID AND n.NumType = 0
LEFT JOIN
PONumbers PO ON n.NumberOWID = PO.OWID AND n.NumType = 1
LEFT JOIN
Job j ON n.NumberOWID = j.OWID AND n.NumType = 2
LEFT JOIN
Project Proj ON …Run Code Online (Sandbox Code Playgroud) 假设我有一行数据,存储如下:
------------------------
| Col 1 | Col 2 | Col 3 |
|------------------------|
| Foo | Bar | Foobar |
Run Code Online (Sandbox Code Playgroud)
我如何将其连接成一个字符串,如下所示?
Foo-Bar-Foobar
Run Code Online (Sandbox Code Playgroud)
该表中的列标题(以及列标题的数量)是未知的,因此按列名称选择不是一个选项(?)。
请注意,我并不是试图将值列表连接到列中,而是尝试将值存储连接到一行中。我还希望避免使用数据透视表,因为我将处理大量数据并且不希望性能受到影响。
在下表中,我有一个可变数量的列,并且该数字在1000s内.我需要将按人名分组的1000列中的每一列的所有值相加.所以,smith's总数test_score_1,总数test_score_2,......总数test_score_1000.然后是Jackson's总数test_score_1,总数test_score_2,......总数test_score_1000.
我test_score_n事先并不知道' '列的数量,而且它们总是在变化.
所以给这个表:
name test_score_1 test_score_2 ... test_score_1000
smith 2 1 0
jackson 0 3 1
jackson 1 1 2
jackson 3 0 3
smith 4 5 1
Run Code Online (Sandbox Code Playgroud)
我如何制作下表?
name test_score_1 test_score_2 ... test_score_1000
smith 6 6 1
jackson 4 4 6
Run Code Online (Sandbox Code Playgroud) 我正在做搜索引擎的查询分析。用户可以在一个会话的不同时间在谷歌搜索引擎上一一搜索不同的查询。
我有多个字段的数据:session_id、log_time、query、feature_i等。我想分组session_id,然后按 的concat顺序将几行合并为一行。这样输出数据将以时间序列的方式表示用户的行为。log_time
代码:
toy_data = pd.DataFrame({'session_id':[1,2,1,2,3,3,],
'log_time':[4,5,6,1,2,3],
'query':['hi','dude','pandas','groupby','sort','agg'],
'cate_feat_0':['apple','banana']*3,
'num_feat_0':[1,2,3,4,5,6]})
print(toy_data)
Run Code Online (Sandbox Code Playgroud)
输出:
session_id log_time query cate_feat_0 num_feat_0
0 1 4 hi apple 1
1 2 5 dude banana 2
2 1 6 pandas apple 3
3 2 1 groupby banana 4
4 3 2 sort apple 5
5 3 3 agg banana 6
Run Code Online (Sandbox Code Playgroud)
我想要的是:
## note that all list are sorted by log time …Run Code Online (Sandbox Code Playgroud) 嗨我有这样的XML ...
<Questions>
<Question1>A</Question1>
<Question2>B</Question2>
<Question3>C</Question3>
</Questions>
Run Code Online (Sandbox Code Playgroud)
我想回A,B,C.我见过一些类似的问题,但那些具有相同的重复节点名称.不幸的是,在这个阶段我无法改变它.我玩过AGES的SQL Xpath语法,没有运气.我可以获得整个问题节点,但理想情况下我想要实际数据.多个返回的行也可以.
任何帮助将不胜感激.
更新 - 基里尔的答案非常接近,除了我在表中有超过1条记录并且它返回1行内的所有记录数据.如果我能实现一个完美的row/xml文件!通过从该记录输出另一个字段,例如rownum或从文件输出另一个数据,例如ProfileName ..
谢谢,
阿德里安!
我有一个名为SampleData的表,如下所示:
col1 col2
1 a
1 b
1 c
2 d
2 e
3 f
Run Code Online (Sandbox Code Playgroud)
我需要以下格式的数据:
col1 col2
1 a,b,c
2 d,e
3 f
Run Code Online (Sandbox Code Playgroud)
有没有办法使用CTE这样做?
我有一个 mysql 表
id cid c_name keywords
1 28 Stutgart BW,Mercedes,Porsche,Auto,Germany
2 34 Roma Sezar,A.S. Roma
3 28 München BMW,Oktober Fest,Auto,Germany
Run Code Online (Sandbox Code Playgroud)
我需要一个查询来显示来自 cid=28 的关键字,但我只想看到 1 次一个关键字,例如(BW、Mercedes、Porsche、Auto、Bmw、Oktober Fest、Germany)我不想列出 2 次一个关键字,如何能解决这个问题吗?
我尝试了不同但无法得到我想要的
我正在寻找一种分组方式,同时还将行连接成逗号分隔的字符串。例子:
Name Place
Steve Jones New York
Steve Jones Washington
Albert Smith Miami
Albert Smith Denver
Run Code Online (Sandbox Code Playgroud)
到 ...
Steve Jones New York, Washington
Albert Smith Miami, Denver
Run Code Online (Sandbox Code Playgroud)
不胜感激
我想编写一个SQL Server查询,它将从以下示例表中检索数据:
Table: Person
ID Name
-- ----
1 Bill
2 Bob
3 Jim
Table: Skill
ID SkillName
-- -----
1 Carpentry
2 Telepathy
3 Navigation
4 Opera
5 Karate
Table: SkillLink
ID PersonID SkillID
-- -------- -------
1 1 2
2 3 1
3 1 5
Run Code Online (Sandbox Code Playgroud)
如您所见,SkillLink表的目的是将各种(可能是多个或没有)技能与个人匹配.我想用我的查询实现的结果是:
Name Skills
---- ------
Bill Telepathy,Karate
Bob
Jim Carpentry
Run Code Online (Sandbox Code Playgroud)
因此,对于每个人,我想要一个逗号加入的列表,其中包含指向他的所有SkillNames.这可能是多项技能或根本没有技能.
这显然不是我工作的实际数据,但结构是一样的.
也请随意为这个问题建议一个更好的标题作为评论,因为简洁地说它是我的问题的一部分.