MS-Access在同一列

时间:2015-11-20 21:03:57

标签: ms-access

我正在尝试将列中的所有字符串放在同一列中的其他字符串中,它们是子集(从第一个字符开始)。

我尝试过类似的事情:

SELECT d.str FROM table1 d WHERE
d.str IN (SELECT dt.str FROM str dt 
    WHERE dt.str LIKE d.str & '*' AND d.str <> dt.str )

但它没有返回任何结果(我假设是因为d.str&lt;&gt; dt.str)。

还有其他方法可以达到这个目的吗?

例如,使用表格:

|a  |
|ab |
|ac |
|acd|
|acm|
|e  |
|ef |

我想要

|a  |
|ac |
|e  |

1 个答案:

答案 0 :(得分:2)

使用EXISTS:

而不是使用IN
    SELECT d.str FROM table1 d 
    WHERE EXISTS (SELECT dt.str FROM table1 dt 
    WHERE dt.str LIKE d.str & '*'  AND d.str <> dt.str )