Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Google bigquery Google Bigquery使用substr,从不返回结果_Google Bigquery_Substr - Fatal编程技术网

Google bigquery Google Bigquery使用substr,从不返回结果

Google bigquery Google Bigquery使用substr,从不返回结果,google-bigquery,substr,Google Bigquery,Substr,我有一个表,它有两组数据,一组数据有如下信息 类型|名称| Id 包装盐酸伪麻黄碱口服片120 MG | 110 包装盐酸伪麻黄碱口服片60 MG | 111 药品名称|盐酸伪麻黄碱| 112 我想做的是将PackagedDrug与DrugName概念连接起来,因此获取PackagedDrug类型的所有ID,其名称与DrugName类型的名称匹配。如果我在下面的查询中硬编码DrugName的名称,它会立即运行,但是如果我去掉硬编码,它就会继续运行。你能给我建议一些合适的方法来加速这个大查询吗 选

我有一个表,它有两组数据,一组数据有如下信息

类型|名称| Id

包装盐酸伪麻黄碱口服片120 MG | 110

包装盐酸伪麻黄碱口服片60 MG | 111

药品名称|盐酸伪麻黄碱| 112

我想做的是将PackagedDrug与DrugName概念连接起来,因此获取PackagedDrug类型的所有ID,其名称与DrugName类型的名称匹配。如果我在下面的查询中硬编码DrugName的名称,它会立即运行,但是如果我去掉硬编码,它就会继续运行。你能给我建议一些合适的方法来加速这个大查询吗

选择a.MSC\u ID MSC\u ID、a.MSC\u CONcept\u type、a.CONcept\u ID、a.CONcept\u name、b.CONcept\u name

from 
(select MSC_id, MSC_CONcept_type, concept_id, concept_name  
   FROM [ClientAlerts.MSC_Concepts] 
  where MSC_CONcept_type in ('MediSpan.Concepts.PackagedDrug') ) a

CROSS JOIN
选择MSC\u概念类型、概念id、概念名称、长度概念名称len 来自[ClientAlerts.MSC_Concepts] 其中MSC_CONcept_输入'MediSpan.Concepts.NamebasedClassification.DrugName' -“盐酸伪麻黄碱”中的概念和名称 b

其中substra.concept\u name,1,b.len+''=b.concept\u name

from 
(select MSC_id, MSC_CONcept_type, concept_id, concept_name  
   FROM [ClientAlerts.MSC_Concepts] 
  where MSC_CONcept_type in ('MediSpan.Concepts.PackagedDrug') ) a

CROSS JOIN
谢谢,
萨维塔这与BigQuery本身无关。当您硬编码时,您的值被过滤得更快,因为它不必检查每一行,因为它会查找硬编码的值

如果不使用硬编码的值,它将查看更多的行,比较第一个查询和第二个查询中的所有行。老实说,如果您在这里正确地描述了您的用例,我不认为有任何方法可以更快地做到这一点


但我确实想到了一个问题。为什么你有一个类型。看起来应该是两个不同的表。

您好,我创建了一个类型的表作为另一个表,但它仍然很慢。@SavitaMhetar,我从来没有说过创建两个不同的表会使它变快。这肯定会让它更快。当您进行连接时,需要了解的一件事是,系统试图使行的每一个可能的组合。。。。每张桌子上有多少行?这可能只是因为您有太多的行,所以系统需要一些时间一个表有250万行,另一个表有78000行。