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

查找不同值,该如何处理

2012-02-15 
查找不同值ABCD....这些不定字段数的视图有以下值1111....--不合法1132....--不合法1234....--这个合法323

查找不同值
A   B   C   D   ....   这些不定字段数的视图有以下值
1   1   1   1   ....--   不合法
1   1   3   2   ....--   不合法
1   2   3   4   ....--   这个合法
3   2   3   3   ....--   不合法
4   3   2   2   ....--   不合法

如何找出A   B   C   D   ....每个字段没有重复值的记录
就象上面数字中只有
1   2   3   4   ....--   这个合法


[解决办法]
select * from csdn where (a <> b) and(a <> c) and(a <> d) and(b <> c) and (b <> d) and (c <> d)
[解决办法]
--一种方法:

create table #t(A int,B int,C int,D int)

insert into #t
select 1,1,1,1 union all
select 1,1,3,2 union all
select 1,2,3,4 union all
select 3,2,3,3 union all
select 4,3,2,2

select *
from #t
where charindex( ', ' + cast(a as varchar(100)) + ', ', ', ' + cast(b as varchar(100)) + ', ' + cast(c as varchar(100)) + ', ' + cast(d as varchar(100)) + ', ')=0
and charindex( ', ' + cast(b as varchar(100)) + ', ', ', ' + cast(a as varchar(100)) + ', ' + cast(c as varchar(100)) + ', ' + cast(d as varchar(100)) + ', ')=0
and charindex( ', ' + cast(c as varchar(100)) + ', ', ', ' + cast(a as varchar(100)) + ', ' + cast(b as varchar(100)) + ', ' + cast(d as varchar(100)) + ', ')=0
and charindex( ', ' + cast(d as varchar(100)) + ', ', ', ' + cast(a as varchar(100)) + ', ' + cast(b as varchar(100)) + ', ' + cast(c as varchar(100)) + ', ')=0


drop table #t


--另一种方法,写一个函数,把当前行的各字段转换为一个临时表,分组检查是否有多于1条的。
--在SQL 中调用这个函数。
[解决办法]
--一楼这种方法更简单

select *
from #t
where a <> b and a <> c and a <> d and b <> c and b <> d and c <> d

[解决办法]
呵呵。
[解决办法]
一楼的方法不错
[解决办法]
15条对吗
错了别笑
[解决办法]
如果你一定要在sql中实现这种功能,最好写函数来处理
在应用程序中用ADO控件应该会更好些
[解决办法]
应该是9吧,我数了三遍都是9。

楼上的朋友有人好像跟你重名啊,都叫流氓……

热点排行