我希望在某些条件下区分项目。例如我的表格如下:
no| Device_id|total
090317016|167|147840
090317016|167|147840
090317014|167|155925
090317014|167|155925
090317013|167|188265
090317013|167|188265
090317010|167|170940
090317010|167|170940
NULL |1672|3000
NULL |1672|9000
NULL |1672|12000
NULL |1672|3000
如果没有<>,我只想区别开来null,并且没有null值保持在表中显示如下:
no| Device_id|total
090317016|167|147840
090317014|167|155925
090317013|167|188265
090317010|167|170940
NULL |1672|3000
NULL |1672|9000
NULL |1672|12000
NULL |1672|3000
更新问题:
如果我从交易中选择*,其中DeviceId =' 167'它会出现:
no| Device_id|total
090317016|167|147840
090317016|167|147840
090317014|167|155925
090317014|167|155925
090317013|167|188265
090317013|167|188265
090317010|167|170940
090317010|167|170940
我希望他们像这样使用截然不同的:
no| Device_id|total
090317016|167|147840
090317014|167|155925
090317013|167|188265
090317010|167|170940
但我可以使用不同的组合if if子句是否为null?
那么当我选择deviceId = 1672时会出现如下:
no| Device_id|total
NULL |1672|3000
NULL |1672|9000
NULL |1672|12000
NULL |1672|3000
所以当显示deviceId 1672时,没有区别,但如果我使用distinct
显示DeviceId 167答案 0 :(得分:2)
也许试试这个:
SELECT * FROM (
SELECT DISTINCT `no`, `Device_id`, `total` FROM `my_table` WHERE `no` IS NOT NULL
UNION ALL
SELECT `no`, `Device_id`, `total` FROM `my_table` WHERE `no` IS NULL
) t
答案 1 :(得分:0)
联盟应该这样做:
select
distinct
no,
device_id,
total
where
no is not null and
device_id = ?
union all
select
no,
device_id,
total
where
no is null and
device_id = ?