2012-10-11 21 views
8

मैं BigQuery में% की तरह प्रतिबंध लगाने के लिए एक सरल क्वेरी चलाने की कोशिश कर रहा हूं, लेकिन LIKE उनके वाक्यविन्यास में नहीं है, तो इसे कैसे कार्यान्वित किया जा सकता है?BigQuery में "पसंद" को कैसे कार्यान्वित करें?

उत्तर

12

आप REGEXP_MATCH समारोह का उपयोग कर सकते (क्वेरी संदर्भ page देखें): REGEXP_MATCH ('str', 'reg_exp')

के बजाय तरह के द्वारा प्रयोग किया% सिंटैक्स का उपयोग, आप नियमित अभिव्यक्ति का उपयोग करना चाहिए (विस्तृत वाक्यविन्यास परिभाषा here)

+0

कृपया बड़ी मात्रा में कंटेनर स्ट्रिंग फ़ंक्शन के बारे में कुछ और बताएं। यह काम किस प्रकार करता है। –

4

नियमित रूप से अभिव्यक्ति से मेल खाने पर REGEXP_MATCH सत्य लौटाता है। नियमित अभिव्यक्तियों के बिना स्ट्रिंग मिलान के लिए, REGEXP_MATCH के बजाय CONTAINS का उपयोग करें।

https://developers.google.com/bigquery/docs/query-reference#stringfunctions

0

REGEXP_MATCH महान यदि आप जानते हैं कि यह कैसे उपयोग करने के लिए है, लेकिन जो लोग निश्चित नहीं हैं, के लिए इस तरह के रूप में किसी भी आमतौर पर इस्तेमाल किया विशेष वर्ण नहीं होगा '।', '$' या '? ' लुकअप स्ट्रिंग में, आप LEFT('str', numeric_expr) या RIGHT('str', numeric_expr) का उपयोग कर सकते हैं। यानी आप नामों की एक सूची था और सभी उन है कि कर रहे हैं की तरह 'सा%' आप उपयोग करेंगे देखना चाहता है, तो:

इसके अतिरिक्त (2 'सा' की लंबाई होती है)

select name from list where LEFT(name,2)='sa';,

select name from list where LEFT(name,LENGTH(column_with_lookup_strings))= column_with_lookup_strings;

: यदि आप जहां एक स्तंभ के मानों दूसरे की तरह हैं, तो आप LENGTH(column_with_lookup_strings) और =column_with_lookup_strings के लिए ='sa' के लिए 2 बाहर स्वैप कर सकता है, यह कुछ इस तरह देख छोड़ने कहना चाहता

संबंधित मुद्दे