首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

统计剔除

2012-07-04 
统计删除有a1 ,a2,a3,a4,a5,a6字段.我希望删除包含指定次数的字段如a1 a2 a3 a4 a5 a6123456178921121121

统计删除

a1 ,a2,a3,a4,a5,a6字段.
我希望删除包含指定次数的字段

a1 a2 a3 a4 a5 a6
1 2 3 4 5 6
1 7 8 9 2 11
2 11 21 22 23 34  
1 56 54 57 50 51

然后有一个方法.传入6个字符串参数
ssss(string c1....c8)
如传入ssss(1,2,7 33,32,34)

执行的结果会
第1,2,3条都被删除
因为
第一条包含了传入的的参数值1和2
第二跳包含了传入的1,7和2
第三条包含了2 和34
第四条因为只包含了1,未达到2个匹配以上

[解决办法]

SQL code
--a1 a2 a3 a4 a5 a6declare @var varchar(40)set @var='1,2,7 33,32,34'with tb as(    --虚拟出一张表    select 1 as a1,2 as a2,3 as a3,4 as a4,5 as a5,6 as a6 union all    select 1,7,8,9,2,11 union all    select 2,11,21,22,23,34 union all      select 1,56,54,57,50,51)select * from tbwhere     case when CHARINDEX(LTRIM(a1),@var)>0 then 1 else 0 end +    case when CHARINDEX(LTRIM(a2),@var)>0 then 1 else 0 end +    case when CHARINDEX(LTRIM(a3),@var)>0 then 1 else 0 end +    case when CHARINDEX(LTRIM(a4),@var)>0 then 1 else 0 end +    case when CHARINDEX(LTRIM(a5),@var)>0 then 1 else 0 end +    case when CHARINDEX(LTRIM(a6),@var)>0 then 1 else 0 end     >1--删除方法--delete from tb_name where (把where 下面的case 语句+case语句 >1 粘贴下)/*a1          a2          a3          a4          a5          a6----------- ----------- ----------- ----------- ----------- -----------1           2           3           4           5           61           7           8           9           2           112           11          21          22          23          34(3 row(s) affected)*/
[解决办法]
顶二楼了。。
[解决办法]
只是没用过类似的方法 ,效率应该会很低吧。

热点排行