Конференция "Прочее" » Отождествление пустой строки и NULL
 
  • Anatoly Podgoretsky © (01.07.08 16:52) [60]
    > pasha_golub  (01.07.2008 16:08:29)  [29]

    Видишь ли МС не кладет, а позволяет управлять этим, а насколько я помню Оракл именно кладет. При том вроде и не последовательны.
  • Anatoly Podgoretsky © (01.07.08 16:54) [61]
    > McSimm  (01.07.2008 16:09:31)  [31]

    Пустым ты что в данном случае считаешь, если '' то по стандарту одну можно. А если NULL то по стандарту ни одно, поскольку NULL это не определено, то оно и не может представлять собой конкретную строку, а вот пустая строка может.
  • Anatoly Podgoretsky © (01.07.08 16:55) [62]
    > Игорь Шевченко  (01.07.2008 16:13:33)  [33]

    > Оракл появился немного раньше стандартов.

    И вырос в такого монстра, что плевал на всех, он сам себе стандарт.
  • Anatoly Podgoretsky © (01.07.08 16:57) [63]
    > atruhin1  (01.07.2008 16:15:36)  [36]

    > Иногда удобно, иногда нет.

    Вот это не должно быть основанием, поскольку результаты не гарантируются, не пройдет даже тестов.
  • McSimm © (01.07.08 16:58) [64]

    > Пустым ты что в данном случае считаешь, если '' то по стандарту
    > одну можно. А если NULL то по стандарту ни одно, поскольку
    > NULL это не определено

    Так вопрос про Оракл был, где '' и NULL суть одно.

    Насчет стандарта - не совсем понял. Unique key, насколько я с ними сталкивался, позволяет хранить NULL в любом количестве.
  • Ega23 © (01.07.08 17:01) [65]

    > Unique key, насколько я с ними сталкивался, позволяет хранить
    > NULL в любом количестве.


    Короче, была какая-то фигня с Null. То ли с FTS, то ли с индексом...
    В смысле, что только одно значение null в столбце на всю таблицу.
  • Игорь Шевченко © (01.07.08 17:23) [66]
    Anatoly Podgoretsky ©   (01.07.08 16:55) [62]


    > И вырос в такого монстра, что плевал на всех, он сам себе
    > стандарт.


    Насколько мне известно, стандарту целиком и полностью не соответствует ни одна СУБД. У каждой есть свои расширения, отходящие от стандарта.

    Кстати, сам Оракл пишет в документации:

    "Oracle Database currently treats a character value with a length of zero as null. However, this may not continue to be true in future releases, and Oracle recommends that you do not treat empty strings the same as nulls."
  • Поросенок Винни-Пух © (01.07.08 17:37) [67]
    то оно и не может представлять собой конкретную строку, а вот пустая строка может.

    Если пустая строка может представлять конкретную строку ("равноправное" значение строкового типа), то тогда было бы возможно определить сколько именно таких значений содержится в этом посте.
    А этого никто определить не сможет.
  • McSimm © (01.07.08 17:44) [68]

    > сколько именно таких значений содержится в этом посте.

    Я могу это определить.
    Этот пост представляет собой запись из нескольких полей (некоторые отображаются, некоторые нет). Из отображаемых - одно поле представляет собой пустую строку.

    А дробить одно поле - некорректно. Или придется считать количество нулей в числе 17.
  • Поросенок Винни-Пух © (01.07.08 17:48) [69]
    Я могу это определить.

    Допустим.
    Определил, что из там 10.
    А я утверждаю что изх там 1000.
    Как определить кто прав?
  • McSimm © (01.07.08 17:53) [70]

    > Как определить кто прав?

    гм... я даже теряюсь... при таком подходе остается только назначить незаинтересованных арбитров и спросить кому они больше верят :)

    Я даже могу предоставить саму запись на рассмотрение (хотя ее и так видно)
    name: 'Поросенок Винни-Пух',
    email: '',
    ip: '**.***.**.***'

    и т.д.
  • McSimm © (01.07.08 17:58) [71]
    есть еще вариант, спросить у perl

    # smth like this
    foreach (keys %fields) {
     $count++ if ($REC{$_} eq '');
    }
  • Поросенок Винни-Пух © (01.07.08 18:02) [72]
    ну зачем же отмахиваться от простого вопроса?
    есть два строковых литерала, один пустой;
    я с помошью нескольких конкатенаций делаю из них итоговую строку.
    вопрос: определить по итоговой строке сколько раз я в нее вставил пустой литерал.
  • pasha_golub © (01.07.08 18:07) [73]

    > Поросенок Винни-Пух ©   (01.07.08 17:37) [67]


    > Если пустая строка может представлять конкретную строку
    > ("равноправное" значение строкового типа), то тогда было
    > бы возможно определить сколько именно таких значений содержится
    > в этом посте.

    Нелогично размышляете. Я уже писал что пустая строка есть инвариант по отношению к операции конкатенации. Можно провести паралели с каноническим разложением числа на множители (сорри если коряво звучит, учил на украинском), коее имеет вид a = p1^n1*p2^n2...*pk^nk*E, где pi - простые числа неравные 1.
  • McSimm © (01.07.08 18:08) [74]

    > ну зачем же отмахиваться от простого вопроса?
    > есть два строковых литерала, один пустой;
    > я с помошью нескольких конкатенаций делаю из них итоговую
    > строку.
    > вопрос: определить по итоговой строке сколько раз я в нее
    > вставил пустой литерал.

    Я уже писал про количество нулей в числе 17.
  • pasha_golub © (01.07.08 18:09) [75]

    > Поросенок Винни-Пух ©   (01.07.08 18:02) [72]


    > есть два строковых литерала, один пустой;
    > я с помошью нескольких конкатенаций делаю из них итоговую
    > строку.
    > вопрос: определить по итоговой строке сколько раз я в нее
    > вставил пустой литерал.

    Есть два слагаемых, один из них 0. Я с помощью некоторых операций сложения делаю из них сумму.
    Вопрос: определить по итоговой сумме сколько раз я прибавил 0
  • McSimm © (01.07.08 18:09) [76]
    Поле содержит одно значение. Можно считать сколько значений содержит запись или выборка. Какой смысл считать количество значений в одном поле ? (то же - в одной переменной) ?
  • Поросенок Винни-Пух © (01.07.08 18:10) [77]
    Я уже писал про количество нулей в числе 17.

    не надо путать публику.
    было сказано, что пустая строка - это точно такое же значение строкового типа, как и любая другая строка.
    Так что это за значение такое, если его нельзя обнаружить и посчитать?
  • McSimm © (01.07.08 18:13) [78]
    И, кстати о конкатенациях, сколько значений "АА" содержится в строке "АААА" - два или три ?
  • McSimm © (01.07.08 18:14) [79]

    > пустая строка - это точно такое же значение строкового типа,
    >  как и любая другая строка.

    Равно как и 0 мало отличается от любого другого числового значения.
 
Конференция "Прочее" » Отождествление пустой строки и NULL
Есть новые Нет новых   [134439   +35][b:0.001][p:0.001]