我在配置单元中运行此查询

with missed_codes as (
SELECT col1, left(col1, 3) || '.' || substr(col1, 4) as col2 FROM "table"
)
select * from missed_codes 

我得到了这个错误:

Error while compiling statement: FAILED: ParseException line 1:7 cannot recognize input near 'LEFT' '(' 'col1' in select clause

输入列:

col1 
A018
B672

预期输出:

col1   col2
A018   A01.8
B672   B67.2

我不明白这个查询有什么问题.如有任何帮助,不胜感激

推荐答案

配置单元没有Left()或Right()函数.您可以很容易地将它们替换为substr().

这相当于left(col1, 3):

substr(col1, 1, 3) --arguments are: input string, start position, number of characters

整句话:

with missed_codes as (
SELECT col1, substr(col1, 1, 3) || '.' || substr(col1, 4) as col2 FROM "table"
)
select * from missed_codes

此外,较旧版本的配置单元没有||运算符,使用concat(str1, str2, str3, ... strN)

Sql相关问答推荐

获取每个帖子的匹配关键字列表

更新在两个或多个面中具有交点的面

在多个柱上连接时,如何确定连接条件?

Select 起始参数和截止参数之间的间隔,包括与期间重叠的参数

SQL Oracle条件分组依据

如何更新SQLite数据库中的表?

从依赖于其他表的值的XREF表中的值分组获得正确的计数?

有没有办法在Postgres中存储带有时区的时间戳,而不将其转换为UTC

冲突查询的UPDATE时违反非空约束

重用传递给 node 的参数-postgres upsert查询

在PostgreSQL中汇总连接表中的 case 值

TSQL如何为群分配号码

Snowflake 中的分层数据

将具有嵌套 XML 的列转换为 SQL 中的表格格式?

如何在 SQL 中将两行(或多行)jsonb 数组合并为一行

如何使用 join 和 where 子句从另一表中仅删除一个表中的值

在自引用表中使用分组和计数的SQL查询语句

joins 组合多个重复数据删除策略

SQL 计数和过滤查询优化

在 Snowflake SQL 中计算通货inflating 率