SQL SERVER2000将多行查询结果拼接到一行数据

处理前的查询结果如上图:

通过借助SQL变量的定义

DECLARE @Scope varchar(1000)
DECLARE @Num int
SET @Scope=‘‘
SET   @Num = 1
SELECT @Scope=@Scope+convert(varchar(8),@Num)+‘、‘+DescScope+ DescOper+‘;‘, @Num = @Num+1 From fuel_contractQualityNew Where ContractID=‘012009000100‘
SELECT ContractID,@Scope FROM fuel_contractQualityNew Where ContractID=‘012009000100‘ GROUP BY ContractID

实现了一下效果:

 //创建拼接描述SQL的函数
CREATE FUNCTION dbo.f_str(@contractID varchar(50))
RETURNS VARCHAR(8000)
AS
BEGIN
        DECLARE @Scope varchar(1000)
        DECLARE @Num int
        SET @Scope=‘‘
        SET   @Num = 1
        SELECT @Scope=@Scope+convert(varchar(8),@Num)+‘‘+DescScope+ DescOper+‘;‘, @Num = @Num+1 From fuel_contractQualityNew where ContractID= @contractID
        RETURN @Scope
END
GO
时间: 2024-10-08 08:33:05

SQL SERVER2000将多行查询结果拼接到一行数据的相关文章

SQL基础知识--多行查询结果拼接

今天在工作中遇到如下这个问题,需要将如下的查询结果,拼接成一行! 1 select PERSON_NAME from S_PROJECT_MEMBER where PROJECT_ID = '2c9081473e2f8bda013e3028e4700049'; 先直接上代码吧!-------------------------有问题的,麻烦指出-------------------------------------------------------- select CAST(stuff((

通过sql的stuff 把一列几行的记录拼接在一行一个字段

---通过sql的stuff 把一列几行的记录拼接在一行一个字段 select FID,a.FCustomerID as 工地ID , 应验收节点 = (stuff((select ',' + isnull(t2.FName,'') from MD_ProjectPlanEntry t1 inner join MD_BaseData6_L t2 on t1.FGCJDXM=t2.FID where t1.FID=a.FID and convert(varchar(6),t1.FPEDATE,11

SQL Server中将多行数据拼接为一行数据(一个字符串

方法一: 使用T-SQLDECLARE @Users NVARCHAR(MAX)SET @Users = ” SELECT @Users = @Users + ‘,’ + UserName FROM dbo.[User]WHERE RoleID = 1 SELECT @Users 方法二:使用for xml path(”) 和stuff–使用 自连接.for xml path(”)和stuff合并显示多行数据到一行中 –注–1.计算列可以不用包含在聚合函数中而直接显示,如下面语句的val.–2.

SQL Server 从数据库中查询去年的今天的数据的sql语句

因为最近的项目的一个小功能需要实现当前数据和历史的今天做一个对比.在网上也查了很久,很多都是实现一个月内的,一年内的所有数据,昨晚突然就找到了下面的实现方法,在SQL Server2008中试了一下,正是我想要的结果.故写了一个随笔,如果以后还需要可以方便查找,另外也希望可以帮到需要的人. Select * From History where savetime=(select dateAdd(yy,-1,getdate())) 其中,History是数据库的名字,savetime是表示时间的字

SQL Server中如何定位Row Lock锁定哪一行数据

在SQL Server中有时候会使用提示(Hint)强制SQL使用行锁(Row Lock),前两天有个同事咨询了一个问题,如何定位Row Lock具体锁定了哪一行.其实这个问题只适合研究一下,实际意义并不大,因为找到.定位被锁定的行的代价开销较大,而意义却不怎么大,而且使用场景也很少.那么下面我们来探讨.研究一下这个问题吧: 在会话窗口(会话ID=65)下执行下面SQL语句,模拟SQL Server使用行锁锁定某一行记录: USE AdventureWorks2012; GO   SELECT 

[原创]SQL 把表中某一个列按照逗号拼接成一行

在我们开发的过程中,难免遇到一种场景,把某个表中的的某个列的值拼接成用逗号隔开的一行数据 如图:我们把UserId列拼接成一行数据 -------> 为此我写了一个存储过程来解决此类问题. -- Author:        LHM -- Create date: 2015-01-15 -- Description:    把表中某一个列按照逗号拼接成一行 --示例: EXEC [Sp_TableToString] 'cast([UserId] as varchar)','[X_RoleUser

关于SQL Server将一列的多行内容拼接成一行的问题讨论(转载)

说明:本文仅供分享,版权属于原作者. 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA           

关于SQL Server将一列的多行内容拼接成一行的问题讨论

昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA             企业1,企业2,企业3 BBB  

SQL Server将一列的多行内容拼接成一行的实现方法

SQL Server将一列的多行内容拼接成一行的实现方法 投稿:mdxy-dxy 这篇文章主要介绍了SQL Server将一列的多行内容拼接成一行的实现方法,需要的朋友可以参考下 下面大家先看下示例代码: 示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 BBB 企业4 BBB 企业5 我想把这个表变成如下格式: 类别 名称