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 语句时,我得到了超出其他过滤条件的额外结果。将 AND 语句与 LIKE 一起使用过于严格,除非它还可以在 [c3] 中包含空条目。除了这个之外,所有其他元素都有效,因为由于标志重叠,我不得不将 [c3] 作为数组保留。

4

1 回答 1

2

This could have been accomplished without adding the strings (and more storage).

SELECT [columns] 
From [db] 
WHERE [c1] IN 'A' 
  AND [c2] IN 'B, C' 
  AND ([c3] LIKE 'X' OR [c3] IS NULL)
于 2013-03-31T23:44:44.280 回答