如何处理 where 语句中 DATE 类型列中的 NULL 值
how to handle NULL values in DATE type column on where statement
我 运行 下面 Python 到 Google BigQuery 中的 SQL 但是我得到了错误 BadRequest: 400 Could not cast literal "" to type DATE
我想检查 cv_date 列中与 luid 同一行的数据是否存在,如果存在,则 return 为真。 cv_date 列是 DATE 类型。我试过使用 cv_date IS NOT NULL
但没有用。任何人有想法??或者我需要改变这个 SQL ??
的逻辑
from flask import Flask, request
from google.cloud import bigquery
app = Flask(__name__)
@app.route('/')
def get_request():
request_luid = request.args.get('luid') or ''
client = bigquery.Client()
query = """SELECT EXISTS(
SELECT 1
FROM `test-266778.conversion_log.conversion_log_2020*` as p
WHERE p.luid = '{}'
AND p.cv_date != '' limit 1000)""".format(request_luid)
job_config = bigquery.QueryJobConfig(
query_parameters=[
bigquery.ScalarQueryParameter("request_luid", "STRING", request_luid)
]
)
query_job = client.query(query)
query_res = query_job.result()
for row in query_res:
return str(row[0])
if __name__ == "__main__":
app.run()
如果我没记错的话,您想检查具有特定 luid 的每一行的 Date 列是否存在。
继续我的 public bigquery 数据示例,我相信您想要类似于以下内容的内容:
SELECT load_id,report_date IS NOT NULL as date
FROM `bigquery-public-data.austin_waste.waste_and_diversion` as p
limit 1000
对于特定的流体,在您的情况下类似于
"""SELECT luid,cv_date IS NOT NULL as date
FROM `<project-id>.conversion_log.conversion_log_2020*` as p
where p.luid = '{}'
limit 1000""".format(request_luid)
我 运行 下面 Python 到 Google BigQuery 中的 SQL 但是我得到了错误 BadRequest: 400 Could not cast literal "" to type DATE
我想检查 cv_date 列中与 luid 同一行的数据是否存在,如果存在,则 return 为真。 cv_date 列是 DATE 类型。我试过使用 cv_date IS NOT NULL
但没有用。任何人有想法??或者我需要改变这个 SQL ??
from flask import Flask, request
from google.cloud import bigquery
app = Flask(__name__)
@app.route('/')
def get_request():
request_luid = request.args.get('luid') or ''
client = bigquery.Client()
query = """SELECT EXISTS(
SELECT 1
FROM `test-266778.conversion_log.conversion_log_2020*` as p
WHERE p.luid = '{}'
AND p.cv_date != '' limit 1000)""".format(request_luid)
job_config = bigquery.QueryJobConfig(
query_parameters=[
bigquery.ScalarQueryParameter("request_luid", "STRING", request_luid)
]
)
query_job = client.query(query)
query_res = query_job.result()
for row in query_res:
return str(row[0])
if __name__ == "__main__":
app.run()
如果我没记错的话,您想检查具有特定 luid 的每一行的 Date 列是否存在。
继续我的 public bigquery 数据示例,我相信您想要类似于以下内容的内容:
SELECT load_id,report_date IS NOT NULL as date
FROM `bigquery-public-data.austin_waste.waste_and_diversion` as p
limit 1000
对于特定的流体,在您的情况下类似于
"""SELECT luid,cv_date IS NOT NULL as date
FROM `<project-id>.conversion_log.conversion_log_2020*` as p
where p.luid = '{}'
limit 1000""".format(request_luid)