|
|
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Есть запрос с полями А(текст) и В(число). Есть запрос с полями D(текст) и Null. Делаю Union, получаю во втором столбце тип данных - текст. Аналогичная проблема при использовании IIF(A=0,Null,A). Если А - число, столбец все равно станет строкой. Ладно бы я использовал "", а то ведь Null - он же в любом столбце может быть. Вопрос: как избежать ненужное преобразование к типу "текст"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:18:07 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
преобразовав Null во что-то полезное посредством NZ(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:22:57 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Так мне наоборот Null нужен. Но чтобы весь столбец не стоновился строкой. Как вариант можно сделать аппенд во временную таблицу, но не хотелось бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:27:19 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Ладно бы я использовал "", а то ведь Null - он же в любом столбце может быть. Так и используй "" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:34:02 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Может я непонятно обяснил. Мне нужет столбец содержащий цифры и пустые значения. Такой чтобы можно было производить с ними арифметические операции (группировки). Если в одном запросе у меня цифры, в другом стоит Null и делается union, то столбец становится как строка. И на него уже нельзя делать Sum и прочее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:42:44 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
CtrlAltМожет я непонятно обяснил. Мне нужет столбец содержащий цифры и пустые значения. Такой чтобы можно было производить с ними арифметические операции (группировки). Если в одном запросе у меня цифры, в другом стоит Null и делается union, то столбец становится как строка. И на него уже нельзя делать Sum и прочее. Дык что все таки мешает поставить "" вместо null? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:47:28 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Всеволод, ты уверен, что "" - это не строка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:58:55 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Владимир СанычВсеволод, ты уверен, что "" - это не строка? Ага '' - вот это строка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:59:28 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Прикладываю простую базу. Запрос Res_1 работает. Res_2 не работает. Обрати внимание на объединение U. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:00:15 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
А с чего Вы простите решили, что там текст??? Число как число :) Особенно если обратить внимание по какому краю равняет Акес второй столбец... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:08:15 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Я тут забыл упоминуть, что Access 97. Проверил на 2000, в нем оказывается все правильно работает. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:08:29 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Я прошу прощения, но можно пояснить, что значит "Res_2 не работает"? Res_1 и Res_2 работают абсолютно одинаково --- Далее. В запросе U ты объединил запросы Q1 и Q2. Я сделал запрос Код: plaintext 1. Что тут не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:10:31 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
ну да, у меня А2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:11:05 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Vsevolod V'' - вот это строка А "" тогда что по-твоему? Неужто число? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:11:11 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Vsevolod V'' - вот это строка А "" тогда что по-твоему? Неужто число? хз что, но точно не строка :) Просто у меня была типовая проблема и с двойными ковычками работало все нормально :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:13:02 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Кстати вот такой вот запрос дает некую пищу для размышлений (какую - я еще не понял ) SELECT U.A, U.B, TypeName( ) AS С FROM U; Чего бы с этими тайпами сотворить..... :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:37:35 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Тьфу тэги проклятые! SELECT U.A, U.B, TypeName([B ]) AS Выражение1 FROM U; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:38:38 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
ЗверенышТьфу тэги проклятые! От проклятья можно избавиться с помощью освященного тега SRC Аминь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:48:19 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Прикольно, если TypeName добавить в начальные запросы Q1 и Q2, тогда запрос U все равно будет показывать Long, хотя это уже стали строки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:55:12 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Не знаю как у Вас, у меня в Аксе 97 1. Если Null идет из таблицы, то он имеет тип такой же как и поле в таблице! 2. А вот если он пробит константой, тогда действительно Акс считает что это константа текстового типа и приводит весь столбец к стринге Из чего возникает вопрос, если вам надо суммировать числа, то зачем вы пробили Null константой? Ноль (0) не подойдет? Ноль прекрасно суммируется не влияя при этом на сумму!!! Ну и на крайний случай, есль функция nz() (в связке с Clng()) т.е. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 09:17:40 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Не помню точно, но в Унионе акцесс может путать тип поля, если первая запись первого запроса содержит в этом поле null. Выход, соответственно: сделать так, чтобы там было число. Не помню, как. Надо потыкаться. М.б. сортировкой подзапроса, м.б. подзапросы местами поменять, м.б. сортировкой всего unionа. Пробовать надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 09:21:22 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
Использую конструкции вида IIF(False,Cdbl(0),Null) для получения Null-ов нужного типа при запросах на создание таблицы (SELECT INTO). +В юнионах важен порядок подзапросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 10:31:14 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
paparome Да, когда Null в таблице, то аксесс все правильно делает. А вот в Union зачем-то меняет тип. Первым блоком точно стоит запрос с цифрами (можно сравнить с приложенным ранее примером). Пример с суммой я указал только для того, чтобы проще показать сей негативный эффект. К тому же раз в Access 2000 нет такой проблемы с null, значит это баг 97го. Обсуждение этого вопроса подтолкнуло меня к некоему обходному решению, которое заключается в создании некой пустой таблицы со числовым столбцом и одной строкой содержащей Null. Подсовывая эту таблицу в запрос, можно вместо константы использовать имя поля, тогда аксесс не преобразовывает null в строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 13:52:48 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
assaИспользую конструкции вида IIF(False,Cdbl(0),Null) для получения Null-ов нужного типа при запросах на создание таблицы (SELECT INTO). +В юнионах важен порядок подзапросов. Прикольная фишка - надо запомнить И что самое главное - работает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 15:34:08 |
|
||
|
Null - это строка?
|
|||
|---|---|---|---|
|
#18+
CtrlAlt... проблема при использовании IIF(A=0,Null,A). Если А - число, столбец все равно станет строкой. Ладно бы я использовал "", а то ведь Null - он же в любом столбце может быть. IIF(A<>0,A, Null) уже много раз обсуждалось (тип принимается по части TRUE IIF-а, и если значения в части False лезут в этот тип - таким и остается). Проверь в 97: Код: plaintext 1. 2. 3. 4. 5. 6. 7. или: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 15:50:45 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32865042&tid=1669300]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 338ms |

| 0 / 0 |
