相关疑难解决方法(0)

如何将多行中的文本连接成SQL Server中的单个文本字符串?

考虑一个包含三个行的名称的数据库表:

Peter
Paul
Mary
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将其转换为单个字符串Peter, Paul, Mary

sql sql-server csv string-concatenation group-concat

1813
推荐指数
33
解决办法
222万
查看次数

如何在sql server中使用group_concat进行查询

我知道在sql server中我们不能使用Group_concat函数但是这里有一个问题,我需要Group_Concat我的查询.我谷歌它发现了一些逻辑,但无法纠正它.我的SQL查询是

select  m.maskid,m.maskname,m.schoolid,s.schoolname,
md.maskdetail
from tblmask m join school s on s.id = m.schoolid 
join maskdetails md on m.maskid = md.maskid
order by m.maskname ;
Run Code Online (Sandbox Code Playgroud)

它给我的结果如

在此输入图像描述

只看前三行在那个maskid,maskname,schoolid,schoolname是相同的但是maskdetail是不同的,所以想要一行,其中最后一列可以包含所有maskdetails,如maskid等等.

我希望我的输出像

在此输入图像描述

等等.请在查询时帮助我.

提前致谢.

sql-server string-aggregation sql-server-group-concat

104
推荐指数
4
解决办法
18万
查看次数

多行到一个以逗号分隔的值

我想在SQL Server中创建一个表值函数,我想以逗号分隔值返回数据.

例如表格: tbl

ID | Value
---+-------
 1 | 100
 1 | 200
 1 | 300     
 1 | 400 
Run Code Online (Sandbox Code Playgroud)

现在,当我使用该函数执行查询时 Func1(value)

SELECT Func1(Value) 
FROM tbl 
WHERE ID = 1
Run Code Online (Sandbox Code Playgroud)

我想要的输出是: 100,200,300,400

sql sql-server sql-server-group-concat

83
推荐指数
1
解决办法
29万
查看次数

将列值连接到逗号分隔列表中

什么是格式化输出的TSQL语法,以便列值显示为字符串,用逗号分隔.

例如,我的表CARS具有以下内容:

CarID    CarName  
----------------
    1    Porsche  
    2    Mercedes  
    3    Ferrari  
Run Code Online (Sandbox Code Playgroud)

我如何获得汽车名称: Porsche, Mercedes, Ferrari

t-sql sql-server

58
推荐指数
8
解决办法
12万
查看次数

TSQL上String.Join的等价物是什么?

可能重复:
是否有办法创建SQL Server函数以将子查询中的多个行"连接"到单个分隔字段中?

大家好!

我正在寻找一种简单的方法来连接'n'值.就像是:

SELECT MyConcat(',', T.TextColumn)
FROM SomeTable AS T
WHERE T.SomeOtherColumn = SomeCondition
Run Code Online (Sandbox Code Playgroud)

所以,如果我有一个像这样的表:

SomeTable:
Id  | TextColumn | SomeOtherColumn
----+------------+----------------
1   | Qwerty     | Y
2   | qwerty     | N
3   | azerty     | N
4   | Azerty     | Y
Run Code Online (Sandbox Code Playgroud)

它会导致类似于:

SQL:
SELECT MyConcat(';', T.TextColumn)
FROM SomeTable AS T
WHERE T.SomeOtherColumn = 'Y'

RESULT:
'Qwerty;Azerty'
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

37
推荐指数
2
解决办法
4万
查看次数

如何将子查询中的字符串连接到mysql中的单个行?

我有三张桌子:

table "package"
-----------------------------------------------------
package_id      int(10)        primary key, auto-increment
package_name    varchar(255)
price           decimal(10,2)

table "zones"
------------------------------------------------------
zone_id         varchar(32)    primary key (ex of data: A1, Z2, E3, etc)

table "package_zones"
------------------------------------------------------
package_id     int(10)
zone_id        varchar(32)
Run Code Online (Sandbox Code Playgroud)

我要做的是返回包表中的所有信息PLUS该包的区域列表.我希望区域列表按字母顺序排序并以逗号分隔.

所以我正在寻找的输出是这样的......

