首页 新闻 会员 周边 捐助

如何将表数据中的不符合要求的数据清除掉

0
悬赏园豆:20 [已解决问题] 解决于 2015-03-09 14:29

比如我有一表格数据

ID    Content
1    我是一只小小小小鸟|花太香|一生有你|草原香
2    我是一只小小小小鸟|花太香|一生有你|草原香
3    我是一只小小小小鸟|花太香|一生有你|草原香

这三条数据实际情况下(指在我数据库中)是不一样的,我现在要如何将这三行数据中以'|'分割后的数据长度>4的给清除掉

最佳损友。的主页 最佳损友。 | 初学一级 | 园豆:63
提问于:2014-08-07 10:56
< >
分享
最佳答案
0

create function Get_StrLength ( @str varchar(1024), @split varchar(10) ) returns int as begin declare @location int declare @start int declare @length int set @str=ltrim(rtrim(@str)) set @location=charindex(@split,@str) set @length=1 while @location<>0 begin set @start=@location+1 set @location=charindex(@split,@str,@start) set @length=@length+1 end return @length END

delete from TB_Content  WHERE dbo.Get_StrLength(CONTENT,'|')>4;

 

收获园豆:15
wolfy | 老鸟四级 |园豆:2636 | 2014-08-08 13:13

希望能帮到你

wolfy | 园豆:2636 (老鸟四级) | 2014-08-08 13:17
其他回答(5)
1

delete from table where len(content)>4

 

强烈抗议DUDU,问问题补充,能不能另外起一行啊,要不然有时候解答会显得很可笑。

收获园豆:5
爱编程的大叔 | 园豆:30844 (高人七级) | 2014-08-07 11:03

强烈抗议DUDU,问问题补充,能不能另外起一行啊,要不然有时候解答会显得很可笑。

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

我对这一提议很赞

支持(0) 反对(0) 最佳损友。 | 园豆:63 (初学一级) | 2014-12-02 15:27
0

sql 本身不提供字符串split函数,要自己建一个自定义函数实现,网上有很多代码,随便找个就行了。

XiaoFaye | 园豆:3087 (老鸟四级) | 2014-08-07 11:08
-1

sql里没有split函数,你可以先  

select content  from [table]  

查到数据后,然后用list来转换。  遍历每一条

foreach (var i  in  item )

{

取出每一条的内容,用string的 split方法  去处理  ,然后判断长度>4 的 就清除

许大虾 | 园豆:12 (初学一级) | 2014-08-07 11:46
0

围观学习中

骑着蜗牛耍流氓 | 园豆:135 (初学一级) | 2014-08-07 12:19
0

如果纯粹的是SQL,有一定的难度,可以参考函数charindex:

http://baike.baidu.com/view/1030958.htm?fr=aladdin

然后根据需要进行处理,这个一定需要一段代码或者写一个函数后才能在一段简单的SQL中实现。

519740105 | 园豆:5810 (大侠五级) | 2014-08-07 14:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册