[英]how to give default value to subquery in mysql?
在查詢中,我可以給子查詢一些默認值嗎?
我的子查詢之一可能沒有任何值。在這種情況下,它返回null作為整個結果。 即使子查詢之一為null,也可以分配一些默認值嗎?
select
t1 . *, t2.speed, t3.Accelerometerx
from
(SELECT
*
FROM
`table1`
) as t1,
(SELECT
*
FROM
table1)
as t2
檢查nvl函數,它應該可以解決您的問題。
使用情況/如果:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
示例,而不是:
where
`vehicle_tripdetails`.`Param_ID` = '131'
and trip_id = 127) as t1,
(SELECT
time_stamp, `vehicle_tripdetails`.`Param_Data` as speed
FROM
`vehicle_tripdetails`
where
`vehicle_tripdetails`.`Param_ID` = '13'
and trip_id = 127) as t2,
您可以使用:
where
`vehicle_tripdetails`.`Param_ID` = '131'
and trip_id = 127) as t1,
CASE
WHEN (SELECT time_stamp, `vehicle_tripdetails`.`Param_Data` as speed FROM
`vehicle_tripdetails` where
`vehicle_tripdetails`.`Param_ID` = '13'
and trip_id = 127)
IS NOT NULL
THEN (SELECT time_stamp, `vehicle_tripdetails`.`Param_Data` as speed FROM
`vehicle_tripdetails` where
`vehicle_tripdetails`.`Param_ID` = '13'
and trip_id = 127)
ELSE
'default value'
END CASE
AS t2
如下所示在您的select子句中使用ISNull
select t1.*,
CASE ISNULL(t2.speed) WHEN 1 THEN 0 ELSE t2.speed END,
CASE ISNULL(t3.xyz) WHEN 1 THEN 0 ELSE t3.xyz END
此處的默認值為0。如果您未使用*選擇所有記錄,則此功能有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.