Форум: "Базы";
Текущий архив: 2015.04.05;
Скачать: [xml.tar.bz2];
ВнизOracle: опять про null. почему ответ "-"?! Найти похожие ветки
← →
OW © (2011-04-28 12:57) [0]select nvl(null||"-","+") A from dual
разве он не должен null с "-" сконкатенейтить, получить null и выбрать "+"?
← →
OW © (2011-04-28 13:00) [1]очень нприятно получилось, если писать
nvl(A.REGION||";","")||nvl(A.LOCALITY||";","")||nvl(A.STREET_NAME||";","")
ожидается, что если есть именование, то оно будет закончено ;, а если нет - ничего не будет. А получается ";;Минина"
← →
Медвежонок ХМЛ © (2011-04-28 13:03) [2]decode(region,null,null,region || ";")
или поисковый кейс вместо декода, если это plsql.
← →
OW © (2011-04-28 13:04) [3]
> Медвежонок ХМЛ © (28.04.11 13:03) [2]
> decode(
это понятно, и про case тоже
но почему nvl так работает?
← →
Медвежонок ХМЛ © (2011-04-28 13:07) [4]но почему nvl так работает?
Он как раз работает правильно.
select null ||"-" from dual
← →
Медвежонок ХМЛ © (2011-04-28 13:09) [5]а конкатенация так работает наверное потому, что иначе будет адский гитлер и холокост.
если надо склеить n значений, то пришлось бы помнить, что любой нулл все испортит и надо проверять
← →
Kerk © (2011-04-28 13:13) [6]Еще не надо забывать, что в оракле пустая строка и null - это одно и тоже.
← →
Медвежонок ХМЛ © (2011-04-28 13:20) [7]Еще не надо забывать, что в оракле пустая строка и null - это одно и тоже.
видимо ноги именно из этого и растут.
для mssql:
select null + "-"
результат будет нулл, а select "" + "-" будет "-"
и все потому что пустая строка там не нулл
← →
Игорь Шевченко © (2011-04-28 13:40) [8]
> или поисковый кейс вместо декода, если это plsql.
даже если это SQLWITH foo AS (
SELECT "foo" bar FROM dual
UNION ALL
SELECT NULL FROM dual
)
SELECT CASE WHEN foo.bar IS NULL
THEN NULL
ELSE foo.bar||";"
END
FROM foo
← →
OW © (2011-04-28 14:25) [9]
> видимо ноги именно из этого и растут.
> для mssql:
> select null + "-"
> результат будет нулл, а select "" + "-" будет "-"
> и все потому что пустая строка там не нулл
ну да, наверное.
миграция запросов .. несколько неожиданно все равно, на первый взгляд :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2015.04.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c