У меня есть таблица My_Values, в которой могут отсутствовать некоторые записи; под "отсутствующим" я подразумеваю содержание записи = ''.
Я хочу получить минимальное значение количества строк с одинаковым именем, но проблема в том, что если я использую это:
SELECT MIN(my_value) FROM My_Values WHERE name LIKE 'John'
Он возвращает ''
. (пустая строка? термин?)
Я знаю, что MIN () должен игнорировать NULL, но, похоже, не игнорирует ''. Как лучше всего написать запрос, чтобы он также игнорировал ''?
0
Chelonian
25 Июл 2012 в 23:59
1
Как насчет SELECT MIN (my_value) FROM My_Values WHERE name LIKE 'John' AND my_value! = ''?
– Michael
26 Июл 2012 в 00:06
Какой тип "my_value"?
– Dmitry B.
26 Июл 2012 в 00:06
Вот и все. Я действительно пробовал что-то подобное, но, должно быть, сделал ошибку и подумал, что есть что-то более сложное, что я упустил. Может, вы просто переместите свой комментарий к ответу, и я его приму?
– Chelonian
26 Июл 2012 в 00:22
My_value - это строковое представление продолжительности времени (например, "0: 00: 02: 173000")
– Chelonian
26 Июл 2012 в 00:24
Ваше число часов дополнено нулями? В противном случае у вас могут быть проблемы с сортировкой, и поэтому min () не всегда может возвращать правильное значение. Учтите, что «9: 00: 02: 173000» больше, чем «10: 00: 02: 173000».
– Dmitry B.
26 Июл 2012 в 01:11
1 ответ
Лучший ответ
Добавьте дополнительное условие в предложение WHERE
:
SELECT MIN(my_value) FROM My_Values WHERE name LIKE 'John' AND my_value != ''
3
Michael
26 Июл 2012 в 00:24
Похожие вопросы
Новые вопросы
sqlite
SQLite — это программная библиотека с открытым исходным кодом, которая реализует автономный, бессерверный, не требующий настройки транзакционный механизм базы данных SQL. SQLite — это наиболее распространенный в мире движок базы данных SQL.