2017-10-04 43 views
0

我有一个table1假设从哪个ABC中获得像'MYname_GKS_50'这样的列的o/p。我只想要MYNAME该结果的一部分被用作条件来获取另一个表的另一列。 假设如果我从table2.xyz给columnname = MYNAME。这两个查询应该在OracleDB中的单个SQL查询中。 例如:只要在第二个查询中修改并使用的第一个查询结果SQL

  • 表1(COL1,COL2)

    COL2已经数据 MYname_GKS_50,MYname_GKS_51,MYname_GKS_52,Ora_10,Ora_11 ...

我想COL2结果MYname_GKSOra部分为我的搜索条件,不需要更改nos。

  • 表2(COL3,COL4)

从COL2即MYname_GKS奥拉值应该与表2的COL3被现在比较。 如果匹配,它应该给我table2的col4。

任何建议大师!

on t1.col2 like t2.col3||'%' 

喜欢这里:

+2

您使用的是MS SQL Server还是Oracle? – jarlh

+0

删除基于OP关于OracleDB和列名称的sql-server Ora_10 Ora_11 – scsimon

+0

使用的数据库是Oracle 11g。 Ora_10,11简直就是我用过的单词,它就像是假设Order_detailsversionOne_100056,Order_detailsversionOne_100057,Order_detailsversionOne_100058 .. Donot与任何ORA错误混淆。 – Gopal

回答

0

你可以加盟条件中使用like

with table1 (col1, col2) as (
    select 1, 'MYname_GKS_50' from dual union all 
    select 2, 'MYname_GKS_51' from dual union all 
    select 3, 'MYname_GKS_52' from dual union all 
    select 4, 'Ora_10'  from dual union all 
    select 5, 'Ora_11'  from dual), 
table2 (col3, col4) as (
    select 'MYname_GKS', 'XYZ' from dual union all 
    select 'Ora',  'PQR' from dual) 
select * 
    from table1 t1 join table2 t2 on t1.col2 like t2.col3||'%' 

结果:

 COL1 COL2   COL3  COL4 
---------- ------------- ---------- ---- 
     1 MYname_GKS_50 MYname_GKS XYZ 
     2 MYname_GKS_51 MYname_GKS XYZ 
     3 MYname_GKS_52 MYname_GKS XYZ 
     4 Ora_10  Ora  PQR 
     5 Ora_11  Ora  PQR 

有是表2包含超过一个匹配行风险例如MYnameMYname_GKS和在这种情况下,我不知道你想要什么。

+0

似乎这个查询可能工作在条件。让我尝试。尽管我在每列下有1000万的数据,但希望我不能做那个select语句。感谢您的更新。 – Gopal

+0

目前尚不清楚。请编辑您的原始问题,而不是编写能够更改要求的注释,在两个表格中显示简化的输入数据,并且需要的输出与这些数据匹配 –

+0

我的最终需求是COL4数据..假设我在COL2下有100行,包含myname_1,myname_2,old_1,old_2,old_3,get_4,get_5,look_2,look_99等。在其他表2中,COL3只有myname,old,get,look的数据。这一列没有数字。我想COL3每个数据与COL2比较,如果它匹配,那么我应该得到或选择TABLe2的SQL COL4数据。你给的ON条件,我需要检查。它似乎会工作。我可以说100 200个不同的名字,比如myname,old,get,look等等。所以我不能使用你的选择条件,我需要输入一个一个。不需要 – Gopal

相关问题