|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Сорри за режим чата, но правильно всё же [N,Х,№] BOL - LIKE [ ] - Any single character within the specified range ([a-f]) or set ([abcdef]). Example LIKE 'abc[def]' - Means abcd, abce, and abcf ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2004, 16:48 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Всё верно, а у меня либо Х50, либо №50, либо N50 Значит через запятую, тем более у меня сработало :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 09:01 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4.
для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 09:05 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Да, у меня тоже...странно... Но ладно, теперь я буду дозировку искать, там сложнее - МКГ, МГ, Г и МЛ стоят сзади цифры. reverse помог ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 09:58 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Всё верно, а у меня либо Х50, либо №50, либо N50 Значит через запятую, тем более у меня сработало :) Запятая в вашем случае означает что будут искаться варианты Х50 №50 N50 и ,50 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 10:11 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Да, у меня тоже...странно... Но ладно, теперь я буду дозировку искать, там сложнее - МКГ, МГ, Г и МЛ стоят сзади цифры. reverse помог By the way Я бы для начала распарсил строку на лексемы. Каждой лексеме сопоставил бы еще скажем так глобальную лексему, т.е. все МКГ, МГ, Г и МЛ свел к лексеме ну скажем МГ. А вопрос о совпадение наименований решал бы на основе того, сколько лексем из конкретного имени совпадает с минимально допустимым для данного имени. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 10:23 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Glory Я бы для начала распарсил строку на лексемы. так я и хочу сделать уже 4 месяца :)) Glory Каждой лексеме сопоставил бы еще скажем так глобальную лексему, т.е. все МКГ, МГ, Г и МЛ свел к лексеме ну скажем МГ. Так и сделаю - мкг превращу в граммы, мг тоже в граммы. Из-за того, что некоторые поставщики пишут граммы без Г - 1.0 и всё. Glory А вопрос о совпадение наименований решал бы на основе того, сколько лексем из конкретного имени совпадает с минимально допустимым для данного имени. Ой, вот тут фиг его знает... Я хочу вообще полного совпадения достичь...Но есть мусор типа точки-запятые, думаю 500-1000 преобразований мне гарантированы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 11:16 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
так вы разбирайте по несколько заходов... в первый заход находятся жестко определенные лексемы... а за второй то что осталось... и куда это можно присобачить... а лексемы хранить в той же таблице... поля небольшого размера... для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 11:19 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
так я и хочу сделать уже 4 месяца :)) Ну так в чем проблема? Принимаем что разделить лексем - это пробел. Определяем список шумовых симвоов/слов. И вперед ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 11:37 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Я поступил несколько иначе - я заменил пробел, точку, запятую косую на ^символ^ Т.о. слова гарантированно разделены крышками ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2004, 12:39 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Поднимаю тему еще по одному вопросу: как мне сделать множественный реплейс типа заменить "таб.", "табл." на "таблетка"? делать 2 реплейса или есть возможность одним? и второе - тут вы сказали, что если я пишу [АБВ], то имеются ввиду буквы А, Б и В. А если надо сочетания найти? Типа [ТАБЛ, ТАБ] и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 17:17 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2004, 17:31 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
таблица в кач-ве аргумента? Хм... wBr Grigoriy Gruben ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2004, 13:23 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
не выходит каменный цветок Вот функция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Код: plaintext 1. 2.
Код: plaintext 1. 2.
А если больше одной строки - то не меняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2004, 17:01 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
дополнение - изменения происходят только согласно последней паре. Т.е. @ меняется, а (*) нет wBr Grigoriy Gruben ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2004, 17:14 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
А можно использовать как аргумент функции таблицу? CREATE FUNCTION dbo.fn_ReplaceTrash(@Where char(255), @Tab Table) не прокатило wBr Grigoriy Gruben ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2004, 17:51 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Может я не прав, но мне кажется, что можно разложить имя на составляющие. После разглядывания примера названий лекарств приходит желание их систематизировать по категориям. Ведь каждое слово названия относится к определенной категории (вес, производитель, название). Разделить на слова можно пробелами, табуляторами переводами каретки и проч., что у Вас может оказатся. Составляем список категорий +1 на мусор. делим строку на слова. У каждой категоии есть маска, проверяем и относим слово к одной или нескольким категориям. Просматриваем список категорий, там, где есть дублирование, разбираемся вручную. Просматриваем список того, что не вошло никуда, дополняем маски категорий. В идеале должно остаться только небольшое кол-во исключений, из-за дублирования одних лексем в разных категориях. Карегориможно связать с поставщиками, если они используют одинаковую аббревиатуру во всех наименованиях у себя. Но это сильно увеличит объем ручных работ. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2004, 20:09 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Именно этим я щас и занят. Есть проблемы - например некоторые дозировки указаны без граммов, придется ломать голову над этим. Но вопрос для меня - как использовать в кач-ве входного параметра функции таблицу. Хочу сделать таблицу ("что менять", "на что менять") и давать ее в кач-ве входного параметра. Можно ли это? wBr Grigoriy Gruben ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2004, 20:31 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Возникло еще два вопроса: 1.Можно ли использовать функцию внутри себя (рекурсия) 2. Может ли быть таблийца входным и выходным параметром функции. Если да на оба, то это здорово wBr Grigoriy Gruben ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2004, 21:43 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
по поводу таблицы замещения, эту фичу можно использовать только для переменных, для таблиц она не подходит, потому как каждая строка сопоставляется с каждой... таким образом замещается или (*) или @ как аргумент использовать нельзя, в функциях можно работать только с табличными переменными. рекурсию использовать можно, но вложенность не более 32 уровней. таблица выходным параметром быть может, входным нет. БОЛ Create Function. теперь по функциям... заведите постоянную таблицу замещения, в функции ей можно будет пользоваться... функция получается такая Код: plaintext 1. 2. 3. 4. 5. 6. 7.
таблица Код: plaintext 1. 2. 3. 4.
Код: plaintext 1. 2.
и на последок если добавите Код: plaintext
Код: plaintext
для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 07:56 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Алексей2003рекурсию использовать можно, но вложенность не более 32 уровней. Да, эту месагу она мне выдала, но так и не вышло у меня использовать рекурсию. Я хотел заменять зяпятые на точки в местах, где и слева и справа - цифры. Написал функцию: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Алексей2003 ... для того чтобы дошло, нужно я предполагаю добавить колонку в TrashSymb ord, которая будет указывать порядок при выборке в функции Разве того порядка, который в самой таблице - недостаточно? Я имею ввиду порядок добавления. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 10:30 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
1. еще раз говорю, что чтобы обновлялась не только на первом вхождении, нужно присваивать значение тойже переменной, которую используете (строковая) справа от знака равенства 2. может и не хватит =\ может выбрать записи в той последовательности, в которой ему удобно... (с точки зрения быстродействия) зачем анализировать, что это первая запись, это вторая... если таблица больше одной страницы, то в принципе они могут чередоваться. для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 10:51 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
set @p1=patindex('%[0-9]'+@Symb+'[0-9]%',@s) Как же тут присвоить то? Я ж число в рез-те получу, а не строку. wBr Grigoriy Gruben ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 11:59 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
а пример функции с рекурсией? там нет рекурсии на нее саму :) или я чего недопонял для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 12:01 |
|
Приведение таблицы строк к единому виду, помогите плиз
|
|||
---|---|---|---|
#18+
Вот как я хотел: Create Function dbo.fn_Cup2Dot (@S varchar(255)) returns varchar(255) as Begin declare @p1 int declare @Symb varchar(1) declare @retu varchar(255) set @Symb=',' set @p1=patindex('%[0-9]'+@Symb+'[0-9]%',@s) if @p1>0 begin While dbo.fn_Cup2Dot (@retu)<>@retu begin set @retu= substring(@s,0, @p1+1)+'.'+substring(@s,@p1+2, Len(@s)-@p1+3) set @p1=patindex('%[0-9]'+@Symb+'[0-9]%',@s,@p1+1) end end else begin set @retu=@S end Return @Retu End Go wBr Grigoriy Gruben ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 12:33 |
|
|
start [/forum/topic.php?fid=46&msg=32650593&tid=1796987]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 161ms |
0 / 0 |