如何实现这个功能: where 列1,列2,列3 in (select 列1,列2,列3 from 表名)
-------------------
好象对于in的用法,只能是
where 列名 in (select 列名 from 表名)
这种形式,可是我想查出:
列1,列2,列3 的组合在
select 列1,列2,列3 from 表名
中的记录,如何实现呢?
不知我是否讲明白了。
-------------------
好象对于in的用法,只能是
where 列名 in (select 列名 from 表名)
这种形式,可是我想查出:
列1,列2,列3 的组合在
select 列1,列2,列3 from 表名
中的记录,如何实现呢?
不知我是否讲明白了。
where 列1 in (select 列1 from 表名)
and 列2 in (select 列2 from 表名)
and 列4 in (select 列3 from 表名)
-----------------------当有几个主键时##
select * from t where binary_checksum(col1,col2,col3,col4,col5)in
(select binary_checksum(col1,col2,col3,col4,col5) from
t group by binary_checksum(col1,col2,col3,col4,col5) having count(1) >1)
where cast(列1 as varchar(10))+cast(列2 as varchar(10))+cast(列3 as varchar(10))
in
(
select cast(列1 as varchar(10))+cast(列2 as varchar(10))+cast(列3 as varchar(10)) from 表名
)
列4 in 列3 了?where 列1+列2+列3 in(select 列1+列2+列3 from 表名)
and 列2 in (select 列2 from 表名)
and 列4 in (select 列3 from 表名)与
where cast(列1 as varchar(10))+cast(列2 as varchar(10))+cast(列3 as varchar(10))
in
(
select cast(列1 as varchar(10))+cast(列2 as varchar(10))+cast(列3 as varchar(10)) from 表名
) 好象都可以实现,哪种方法更好,效率更高呀?
and 列2 in (select 列2 from 表名)
and 列4 in (select 列3 from 表名)-----------------------------------where convert(varchar, 列1) + convert(varchar, 列2) + convert(varchar, 列3)
in
(select convert(varchar, 列1) + convert(varchar, 列2) + convert(varchar, 列3) from 表名) ---------------------------这样就可以了
in
(select convert(varchar, 列1) + convert(varchar, 列2) + convert(varchar, 列3) from 表名)
与select * from t where binary_checksum(col1,col2,col3,col4,col5)in
(select binary_checksum(col1,col2,col3,col4,col5) from
t group by binary_checksum(col1,col2,col3,col4,col5) having count(1) >1)两种方法,哪种效率高呀?
union all
列2 in (select 列1,列2,列3 from 表名)
union all
列3 in (select 列1,列2,列3 from 表名)