google-bigquery - Big Query 中的正确案例
问题描述
我在 Big Query 的“香蕉”列中有这句话“我想买香蕉”。
我想得到“我想买香蕉”。我该怎么做?当我看到 LOWER 和 UPPER 时,我期待 PROPER(Bananas) 功能,但似乎不支持 PROPER 大小写?
DZ
解决方案
2020 年 10 月更新:
BigQuery 现在支持INITCAP函数 - 该函数接受一个 STRING 并将其返回,其中每个单词中的第一个字符为大写,所有其他字符为小写。非字母字符保持不变。
因此,不再需要以下类型的花式 UDF - 而您只需使用
#standradSQL
SELECT str, INITCAP(str) proper_str
FROM `project.dataset.table`
——~~~~~~~~~~~~~~~~~~
以下示例适用于 BigQuery Standrad SQL
#standradSQL
CREATE TEMP FUNCTION PROPER(str STRING) AS ((
SELECT STRING_AGG(CONCAT(UPPER(SUBSTR(w,1,1)), LOWER(SUBSTR(w,2))), ' ' ORDER BY pos)
FROM UNNEST(SPLIT(str, ' ')) w WITH OFFSET pos
));
WITH `project.dataset.table` AS (
SELECT 'i Want to buy bananas' str
)
SELECT str, PROPER(str) proper_str
FROM `project.dataset.table`
结果是
Row str proper_str
1 i Want to buy bananas I Want To Buy Bananas
推荐阅读
- oauth - Oauth 授权码 PKCE:如何在 SPA 中保持上下文超出 302 重定向?
- android - 为什么复选框矩形远小于包含它的容器?
- c - 正确释放内存
- list - 在机器人框架中合并 2 个列表
- java - 如何将此 SQL(或类似)转换为 Criteria JPA
- mongodb - MongoDB 聚合返回平均值仅当日期键大于 PyMongo 中的特定日期时
- python-3.x - 当我添加 url 子路径级别(即商店/购物车)时,Flask 会“丢失”静态文件夹。它路由到购物车页面,但找不到我的 CSS、JS 等
- c# - 为 C# library/dll 中的类型创建公共别名
- javascript - Javascript - 没有重复字符的最长子字符串时间复杂度?
- three.js - 三.JS r97 问题 GL ERROR :GL_INVALID_OPERATION : glDrawElements: 尝试访问属性 2 中超出范围的顶点