SUBSTRING_INDEX()雪花中 MySQL 的確切重復功能是什么?
我SPLIT_PART()在 Snowflake 中找到,但這與SUBSTRING_INDEX().
例如
SUBSTRING_INDEX("www.abc.com", ".", 2);退貨www.abc
第二個分隔符之后的所有左側子串 '.'
但
SPLIT_PART("www.abc.com", ".", 2); 回傳 abc
它首先拆分,然后只回傳字串的拆分部分。
如何SUBSTRING_INDEX()在 Snowflake 中以與 MySQL 相同的方式使用
uj5u.com熱心網友回復:
使用 ARRAY 操作可以達到類似的效果:
SELECT s.c, ARRAY_TO_STRING(ARRAY_SLICE(STRTOK_TO_ARRAY(s.c, '.'), 0, 2), '.')
FROM (VALUES ('www.abc.com')) AS s(c);

它是如何作業的?
- STRTOK_TO_ARRAY - 從字串創建一個陣列
- ARRAY_SLICE - 取從 0 到 n 的部分
- ARRAY_TO_STRING - 使用 '.' 將陣列轉換回字串 作為分隔符
分步驟:
SELECT
s.c,
STRTOK_TO_ARRAY(s.c, '.') AS arr,
ARRAY_SLICE(arr, 0, 2) AS slice,
ARRAY_TO_STRING(slice, '.') AS result
FROM (VALUES ('www.abc.com')) AS s(c);

uj5u.com熱心網友回復:
您可以REGEXP_SUBSTR在這里使用:
SELECT REGEXP_SUBSTR('www.abc.com', '^[^.] \.[^.] ');
這是一個演示,顯示正則運算式模式按預期作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322920.html
上一篇:這個自內連接查詢是如何作業的?
