sql语句如何这样查询在查询结果中区分评论和回复,使用简单的单表自连接查询
1个回答
展开全部
创建测试表,字段名看不清,自己起的
create table test
(id int,
content varchar(2000),
releasetime datetime,
person varchar(100),
parent_id int)
insert into test values (1,'今天心情不好','2017-04-21 11:26:21','曹操',0)
insert into test values (2,'为什么呢','2017-04-21 11:33:28','司马懿',1)
insert into test values (3,'对啊,为什么呢','2017-04-21 11:34:05','曹操',1)
insert into test values (4,'其实我也不知道为啥不好','2017-04-21 11:34:43','曹操',2)
insert into test values (5,'其实我也不知道为啥不好','2017-04-21 11:34:43','曹操',3)
insert into test values (6,'我知道心情为啥不好','2017-04-21 11:35:36','诸葛亮',1)
insert into test values (7,'那你说说为啥不好','2017-04-21 11:35:49','曹操',6)
insert into test values (8,'因为你家司马懿不行了','2017-04-21 12:05:47','诸葛亮',7)
insert into test values (9,'管我啥事','2017-04-21 12:06:18','司马懿',8)
insert into test values (10,'既生亮何生瑜','2017-04-21 13:38:21','周瑜',0)
insert into test values (11,'经典说得好,周先生','2017-04-21 13:38:43','诸葛亮',10)
insert into test values (12,'厉害了我的哥','2017-04-21 13:39:02','曹操',11)
insert into test values (14,'亮啊,你别生周先生的气','2017-04-21 13:40:46','司马懿',10)
insert into test values (15,'没看懂','2017-04-21 13:41:12','粟裕',10)
insert into test values (16,'别说话,小草','2017-04-21 13:41:59','诸葛亮',12)
sqlserver下语句:
with t as
(select t1.parent_id,t1.id,t1.person person1,t2.person person2,t1.content from test t1 left join test t2 on t1.parent_id=t2.id)
select case when t.parent_id = 0 then person1+'【发布】:'+content
when t.parent_id in (select id from t where parent_id=0) then person2+'【评论】'+person1+'说:'+content
else person2+'【回复】'+person1+'说:'+content end
from t
结果:
七鑫易维信息技术
2024-09-02 广告
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询