求一简单的查询语句!

yuweiwei 2009-08-10 04:28:16
表tb
ID A B
1 2009 AA
2 2009 BB
3 2008 CC
4 2007 XX
5 2009 HH
6 2008 DD
7 2007 SS
8 2006 GG

我想要这种结果:

2009 AA、BB、HH
2008 CC、DD
2007 XX、SS
2006 GG
...全文
92 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序小海 2009-08-10
  • 打赏
  • 举报
回复
学习中!
gw6328 2009-08-10
  • 打赏
  • 举报
回复
学习
lihan6415151528 2009-08-10
  • 打赏
  • 举报
回复

create table tb (a varchar(10),b varchar(10))
insert tb
select '2009', 'AA' union all
select '2009', 'BB' union all
select '2008', 'CC' union all
select '2007', 'XX' union all
select '2009', 'HH' union all
select '2008', 'DD' union all
select '2007', 'SS' union all
select '2006', 'GG'
go
select * from tb


CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+','+CAST(b as varchar)
FROM tb
WHERE a=@col1
RETURN(STUFF(@re,1,1,''))
END
GO

select a,dbo.f_str(a)[b] from tb group by a

a b
---------- -------------------
2006 GG
2007 XX,SS
2008 CC,DD
2009 AA,BB,HH

(所影响的行数为 4 行)

soft_wsx 2009-08-10
  • 打赏
  • 举报
回复
把函数中相应的字段改了就可以了,相当简单
soft_wsx 2009-08-10
  • 打赏
  • 举报
回复
select a,dbo.f_str(a) from tb group by a
、这样就可以了
SQL77 2009-08-10
  • 打赏
  • 举报
回复
create table mail(id int  identity,email varchar(20),mjstart int,mjstop int,keyword char(10))
insert into mail select
'1@1.com',20,50 ,'上海'union all select
'2@2.com',50,100,'北京'


create table house (id int identity,htype char(10),mj int,money int,title char(10))
insert into house select
'出租',30,500,'上海' union all select
'出租',70,500,'北京' union all select
'出租',70,500,'北京' union all select
'出租',30,500,'上海' union all select
'出租',70,500,'上海'


select px=(case when title='北京' then 1 else 2 end),h.*,email into ntabl from mail join house h on mail.keyword=h.title

CREATE FUNCTION dbo.f_str(@id int)
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r = '<'
SELECT @r = @r + ''+rtrim(title)+''
FROM ntabl
WHERE px=@id
RETURN STUFF(@r, 1, 1, '')
END
GO

select (select top 1 email from ntabl n where n.px=px) as 邮箱, value = dbo.f_str(px) from ntabl group by px

/*
邮箱 value
-------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1@1.com 北京北京
1@1.com 上海上海上海

(所影响的行数为 2 行)

*/


帖代码了,累
SQL77 2009-08-10
  • 打赏
  • 举报
回复
字符合并函数
soft_wsx 2009-08-10
  • 打赏
  • 举报
回复
CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+','+CAST(col2 as varchar)
FROM tb
WHERE col1=@col1
RETURN(STUFF(@re,1,1,''))
END
GO
guguda2008 2009-08-10
  • 打赏
  • 举报
回复
求一简单的查询语句
这个名字应该是论坛出现最多的帖名了吧
水族杰纶 2009-08-10
  • 打赏
  • 举报
回复
精華帖~~
昵称被占用了 2009-08-10
  • 打赏
  • 举报
回复
合并,论坛很多,自己搜搜
guguda2008 2009-08-10
  • 打赏
  • 举报
回复
我想写但我知道我不如他们快,所以我就不写了
xuejie09242 2009-08-10
  • 打赏
  • 举报
回复
字段连接,看以前的帽子吧,有很多呢。也不怕把专家累着,哈哈。
发贴前先看看有没有相同或类似的帽子。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