2014-05-14 107 views
-1

SQL的新特性和我一直在努力的查询有一个列中的多个值统计并加在一起。下面是该查询查询一个列中的多个值

select count (*) as NEWCOL 
from table1 
where COL1 = 'val1' and COL2 = 'val1' and COL3='val1' or 'val2' 
+2

对不起,我想你需要解释一下你想在这里实现的! –

+1

更多详细信息和样本值将有所帮助 – TGH

+1

当没有人知道OP正在尝试做什么时,如何才能有答案? – WillardSolutions

回答

0

你的WHERE条件看起来有缺陷:

select count (*) as NEWCOL 
    from table1 
    where COL1 = 'val1' 
    and COL2 = 'val1' 
    and (COL3 = 'val1' or COL3 = 'val2') 
     ; 
+0

我认为你错过了'加在一起'的部分。 – WickedFan

+0

@WickedFan这是正确的,但这也是OP需要详细阐述的部分。 – collapsar

+0

我忽略了使用括号。 – kidaiu

0

试试这个:

SELECT 
    COUNT(y.*) as NewCol 
    ,x.[allfields] as WhatyouWantitToBe 
FROM 
    table1 y 
OUTER APPLY 
    (SELECT 
    x.col1 + ' ' + x.col2 + ' ' + x.col3 AS [allFields] 
    FROM 
    table1 x 
    WHERE 
    x.col1 = y.col1 
    AND 
     x.col2 = y.col2 
    AND 
     x.col3 = y.col3) AS x 
WHERE 
    y.COL1 = 'val1' 
    AND y.COL2 = 'val1' 
    AND (y.COL3 = 'val1' 
     OR 
     y.COL3 = 'val2') 

再然后,这就是可以与你所提到的来完成。 varchar字段的连接以及计数。