什么是SQL命令,用于检查行中没有重复字段的行。
例如:
A A A B B B
不应出现在结果表格中。
仅限A B C D E F
即。给出如下数据:
A A A B B B
A B C D E F
A A B G H Q
应该返回A B C D E F
答案 0 :(得分:3)
没有简单的命令可以做到这一点。
似乎是一个不寻常的要求,如果所有列都可以互换,则可能表明该表不是第一范式。
以下适用于Microsoft SQL Server
;With YourData AS
(
select 'A' as C1, 'A' as C2, 'A' as C3, 'B' as C4, 'B' as C5, 'B' as C6 UNION ALL
select 'A' as C1, 'B' as C2, 'C' as C3, 'D' as C4, 'E' as C5, 'F' as C6
)
SELECT *
FROM YourData
WHERE 1 =
( SELECT TOP 1 COUNT(*) AS Cnt
FROM (
SELECT C1 AS C
UNION ALL
SELECT C2
UNION ALL
SELECT C3
UNION ALL
SELECT C4
UNION ALL
SELECT C5
UNION ALL
SELECT C6
) D
GROUP BY C
ORDER BY Cnt DESC
)
答案 1 :(得分:2)
Select distinc *
返回唯一的ROWS,而不是字段中的唯一值。
您应该将每列的值与其他列进行比较。 (假设列类型相同)。例如,对于4列表,您应该像以下一样进行smoething:
SELECT Col1, Col2, Col3, Col4 FROM MyTable WHERE
Col1 NOT IN (Col2,Col3,Col4) AND
Col2 NOT IN (Col3,Col4) AND
Col3 <> Col4
答案 2 :(得分:0)
SELECT DISTINCT * FROM tablename
答案 3 :(得分:0)
SELECT DISTINCT col FROM tabl
答案 4 :(得分:-1)
SELECT * FROM mytable
WHERE mytable.col1!= mytable.col2!= mytable.col3 ...