sql select 语句请教,一个表中的列1、列2对比出不同的数据。

select 列1,列2 from表 WHERE 列1 NOT IN ( Select 列2From 表 )
select 列1,列2 from表 WHERE 列2 NOT IN ( Select 列1From 表 )
我用上面的语句只有一个语句能返回数据,好像是第二个能返回数据。但是实际中都没有用。
上面的语句在用到大数据量的时候都不能返回数据,是怎么回事?
我想要结果就是对比两列能找出,列2中的数据不同与列1的数据。
都不同的能列出也行。

两个语句

问题中列2有空值,空值不能直接参与比较,所以比较的时候先转换成一个特殊的值,然后再进行比较。下列语句是,当列2的是空值时,转换成一个空格。
查询列1中的值不同于列2值的记录:
select * from 表 where 列1 not in (select nvl(列2,‘ ’) from 表);
查询列2中的值不同于列1值的记录:
select * from 表 where nvl(列2,‘ ’) not in (select 列1 from 表);
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-29
如果是在一张表中,为啥不这么写呢:
T/SQL:select 列1,列2 from 表 where isnull(列1,'')<>isnull(列2,'')
PL/SQL:select 列1,列2 from 表 where NVL(列1,'')<>NVL(列2,'')
第2个回答  2012-11-22
select * from 表 where c1<>c2 or c2 is null
第3个回答  2012-11-22
select * from a
except
select * from b

select * from b
except
select * from a

sql select 语句请教,一个表中的列1、列2对比出不同的数据。
问题中列2有空值,空值不能直接参与比较,所以比较的时候先转换成一个特殊的值,然后再进行比较。下列语句是,当列2的是空值时,转换成一个空格。查询列1中的值不同于列2值的记录:select * from 表 where 列1 not in (select nvl(列2,‘ ’) from 表);查询列2中的值不同于列1值的记录:...

sql select 语句请教,一个表中的列1、列2对比出不同的数据。
select * from 表格名 where 列1 <> 列2;

SQL查询语句查询第一列相同但是第二列不同的信息怎么写?
select distinct a.name,a.desc from table a,(select name,count(desc) from table group by name having count(desc)>1)b where a.name=b.name

用SQL语句从表1和表2中查出不一样的数据
( SELECT * FROM YourTableNameA A EXCEPT SELECT * FROM YourTableNameB B ) UNION ALL ( SELECT * FROM YourTableNameB B EXCEPT SELECT * FROM YourTableNameA A )

用sql语句实现在同一张表中找到1个字段相同,另1个字段不同的记录
select distinct x.字段一,x.字段二 from a as x,a as Y where x.字段一=y.字段一 and x.字段二!=y.字段二 其中,x和y是a表的别称,这个原来是用来查询至少选修两门课程的学生,我改成了这样,也就意味着查询结果可能有多个,因为万一有三个,他们之间就是两两不相同的,也符合这个条件 ...

sql语句查询问题:怎么查询第一列值相同对应第二列值不同的种类数
select PC状态,count(distinct PC个数) PC个数 from 表 group by PC状态

用sql语句实现在同一张表中找到1个字段相同,另1个字段不同的记录
oracle数据库中后者可以用wmsys.wm_concat实现,具体sql如下:select 字段1, wmsys.wm_concat(字段2) from 表group by 字段1 追问 #1305 - FUNCTION wmsys.wm_concat does not exist 出现这个错误 追答 厄,目测你这是SQL SERVER如果有其它列做标识,可以用在子查询中使用union来连接如果没有标识,只好用存储...

求SQL查询语句,同一张表同一列按照不同的查询条件,显示不同的数据
SELECT 单号, (CASE WHEN 单号 LIKE 'QW%' THEN 1 WHEN 单号 LIKE 'TH%' THEN -1 ELSE 0 END) * 金额 FROM A

sql语句查询,根据一个表中一个列,该列在两个不同条件同时满足的查询结果...
1、在计算机中,打开Foxtable软件,新建一个表格,比如学生的评价成绩表,并输入数据,如下图所示。2、接着,鼠标左键单击选择菜单下的【杂项】,如下图所示。3、 然后,在菜单栏目中,鼠标左键单击【SQL查询】,如下图所示。4、接着,在【SQL查询】窗口上,选择数据源,如下图所示。5、然后,在...

SQL 怎么查出两个列里面数据不同的数据?
select from tab2 sql server 2000:select count(*) as “次数”from ((select callid from 日志表 where 查询条件1 group by callid not exists (select id from 日志表 where 查询条件2 ))t;值得注意的是SqlServer中使用子查询的时候必须要给子查询起名字,就像上面的【t】,否则会报错。

相似回答