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

Откуда:
Сообщений: 17
Простой пример.

INSERT INTO Test (KeyText)
VALUES ('001')
INSERT INTO Test (KeyText)
VALUES ('0001')
INSERT INTO Test (KeyText)
VALUES ('00001')

select * from Test WHERE CONTAINS(KeyText,'"0001"')


Запрос возвращает все 3 записи, а мне нужна только вторая. Как понимаю поиск рассматривать строку как число и нули отбрасывает. Есть ли возможность заставить рассматривать строку поиска как единое целое без интеллекта?



Microsoft SQL Server 2012 (SP1) - 11.0.3153.0 (X64) Jul 22 2014 15:26:36 Copyright (c) Microsoft Corporation Web Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
25 июн 15, 16:22    [17816306]     Ответить | Цитировать Сообщить модератору
 Re: Полнотестовый поиск по ключу в виде числа с нулями.  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
IIgor,

почитайте как fts индексирует числа. там есть загогулина.

select * from sys.dm_fts_parser('"0001"', 1049, null, 0);



keyword group_id phrase_id occurrence special_term display_term expansion_type source_term
-------------------------------- ----------- ----------- ----------- ---------------- ------------------------------ -------------- ------------------------------
0x0030003000300031 1 0 1 Exact Match 0001 0 0001
0x006E006E0031 1 0 1 Exact Match nn1 0 0001

25 июн 15, 16:32    [17816363]     Ответить | Цитировать Сообщить модератору
 Re: Полнотестовый поиск по ключу в виде числа с нулями.  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
О, интересная фигня.
http://stackoverflow.com/questions/22701562/is-there-any-way-to-search-for-numbers-with-leading-zeros-in-sql-server-full-tex

А выключить это поведение никак вменяемым способом?
25 июн 15, 17:36    [17816771]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить