SQL КАК условие проверить на целое число?

Это должно дать Вам, что Вы хотите. Вы определенно захотите x объекты, разделенные на y объекты на страницу, проблема состоит в том, когда неровные числа подходят, поэтому если существует частичная страница, мы также хотим добавить одну страницу.

int x = number_of_items;
int y = items_per_page;

// with out library
int pages = x/y + (x % y > 0 ? 1 : 0)

// with library
int pages = (int)Math.Ceiling((double)x / (double)y);
63
задан Wayne Koorts 6 July 2012 в 10:11
поделиться

4 ответа

Это выберет (с помощью регулярного выражения) каждую книгу, название которой начинается с номера, это то, что вы хотите?

SELECT * FROM books WHERE title ~ '^[0-9]'

если хотите целые числа, которые начинаются с определенных цифр, вы можете использовать:

SELECT * FROM books WHERE CAST(price AS TEXT) LIKE '123%'

или использовать (если все ваши числа имеют одинаковое количество цифр (тогда было бы полезно ограничение))

SELECT * FROM books WHERE price BETWEEN 123000 AND 123999;
132
ответ дан 24 November 2019 в 16:12
поделиться

Какой из них индексируется?

Это определенно btree-indexable:

WHERE title >= '0' AND title < ':'

Обратите внимание, что ':' идет после '9' в ASCII.

0
ответ дан 24 November 2019 в 16:12
поделиться

PostgreSQL поддерживает сопоставление регулярных выражений .

Итак, ваш пример будет выглядеть так:

SELECT * FROM books WHERE title ~ '^\d+ ?' 

Это будет соответствовать заголовку, начинающемуся с одной или нескольких цифр и необязательного пробела

16
ответ дан 24 November 2019 в 16:12
поделиться

Предполагая, что вы ищете «числа, начинающиеся с 7», а не «строки, начинающиеся с 7», возможно, что-то вроде

select * from books where convert(char(32), book_id) like '7%'

или что-то вроде того, что эквивалентно преобразованию Postgres. 1119516]

1
ответ дан 24 November 2019 в 16:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: