powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Distinct
13 сообщений из 13, страница 1 из 1
Distinct
    #37411384
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую.
Не могу разобраться в запросе.
Есть таблица с мемо полем name
структура таблицы
id name tax

есть запрос
Код: plaintext
Select DISTINCT name from table

Но т.к. к мемо полям нельзя применять дистинкт, не пойму что делать... подскажите примером пожалуйста.
...
Рейтинг: 0 / 0
Distinct
    #37411401
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAHEK1,

Код: plaintext
distinct left(name, 200 )
...
Рейтинг: 0 / 0
Distinct
    #37411424
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В большинстве случаев, действительно, достаточно проверить уникальность первых 50..100 символов. Если же расхождение может оказаться в символах после 255, то в общем случае можно попробовать использовать контрольные суммы, которые вычислить через SYS(2007) или SYS(2017)
...
Рейтинг: 0 / 0
Distinct
    #37411517
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМВ большинстве случаев, действительно, достаточно проверить уникальность первых 50..100 символов. Если же расхождение может оказаться в символах после 255, то в общем случае можно попробовать использовать контрольные суммы, которые вычислить через SYS(2007) или SYS(2017)
В моем случае расхождение может быть в последнем слове...
...
Рейтинг: 0 / 0
Distinct
    #37411521
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите примерчик пожалуйста с использованием SYS.
Спасибо.
...
Рейтинг: 0 / 0
Distinct
    #37411692
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
* Тестовые данные
Create Cursor test (f1 i, f2 m)
Insert into test values ( 1 , Replicate('test', 100 ))
Insert into test values ( 2 , Replicate('test', 100 ))
Insert into test values ( 3 , Replicate('test', 100 ) + "3")
Insert into test values ( 4 , Replicate('test', 100 ) + "4")

* Вычисляем CheckSum по CRC16
Select Sys( 2007 , f2) as checkSum, Min(f1) as f1 from test into cursor curUnic nofilter group by  1 

* Отбираем из исходной таблицы нужные данные
Select test.* from test inner join curUnic on curUnic.f1 = test.f1
...
Рейтинг: 0 / 0
Distinct
    #37411909
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,

Я с фокспро недавно. хотел бы уточнить "into cursor" это что он создать должен таблицу мне по селекту?
...
Рейтинг: 0 / 0
Distinct
    #37412011
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAHEK1,

Временный набор данных. Пока не закроешь его или FoxPro будет висеть в Data Session с тем алиасом, который укажешь в CursorName.

INTO CURSOR <CursorName>
...
Рейтинг: 0 / 0
Distinct
    #37412190
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

Понятно.
Просто я делаю приложение на .net в котором использую драйвера VFPOLEDB и там такое не прокатывает=( на мой запрос такого типа он выдает мне ошибку что таблица с названием <CursorName> не существует...
...
Рейтинг: 0 / 0
Distinct
    #37412262
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAHEK1,

Может, не так поняли
INTO CURSOR MyCursor

Но это в Фоксе, в Нете не знаю, может там эта фраза вообще не нужна. Если в Фоксе без этой фразы, то сразу же выводит результат в окне.
...
Рейтинг: 0 / 0
Distinct
    #37412349
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BAHEK1Просто я делаю приложение на .net в котором использую драйвера VFPOLEDB и там такое не прокатывает=( на мой запрос такого типа он выдает мне ошибку что таблица с названием <CursorName> не существует...
Не уверен, что пройдет через OLEDB, но попробуй использовать подзапрос. Примерно так

Код: plaintext
Select test.* from test inner join (Select Sys( 2007 , f2) as checkSum, Min(f1) as f1 from test group by  1 ) curUnic on curUnic.f1 = test.f1
...
Рейтинг: 0 / 0
Distinct
    #37414917
BAHEK1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМBAHEK1Просто я делаю приложение на .net в котором использую драйвера VFPOLEDB и там такое не прокатывает=( на мой запрос такого типа он выдает мне ошибку что таблица с названием <CursorName> не существует...
Не уверен, что пройдет через OLEDB, но попробуй использовать подзапрос. Примерно так

Код: plaintext
Select test.* from test inner join (Select Sys( 2007 , f2) as checkSum, Min(f1) as f1 from test group by  1 ) curUnic on curUnic.f1 = test.f1

В том то и дело я не могу создать curUnic посредством cursor. Только если явно прописать
Код: plaintext
create table as select
...
Рейтинг: 0 / 0
Distinct
    #37415083
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где Вы видите команду создания курсора в последнем примере? Вы вообще попробовали его запустить?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Distinct
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]