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

Откуда:
Сообщений: 31
Здравствуйте!
Нужно сделать выборку по текстовому полю, но нужны только значения с начальной частью текста.
Пример:
ID Text
1 Привет 1
2 Привет 2
3 Пока
4 Привет 3

Если сделать запрос таким образом: select * from NameTable where Text='Привет'
то не выдастся ни одного значения. Вопрос: Как доработать запрос чтобы выдалось 1,2 и 4 значение?
Заранее спасибо.
27 окт 09, 16:25    [7845520]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Lida_Vol,

BOL -> LIKE
27 окт 09, 16:26    [7845527]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
doyouknowme
Member

Откуда: Московская область
Сообщений: 9
Lida_Vol,

like
27 окт 09, 16:26    [7845528]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
like
27 окт 09, 16:26    [7845530]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
Lida_Vol
Member

Откуда:
Сообщений: 31
Никак немогу разобраться со знаками вокруг текста. Делаю так:
select * from NameTable where Text like 'Привет'
но ничего не выдает.
27 окт 09, 16:49    [7845673]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
Konst_One
Member

Откуда:
Сообщений: 11513
like 'Привет%'
27 окт 09, 16:50    [7845682]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
Saller
Member

Откуда: exUSSR
Сообщений: 1141
Lida_Vol, также прочитай почему иногда пишут like 'Привет%' и like '%Привет%' а то препод завалит на лабе или что там у Вас.
27 окт 09, 17:30    [7845992]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
baracs
Member

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

Еще, на всякий случай:
в данном конкретном случе, можно
WHERE LEFT(Text, 6) = 'Привет'
27 окт 09, 17:53    [7846155]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
baracs
Lida_Vol,

Еще, на всякий случай:
в данном конкретном случе, можно
WHERE LEFT(Text, 6) = 'Привет'
А если по полю Text индекс есть?
27 окт 09, 17:57    [7846178]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
iap
baracs
Lida_Vol,

Еще, на всякий случай:
в данном конкретном случе, можно
WHERE LEFT(Text, 6) = 'Привет'
А если по полю Text индекс есть?

То будет сканироваться он а не таблица.
27 окт 09, 18:08    [7846220]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
Anddros
Member

Откуда:
Сообщений: 1077
baracs
iap
baracs
Lida_Vol,

Еще, на всякий случай:
в данном конкретном случе, можно
WHERE LEFT(Text, 6) = 'Привет'
А если по полю Text индекс есть?

То будет сканироваться он а не таблица.

Именно так. Только ключевое слово здесь: сканироваться. :)

А в запросе с like 'Привет%' при наличии индекса может быть Index Seek. Прочувствуйте разницу! :)
27 окт 09, 18:15    [7846254]     Ответить | Цитировать Сообщить модератору
 Re: Несложный вопрос для знатоков SQL  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
Anddros
А в запросе с like 'Привет%' при наличии индекса может быть Index Seek. Прочувствуйте разницу! :)

Ключевое слово "может быть"

А при отсутствии индекса, стоимость плана с LEFT чуток поменьше (по крайней мере на 2000-м)...
27 окт 09, 18:24    [7846294]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить