我有一张table
----------------------
| Col1 | Col2 | Col3 |
----------------------
| 1 |text1 | 1 |
----------------------
| 98 |text2 | 2 |
----------------------
| 2 |text3 | 1 |
----------------------
| 98 |text4 | 3 |
----------------------
我需要得到一个Sum
的Col3
其中Col1 = 98
和Sum
的Col3
其中Col1 <> 98
。期望的结果将是5和2。
-------------------------------
| aShort (=98) | aLong (<>98) |
-------------------------------
| 5 | 2 |
-------------------------------
我的SQL query
看起来是这样的:
'SELECT sum(case when Col1 = 98 then Col3 else 0 end) as aShort, ' +
'sum(case when Col1 <> 98 then Col3 else 0 end) as aLong '...
结果是0和7。我做错了什么?
1条答案
按热度按时间bfhwhh0e1#
我假设
Col1
的数据类型不是整数或数字,而是字符串类型,例如text
或varchar
,并且似乎值中包含一些空格。我强烈建议在数值类型的列中保存数值,但在当前情况下,您需要强制转换为整数,以便使用下面的查询获得所需的结果Demo