+------------+---------------+--------+----------------+
| package_id | package_name  | price  | zone_list      |
+------------+---------------+--------+----------------+
| 1          | Red Package   | 50.00  | Z1,Z2,Z3       |
| 2          | Blue Package  | 75.00  | A2,D4,Z1,Z2    |
| 3          | Green Package | 100.00 | B4,D1,D2,X1,Z1 |
+------------+---------------+--------+----------------+
Run Code Online (Sandbox Code Playgroud)

我知道我可以在PHP中使用表示层来完成所需的结果.问题是,我希望能够对zone_list ASC或DESC进行排序,甚至使用"WHERE …

mysql concat list subquery group-concat

34
推荐指数
1
解决办法
5万
查看次数

SQL Server:搜索所有表以查找特定GUID

我想要清理一些数据,我需要在SQL Server°中找到一些特定的guids(即uniqueidentifiers).

我想出了一个存储过程,它从当前数据库中每个表的每个uniqueidentifier列执行SELECT,并在找到guid时返回结果集.

它使用INFORMATION_SCHEMA视图查找所有基表中的所有uniqueidentifier列(与视图相对).对于每个列,它会发出一个select,返回表的名称和找到它的列.

CREATE PROCEDURE dbo.FindGUID @searchValue uniqueidentifier AS
/*
    Search all tables in the database for a guid

      6/9/2009: Removed the IF EXISTS to double hit the database
*/

--DECLARE @searchValue uniqueidentifier
--SET @searchValue = '{2A6814B9-8261-452D-A144-13264433864E}'

DECLARE abc CURSOR FOR
    SELECT 
        c.TABLE_NAME, c.COLUMN_NAME
    FROM INFORMATION_SCHEMA.Columns c
        INNER JOIN INFORMATION_SCHEMA.Tables t
        ON c.TABLE_NAME = t.TABLE_NAME
        AND t.TABLE_TYPE = 'BASE TABLE'
    WHERE DATA_TYPE = 'uniqueidentifier'

DECLARE @tableName varchar(200)
DECLARE @columnName varchar(200)
DECLARE …
Run Code Online (Sandbox Code Playgroud)

sql-server search guid uniqueidentifier

25
推荐指数
3
解决办法
3万
查看次数

SQL Server中的Concat组

如果我有这样的表格:

+------------+
| Id | Value |
+------------+
| 1  | 'A'   |
|------------|
| 1  | 'B'   |
|------------|
| 2  | 'C'   |
+------------+
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得这样的结果集:

+------------+
| Id | Value |
+------------+
| 1  | 'AB'  |
|------------|
| 2  | 'C'   |
+------------+
Run Code Online (Sandbox Code Playgroud)

我知道使用GROUP_CONCAT在MySQL中很容易做到,但我需要能够在MSSQL 2005中做到这一点

谢谢

(重复如何使用GROUP BY来连接SQL Server中的字符串?)

sql sql-server group-by string-concatenation

10
推荐指数
2
解决办法
2万
查看次数

UPDATE SET中的子查询(sql server 2005)

我有一个关于在Update语句中使用子查询的问题.我的例子:

UPDATE TRIPS
   SET locations = city + ', ' FROM (select Distinct city 
                                       from poi 
                                      where poi.trip_guid = trips.guid) 
Run Code Online (Sandbox Code Playgroud)

是否可以在子查询中引用主表值(trips.guid)?

当我尝试使用时,trips.guid我收到错误:

"多部分标识符"trips.guid"无法绑定."

"从poi中选择独特的城市"这一条款更多地归功于一个城市.

sql-server-2005 subquery

10
推荐指数
2
解决办法
4万
查看次数

在SQL 2005中的PIVOT

我需要转动一列(Numbers列).示例需要此数据:

a 1
a 2
b 3
b 4
c 5
d 6
d 7
d 8
d 9
e 10
e 11
e 12
e 13
e 14
Run Code Online (Sandbox Code Playgroud)

看起来像这样

a 1 2
b 3 4
c 5
d 6 7 8 9
e 10 11 12 13 14
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激...

sql-server pivot sql-server-2005

8
推荐指数
2
解决办法
1万
查看次数