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

虫二二 2014-08-07 10:37:47
现在有一表格数据

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


这三条数据实际是不一样,要如何将这三行数据中数据长度>4的给清除掉
...全文
189 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakewsl 2014-08-07
  • 打赏
  • 举报
回复
不错,学习了。
發糞塗牆 2014-08-07
  • 打赏
  • 举报
回复
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(發糞塗牆)
-- Date    :2014-08-07 11:16:19
-- Version:
--      Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
--	May 14 2014 18:34:29 
--	Copyright (c) Microsoft Corporation
--	Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([ID] int,[Content] varchar(41))
insert [huang]
select 1,'我是一只小小小小鸟|花太香|一生有你|草原香' union all
select 2,'我是一只小小小小鸟|花太香|一生有你|草原香' union ALL
select 3,'我是一只小小小小鸟|花太香|一生有你|草原香'
--------------开始查询--------------------------
;WITH cte AS (
SELECT id,CONTENT
FROM (
select
    id, 
    SUBSTRING([Content],number,CHARINDEX('|',[Content]+'|',number)-number) as [Content] 
from
    [huang] a,master..spt_values 
where
    number >=1 and number<=len([Content])  
    and type='p' 
    and substring('|'+[Content],number,1)='|')a
WHERE LEN(CONTENT)<=4)
select a.id,
stuff((select '|'+CONTENT from cte b 
       where b.id=a.id 
       for xml path('')),1,1,'') 'CONTENT'
from cte a
group by  a.id
----------------结果----------------------------
/* 
id          CONTENT
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1           花太香|一生有你|草原香
2           花太香|一生有你|草原香
3           花太香|一生有你|草原香

*/
虫二二 2014-08-07
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
|的数量有没有固定的?还是不知道里面会有多少个|?
不固定的。。 有的可能 我是一只小小小小鸟|花太香|一生有你|草原香 这样 有的可能 我是一只小小小小鸟|男人海洋|坚持到底|草原香|你的爱到底给了谁 这样
發糞塗牆 2014-08-07
  • 打赏
  • 举报
回复
|的数量有没有固定的?还是不知道里面会有多少个|?
虫二二 2014-08-07
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
期待结果是什么?没看懂长度>4的意思,是以|为分割还是以content为单位
以|为分割后的数据长度>4的清除掉
發糞塗牆 2014-08-07
  • 打赏
  • 举报
回复
期待结果是什么?没看懂长度>4的意思,是以|为分割还是以content为单位

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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