我在一个表Table1中有一条记录,我想将一条记录分割成两行,然后插入到另一个表Table2中。
Table1
ID Date User value
1 29/05/18 XXX X_ID||X_value||22||xx
2 29/05/18 YYY Y_ID||Y_value||33|yy
我希望将table1值插入到table2中
Table2
P_ID ID Date User Field Value
1 1 29/05/18 XXX X_ID 22
2 1 29/05/18
我有一个在雪花中使用的查询:
Select *,
case WHEN REGEXP_SUBSTR(NAME, '(?:\[v=)') is not null THEN REGEXP_SUBSTR(NAME, '[[]v=([0-9]+)')
else null
end
from my_table;
但当我尝试运行它时,它告诉我:
无效正则表达式:'(?:[v=)',没有重复操作符的参数:?
但是我已经在regex101 上测试过了,它看起来很有用,我想检查一下[v=
编辑:更深入地了解我试图找到的w. regex,我有类似于这个test
我想将以下IN查询转换为内部连接查询:
select country, name, rank from table person_details
where country in ('india','USA','australia')
and name in ('tom', 'jill', 'jack')
and rank in ('first', 'third', 'fifith');
我有两个问题:
这个表很大,
我想要写一个case语句,它可以从一个名为details的列中提取特定子字符串的值,该列有多个[address]出现,是否可以与[address]一起使用?
列中的样本数据:
[address]:kattengat 28
[address]:1012 SZ
[address]: Amsterdam
The below SQL only outputs:
kattengat 28
Select case when to_number(instr(details),'[address')>0 then substr(details,REGEXP_INSTR(detail
我用Oracle11g编写了下面的代码来分离in params (I_PRODUCT)并进行查询。当我给出一个参数作为i_PRODUCT时,它正在填充一些结果。当我插入多个以逗号分隔的参数时,我希望一个一个地查询并填充整个结果,结果不起作用。
create or replace PROCEDURE RQUERY
(
I_PRODUCT VARCHAR2
, O_Cursor OUT SYS_REFCURSOR
) AS BEGIN
O_Cursor := NULL;
OPEN O_Cursor for
SELECT * FROM Table1 WHERE
Table1.PRODUC
我正在为一个触发器工作,该触发器使用一个函数为名为Molteplicità的表中的列Partecipa提供了一个“域”。
我创建的触发器如下:
CREATE OR REPLACE TRIGGER dominioMolteplicità
BEFORE INSERT OR UPDATE ON partecipa
FOR EACH ROW
BEGIN
IF moltepl_valido(:NEW.molteplicità) = 'f' THEN
RAISE_APPLICATION_ERROR(-20002, 'Invalid type');
下面的查询将数据插入到表中的两列中。如果我们注意到,它实际上只创建了两行而不是三行,因为我在'CONNECT BY'子句中只指定了'2‘。由于这一点,它显然忽略了第三个值。有没有办法在不改变立场的情况下改变这种行为。我不能在相同的CONNECT BY中再次指定query.AS,我的值是动态的,不能改变它的位置。
预期输出
Name Country
a xy
c yx
null xc
查询尝试了
INSERT INTO tbl_test_customer (
NAME,
COUNTRY
我运行一个过程,如下所示。
PROCEDURE LOAD_SPM_ITEM_SYNC(P_ENCODED_STRING IN CLOB,truncateflag in varchar2) IS
output varchar2(30000);
BEGIN
if (truncateflag='true') then
execute immediate 'truncate table SPM_ITEM_SYNC';
end if;
output:=utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.c
我们使用的是这样的函数
FUNCTION GetValue(i_string IN VARCHAR2
,I_DELIM IN VARCHAR2
,i_occur IN NUMBER) RETURN VARCHAR2
IS
i NUMBER;
j NUMBER;
BEGIN
i := INSTR(i_string, i_delim, 1, i_occur);
IF i = 0 THEN
RETURN null;
ELSE
IF i_occur > 1 THEN
j := INSTR(i_stri
我需要你帮我处理regexp_replace函数。我有一个表,其中有一列包含重复项的连接字符串值。我如何消除它们?
示例:
Ian,Beatty,Larry,Neesha,Beatty,Neesha,Ian,Neesha
我需要的输出是
Ian,Beatty,Larry,Neesha
副本是随机的,没有任何特定的顺序。
更新--
下面是我的表格的样子
ID Name1 Name2 Name3
1 a b c
1 c d a
2 d e a
2 c
我的列值如下所示:只是我创建的一个示例
{BASICINFOxxxFyyy100x} {CONTACTxxx12345yyy20202x}
它可以包含0或多个数据块.我已经创建了下面的查询来拆分这些块
with x as
(select
'{BASICINFOxxxFyyy100x}{CONTACTxxx12345yyy20202x}' a from dual)
select REGEXP_SUBSTR(a,'({.*?x})',1,rownum,null,1)
from x
connect by rownum <= REGEXP_COUNT(
在字符串{"user":"128"}中,只期望128。
也可以是{"user":"8"}、{"user":"12"}或{"user":"128798"}
在这个小提琴中,匹配的值应该是3
模式:
创建表test1 ( id INT AUTO_INCREMENT,userid INT(11),主键( id ) );插入test1(userid)值('126'),('2457'),('3'),('40');
我已经插入select语句将值从一个表复制到另一个表。
这两个表中都有移动列,但是在源表中,移动号码有一个文本附加在上面,比如:Primary contact : 1234567890。
所以我只想复制手机的1234567890部分。
我使用REGEXP的子查询完成了这一任务:
INSERT INTO employee (employee_number, mobile)
SELECT eb.employee_number,(SELECT mobile FROM employee_bulkadd_staging WHERE mobile REGEXP '^[0-9]+$')
我是一个自学成才的PL/SQL查询编写者,对编程比较陌生。我知道如何执行基本的功能,但没有接受过正式的培训,通常会用谷歌的方式来解决我遇到的任何问题。大多数情况下,我只是在PL/SQL developer中连接不同的表或视图来制作
我正在尝试根据一系列三个分隔符(在本例中为“>”(包括空格))从表中拆分一行。例如,我想从一个名为Locations的表中提取位置"USA > California > Los Angeles“,并将其分为三个不同的列(Country、State和City)。但是,重复分隔符的数量可以有所不同。有时可能只是美国>加州,而另一些时候可能
我们有一个自定义的字符串化对象格式,我想把它炸成一个对象(还是行?)在Oracle内部--目的是将其插入到相应的表中。
格式看上去像..。{key=value}:{key1=value1"}:{key2=value2}
例如{street=123 Main St}:{city=Somewhere}:{state=MI}:{zip=12345}
我在其他语言中所采用的方法一般看上去像..
function packed2obj(packed_s) {
packed_s = packed_s.match(/^\{(.+)\}$/);
var packed_o = new O