www.openlinksw.com
docs.openlinksw.com

Book Home

Contents
Preface

Virtuoso Functions Guide

Administration
Aggregate Functions
Array Manipulation
BPEL APIs
Backup
Compression
Cursor
Date & Time Manipulation
Debug
Dictionary Manipulation
Encoding & Decoding
File Manipulation
Free Text
Hashing / Cryptographic
LDAP
Locale
Mail
Miscellaneous
Number
__max
__max_notnull
__min
__min_notnull
abs
atof
atoi
bit_and
bit_not
bit_or
bit_shift
bit_xor
ceiling
either
equ
exp
floor
isdouble
isfinitenumeric
isfloat
isinteger
isnumeric
iszero
log
log10
lower
mod
power
randomize
rnd
sign
sqrt
trigonometric
Phrases
RDF data
Remote SQL Data Source
Replication
SOAP
SQL
String
Transaction
Type Mapping
UDDI
User Defined Types & The CLR
VAD
Virtuoso Java PL API
Virtuoso Server Extension Interface (VSEI)
Web & Internet
XML
XPATH & XQUERY

Functions Index

__max_notnull

Returns maximum value among all its arguments, ignoring NULLs entirely.
any __max_notnull ( arg1 any, arg2 any, ... , argN any);
Description

The function returns the maximum value among all values in all its arguments by ignoring NULLs entirely.

Parameters
argI – Values which can be with type float, integer etc.
Examples

Example 1

SQL> select __max_notnull (null, 1, 0);
__max_notnull
VARCHAR
_______________________________________________________________________________

1

1 Rows. -- 16 msec.

SQL> select __max (null, 1, 0);
__max
VARCHAR
_______________________________________________________________________________

NULL

1 Rows. -- 0 msec.

Example 2

SQL> SPARQL 
INSERT INTO GRAPH <http://mygraph.com>
  { 
    <http://mygraph2.com/pricing/#QVal1> <price1>  1 ;                    <price3> 5 .
    <http://mygraph2.com/pricing/#QVal2>                  <price2> 1 ;    <price3> 4 .
    <http://mygraph2.com/pricing/#QVal3> <price1>  6 ;    <price2> 2                 .
  };
    
Insert into <http://mygraph.com>, 6 (or less) triples -- done
No. of rows in result: 1
 	
SQL> SPARQL SELECT ?s, (bif:__max_notnull (?pr1, ?pr2, ?pr3)) 
FROM <http://mygraph.com>
WHERE 
  {
    { 
      SELECT DISTINCT ?s
      WHERE 
        {
          ?s ?p ?pr .
          FILTER (?p in (<price1>, <price2>, <price3>)) 
        } 
    }
    OPTIONAL { ?s <price1> ?pr1 }
    OPTIONAL { ?s <price2> ?pr2 }
    OPTIONAL { ?s <price3> ?pr3 }
  };

  
Query result:
s                                     callret-1
VARCHAR 	                            VARCHAR
_______________________________________________
http://mygraph2.com/pricing/#QVal2	 4
http://mygraph2.com/pricing/#QVal1	 5
http://mygraph2.com/pricing/#QVal3	 6

No. of rows in result: 2