Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL:视图中值之间的联接_Sql_Oracle_Oracle10g - Fatal编程技术网

Oracle SQL:视图中值之间的联接

Oracle SQL:视图中值之间的联接,sql,oracle,oracle10g,Sql,Oracle,Oracle10g,我有一个视图显示了GSMN编号列表,用于计算某些关税。这些数字来自数字表,这是一个简单而基本的视图。 然而,我需要根据具体数据添加更多的数字,而这正是它变得困难的地方 我有一个表,它不是gsmnumbers的列表,只是包含一些范围。我需要能够将这些范围内的所有数字添加到gsmnumber视图中 如果我们查看包含范围的表,它们有一个ID、一个产品代码、一个beginvalue和一个endvalue,beginvalue和endvalue也需要包括在内。对于产品代码为37的每一行,我需要有一个介于b

我有一个视图显示了GSMN编号列表,用于计算某些关税。这些数字来自数字表,这是一个简单而基本的视图。 然而,我需要根据具体数据添加更多的数字,而这正是它变得困难的地方

我有一个表,它不是gsmnumbers的列表,只是包含一些范围。我需要能够将这些范围内的所有数字添加到gsmnumber视图中

如果我们查看包含范围的表,它们有一个ID、一个产品代码、一个beginvalue和一个endvalue,beginvalue和endvalue也需要包括在内。对于产品代码为37的每一行,我需要有一个介于beginvalues和endvalues之间的所有数值的列表


事实上,我有不同的范围,这让我很难找到答案,因为我的大多数搜索只回答如何获得单个范围的值

您可以构建返回数字1、2、3、4的简单分层查询。。。并将其与您的表连接:


你需要一个类似于左连接的复合条件,比如。。。从g.gsmnumber>=r.beginvalue和g.gsmnumber上的gsmtable g left join Range r可能如果您更新您的问题以包括示例输入和预期输出数据,我们将能够帮助您?请参阅[此问题]以了解如何提供样本数据的示例-这是应该提供的最低要求-请使用create table和insert语句,或者如果您可以使用WITH子句设置查询以生成样本数据,那就更好了。或者提供包含在其中的脚本。
with 
  tmp1 as (select max(endvalue-beginvalue+1) mv from gsm where product=37),
  tmp2 as (select level lvl from tmp1 connect by level<=mv)
select id, beginvalue+lvl-1 nr, beginvalue, endvalue
  from gsm join tmp2 on beginvalue+lvl-1<=endvalue
  where product = 37 order by id, beginvalue+lvl-1