BigQuery中的CHAR()或ASCII()函数?

时间:2016-05-30 11:17:47

标签: google-bigquery

BigQuery中有这个版本吗?

基本上我需要一个BASE64字母并将其一致地转换为数值(对于BASE64索引或ASCII - 对我没有区别。)

到目前为止,我发明了2个选项: - 使用UDF - 加入一个包含所有64个字母和索引的表。

但这两个解决方案看起来有点过于复杂。还有更好的办法吗?

2 个答案:

答案 0 :(得分:4)

使用BigQuery将字母转换为ASCII的另一个选项:

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)  

答案 1 :(得分:0)

相当于BigQuery中的ASCII函数,但您需要从select to_code_points(substr(x, 1, 1))[offset(0)] 构建它:

to_code_points

ASCII()将字符串的字符集值作为数组返回。这个构造获取字符串的第一个字符,获取数组中的值,然后返回数组中的第一个值 - Voila! v0.24.3