BigQuery如何基于位置截取字符串(丢弃右侧指定数量字符)
解决方案:BigQuery中基于位置截取并丢弃右侧指定字符的子串
针对需要从字符串右侧丢弃固定数量字符的需求,无需使用正则,可结合**CHAR_LENGTH()函数获取字符串长度,再通过SUBSTR()或LEFT()**实现基于位置的截取。
用你提供的示例数据,实现代码如下:
WITH items AS (SELECT 'apple' as item UNION ALL SELECT 'banana' as item UNION ALL SELECT 'orange' as item) SELECT SUBSTR(item, 1, CHAR_LENGTH(item) - 2) AS example FROM items;
也可以用LEFT()函数实现,效果完全一致:
WITH items AS (SELECT 'apple' as item UNION ALL SELECT 'banana' as item UNION ALL SELECT 'orange' as item) SELECT LEFT(item, CHAR_LENGTH(item) - 2) AS example FROM items;
执行后会输出你期望的结果:
+---------+ | example | +---------+ | app | | bana | | oran | +---------+
原理很直接:先通过CHAR_LENGTH(item)获取每个字符串的总长度,减去要丢弃的右侧字符数(此处为2),再用SUBSTR从第1位开始截取到计算后的长度,或是直接用LEFT截取对应长度的字符,就能实现从右侧丢弃指定数量字符的效果。
内容的提问来源于stack exchange,提问作者raven
相关产品推荐
相关产品推荐

