Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/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 Bigquery-如何将浮点转换为不带向上/向下取整的字符串?_Google Bigquery - Fatal编程技术网

Google bigquery Bigquery-如何将浮点转换为不带向上/向下取整的字符串?

Google bigquery Bigquery-如何将浮点转换为不带向上/向下取整的字符串?,google-bigquery,Google Bigquery,基本上我有一批GPS坐标lat和long,我想有一个格式为lat的字符串;长的我所做的是: CONCAT(CAST(Latitude AS STRING),";", CAST(Longitude AS STRING)) 但是遇到了一个问题,坐标是由CAST STRING进行四舍五入的,并且做了同样的事情。例如,通过选择CAST45.3618927作为字符串,我将得到45.3619。如何防止这种舍入 注意:我知道标准SQL中的SAFE_CAST可以满足我的需求,但由于其他原因,我不得不使用遗留方

基本上我有一批GPS坐标lat和long,我想有一个格式为lat的字符串;长的我所做的是:

CONCAT(CAST(Latitude AS STRING),";", CAST(Longitude AS STRING))
但是遇到了一个问题,坐标是由CAST STRING进行四舍五入的,并且做了同样的事情。例如,通过选择CAST45.3618927作为字符串,我将得到45.3619。如何防止这种舍入

注意:我知道标准SQL中的SAFE_CAST可以满足我的需求,但由于其他原因,我不得不使用遗留方言。

legacySQL 选择CONCAT RTRIMConcataleftlat温度,横向位置-1',次级温度,横向位置“0”, ';', RTRIMCONCATLEFTlon温度,lon位置-1',SUBSTRlon温度,lon位置'0' 就像拉图隆一样 从…起 选择 INSTRSTRINGlat*1000000,'.-6作为横向位置, 替换StringLat*1000000,“.”,作为lat_temp, INSTRSTRINGlon*1000000,'.-6作为lon_pos, 替换为lon_temp的stringlon*1000000'” 从…起 选择34.052235作为lat,选择-118.243683作为lon作为您的表格 当然看起来很难看,但正如你所说的——出于某种原因,你想坚持使用遗留SQL 否则,请参见下面的标准SQL版本

标准SQL 以你的桌子为例 选择34.052235作为lat,选择-118.243683作为lon 选择CONCATCASTlat作为字符串,;,卡斯特隆和拉特隆一样是弦 从你的桌子上 遗留SQL的另一个不那么难看的版本是使用

legacySQL 选择lat、lon、lat_-lon 来自JS -输入表 从中选择lat、lon 选择34.052235作为lat,选择-118.243683作为lon作为您的表格 , -输入变量 拉特,朗, -输出模式 [ {name:'lat_lon',键入:'STRING'}, {name:'lat',type:'FLOAT'}, {name:'lon',type:'FLOAT'} ], -功能 函数行,发射{ 散发{ lat_lon:row.lat.toString.concat';'。concatrow.lon.toString, lat:row.lat, 朗:罗,朗 } } 最后,如果你碰巧决定迁移到,多亏了Elliott对此的评论,使用使生活更加轻松

标准SQL 选择格式“%t;”t',lat,lon作为lat_lon 从…起 选择34.052235作为lat,选择-118.243683作为lon作为您的表格 legacySQL 选择CONCAT RTRIMConcataleftlat温度,横向位置-1',次级温度,横向位置“0”, ';', RTRIMCONCATLEFTlon温度,lon位置-1',SUBSTRlon温度,lon位置'0' 就像拉图隆一样 从…起 选择 INSTRSTRINGlat*1000000,'.-6作为横向位置, 替换StringLat*1000000,“.”,作为lat_temp, INSTRSTRINGlon*1000000,'.-6作为lon_pos, 替换为lon_temp的stringlon*1000000'” 从…起 选择34.052235作为lat,选择-118.243683作为lon作为您的表格 当然看起来很难看,但正如你所说的——出于某种原因,你想坚持使用遗留SQL 否则,请参见下面的标准SQL版本

标准SQL 以你的桌子为例 选择34.052235作为lat,选择-118.243683作为lon 选择CONCATCASTlat作为字符串,;,卡斯特隆和拉特隆一样是弦 从你的桌子上 遗留SQL的另一个不那么难看的版本是使用

legacySQL 选择lat、lon、lat_-lon 来自JS -输入表 从中选择lat、lon 选择34.052235作为lat,选择-118.243683作为lon作为您的表格 , -输入变量 拉特,朗, -输出模式 [ {name:'lat_lon',键入:'STRING'}, {name:'lat',type:'FLOAT'}, {name:'lon',type:'FLOAT'} ], -功能 函数行,发射{ 散发{ lat_lon:row.lat.toString.concat';'。concatrow.lon.toString, lat:row.lat, 朗:罗,朗 } } 最后,如果你碰巧决定迁移到,多亏了Elliott对此的评论,使用使生活更加轻松

标准SQL 选择格式“%t;”t',lat,lon作为lat_lon 从…起 选择34.052235作为lat,选择-118.243683作为lon作为您的表格
这个例子在标准SQL中工作得非常好!没有任何舍入。到底是什么让您一直使用遗留SQL?这个例子在标准SQL中非常有效!没有任何舍入。到底是什么让您保留了旧式SQL?另一个根本不需要强制转换的选项是使用格式。例如,选择格式“%t;”t',lat,lon作为你桌子上的lat_lon;OP需要旧版SQL。我特意使用了他自己的示例作为标准SQL的替代。如果要真正使用标准SQL,使用的格式要性感得多:o@MikhailBerlyant@@在阅读答案时,我觉得我几乎想更努力地学习标准方言。。。坚持使用legacy的原因是我不知道STRING_AGG是否能与ORDER BY一起工作。看看Mosha Pasumasky在哪里提供了答案。我现在就去试穿一下,以备不时之需。谢谢大家!当然我在对这个问题的评论中也回答了你的问题。我刚刚更新了我的答案。如果它有帮助-请考虑投票,并接受另一个选择,根本不需要铸造是使用格式。例如,选择格式“%t;”t',lat,lon作为你桌子上的lat_lon;OP需要旧版SQL。我特意使用了他自己的示例作为标准SQL的替代。如果真的去w
ith标准SQL使用格式更性感:o@MikhailBerlyant@@在阅读答案时,我觉得我几乎想更努力地学习标准方言。。。坚持使用legacy的原因是我不知道STRING_AGG是否能与ORDER BY一起工作。看看Mosha Pasumasky在哪里提供了答案。我现在就去试穿一下,以备不时之需。谢谢大家!当然我在对这个问题的评论中也回答了你的问题。我刚刚更新了我的答案。如果它有帮助-请考虑投票和接受