我有以下SQL代码:
SELECT LTRIM("0039040123456","0039")
结果应为040123456
,但BigQuery返回40123456
。
为什么还要修剪0
?
错误或预期的行为?
非常感谢!
答案 0 :(得分:1)
尝试一下:
SELECT LTRIM("0039p40123456","p039")
40123456
它也删除了p
!
那是因为:
如果value2包含多个字符或字节,该函数将删除value2中包含的所有前导或尾随字符或字节。
(因此它查看的是字符列表,而不是字符序列)
您真正想要的是:
SELECT REGEXP_REPLACE("0039040123456","^0039","")
答案 1 :(得分:0)
列类型为STRING。看了文档https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators?hl=de#ltrim之后,我猜想这是故意的。 (看看水果示例。)