测试数据是唯一的而不是空的

时间:2016-01-11 10:57:54

标签: sql oracle plsql

如何快速检查测试表" test_table'以及所选列中的数据是否唯一且不为空。
总结,在入口处获得表名,并且预期输出中的列列表,例如。标志1或0。 表很大,不幸的是我必须快速执行;

2 个答案:

答案 0 :(得分:1)

select 1 from dual
where exsist (select col1,col2,col3,... from table
where col1 is not null and col2 is not null and col3....
group by col1,col2,col3.. having count(*) > 1 )

当其中一个为真时,它将返回1.

答案 1 :(得分:1)

SELECT 1
FROM   dual
WHERE  EXISTS
 (SELECT a, b FROM   tab  WHERE  id=1
        AND    name='John'
        AND    (a IS NULL OR b IS NULL))

SELECT 1 FROM dual WHERE EXISTS (SELECT a, b FROM tab WHERE id=1 AND name='John' AND (a IS NULL OR b IS NULL))

我改变了你的代码并且我有一个关于它的问题,现在我有的是id必须是1并且名称'John'和任何验证null必须是正确的,并且希望它必须是id = 1并且名称'John',如果该列的值为'null'