查找不同值
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。
楼上的朋友有人好像跟你重名啊,都叫流氓……