`
逆风的香1314
  • 浏览: 1416169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

字段里字符串的处理问题

阅读更多

原帖地址:

http://community.csdn.net/Expert/topic/3244/3244874.xml?temp=.5755274
表一:MenuTree?
Id??????????????????? context?????????????????
-----------? ---------------------------
1????????????????????? 商场监测系统?
3????????????????????? 综合报表分析?
4????????????????????? 销售月报表?
6????????????????????? ◇销售数据采集?
7????????????????????? ◇监测商场管理?
9????????????????????? ◇监测产品管理?
?
表二:? jslmb?
?
jsbh????? jsmc?????????????????? kgllm????????
------- ------------? -------------------------
1??????? 查询所有数据????????? '1','2','3','4','5'
2??????? 查询西北区数据??????? '1','2','4','5','9'
?
?


如何把删除表二的Kgllm(可管理栏目)字段里的表一不存在的栏目编号剔除
?
例如:
表一的IdZ字段:"2"和"5"值已不存在了。

我要把表二的kgllm字段里的"2"和"5"值剔除掉,其它值如"1"、"3"等值要保留

--------------------------------------------------------------------------------------

--测试数据
create table MenuTree(id int,context varchar(20))
insert MenuTree select 1,'商场监测系统'
union? all????? select 3,'综合报表分析'
union? all????? select 4,'销售月报表'
union? all????? select 6,'◇销售数据采集'
union? all????? select 7,'◇监测商场管理'
union? all????? select 9,'◇监测产品管理'

create table jslmb(jsbh int,jsmc varchar(20),kgllm varchar(8000))
insert jslmb select 1,'查询所有数据'? ,'''1'',''2'',''3'',''4'',''5'''
union? all?? select 2,'查询西北区数据','''1'',''2'',''4'',''5'',''9'''
go

--创建一个辅助处理数据的表(这里的8000根据你的 kgllm 的大小确定,如果你的 kgllm 长度是1000,就改为1000)
select top 8000 id=identity(int,1,1) into 序数表
from syscolumns a,syscolumns b
alter table 序数表 add constraint pk_id_序数表 primary key(id)
go

--更新处理
select a.jsbh,kgllm=substring(a.kgllm,b.id,charindex(',',a.kgllm+',',b.id)-b.id)
?,re=cast('' as varchar(8000))
into #t
from jslmb a,序数表 b,MenuTree c
where b.id<=len(a.kgllm)
?and substring(','+a.kgllm,b.id,1)=','
?and stuff(substring(a.kgllm,b.id,charindex(',',a.kgllm+',',b.id)-b.id-1),1,1,'')
??=c.id
order by a.jsbh

declare @jsbh int,@re varchar(8000)
update #t set @re=case @jsbh when jsbh then @re+','+kgllm else kgllm end
?,re=@re,@jsbh=jsbh

update a set kgllm=b.re
from jslmb a,(
?select jsbh,re=max(re) from #t group by jsbh
)b where a.jsbh=b.jsbh

drop table #t

--显示更新结果
select * from jslmb
go

--删除测试数据
drop table MenuTree,jslmb
drop table 序数表

/*--测试结果

jsbh??????? jsmc???????????????? kgllm??????????
----------- -------------------- ----------------
1?????????? 查询所有数据?????????? '1','3','4'
2?????????? 查询西北区数据???????? '1','4','9'

(所影响的行数为 2 行)
--*/

分享到:
评论

相关推荐

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...

    java字符串处理输入一个字符串和一个字符后,原字符串中所有该字符将被删除并显示出结果

    在Java编程语言中,字符串处理是一项基础且重要的任务。在这个特定的场景中,我们需要创建一个Applet程序,它能够接收用户输入的字符串和一个字符,然后从原始字符串中删除所有出现的指定字符,并显示处理后的结果。...

    vfp统计字符串中某字符重复出现次数

    在Visual FoxPro(VFP)中,统计字符串中特定字符的重复出现次数是一项常见的文本处理任务,这在数据处理和分析中非常有用。这个任务可以通过编程实现,不仅可以应用于单个字符串,还可以扩展到统计数据库表中某个...

    数据库字符串处理 很不错

    ### 数据库字符串处理知识点 #### 一、字符串处理在数据库中的重要性 在数据库操作中,字符串处理是一项非常重要的技能。无论是数据清洗、格式化还是提取有用信息,字符串处理功能都发挥着至关重要的作用。例如,在...

    从字符串中查找字符出现次数的方法和性能对比

    但是,它同样存在潜在的性能问题,特别是在处理包含大量目标字符的大字符串时,可能因创建额外的字符串数组而消耗更多资源。 ### 性能对比分析 为了客观评价上述方法的性能,可以采用基准测试的方式进行比较。示例...

    截取指定长度的字符串

    在实际编程中,可以根据具体需求选择合适的方法,并结合其他字符串操作,如查找、替换、连接等,以实现更复杂的字符串处理任务。记住,实践是检验理解的最佳方式,所以尝试编写一些代码来练习这个概念吧!

    Oracle字符串处理函数

    ### Oracle字符串处理函数详解 #### 1. ASCII ASCII函数用于返回给定字符的ASCII码值。例如: ``` SQL&gt; select ascii('A') A, ascii('a') a, ascii('0') zero, ascii(' ') space from dual; AAZERO SPACE ------...

    字符串分割的字符串数量 SQL

    ### 字符串分割的字符串数量 SQL 在数据库管理和数据处理领域中,经常需要对存储在字段中的字符...此外,此方法具有一定的灵活性,可以根据实际需求调整分隔符或者改进函数的实现方式,以支持更复杂的字符串处理任务。

    CLOB 字段类型报错 ORA-01704: 文字字符串过长的解决

    然而,当你尝试向CLOB字段插入数据时,如果超过了Oracle规定的最大限制,就会遇到“ORA-01704: 文字字符串过长”的错误。这个错误通常意味着你试图插入的字符串超过了Oracle数据库允许的最大长度,对于VARCHAR2类型...

    instr()函数功能,判断目标字符串是否存在于第一个字符串中

    `instr()` 函数在编程语言中,如VBScript或ColdFusion,是一个非常实用的字符串处理函数,用于在源字符串中查找目标字符串出现的位置。它能够帮助开发者判断目标字符串是否存在于第一个字符串中,并返回目标字符串的...

    db2字符串函数大全

    根据提供的文件信息,本文将详细介绍DB2中与字符串处理相关的函数。DB2是IBM开发的一款关系型数据库管理系统,广泛应用于企业级数据管理场景。在DB2中,字符串处理功能非常强大,涵盖了各种常见及不常见的操作需求。...

    PB程序中常用的字符串替换函数

    在PowerBuilder(简称PB)这一应用开发环境中,字符串处理是非常常见的需求之一。然而,PowerBuilder本身并未内置专门用于字符串替换的函数,这给开发者带来了一定的不便。为了解决这个问题,很多开发者会自行编写...

    ABAP字符串SQL Functions语法总结

    ABAP是一种专为SAP系统设计的编程语言,而在ABAP中处理字符串时,SQL Functions提供了许多方便的方法。本文将对ABAP SQL Functions for Strings进行详细的语法总结。 首先,我们来讨论一下如何在ABAP SQL中跨Client...

    ABAP常用字符串操作

    ### ABAP常用字符串操作知识点详解 #### 一、字符串连接 在ABAP中,字符串连接是一种常见的操作方式,用于将两个或多个字符串合并成一个新的字符串。实现字符串连接的方法主要是通过`CONCATENATE`语句。 **语法...

    Oracle JSON 字符串处理实例

    Oracle数据库在JSON处理方面提供了强大的功能,特别是在处理JSON字符串时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web服务与应用程序之间的数据传输。在Oracle中,处理JSON字符串...

    取字符串中字符位置

    在IT领域,尤其是在数据库操作与字符串处理中,掌握如何定位并提取字符串中的特定字符或子串是一项基本且重要的技能。本文将围绕“取字符串中字符位置”这一主题展开,深入探讨在SQL Server 2000及后续版本如SQL ...

    截取字符串

    这个小demo展示了如何在不同的编程环境中实现字符串截取,同时也涉及到字符串的空格处理。接下来,我们将深入探讨这两个主题。 首先,让我们讨论字符串截取。在大多数编程语言中,都有内置的函数或方法来实现字符串...

    plsql分割字符串

    在IT领域,特别是数据库编程与处理中,对字符串进行有效的操作是极其常见的需求之一。PL/SQL(Procedural Language for Oracle)作为Oracle数据库的一种强大工具,提供了丰富的功能来处理字符串,包括分割、连接、...

    c#中 base64字符串与普通字符串互转

    在C#编程语言中,Base64是一种用于将二进制数据编码为ASCII字符串的机制,以便在不支持二进制传输的系统(如电子邮件)中传输。Base64编码可以将任何二进制数据转换为可打印的字符,包括图片、文件和其他非文本数据...

Global site tag (gtag.js) - Google Analytics