双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

SQL中把符合条件的记录里的值输出到一行里

谢迅 谢迅 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
CLEAR PROC [dbo].[SP_FHTZD_YSSL2] @DJLSH INT AS

--声明变量:@khhz默认为空值,@1默认为1,@2取FHTZDcsB表体djbth最大值(或者取表头里djbtzdh进行赋值)
declare @khhz varchar(255)='',@1 INT=1 ,@2 INT 

--SELECT @2=MAX(DJBTH) FROM FHTZDcsB WHERE DJLSH=@DJLSH
select @2=DjBtZdh from FHTZDCSH WHERE DJLSH=@DJLSH

WHILE (@1<=@2) 
	BEGIN 
		IF  EXISTS(SELECT 1 FROM FHTZDcsB  WHERE DJLSH=@DJLSH  AND DJBTH=@1)
		BEGIN

			SET @khhz=''
			Select @khhz=@khhz+IsNull(S.ZYSPB,'')+';'      
			From FHTZDcsS S, FHTZDcsB B     
			where S.djlsh=@DJLSH 
			AND S.DJLSH=B.DjLsh    
			AND S.DJBTH=B.DJBTH
			AND S.DJBTH=@1
			--Group By S.DjBth ,ZYSPB   
			SELECT @khhz=SUBSTRING(@khhz,1,LEN(@khhz)- 1)		--对@khhz进行处理(去除最后一个;字符)。
			UPDATE FHTZDcsB SET FYSSLMX=@khhz WHERE DJLSH=@DJLSH AND DJBTH=@1
		END
	SET @1=@1+1
	END 

 

 

declare @text varchar(255)='',
		 @id varchar(255)=''

--对于满足zzzt = '在职'且BMMC = 'N'条件的每一行记录,它将YGXM(如果不为空)的值连接到@text变量后面并加上;,将YGH(如果不为空)的值连接到@id变量后面并加上,
 select @text =@text+isnull(YGXM,'')+';',
		@id	= @id+isnull(YGH,'')+','
 from UserH where zzzt='在职' and BMMC='N'
 --Group By YGXM

 print @text
 print	@id

 

...全文

相关推荐

kettle使用手册

详细介绍了Kettle组件的使用方法和注意事项,支持多种数据库.

王倔驴

SQL查询数据库中符合条件的记录的总数

1. select count(*) from table; //统计元组个数 2. select count(列名) from table; //统计一列中值的个数 3. select count(*) from table where 字段 = “”; //符合该条件的记录总数 4. sql_count = “select count(*) from article a where 1=1 “; //这条语句中a就代表article 这张表,后面可以写a.字段来代表该表的字段,where 1 = 1,就相当于提供了一个where。因为1=1永远成立。 就可以根据是否需要加条件,在

weixin_38528517

SQLServer中如何将一个字段的多个记录值合在一行显示

SQLServer中如何将一个字段的多个记录值合在一行显示

zhyl230

SQL 合并多行记录的相同字段值

有时候会遇到这种情况,数据库查询返回多行记录,且每行记录由另外符合条件的多条记录内容合并,遇到这种情况,我们可以选择下面两种方式

weixin_38654220

SQL获取刚插入的记录的自动增长列ID的值

假设表结构如下: CREATE TABLE TestTable ( id int identity, CreatedDate datetime )   SQL2005获得新增行的自动增长列的语句如下:   insert into TestTable (CreatedDate)  output  inserted.id  values (getdate())   SQL2000获得新增行的自动增长列的语句如下:   insert into TestTable (CreatedDate)  values (getdate())   select @@IDENTITY   在C

weixin_38553478
评论 1
收藏 已收藏
分享
返回顶部
谢迅
MS-SQL Server 34,876 成员 254,635 内容