Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
помогите с запросом (UNION ALL и NULL)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Понадобилось мне написать запрос вроде: SELECT NULL, field1 FROM table1 UNION ALL SELECT field1, field2 FROM table2 А VFP говорит, что он не может определить тип колонки. Это он, видимо, определяет тип по первой выборке. Если опреации выборки поменять местами, то будет все ОК. Но мне надо именно так. Есть ли пути решения проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 09:17 |
|
||
|
помогите с запросом (UNION ALL и NULL)
|
|||
|---|---|---|---|
|
#18+
В запросах с union-ами результирующая таблица/курсор строится на первом из всех объединяемых запросов. При этом поля получают и длины, и типы. Null сам по себе - неопределенный тип. Поэтому "разборщику" запросов в такой, как у тебя возникла, ситуации нада помогать. Например, попробуй так (я предполагаю далее, что table2.field1 - строковое): m.ll=len(table2.field1) SELECT padr(NULL,m.ll),field1 FROM table1 UNION ALL SELECT field1, field2 FROM table2 Ну, или что-то в этом роде. Теперь "разборщик" должен понять, что, несмотря на содержимое (Null), поле должно быть текстовым, и определенной длины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 09:28 |
|
||
|
помогите с запросом (UNION ALL и NULL)
|
|||
|---|---|---|---|
|
#18+
Спасибо, так работает. Я тоже думал насчет подобного варианта, но вместо PADR пытался использовать ф-ию LEFT, а с ней не работает. Но все дело в том, что запрос строится динамически и тип поля может быть целый, с плавающей точкой, символьный, дата и мемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 09:58 |
|
||
|
помогите с запросом (UNION ALL и NULL)
|
|||
|---|---|---|---|
|
#18+
Насчет мемо - труднее всего, по-моему - ну попробуй, скажем, padr(null,256). Целый и с плавающей точкой - может помочь такое выражение: null+0000000.000000000 (сколько надо) (правда получится и не целое, и не с плавающей точкой, но что-то числовое ;-)). С датой - ctod (не уверен). Все это задавать в динамике, определяя типы на лету. А вообще-то, ВладимирМ недавно приводил решение, похожее вот на это: Код: plaintext 1. 2. 3. 4. t1, t2 и l1, l2 - соответственно, типы и длины полей x1, x2. Их задаешь какими надо, а уж они потом и определяют типы полей результирующего курсора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 10:16 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1596421]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 522ms |

| 0 / 0 |
