Created
April 30, 2019 22:09
-
-
Save JoaoCarabetta/d662f0ae18073003575fb39f8f6ad3f9 to your computer and use it in GitHub Desktop.
Take out all accents a string in bigquery
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| CREATE TEMP FUNCTION accent2latin(word STRING) AS | |
| (( | |
| WITH lookups AS ( | |
| SELECT | |
| 'ã,ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,ø,Ø,Å,Á,À,Â,Ä,È,É,Ê,Ë,Í,Î,Ï,Ì,Ò,Ó,Ô,Ö,Ú,Ù,Û,Ü,Ÿ,Ç,Æ,Œ,ñ' AS accents, | |
| 'a,c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,o,O,A,A,A,A,A,E,E,E,E,I,I,I,I,O,O,O,O,U,U,U,U,Y,C,AE,OE,n' AS latins | |
| ), | |
| pairs AS ( | |
| SELECT accent, latin FROM lookups, | |
| UNNEST(SPLIT(accents)) AS accent WITH OFFSET AS p1, | |
| UNNEST(SPLIT(latins)) AS latin WITH OFFSET AS p2 | |
| WHERE p1 = p2 | |
| ) | |
| SELECT STRING_AGG(IFNULL(latin, char), '') | |
| FROM UNNEST(SPLIT(word, '')) char | |
| LEFT JOIN pairs | |
| ON char = accent | |
| )); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment