我需要根据geography类型的列过滤bigquery表。我试过下面的问题 SELECT * FROM bigqueryproject1-279667.mycreatedataset1.newTabelwithAllDatatype where location = ST_GEOGPOINT(-6, 6)
但这表明没有为geography类型的参数定义验证错误相等。如果我用like操作符回复'=',我会得到一条消息,说明like只适用于字符串和字节。我参考了这个文件,但不知道如何有过滤器。
2条答案
按热度按时间yacmzcpb1#
我想你想要这样的东西:
tzxcd3kk2#
对于地理,没有定义相等运算符。
你可以用
ST_Equals
,就像ST_Equals(location, ST_GEOGPOINT(-6, 6))
如果您真的只希望地理值(几乎)正好等于这一点的行。更多情况下,您会希望根据其他条件进行过滤,例如与特定点的交点,使用
ST_Intersects(location, ST_GEOGPOINT(-6, 6))
或者在离某个点有一定距离的情况下,使用ST_DWithin(location, ST_GEOGPOINT(-6, 6), 100)
最后一个参数是以米为单位的距离。