在同一 table 中连接 2 列
Concatenating 2 columns in the same table
在下面的尝试中,我试图连接来自同一 table 的两列,当我尝试 运行 时它显示 "invalid number of arguments"。
SELECT Concat(b.OB,',',C.OB) AS LANE
,(
CASE
WHEN a.vehicle_class LIKE '601%'
THEN 'Small'
WHEN a.vehicle_class LIKE '602%'
THEN 'Large'
WHEN a.vehicle_class LIKE '9%'
THEN 'TOW'
ELSE 'ERROR'
END) AS vehicle_size
, a.*
FROM
(SELECT *
FROM reserved
) a
, location b
, location c
, mre_system_parameters SYS
WHERE b.ob_location_id = a.ob_location_id
AND c.ob_location_id = a.ib_location_id
AND rental_date > sys.cpd - 20000
AND rental_date <= sys.cpd
AND a.vehicle_class LIKE '6%'
AND booking_count = 1;
COMMIT;
Oracle 的 concat
严格采用两个参数,而不是您在查询中使用的三个参数。您可以只使用一系列连接运算符 (||
) 代替:
b.OB || ',' || C.OB AS LANE
在oracle中使用||
运算符进行连接更方便。因此,
b.OB || ',' || C.O
在下面的尝试中,我试图连接来自同一 table 的两列,当我尝试 运行 时它显示 "invalid number of arguments"。
SELECT Concat(b.OB,',',C.OB) AS LANE
,(
CASE
WHEN a.vehicle_class LIKE '601%'
THEN 'Small'
WHEN a.vehicle_class LIKE '602%'
THEN 'Large'
WHEN a.vehicle_class LIKE '9%'
THEN 'TOW'
ELSE 'ERROR'
END) AS vehicle_size
, a.*
FROM
(SELECT *
FROM reserved
) a
, location b
, location c
, mre_system_parameters SYS
WHERE b.ob_location_id = a.ob_location_id
AND c.ob_location_id = a.ib_location_id
AND rental_date > sys.cpd - 20000
AND rental_date <= sys.cpd
AND a.vehicle_class LIKE '6%'
AND booking_count = 1;
COMMIT;
Oracle 的 concat
严格采用两个参数,而不是您在查询中使用的三个参数。您可以只使用一系列连接运算符 (||
) 代替:
b.OB || ',' || C.OB AS LANE
在oracle中使用||
运算符进行连接更方便。因此,
b.OB || ',' || C.O