2012-11-25 34 views
1
SELECT [columns] 
FROM [db] 
WHERE [c1] IN 'A' 
    AND [c2] IN 'B, C' 
    AND [c3] LIKE (X and Null)... 

c3目前是一个数组,虽然可以转换为二进制标志,但我需要包括空条目以及LIKE匹配。过滤跨越多列的数据库试图包括空像

本质上,我试图跨多个值(11列)过滤现有的表。 当我为[c3]使用OR语句时,会得到超出其他过滤条件的额外结果。在LIKE中使用AND语句的限制性太强,除非它也可以在[c3]中包含空条目。除此之外,所有其他元素都可以工作,因为由于重叠标志,我必须将[c3]作为数组离开。

+0

哪个数据库? –

+0

所有的列都在同一个数据库和表中,看起来像我错误标记[db]应该是[table]那里。 – Lix0059

+0

“c3'是一个数组”是什么意思?你能显示样本数据吗? –

回答

2

这可能是在不添加字符串(和更多存储)的情况下完成的。

SELECT [columns] 
From [db] 
WHERE [c1] IN 'A' 
    AND [c2] IN 'B, C' 
    AND ([c3] LIKE 'X' OR [c3] IS NULL)