求一个SQL句子,看看能不能实现这个要求?

youzhj 2012-03-02 02:11:38
表tb
PrNum sType
1 ASN2
2 ASN3
3 KYN28A

以上数据只是例子,实际中可能只有其中任意一行或任意两行,也可能三行都有,但最多只有这3行。

问题:
如果只有任意一行的话(比如第2行),想得到如下结果
PrNum sType
0 ASN2
2 ASN3
0 KYN28A
如果只有任意两行的话(比如第1行和第3行),想得到如下结果
PrNum sType
1 ASN2
0 ASN3
3 KYN28A


实际中,事先是不知道到底有哪几行的,反正就是要得到3种类型(sType)对应的数量,没有的就直接置为0.
...全文
153 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzhj 2012-03-02
  • 打赏
  • 举报
回复
实在不好意思,我的表其实也是通过一个复杂的SQL句子查询出来的结果集,所以觉得麻烦。[Quote=引用 11 楼 hermanyoung 的回复:]
@tb是测试的表,你数据库中应该有这张表,上面主要是测试用的,代码就下面这点:
select * from
(select 0 as prnum,'ASN2' as stype union all
select 0 as prnum,'ASN3' as stype union all
select 0 as prnum,'KYN28A' as stype) as temp
whe……
[/Quote]
无名小猿 2012-03-02
  • 打赏
  • 举报
回复
@tb是测试的表,你数据库中应该有这张表,上面主要是测试用的,代码就下面这点:
select * from
(select 0 as prnum,'ASN2' as stype union all
select 0 as prnum,'ASN3' as stype union all
select 0 as prnum,'KYN28A' as stype) as temp
where stype not in(select stype from @tb) union all select * from @tb order by stype
youzhj 2012-03-02
  • 打赏
  • 举报
回复
还是一样的方法,有点复杂。
无名小猿 2012-03-02
  • 打赏
  • 举报
回复
可以不需要,这样写,
declare @tb table(prnum int,stype varchar(10))
insert into @tb
select 1,'ASN2' union all
select 2,'ASN3' union all
select 3,'KYN28A'

select * from
(select 0 as prnum,'ASN2' as stype union all
select 0 as prnum,'ASN3' as stype union all
select 0 as prnum,'KYN28A' as stype) as temp
where stype not in(select stype from @tb) union all select * from @tb order by stype
youzhj 2012-03-02
  • 打赏
  • 举报
回复
是这个意思,但是一定要借助变量表么?还有没有别的办法啊。[Quote=引用 6 楼 hermanyoung 的回复:]
declare @tb table(prnum int,stype varchar(10))
insert into @tb
select 1,'ASN2' union all
--select 2,'ASN3' union all
select 3,'KYN28A'

declare @temp table(prnum int,stype varchar(10))
insert ……
[/Quote]
无名小猿 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hermanyoung 的回复:]
declare @tb table(prnum int,stype varchar(10))
insert into @tb
select 1,'ASN2' union all
--select 2,'ASN3' union all
select 3,'KYN28A'

declare @temp table(prnum int,stype varchar(10))
insert ……
[/Quote]楼主可否能满足你的条件
无名小猿 2012-03-02
  • 打赏
  • 举报
回复
declare @tb table(prnum int,stype varchar(10))
insert into @tb
select 1,'ASN2' union all
--select 2,'ASN3' union all
select 3,'KYN28A'

declare @temp table(prnum int,stype varchar(10))
insert into @temp
select 0,'ASN2' union all
select 0,'ASN3' union all
select 0,'KYN28A'

select * from @temp where stype not in(select stype from @tb) union all select * from @tb order by stype

结果
1 ASN2
0 ASN3
3 KYN28A



youzhj 2012-03-02
  • 打赏
  • 举报
回复
没人理解我的意思么?
youzhj 2012-03-02
  • 打赏
  • 举报
回复
不是您这样的,我的意思:表里面两个字段,一个是类型sType,另一个是数量PrNum,其中类型只有3种(ASN2,ASN3,KYN28A),但是实际山我并不知道表里现在有几行数据,最好的情况是3行都有,即3种类型对应的数量都有,那么我和字节select出来就可以,但是它可能只有一行或者两行,那么我就要把表里实际有的select出来,同时还要加上没有的类型对应的数量,这样来凑够3行结果。[Quote=引用 1 楼 lhqdyy9 的回复:]
select isnull(B.PrNum,0) PrNum,A.sType
from
(
select
1 PrNum,'ASN2' sType
union
select
2,'ASN2'
union
select
3,'KYN28A'
) A left join
tb B on B.sType = A.sType
[/Quote]
youzhj 2012-03-02
  • 打赏
  • 举报
回复
不是,第一张表里的最多有3行记录,但是不知道到底几行数据。[Quote=引用 2 楼 travylee 的回复:]
楼主第一张表里的三行数据是存在的吗?也就是表tb固定,数据也都存在,然后另一个表里存在表tb里的一行或者任意两行??是这个意思么
[/Quote]
  • 打赏
  • 举报
回复
楼主第一张表里的三行数据是存在的吗?也就是表tb固定,数据也都存在,然后另一个表里存在表tb里的一行或者任意两行??是这个意思么
老猫五号 2012-03-02
  • 打赏
  • 举报
回复

select isnull(B.PrNum,0) PrNum,A.sType
from
(
select
1 PrNum,'ASN2' sType
union
select
2,'ASN2'
union
select
3,'KYN28A'
) A left join
tb B on B.sType = A.sType
内容概要:本文研究并实现了一种基于GPT微调技术的法律文书智能生成系统,旨在提升法律文书生成的效率、准确性和规范性。系统采用分层架构设计,涵盖数据层、模型层、应用层和服务层,利用LoRA等参数高效微调技术对Qwen2.5-7B等大模型进行法律领域适配,结合法律知识图谱增强专业理解能力。通过构建高质量法律语料库,实施有监督微调,并集成模板引擎与校验机制,系统可自动生成合同、诉讼文书、法律意见书和裁判文书等多类文档。实验结果显示,法条引用准确率达98%,平均响应时间2.3秒,支持10并发用户,具备良好的实用性与性能表现。; 适合人群:具备一定自然语言处理和深度学习基础,从事法律科技、人工智能应用研发或软件工程工作的技术人员,以及关注AI在垂直领域落地的研究人员和开发者。; 使用场景及目标:①辅助律师和法务人员快速生成标准化法律文书,减少重复劳动;②为法律科技公司提供可复用的技术方案,推动智能合同、智能诉状等产品开发;③探索大模型在专业领域的微调策略与系统集成方法,提升AI在复杂逻辑任务中的表现; 阅读建议:此资源以实际系统构建为主线,融合了模型微调、知识图谱、系统架构与工程部署等多方面内容,建议读者结合代码实现与实验数据分析,深入理解LoRA配置、提示词工程及性能优化策略,并可在本地环境中复现实验以加深掌握。

34,873

社区成员

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

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