SQLPlus中的情况

问题描述 投票:0回答:2

[我仍在学习SQLPlus,我正在尝试使用另一个名为DM_Businees的表(如果有帮助,请使用Oracle DB 12c)中的数据填充一个名为Business的表。

INSERT INTO查询中,我已经输入了:

CASE
   WHEN BUSINESS.CATEGORIES LIKE '%Event%' THEN 'Event Planning'
   WHEN BUSINESS.CATEGORIES LIKE '%Financial%' THEN 'Financial Services'
   WHEN BUSINESS.CATEGORIES LIKE '%Home%' THEN 'Home Services'
   WHEN BUSINESS.CATEGORIES LIKE '%Professional%' THEN 'Professional Services'
   ELSE 'OTHER'
END

我的目标是检查Categories中的Business列:如果它包含单词“ Event”,然后在DM_Business的列中写入“ Event Planning”。问题在于它不起作用:它没有显示任何错误,但是每一行都为空。

我尝试过同样的事情,但是用数字代替(例如1代替“ Event Planning”,2代替“ Financial Services”,3代替“ Home Services” ...),并且效果很好(列数据类型为varchar2(200))。

您能帮我吗?非常感谢。

sql oracle sqlplus
2个回答
1
投票
CASE WHEN lower(BUSINESS.CATEGORIES) LIKE '%event%' THEN 'Event Planning' WHEN lower(BUSINESS.CATEGORIES) LIKE 'financial%' THEN 'Financial Services' WHEN lower(BUSINESS.CATEGORIES) LIKE '%home%' THEN 'Home Services' WHEN lower(BUSINESS.CATEGORIES) LIKE '%professional%' THEN 'Professional Services' ELSE 'OTHER' END

1
投票
类似于:

CASE WHEN BUSINESS.CATEGORIES IS NULL THEN 'UNDEFINED' WHEN UPPER(BUSINESS.CATEGORIES) LIKE '%EVENT%' THEN 'Event Planning' WHEN UPPER(BUSINESS.CATEGORIES) LIKE 'FINANCIAL' THEN 'Financial Services' ...

© www.soinside.com 2019 - 2024. All rights reserved.