Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Какие значения выдаст запрос Код: plaintext Пустые и нули? Почему тогда этот же запрос ничего не выдает, если empty поменять на isnull или isblank ? Тип поля field1 Numeric(12,0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:20 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
isblank записи добавленные по append blank и очищенные с помощью blank empty выдаст тоже что и isblank() и 0 isnull выдаст все имеющие значения NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:31 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
а чем отличаются значения очищенные с помощью blank и NULL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 15:40 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
проблема в том, что нужно выбрать пустые значения, но отсечь нули: isblank не показывает вообще никакие значения, isnull тоже, условие Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:00 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Значит нет там пустых... NULL и blank это не одно и тоже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:17 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Значение NULL может быть только если установлено SET NULL ON Если установлено OFF то пустое значение =0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:24 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
2 U_bar RTFM SET NULL MSDN ... SET NULL affects only how null values are supported by ALTER TABLE, CREATE TABLE and INSERT - SQL. Other commands are unaffected by SET NULL. SET NULL is scoped to the current data session. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:42 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Значит нет там пустых... NULL и blank это не одно и тоже... Мне непонятно, почему Код: plaintext выдает 2 записи, а Код: plaintext не выдает ни одной записи. Значение NULL может быть только если установлено SET NULL ON Если установлено OFF то пустое значение =0 я руками добавляла а таблицу строчку - добавляется пустое поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:44 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Мне непонятно, почему Код: plaintext 1. выдает 2 записи, а Код: plaintext 1. А что Вас удивляет? Первый запрос читается так: вывести все записи, у которых поле field1 пустое. Второй запрос читается иначе: вывести все записи, у которых поле field1 пустое и в тоже самое время не равно 0, что является тождественной ЛОЖЬЮ, поскольку никогда не может быть выполнено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 16:53 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
А что Вас удивляет? Первый запрос читается так: вывести все записи, у которых поле field1 пустое. или равное 0 - выводится одна с пустым значением, вторая с равным нулю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:07 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Отнюдь, AND всегда было и остается связкой И, а не ИЛИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:10 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
а запрос Код: plaintext выводит те же 2 записи, которые и на empty выводятся - одна с пустым значением поля, другая с нулем Чего я не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:24 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
авторОтнюдь, AND всегда было и остается связкой И, а не ИЛИ. Я про первый запрос говорила, а там никакой связки нет - empty выводит все пустые или равные нулю значения никто не даст ссылку, (кроме MSDN), где все это описывается с примерами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 17:27 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
to coolkenga В FoxPro EMPTY( ) возвращает True (.T.) если выражение имеет следующие значения: Character : Пустая строка, пробел, возврат каретки Numeric : 0 Date : {} Logical : False (.F.) А .null. это .null., это отсутствие любого, даже "пустого" значения. так что пустое (в понимании VFP), но в то же время не нулевое значение - не может быть в принципе, а вот "Null-евое", но не "Ноль-евое" - может. >>никто не даст ссылку, (кроме MSDN)? В MSDN это как раз очень хорошо и описано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 18:03 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Причина в том, в запросе как такового понятия бланк поля нет, поэтому якобы пустое поле трактуется фоксом как равное 0, поэтому empty возращает в обоих случаях ноль: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Поэтому для различия "пустого" - поле значение, которого не известно от нуля и используется NULL. Тогда для проверки есть значение или нет необходимо использовать функцию ISNULL, но эта функция медленная - не оптимизируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 18:04 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
авторПричина в том, в запросе как такового понятия бланк поля нет, поэтому якобы пустое поле трактуется фоксом как равное 0, поэтому empty возращает в обоих случаях ноль: True? Только странно почему isblank() не выдает ту, пустую запись... >>никто не даст ссылку, (кроме MSDN)? В MSDN это как раз очень хорошо и описано. Не спорю, но если все так, как написано у них, то кроме нулей ничего выдаваться не должно. Или у них просто четко не написано, что значит "the expression evaluates to empty". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 18:25 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Дорогая Coolkenga , я когда-то с такой ситуацией сталкивался - Ваша беда в том, что в Фоксе действительно нет никакого способа отличить незаполненное оператором числовое поле и поле с 0-значением - с точки зрения Вашего запроса это одно и то же (для Фокса). Самый простой выход (раз уж Вы сами создавали такую таблицу и заполняли вручную) - надо было числовые поля создавать как символьные а затем при подсчетах пользоваться преобразованием VAL(). Уж строчный '0' от пустой строки Фоксовский SQL отличить сможет. Кстати, по поводу повторяющихся комбинаций полей (Ваш предыдущий вопрос) - если еще актуально, загляните, я там предложил может и не самый лучший вариант, зато легко дополняемый и модернизируемый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 23:55 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Добавлю, что если встать на запись, где в числовом значении X "пусто" и написать команду: ?X , то на экране появится 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2004, 11:43 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. :) Отдельное спасибо neznajka за продолжение треда про "повторяющиеся комбинации полей" и за "дорогую" :)) Беда-то моя, но создавала таблицу не я, я правила непосредственно dbf, пытаясь сымитировать реальные данные. Возможно, когда люди заносят данные через пакет (скромно надеюсь) - там будет все-таки NULL. Реального примера с такими записями нет под руками - будет, проверю. Жаль, что в пакет не залезешь и не проверишь - стоит ли там SET NULL перед вставкой... Хотя там возможно и не используются команды SQL для вставки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2004, 12:17 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Надеюсь, Вам это пригодится, Coolkenga: Хотя в MSDN достаточно подробно описано применение NULL-значений, все же остаются неочевидными некоторые весьма важные моменты, касающиеся модификации уже существующих таблиц. На мой взгляд, лучше всего это описано М.Базияном в его руководстве по VFP6. К сожалению, не у всех есть возможность доступа к этому справочнику, а вопрос-то весьма актуальный, поэтому привожу здесь соответствующее описание полностью. Использование значений NULL В более ранних версиях FoxPro невозможно было определить, преднамеренно ли оставил пользователь поле пустым или просто забыл о нем. В FoxPro незаполненное поле (в зависимости от его типа) интерпретируется либо как пустая символьная строка, либо как числовое значение 0, либо как логическое значение False (Ложь). Любое из этих значений может быть допустимым для поля. Например, если таблица с информацией о служащих содержит поле, предназначенное для хранения средних инициалов служащего, то означает ли пустое значение, что пользователь случайно не ввел его, или же у служащего попросту нет среднего инициала? Что касается числовых полей, то как расценивать нулевое значение поля, содержащего объем закупок за предыдущий год? Так, что клиент не имел сделок или что суммы закупок и возвратов в точности компенсировали друг друга? Наконец, возьмем поля типа Logical: невозможно определить, на самом ли деле пользователь подразумевал ложное значение или просто не заполнил это поле (по умолчанию незаполненное логическое поле в FoxPro трактуется как содержащее .F. – ложь). Предположим, что Джон Смит не ответил на вопрос "Вы женаты?", в результате чего пустое поле интерпретируется как значение False, которое означает ответ NO (НЕТ). И тогда госпожа Смит могла бы задать своему супругу парочку вопросов по этому поводу. Для использования значений полей NULL в поле любого типа необходимо выполнить две операции. Во-первых, в окне Command или в программе необходимо выполнить команду SET NULL ON. Во-вторых, необходимо модифицировать структуру и щелкнуть на кнопке NULL для каждого поля, которое допускает нулевые значения. Если этого не сделать, то при добавлении записей с помощью команд APPEND FROM или INSERT SQL FoxPro выдаст ошибку и не присвоит значения этим полям. После установки SET NULL ON и разрешения (вручную) ввода NULL-значений для нужных полей ранее созданной и заполненной таблицы - FoxPro заносит лексему .NULL. в эти поля, которым разрешено оставаться пустыми и которые не содержат никаких значений. Если после выполнения команды SET NULL ON не был установлен (в Table Designer) флажок Null для данных полей, FoxPro не станет использовать пустые значения или пробелы в полях первичных или потенциальных (candidate) ключей. ВНИМАНИЕ! По умолчанию В FoxPro установлено SET NULL OFF, т.е. - не разрешается задание значений NULL. А после принудительного выполнения команды SET NULL ON уже нельзя пройти поле, не введя в него никакой информации, т.е. система заставит внести в поле хотя бы 0, пустую строку, .F. и т.п., в зависимости от типа поля. Запомните следующие правила использования нулевых значений: • По умолчанию команда APPEND BLANK не заносит нулевую лексему .NULL. во все поля новой записи таблицы. • Если поле типа Character модифицируется таким образом, что в нем разрешается хранить значения NULL, пустые поля так и остаются пустыми. • Если поле типа Numeric модифицируется таким образом, что в нем разрешается хранить значения NULL, поля со значением 0 останутся в неприкосновенности. • Если поле типа Character модифицируется таким образом, что в нем запрещается хранить значения NULL, это поле заполняется пустой строкой. • Если поле типа Numeric модифицируется таким образом, что в нем запрещается хранить значения NULL, такое поле заполняется числом 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2004, 00:13 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
2 neznajka Спасибо. Пора вам переимновываться в znajka :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:27 |
|
||
|
EMPTY() и значения Numeric
|
|||
|---|---|---|---|
|
#18+
Благодарю за комплимент, уважаемая Coolkenga . Просто этот мульт-герой мне больше всего импонирует. Мне приятно Вам помочь, если что-то знаю. Вы-то мне действительно здорово помогли в случае с чередованием INNER JOIN ... ON. Это мне позволило упростить большую часть моих prg-шников. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2004, 20:30 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32395633&tid=1597175]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 391ms |

| 0 / 0 |
