Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Фильтрация запроса с числовым полем  [new]
laifik
Member

Откуда:
Сообщений: 190
Есть запрос с числовым полем типа float Pole1. По нему нужно отфильтровать записи, начинающиеся, например, с цифры 14.
Чтобы это осуществить, в тексте запроса создаю дополнительное поле как STR(Pole1) As str_Pole. Далее фильтрую с помощью LIKE. Почему-то не работает.
Текст запроса примерно такой:
автор
SELECT *, STR(Pole1) As str_Pole
FROM Table1
WHERE (STR(Pole1)=STR(14548))

В таком варианте запрос работает и находит строку с таким значением Pole1.
Второй пример запроса:
автор
SELECT *, STR(Pole1) As str_Pole
FROM Table1
WHERE (STR(Pole1) LIKE’14%’)

- не находится ничего. Результат – пустая строка.
Какой здесь есть нюанс ?
18 июн 13, 19:24    [14450143]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация запроса с числовым полем  [new]
Glory
Member

Откуда:
Сообщений: 104760
Зачем так сложно ?

declare @x table (f1 real)
insert @x values(14.5)
insert @x values(24.1)

select * from @x
select * from @x where f1 like '14%'
18 июн 13, 19:28    [14450151]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация запроса с числовым полем  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
laifik,

во-первых, я Вас удивлю: "14" это не цифра, а две цифры.
Во-вторых, посмотрели, что возвращает функция STR()?
Обычно строку с лидирующими пробелами.
Вообще-то, у неё есть ещё два параметра.
18 июн 13, 19:29    [14450155]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация запроса с числовым полем  [new]
Glory
Member

Откуда:
Сообщений: 104760
laifik
Какой здесь есть нюанс ?

Для ответа достаночно запустить

select str(f1) from @x
18 июн 13, 19:29    [14450156]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация запроса с числовым полем  [new]
laifik
Member

Откуда:
Сообщений: 190
Спасибо. Попробую посмотреть...
18 июн 13, 19:51    [14450198]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация запроса с числовым полем  [new]
laifik
Member

Откуда:
Сообщений: 190
Сложно пошла, потому что сначала стала использовать filter и filtered с помощью like. Но like используется лишь для текстовых полей или я не права?
18 июн 13, 19:55    [14450204]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация запроса с числовым полем  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
laifik
Сложно пошла, потому что сначала стала использовать filter и filtered с помощью like. Но like используется лишь для текстовых полей или я не права?
Да, для текстовых.
Но другие типы могут приводиться к текстовым неявно согласно приоритетам типов данных
18 июн 13, 21:09    [14450495]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация запроса с числовым полем  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
laifik
filter и filtered
Это в форум по Дельфи.
К серверу отношения не имеют.
18 июн 13, 21:11    [14450505]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить