ORA-00936: 缺少表达式?
ORA-00936: missing expression?
试图弄清楚为什么这行不通
问题是由于在解码语句中使用了 <
>
=
,请改用它:
SELECT a.account_id "Account ID",
a.first_name ||' '|| a.last_name "Name",
b.date_and_time_created "Date Created",
c.date_and_time_ordered "Date Ordered",
c.date_and_time_ordered - b.date_and_time_created "Days Ordered After Created",
(case when ( c.date_and_time_ordered - b.date_and_time_created < 5 ) then 'No Reminder Needed'
when ( c.date_and_time_ordered - b.date_and_time_created >= 5 ) then 'Reminder Needed'
else ' '
end ) "Reminder"
FROM shopper a
JOIN shopping_cart b ON a.account_id = b.shopper_account_id
JOIN orders c ON a.account_id = c.shopper_account_id
或者,如果您坚持使用 DECODE(尽管我不知道您为什么要这样做,因为 CASE 在这里更合适),您可以使用 SIGN 函数,例如
SELECT DECODE (
SIGN ( (c.date_and_time_ordered - b.date_and_time_created) - 5),
-1, 'less than 5',
'greater than or equal to 5')
result
FROM ...
试图弄清楚为什么这行不通
问题是由于在解码语句中使用了 <
>
=
,请改用它:
SELECT a.account_id "Account ID",
a.first_name ||' '|| a.last_name "Name",
b.date_and_time_created "Date Created",
c.date_and_time_ordered "Date Ordered",
c.date_and_time_ordered - b.date_and_time_created "Days Ordered After Created",
(case when ( c.date_and_time_ordered - b.date_and_time_created < 5 ) then 'No Reminder Needed'
when ( c.date_and_time_ordered - b.date_and_time_created >= 5 ) then 'Reminder Needed'
else ' '
end ) "Reminder"
FROM shopper a
JOIN shopping_cart b ON a.account_id = b.shopper_account_id
JOIN orders c ON a.account_id = c.shopper_account_id
或者,如果您坚持使用 DECODE(尽管我不知道您为什么要这样做,因为 CASE 在这里更合适),您可以使用 SIGN 函数,例如
SELECT DECODE (
SIGN ( (c.date_and_time_ordered - b.date_and_time_created) - 5),
-1, 'less than 5',
'greater than or equal to 5')
result
FROM ...