BigQuery中有這個版本嗎?BigQuery中的CHAR()或ASCII()函數?
基本上我需要一個BASE64字母並將其轉換爲一個數值(對於BASE64索引或ASCII碼 - 對我來說沒有區別)。
到目前爲止,我發明了2個選項: - 使用UDF - 與所有64個字母和索引聯接表。
但是這兩種解決方案對於任務看起來都有些複雜。有沒有更好的方法?
BigQuery中有這個版本嗎?BigQuery中的CHAR()或ASCII()函數?
基本上我需要一個BASE64字母並將其轉換爲一個數值(對於BASE64索引或ASCII碼 - 對我來說沒有區別)。
到目前爲止,我發明了2個選項: - 使用UDF - 與所有64個字母和索引聯接表。
但是這兩種解決方案對於任務看起來都有些複雜。有沒有更好的方法?
另一種選擇,以字母轉換爲其ASCII與BigQuery:
SELECT
char,
INSTR('@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz', char)
+ 63 AS ascii
FROM
(SELECT 'A' AS char),
(SELECT 'H' AS char),
(SELECT 'a' AS char),
(SELECT 'h' AS char)
哇,這太棒了!非常感謝你!我試圖將「用戶」隨機分成兩組或更多組。用戶標識符是唯一的,但不是真正的隨機,所以我想先做SHA1(user_id),然後取第一個字母,轉換爲數字,並採取模2。當然可以使用HASH(),但我需要做同樣的一個不同的地方(和紅寶石),我不能得到同樣的CityHash結果那裏,也讀這裏一致性不能保證 - http://stackoverflow.com/questions/13861380/consistency-of-hash-function –
很高興它幫助:o) –
有是 BigQuery中的一個ASCII功能相當,但你需要從to_code_points()
構造它:
select to_code_points(substr(x, 1, 1))[offset(0)]
to_code_points
將字符串的字符集值作爲數組返回。該構造採用字符串的第一個字符,獲取數組中的值,然後返回數組中的第一個值 - 瞧! ASCII()
。
你能炫耀你的'發明'嗎?所以它更清楚你想要達到的目標。也很高興看到你爲什麼需要這個 - 總有一種方法可以簡化事情! –