简单SQL语句 秒结贴

昵称90天可改一次 2014-07-22 01:31:13

create table tableA (id int,name varchar(10))
insert tableA
select 1,'AAA' union all
select 2,'BBB' union all
select 3,'CCC'
create table tableB (name varchar(10),value varchar(10))
insert tableB
select 'AAA','123123' union all
select 'AAA','12312' union all
select 'CCC','1231' union all
select 'CCC','123' union all
select 'CCC','12' union all
select 'SSS','xxx'

需要结果:
1 AAA 123123
12312
2 BBB NULL
3 CCC 1231
123
12
...全文
129 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2014-07-22
  • 打赏
  • 举报
回复
--create table tableA (id int,name varchar(10))
--insert tableA
--select 1,'AAA' union all
--select 2,'BBB' union all
--select 3,'CCC' 
--create table tableB (name varchar(10),value varchar(10))
--insert tableB
--select 'AAA','123123' union all
--select 'AAA','12312' union all
--select 'CCC','1231' union all
--select 'CCC','123' union all
--select 'CCC','12' union all
--select 'SSS','xxx' 
-- GO
SELECT CASE WHEN id2<>1 THEN '' ELSE cast(id AS varchar) END id,CASE WHEN id2<>1 THEN '' ELSE NAME END NAME,value
FROM (
 SELECT a.id,a.NAME,b.value,ROW_NUMBER()OVER(PARTITION BY a.id,a.NAME ORDER BY b.value DESC)id2
 FROM tablea a LEFT JOIN tableB b ON a.NAME=b.name)a

 /*
id                             NAME       value
------------------------------ ---------- ----------
1                              AAA        123123
                                          12312
2                              BBB        NULL
3                              CCC        1231
                                          123
                                          12

 */

34,837

社区成员

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

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