Добавьте поддержку сжатых файлов через волшебный ARGV:
s{
^ # make sure to get whole filename
(
[^'] + # at least one non-quote
\. # extension dot
(?: # now either suffix
gz
| Z
)
)
\z # through the end
}{gzcat '$1' |}xs for @ARGV;
(кавычки вокруг $ _ необходимый для обработки имен файлов с метасимволами оболочки в)
Теперь <>
функция распакует любой @ARGV
файлы, которые заканчиваются ".gz" или ".Z":
while (<>) {
print;
}
В документации SQLite Datatypes обсуждаются определяемые пользователем последовательности сопоставления. В частности, вы используете COLLATE NOCASE для достижения своей цели.
Они приводят пример:
CREATE TABLE t1(
a, -- default collation type BINARY
b COLLATE BINARY, -- default collation type BINARY
c COLLATE REVERSE, -- default collation type REVERSE
d COLLATE NOCASE -- default collation type NOCASE
);
и отмечают, что:
- Группировка выполняется с использованием последовательности сортировки NOCASE (т.е. значения - «abc» и «ABC» помещаются в одну группу). ВЫБРАТЬ Счетчик (*) ГРУППА ПО d ИЗ t1;
select * from tableNames Order by lower(Name);
Михаэль ван дер Вестхуизен в своем комментарии ниже объясняет, почему это не лучший способ. Я оставляю этот ответ, чтобы сохранить его комментарий и послужить предупреждением для других, у которых может быть такая же «блестящая» идея, которая была у меня; -)
Для сортировки без учета регистра вы можете использовать ORDER BY Name COLLATE NOCASE