diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-04-20 12:13:15 +0200 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-04-20 12:37:11 +0200 |
| commit | 8861981a2caf0b7f8f217ad82a53e969a8e6970c (patch) | |
| tree | 65cfee33dea1d2d9cd5360ca9e2924e47af1d595 | |
| parent | 232cb84b704d4cf898156d5da68c4ae3b45bccfe (diff) | |
| download | perlweeklychallenge-club-8861981a2caf0b7f8f217ad82a53e969a8e6970c.tar.gz perlweeklychallenge-club-8861981a2caf0b7f8f217ad82a53e969a8e6970c.tar.bz2 perlweeklychallenge-club-8861981a2caf0b7f8f217ad82a53e969a8e6970c.zip | |
Task done in plpgsql
| -rw-r--r-- | challenge-161/luca-ferrari/postgresql/ch-2.sql | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/challenge-161/luca-ferrari/postgresql/ch-2.sql b/challenge-161/luca-ferrari/postgresql/ch-2.sql new file mode 100644 index 0000000000..4360066c00 --- /dev/null +++ b/challenge-161/luca-ferrari/postgresql/ch-2.sql @@ -0,0 +1,43 @@ +-- Perl Weekly Challenge 161 + + +CREATE SCHEMA IF NOT EXISTS pwc161; + +CREATE OR REPLACE FUNCTION +pwc161.pangrams_plpgsql() +RETURNS SETOF TEXT +AS $CODE$ +DECLARE + start_letter int; + end_letter int; + letter char; + current_word pwc161.dictionary%rowtype; + found_words text; +BEGIN + start_letter := ascii( 'a' ); + end_letter := ascii( 'z' ); + FOR l IN start_letter .. end_letter LOOP + letter := chr( l ); + + IF found_words LIKE '%' || letter || '%' THEN + CONTINUE; + END IF; + + SELECT word + INTO current_word + FROM pwc161.dictionary + WHERE word like '%' || letter || '%' + ORDER BY RANDOM() + LIMIT 1; + + + + found_words := found_words || ' ' || current_word; + RETURN NEXT current_word.word; + + END LOOP; + +RETURN; +END +$CODE$ +LANGUAGE plpgsql; |
