日期:2014-05-17  浏览次数:20409 次

一个关于sql select问题
列一    列二    列三
001     王五    
002     张六
003     孙上    001
004     张起    001


我想用select得出列三中包涵列一的数据,比如
001     王五    
003     孙上    001
004     张起    001

我是这样写的。
select * from TABLE where 列一=列三

这样貌似得出来是空。怎么弄?

------解决方案--------------------
SELECT A.*
FROM TAB A 
WHERE 列三 <> ''
OR EXISTS (
SELECT 1
FROM TAB B
WHERE B.列三 = A.列一
)

------解决方案--------------------
引用:
SELECT A.*
FROM TAB A 
WHERE 列三 <> ''
OR EXISTS (
SELECT 1
FROM TAB B
WHERE B.列三 = A.列一
)


正解!!!
------解决方案--------------------
我觉得应该是
SELECT * FROM t_TEST_A WHERE c1 IN (SELECT C3 FROM t_TEST_A)
union
(
SELECT * FROM t_TEST_A WHERE c3 IN (SELECT C1 FROM t_TEST_A)
)
用楼上的语句会丢失第一条