Sql 如何在配置单元中将带有附加字的两个字符串连接到列值

Sql 如何在配置单元中将带有附加字的两个字符串连接到列值,sql,hadoop,hive,concatenation,hiveql,Sql,Hadoop,Hive,Concatenation,Hiveql,我正在尝试使用concat和concat_ws函数concat两个列。除了包含两列之外,我还想在这个包含中添加一个单词。所以我试着用下面的方法来实现 SELECT CONCAT(CONCAT("SRID=4326;POINT(", CONCAT_WS(" ",cast(A.longitude as string),cast(A.latitude as string))), ")") as the_geom FROM test 使用上

我正在尝试使用concat和concat_ws函数concat两个列。除了包含两列之外,我还想在这个包含中添加一个单词。所以我试着用下面的方法来实现

SELECT CONCAT(CONCAT("SRID=4326;POINT(", CONCAT_WS(" ",cast(A.longitude as string),cast(A.latitude as string))), ")") as the_geom 
FROM test
使用上述语法,我得到以下错误

**org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 1:13 cannot recognize input near 'CONCAT' '(' 'CONCAT' in expression specification**
我不知道在上述语法中我做错了什么。是否有其他方法来实现这一点

预期结果:
SRID=4326;点(127.155104 35.8091378)


我尝试了使用concat和concat_ws的所有方法,但都遇到了语法问题。

问题是分号,它破坏了查询。尝试将分号替换为
\073
,也可以使用双反斜杠
\

而且似乎一杯海螺就足够了

使用
\073
进行演示:

with test as (
select 12134.12345 as longitude, 12134.12345 as latitude
)

SELECT CONCAT("SRID=4326\073POINT(", 
               CONCAT_WS(" ",cast(A.longitude as string),cast(A.latitude as string))
               , ")"
             ) as the_geom 
FROM test A
结果:

SRID=4326;POINT(12134.12345 12134.12345)

问题是分号,它打断了查询。尝试将分号替换为
\073
,也可以使用双反斜杠
\

而且似乎一杯海螺就足够了

使用
\073
进行演示:

with test as (
select 12134.12345 as longitude, 12134.12345 as latitude
)

SELECT CONCAT("SRID=4326\073POINT(", 
               CONCAT_WS(" ",cast(A.longitude as string),cast(A.latitude as string))
               , ")"
             ) as the_geom 
FROM test A
结果:

SRID=4326;POINT(12134.12345 12134.12345)

预计会有一个。选择CONCAT(CONCAT(CONCAT(“SRID=4326;POINT(“,CONCAT_WS(“,cast(A.经度为字符串),cast(A.纬度为字符串))),”)作为Test的_geom感谢您的响应。在添加了一个concat之后,我也得到了相同的错误,即,.org.apache.hive.service.cli.HiveSQLException:编译语句时出错:失败:ParseException行1:13无法识别“concat”附近的输入(表达式规范中的“concat”应为一个concat)。选择concat(CONCAT(CONCAT(“SRID=4326;点(“,CONCAT_-WS(“,强制转换(A.经度为字符串),强制转换(A.纬度为字符串)),”)作为Test的_geom感谢您的响应。在添加了一个concat之后,我也得到了相同的错误,即,.org.apache.hive.service.cli.HiveSQLException:编译语句时出错:失败:ParseException行1:13无法识别“concat”附近的输入(表达式规范LeftJoin中的“concat”,谢谢:-)是的,分号是问题所在。1.使用你的分号解决方案,我能够获得所需的输出。2.只有\073对分号有效。3.当我尝试使用\\;时,它也抛出了相同的错误。@Jayasree在一些工具
\\;
中工作得很好。在Qubole吉他中测试过这可能是原因。现在知道了。当我使用\073在简单的select语句中,它可以工作,但当我在中使用此select语句时,使用INSERT语句将数据插入到新表中,则\073仅作为073。我是否可以知道发生这种情况的原因?以及如何克服该错误?@LeftJoin要使分号与INSERT语句一起工作,我们应该指定分号n as\u003B以及concat。它对我有效。leftjoin,谢谢:-)是的,分号是问题所在。1.使用你的分号解决方案,我能够获得所需的输出。2.只有\073对分号有效。3.当我尝试使用\\;时,它也抛出了相同的错误。@Jayasree在一些工具
\\;
中工作得很好。在Qubole吉他中测试过这可能是原因。现在知道了。当我使用\073在简单的select语句中,它可以工作,但当我在中使用此select语句时,使用INSERT语句将数据插入到新表中,则\073仅作为073。我是否可以知道发生这种情况的原因?以及如何克服该错误?@LeftJoin要使分号与INSERT语句一起工作,我们应该指定分号n作为\u003B和concat。它对我有效。