我想创建一个stored procedure
来检查以下情况。
在以上两列的第一行RJ_SAPID
和RJ_COLO_SAPID
中,值I-GJ-JMLU-ENB-6011
是通用的。
因此,除了该值外,我想通过存储过程在第三栏中显示其他两个值。
我尝试使用REPLACE
函数,但未成功。下面是代码
SELECT REPLACE(RJ_SAPID, RJ_COLO_SAPID, '') FROM NE_STRUCTURES;
请建议如何进行。
表定义
OBJECTID NUMBER
RJ_SAPID VARCHAR2(20)
RJ_COLO_SAPID VARCHAR2(200)
RJ_NETWORK_ENTITY_ID VARCHAR2(30)
STRUCTURE_NAME VARCHAR2(200)
INVENTORY_STATUS_CODE VARCHAR2(4)
RJ_MAINTENANCE_ZONE_CODE VARCHAR2(20)
RJ_SITE_NAME VARCHAR2(200)
RJ_SITE_ADDRESS VARCHAR2(500)
RJ_STRUCTURE_TYPE VARCHAR2(20)
TYPE_NAME VARCHAR2(20)
RJ_LAST_MODIFIED_BY VARCHAR2(50)
RJ_LAST_MODIFIED_DATE DATE
RJ_STATUS VARCHAR2(200)
RJ_CITY_CODE VARCHAR2(10)
RJ_R4G_STATE_CODE VARCHAR2(10)
RJ_DISTRICT_CODE VARCHAR2(20)
RJ_TALUK_CODE VARCHAR2(20)
RJ_JC_CODE VARCHAR2(20)
RJ_JIOPOINT_SAPCODE VARCHAR2(20)
RJ_COMPANY_CODE_1 VARCHAR2(20)
RJ_COMPANY_CODE_2 VARCHAR2(20)
NE_STATUS VARCHAR2(20)
答案 0 :(得分:1)
只需切换参数,您就可以了:
SELECT REPLACE(RJ_COLO_SAPID, RJ_SAPID, '') FROM NE_STRUCTURES
如果要去除不必要的逗号,请使用:
SELECT REGEXP_REPLACE(REPLACE(RJ_COLO_SAPID, RJ_SAPID, ''),'^,+|,+$|(,),+','\1') FROM NE_STRUCTURES
答案 1 :(得分:1)
您可以使用REPLACE(RJ_COLO_SAPID, RJ_SAPID, '')
,对于逗号,请使用LTRIM
SELECT RJ_SAPID, RJ_COLO_SAPID,
REPLACE(RTRIM(LTRIM(REPLACE(RJ_COLO_SAPID, RJ_SAPID, ''), ','), ','), ',,', '') AS ThirdColumn
FROM NE_STRUCTURES