sql难题

newqq 2011-01-27 11:41:47
A表里面的部门代码是这样的 J01','X01','X03
B表里面的是这样的:
部门代码 部门名称
J01 部门1
X01 部门2
X03 部门3
现在要实现的是:
1.A表和B表通过部门代码关联
2.如何在J01','X01','X03中删除和增加一个部门代码,如删除后变成J01','X01,增加后变成J01','X01','X03','X04
请大家帮忙,谢谢!



...全文
288 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmzxsgs 2011-01-31
  • 打赏
  • 举报
回复
用left join 条件用部门代码 is null
幸运的意外 2011-01-28
  • 打赏
  • 举报
回复
直接删减还不行吗?
hugang709979940 2011-01-28
  • 打赏
  • 举报
回复
update a set aaaa=replace(aaaa,'X03','')
update a set aaaa=aaaa+',X04'''
这样即可
yyfhz 2011-01-28
  • 打赏
  • 举报
回复
删除好像有漏洞(想改J01有可能连J012也一块儿被改了),改一下看看:

Update A
Set 部门代码=
case 部门代码 When Null then Null
Else SubString(Replace(','''+部门代码+'''',',','''+你的部门代码+'''',''),2,
Len(Replace(','''+部门代码+'''',',','''+你的部门代码+'''',''))-2)
End
Where 你的记录条件
yyfhz 2011-01-28
  • 打赏
  • 举报
回复
试试看
增加:(在现有记录上改)

Update A
Set 部门代码=
case 部门代码
when null then 你的部门代码
else 部门代码+''','+你的部门代码
end
Where 你的记录条件


删除:(在现有记录上改)

Update A
Set 部门代码=
case
When 部门代码 = 你的部门代码 Then null
When 部门代码 like 你的部门代码+''',''%' then Replace(部门代码,你的部门代码+''',''','')
When 部门代码 like '%'','''+你的部门代码 then Replace(部门代码,''','''+你的部门代码,'')
When 部门代码 like '%'','''+你的部门代码+''',''%' then Replace(部门代码,','''+你的部门代码+'''','')
Else 部门代码
End
Where 你的记录条件


关联:

Select * From A
inner Join B on
','''+A.部门代码+''',' like '%,'''+B.部门代码+''',%'

newqq 2011-01-27
  • 打赏
  • 举报
回复
呵呵,图片很性感
王向飞 2011-01-27
  • 打赏
  • 举报
回复
UPDATE a SET a.cdepcode=stuff(cdepcode,1,1,'')
where LEFT(cdepcode,1)=''''

你可以加条件啊,没说让你全更新。。。
newqq 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wxf163 的回复:]
SQL code
UPDATE a SET a.cdepcode=replace(cdepcode,',''X03','')
UPDATE a SET a.cdepcode=stuff(cdepcode,1,1,'')
[/Quote]
执行之后变成:01','X01'
王向飞 2011-01-27
  • 打赏
  • 举报
回复
UPDATE a SET a.cdepcode=replace(cdepcode,',''X03','')
UPDATE a SET a.cdepcode=stuff(cdepcode,1,1,'')
newqq 2011-01-27
  • 打赏
  • 举报
回复
都吃饭去了吧
newqq 2011-01-27
  • 打赏
  • 举报
回复
删除的时候我不能判断是第一个还是中间的,所以有没有更好的办法
newqq 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jiao3630 的回复:]
SQL code


UPDATE a SET a.cdepcode=replace(cdepcode,',''X03','')
[/Quote]
谢谢,执行完之后是这样
J01','X01'
多了个',我想要J01','X01
另外,如果我要删除的是第一个该怎么写
jiao3630 2011-01-27
  • 打赏
  • 举报
回复


UPDATE a SET a.cdepcode=replace(cdepcode,',''X03','')
newqq 2011-01-27
  • 打赏
  • 举报
回复
增加的代码是这样:
UPDATE a SET a.cdepcode=cdepcode+''',''X04'
现在就是不知道如何关联和删除
GoAwayZ 2011-01-27
  • 打赏
  • 举报
回复
给点数据吧。
jiao3630 2011-01-27
  • 打赏
  • 举报
回复
么看懂
newqq 2011-01-27
  • 打赏
  • 举报
回复
补充2:
删除后变成J01','X01 增加后变成J01','X01','X03','X04
newqq 2011-01-27
  • 打赏
  • 举报
回复
补充下,关联的时候a.部门编码=b.部门编码这样是关联不到的
newqq 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wwwwgou 的回复:]
SQL code
CREATE TABLE A
(
部门代码 VARCHAR(500)
)
INSERT A
SELECT 'J01'',''X01'',''X03'

CREATE TABLE B
(
部门代码 VARCHAR(100),
部门名称 NVARCHAR(100)
)
INSERT B
SELECT 'J01', N'部门1' UN……
[/Quote]

如果删除的是第一个,就会出问题
newqq 2011-01-27
  • 打赏
  • 举报
回复
首先要根据A表列出部门名称,所以,要求两个表关联
加载更多回复(5)
内容概要:本文系统研究了在强弱电网适配场景下,构网型(GFM)与跟网型(GFL)逆变器并联系统的协同控制逻辑及其暂态动态行为,重点依托Simulink仿真平台构建混合并网系统模型,深入分析两类逆变器在不同电网强度条件下的交互特性、频率响应机制、稳定性表现及抗扰能力。研究涵盖分层控制架构设计、异构控制策略对比、频率扰动响应规律以及多工况暂态性能评估,探讨了GFM与GFL逆变器在功率支撑、电压频率调节和系统稳定性方面的互补性与协同机制,旨在提升高比例新能源接入背景下并网系统的适应性、鲁棒性与动态性能。; 适合人群:具备电力电子、新能源并网、自动控制或电力系统仿真等相关专业知识背景,从事新型电力系统控制、微电网运行、逆变器控制策略研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解构网型与跟网型逆变器在强弱电网中的协同工作机理与动态交互特性;②掌握异构逆变器并联系统的建模方法、协同控制策略设计与暂态仿真分析流程;③为高渗透率新能源系统的稳定性分析、控制优化及工程应用提供理论依据和技术参考。; 阅读建议:建议结合Simulink仿真实例进行动手实践,重点关注控制策略的实现细节、参数整定方法及多工况仿真结果的动态响应分析,同时可参考文中提及的相关博士论文复现案例以深化对理论机制的理解。

22,296

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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