Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизLEFT JOIN. Как Null "преобразовать" в 0? Найти похожие ветки
← →
SergP © (2004-07-22 11:11) [0]select podat.name, a.ply+b.ply as zplan ,a.ply as dplan, b.ply as mplan
from podat
left join tablex a on (podat.p=a.p) and (a.vb=30) and (a.r=3)
left join tablex b on (podat.p=b.p) and (b.vb=50) and (b.r=3)
order by podat.p
Мне нужно чтобы в результате было поле zplan в котором сумма значений полей dplan и mplan. Но если в результате запроса не существует какого-то значения dplan или mplan (т.е. оно равно NULL), то и zplan получается равным NULL.
Как сделать чтобы если значение поля равно NULL то чтобы оно учитывалось как 0?
Например в случае такого результата:
zplan dplan mplan
15 10 5
20 17 3
null 13 null
null null 90
А нужно чтобы было так:
zplan dplan mplan
15 10 5
20 17 3
13 13 null
90 null 90
Либо так:
zplan dplan mplan
15 10 5
20 17 3
13 13 0
90 0 90
Подскажите как это сделать?
БД Foxpro, ADO, Провайдер VFPOLEDB.1 (Microsoft Ole DB Provider for Visual FoxPro)
← →
Соловьев © (2004-07-22 11:15) [1]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_foxhelp/html/lngnvllp_rp.asp
← →
Соловьев © (2004-07-22 11:16) [2]функция IIF()
← →
Ega23 © (2004-07-22 11:18) [3]А MSDN на что????
Microsoft Visual FoxPro Language Reference
NVL( ) Function
Returns a non-null value from two expressions.
NVL(eExpression1, eExpression2)
Return Values
Character, Date, DateTime, Numeric, Currency, Logical, or the null value
Parameters
eExpression1, eExpression2
NVL( ) returns eExpression2 if eExpression1 evaluates to a null value. NVL( ) returns eExpression1 if eExpression1 is not a null value. eExpression1 and eExpression2 may be any data type. NVL( ) returns .NULL. if both eExpression1 and eExpression2 both evaluate to the null value.
Remarks
Use NVL( ) to remove null values from calculations or operations where null values are not supported or are not relevant.
Example
The following example creates a memory variable named glMyNull that contains the null value. NVL( ) is used to return a non-null value from glMyNull and another expression.
STORE .NULL. TO glMyNull && A memory variable containing the null value
CLEAR
? NVL(.T., glMyNull) && Displays .T.
? NVL(glMyNull, glMyNull) && Displays .NULL.
See Also
ISNULL( ) | SET NULL
← →
SergP © (2004-07-22 11:39) [4]
> Ega23 © (22.07.04 11:18) [3]
Спасибо... В этом тексте я все понял. Но вот в MSDN я навряд ли бы его нашел... Или потратил бы на это кучу времени и трафика...
← →
Ega23 © (2004-07-22 13:39) [5]Ну, если честно, то я НИКОГДА не писал для FoxPro, только MS SQL и немножко Interbase.
Но наверняка должна быть функция наподобие IsNull для MSSQL. Вот я её и ввёл, а дольше через See Also.
Уметь самостоятельно искать в MSDN то, что наверняка должно быть, но не знаешь как называется - это, ИМХО, целое искусство.
← →
SergP © (2004-07-22 15:02) [6]
> [5] Ega23 © (22.07.04 13:39)
Кроме того для длительных поисков нужно иметь нормального провайдера а не такого как у меня....
Если я за 36 минут смог "выжать" из инета 261 Кб данных то здесь уже не до поисков... :-(((
← →
Ega23 © (2004-07-22 15:08) [7]У меня MSDN локально стоит, на microsoft.com лазить больно дорого :о)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c