Input: “J\u2019adore coder, surtout cr\u00e9er des fonctions.
Output: J’adore coder, surtout créer des fonctions.
A function that splits the string
CREATEORREPLACEFUNCTIONproject.dataset.alpha_sort(input_stringSTRING,separatorSTRING)RETURNSSTRINGLANGUAGEjsAS""" if (input_string === null || input_string === '') { return ''; } // Split the input string by the provided separator let splitArray = input_string.split(separator); // Trim any extra spaces around the items and sort alphabetically let sortedArray = splitArray.map(item => item.trim()).sort(); // Join the sorted array back into a string using the provided separator return sortedArray.join(separator);""";
Input: 'banana|apple|cherry' and separator: '|'
Output: 'apple|banana|cherry'
Number of days without weekends
CREATEORREPLACEFUNCTIONproject.dataset.unicode_to_fr(xSTRING)RETURNSint64AS(DATE_DIFF(date(end_date),date(start_date),day)+1)-(DATE_DIFF(date(end_date),date(start_date),week)*2)--minus weekends-(CASEWHENFORMAT_DATE('%A',start_date)='Sunday'THEN1ELSE0END)--in case beginning or ending are weekends-(CASEWHENFORMAT_DATE('%A',end_date)='Saturday'THEN1ELSE0END));
Input: start_date = '2024-10-08' (Tuesday), end_date = '2024-10-14' (Monday)
Output: Weekdays: 5 (Tuesday to Monday, excluding the weekend)
Number of days without weekends AND holidays
CREATEORREPLACEFUNCTIONproject.dataset.nb_days_without_weekends_and_holidays(start_datetimestamp,end_datetimestamp,holiday_countrystring)returnsint64as(-- Subquery to calculate the working days(SELECT`project.dataset.nb_days_without_weekends`(start_date,end_date)-COALESCE(COUNT(holiday_date),0)-- Handle cases with no holidaysFROM(-- Subquery to select holidaysSELECTholiday_dateFROM`dataset_of_public_holidays`WHEREdate(holiday_date)BETWEENdate(start_date)ANDdate(end_date)ANDcountry=holiday_countryANDEXTRACT(DAYOFWEEKFROMholiday_date)NOTIN(1,7)-- Exclude weekendsANDis_solidarity_dayISNULL)ASholidays))
Input:start_date = '2024-11-10 00:00:00' (Sunday),end_date = '2024-11-15 23:59:59' (Friday),holiday_country = 'FR'
Output: Working Days: 5 (Monday to Friday, assuming November 11 (Armistice Day) is a holiday)