blob: 2a1673566cade42cbf8778432a2093663b79e0a8 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-61232409-1');
</script>
<meta charset="UTF-8">
<meta name="ignite-version" content="2.9.0" />
<title>Numeric Functions | Ignite Documentation</title>
<link rel="canonical" href="/docs/latest/sql-reference/numeric-functions" />
<link rel="stylesheet" href="/assets/css/styles.css?1600382367">
<link rel="stylesheet" href="/assets/css/asciidoc-pygments.css">
<link rel="shortcut icon" href="/favicon.ico">
<meta name='viewport' content='width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0'>
<script type="text/javascript" src="/assets/js/anchor.min.js?1600382367"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
</head>
<body>
<header>
<!--#include virtual="/includes/promotion_banner.html" -->
<div class="container">
<button type='button' class='menu' title='Docs menu'>
<img src="/assets/images/menu-icon.svg"/>
</button>
<div class='home'>
<a href="/" class='home' title='Apache Ignite home'>
<img src="/assets/images/apache_ignite_logo.svg" alt="Apache Ignite logo" width="103" >
</a>
</div>
<nav>
</nav>
<select id="version-selector">
<option value="2.9.0">2.9.0</option>
</select>
<a href="https://github.com/apache/ignite" title='GitHub' class='github' target="_blank">
<img src="/assets/images/github-gray.svg" alt="GitHub logo">
</a>
<form class='search'>
<button class="search-close" type='button'><img src='/assets/images/cancel.svg'></button>
<input type="search" placeholder="Search…" id="search-input">
</form>
<button type='button' class='search-toggle'><img src='/assets/images/search.svg'></button>
<button type='button' class='top-nav-toggle'></button>
</div>
</header>
<link rel="stylesheet" href="/assets/css/docs.css">
<section class='page-docs'>
<nav class='left-nav' data-swiftype-index='false'>
<li>
<a href="/docs/latest/preface" class='' >Preface</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Quick Start Guides<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/quick-start/java"
class=''
>Java</a>
</li>
<li>
<a href="/docs/latest/quick-start/dotnet"
class=''
>.NET/C#</a>
</li>
<li>
<a href="/docs/latest/quick-start/cpp"
class=''
>C++</a>
</li>
<li>
<a href="/docs/latest/quick-start/python"
class=''
>Python</a>
</li>
<li>
<a href="/docs/latest/quick-start/nodejs"
class=''
>Node.JS</a>
</li>
<li>
<a href="/docs/latest/quick-start/sql"
class=''
>SQL</a>
</li>
<li>
<a href="/docs/latest/quick-start/php"
class=''
>PHP</a>
</li>
<li>
<a href="/docs/latest/quick-start/restapi"
class=''
>REST API</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/installation" class='group-toggle collapsed '>Installation<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/installation/installing-using-zip"
class=''
>Installing Using ZIP Archive</a>
</li>
<li>
<a href="/docs/latest/installation/installing-using-docker"
class=''
>Installing Using Docker</a>
</li>
<li>
<a href="/docs/latest/installation/deb-rpm"
class=''
>Installing DEB or RPM package</a>
</li>
<li>
<button
type='button'
class='collapsed '>Kubernetes<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//installation/kubernetes/amazon-eks-deployment" class=''>Amazon EKS</a></li>
<li><a href="/docs/latest//installation/kubernetes/azure-deployment" class=''>Azure Kubernetes Service</a></li>
<li><a href="/docs/latest//installation/kubernetes/gke-deployment" class=''>Google Kubernetes Engine</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Setting Up<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/setup"
class=''
>Setting Up Ignite for Java</a>
</li>
<li>
<a href="/docs/latest/setup-dotnet"
class=''
>Setting Up Ignite for .NET/C#</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/understanding-configuration" class='' >Understanding Configuration</a>
</li>
<li>
<a href="/docs/latest/logging" class='' >Configuring Logging</a>
</li>
<li>
<a href="/docs/latest/starting-nodes" class='' >Starting and Stopping Nodes</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/clustering/clustering"
class=''
>Overview</a>
</li>
<li>
<a href="/docs/latest/clustering/tcp-ip-discovery"
class=''
>TCP/IP Discovery</a>
</li>
<li>
<a href="/docs/latest/clustering/zookeeper-discovery"
class=''
>ZooKeeper Discovery</a>
</li>
<li>
<a href="/docs/latest/clustering/discovery-in-the-cloud"
class=''
>Discovery in the Cloud</a>
</li>
<li>
<a href="/docs/latest/clustering/network-configuration"
class=''
>Network Configuration</a>
</li>
<li>
<a href="/docs/latest/clustering/connect-client-nodes"
class=''
>Connecting Client Nodes</a>
</li>
<li>
<a href="/docs/latest/clustering/running-client-nodes-behind-nat"
class=''
>Running Client Nodes Behind NAT</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Data Modeling<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/data-modeling/data-modeling"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/latest/data-modeling/data-partitioning"
class=''
>Data Partitioning</a>
</li>
<li>
<a href="/docs/latest/data-modeling/affinity-collocation"
class=''
>Affinity Colocation</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Configuring Memory<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/memory-architecture"
class=''
>Memory Architecture</a>
</li>
<li>
<a href="/docs/latest/memory-configuration/data-regions"
class=''
>Configuring Data Regions</a>
</li>
<li>
<a href="/docs/latest/memory-configuration/eviction-policies"
class=''
>Eviction Policies</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Configuring Caches<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/configuring-caches/configuration-overview"
class=''
>Cache Configuration</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/configuring-backups"
class=''
>Configuring Partition Backups</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/atomicity-modes"
class=''
>Atomicity Modes</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/expiry-policies"
class=''
>Expiry Policy</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/on-heap-caching"
class=''
>On-Heap Caching</a>
</li>
<li>
<a href="/docs/latest/configuring-caches/cache-groups"
class=''
>Cache Groups</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Persistence<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/persistence/native-persistence"
class=''
>Ignite Persistence</a>
</li>
<li>
<a href="/docs/latest/persistence/external-storage"
class=''
>External Storage</a>
</li>
<li>
<a href="/docs/latest/persistence/swap"
class=''
>Swapping</a>
</li>
<li>
<a href="/docs/latest/persistence/custom-cache-store"
class=''
>Implementing Custom Cache Store</a>
</li>
<li>
<a href="/docs/latest/persistence/snapshots"
class=''
>Cluster Snapshots</a>
</li>
<li>
<a href="/docs/latest/persistence/disk-compression"
class=''
>Disk Compression</a>
</li>
<li>
<a href="/docs/latest/persistence/persistence-tuning"
class=''
>Tuning Persistence</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/baseline-topology" class='' >Baseline Topology</a>
</li>
<li>
<a href="/docs/latest/cluster-states" class='' >Cluster States</a>
</li>
<li>
<a href="/docs/latest/data-rebalancing" class='' >Data Rebalancing</a>
</li>
<li>
<a href="/docs/latest/partition-loss-policy" class='' >Partition Loss Policy</a>
</li>
<li>
<a href="/docs/latest/deploying-user-code" class='' >Deploying User Code</a>
</li>
<li>
<a href="/docs/latest/peer-class-loading" class='' >Peer Class Loading</a>
</li>
<li>
<a href="/docs/latest/data-streaming" class='' >Data Streaming</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Using Key-Value Cache API<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/key-value-api/basic-cache-operations"
class=''
>Basic Cache Operations</a>
</li>
<li>
<a href="/docs/latest/key-value-api/binary-objects"
class=''
>Working with Binary Objects</a>
</li>
<li>
<a href="/docs/latest/key-value-api/using-scan-queries"
class=''
>Using Scan Queries</a>
</li>
<li>
<a href="/docs/latest/read-repair"
class=''
>Read Repair</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/key-value-api/continuous-queries" class='' >Using Continuous Queries</a>
</li>
<li>
<a href="/docs/latest/key-value-api/transactions" class='' >Performing Transactions</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Working with SQL<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/SQL/sql-introduction"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/latest/SQL/schemas"
class=''
>Understanding Schemas</a>
</li>
<li>
<a href="/docs/latest/SQL/indexes"
class=''
>Defining Indexes</a>
</li>
<li>
<a href="/docs/latest/SQL/sql-api"
class=''
>Using SQL API</a>
</li>
<li>
<a href="/docs/latest/SQL/distributed-joins"
class=''
>Distributed Joins</a>
</li>
<li>
<a href="/docs/latest/SQL/sql-transactions"
class=''
>SQL Transactions</a>
</li>
<li>
<a href="/docs/latest/SQL/custom-sql-func"
class=''
>Custom SQL Functions</a>
</li>
<li>
<a href="/docs/latest/SQL/JDBC/jdbc-driver"
class=''
>JDBC Driver</a>
</li>
<li>
<a href="/docs/latest/SQL/JDBC/jdbc-client-driver"
class=''
>JDBC Client Driver</a>
</li>
<li>
<a href="/docs/latest/transactions/mvcc"
class=''
>Multiversion Concurrency Control</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Distributed Computing<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/distributed-computing/distributed-computing"
class=''
>Distributed Computing API</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/cluster-groups"
class=''
>Cluster Groups</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/executor-service"
class=''
>Executor Service</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/map-reduce"
class=''
>MapReduce API</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/load-balancing"
class=''
>Load Balancing</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/fault-tolerance"
class=''
>Fault Tolerance</a>
</li>
<li>
<a href="/docs/latest/distributed-computing/job-scheduling"
class=''
>Job Scheduling</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/collocated-computations" class='' >Colocating Computations with Data</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Working with Events<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/events/listening-to-events"
class=''
>Enabling and Listenting to Events</a>
</li>
<li>
<a href="/docs/latest/events/events"
class=''
>Events</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/near-cache" class='' >Near Caches</a>
</li>
<li>
<a href="/docs/latest/platform-cache" class='' >.NET Platform Cache</a>
</li>
<li>
<a href="/docs/latest/services/services" class='' >Services</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Distributed Data Structures<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/data-structures/queue-and-set"
class=''
>Queue and Set</a>
</li>
<li>
<a href="/docs/latest/data-structures/atomic-types"
class=''
>Atomic Types</a>
</li>
<li>
<a href="/docs/latest/data-structures/countdownlatch"
class=''
>CountDownLatch</a>
</li>
<li>
<a href="/docs/latest/data-structures/atomic-sequence"
class=''
>Atomic Sequence</a>
</li>
<li>
<a href="/docs/latest/data-structures/semaphore"
class=''
>Semaphore</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Machine Learning<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/machine-learning/machine-learning"
class=''
>Machine Learning</a>
</li>
<li>
<a href="/docs/latest/machine-learning/partition-based-dataset"
class=''
>Partition Based Dataset</a>
</li>
<li>
<a href="/docs/latest/machine-learning/updating-trained-models"
class=''
>Updating Trained Models</a>
</li>
<li>
<button
type='button'
class='collapsed '>Binary Classification<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/binary-classification/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/linear-svm" class=''>Linear SVM (Support Vector Machine)</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/decision-trees" class=''>Decision Trees</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/multilayer-perceptron" class=''>Multilayer Perceptron</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/logistic-regression" class=''>Logistic Regression</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/knn-classification" class=''>k-NN Classification</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/ann" class=''>ANN (Approximate Nearest Neighbor)</a></li>
<li><a href="/docs/latest//machine-learning/binary-classification/naive-bayes" class=''>Naive Bayes</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>Regression<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/regression/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/regression/linear-regression" class=''>Linear Regression</a></li>
<li><a href="/docs/latest//machine-learning/regression/decision-trees-regression" class=''>Decision Trees Regression</a></li>
<li><a href="/docs/latest//machine-learning/regression/knn-regression" class=''>k-NN Regression</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>Clustering<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/clustering/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/clustering/k-means-clustering" class=''>K-Means Clustering</a></li>
<li><a href="/docs/latest//machine-learning/clustering/gaussian-mixture" class=''>Gaussian mixture (GMM)</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/machine-learning/preprocessing"
class=''
>Preprocessing</a>
</li>
<li>
<button
type='button'
class='collapsed '>Model Selection<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/model-selection/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/evaluator" class=''>Evaluator</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/split-the-dataset-on-test-and-train-datasets" class=''>Split the dataset on test and train datasets</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/hyper-parameter-tuning" class=''>Hyper-parameter tuning</a></li>
<li><a href="/docs/latest//machine-learning/model-selection/pipeline-api" class=''>Pipeline API</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/machine-learning/multiclass-classification"
class=''
>Multiclass Classification</a>
</li>
<li>
<button
type='button'
class='collapsed '>Ensemble Methods<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/ensemble-methods/introduction" class=''></a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/stacking" class=''>Stacking</a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/baggin" class=''>Bagging</a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/random-forest" class=''>Random Forest</a></li>
<li><a href="/docs/latest//machine-learning/ensemble-methods/gradient-boosting" class=''>Gradient Boosting</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/machine-learning/recommendation-systems"
class=''
>Recommendation Systems</a>
</li>
<li>
<button
type='button'
class='collapsed '>Importing Model<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//machine-learning/importing-model/introduction" class=''>Introduction</a></li>
<li><a href="/docs/latest//machine-learning/importing-model/model-import-from-gxboost" class=''>Import Model from XGBoost</a></li>
<li><a href="/docs/latest//machine-learning/importing-model/model-import-from-apache-spark" class=''>Import Model from Apache Spark</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Monitoring<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/monitoring-metrics/intro"
class=''
>Introduction</a>
</li>
<li>
<a href="/docs/latest/monitoring-metrics/cluster-id"
class=''
>Cluster ID and Tag</a>
</li>
<li>
<button
type='button'
class='collapsed '>Metrics<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//monitoring-metrics/configuring-metrics" class=''>Configuring Metrics</a></li>
<li><a href="/docs/latest//monitoring-metrics/metrics" class=''>JMX Metrics</a></li>
</nav>
</li>
<li>
<button
type='button'
class='collapsed '>New Metrics System<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//monitoring-metrics/new-metrics-system" class=''>Introduction</a></li>
<li><a href="/docs/latest//monitoring-metrics/new-metrics" class=''>Metrics</a></li>
</nav>
</li>
<li>
<a href="/docs/latest/monitoring-metrics/system-views"
class=''
>System Views</a>
</li>
<li>
<a href="/docs/latest/monitoring-metrics/tracing"
class=''
>Tracing</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/security" class='group-toggle collapsed '>Security<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/security/authentication"
class=''
>Authentication</a>
</li>
<li>
<a href="/docs/latest/security/ssl-tls"
class=''
>SSL/TLS</a>
</li>
<li>
<button
type='button'
class='collapsed '>Transparent Data Encryption<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//security/tde" class=''>Introduction</a></li>
<li><a href="/docs/latest//security/master-key-rotation" class=''>Master key rotation</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Thin Clients<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/thin-clients/getting-started-with-thin-clients"
class=''
>Thin Clients Overview</a>
</li>
<li>
<a href="/docs/latest/thin-clients/java-thin-client"
class=''
>Java Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/dotnet-thin-client"
class=''
>.NET Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/cpp-thin-client"
class=''
>C++ Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/python-thin-client"
class=''
>Python Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/php-thin-client"
class=''
>PHP Thin Client</a>
</li>
<li>
<a href="/docs/latest/thin-clients/nodejs-thin-client"
class=''
>Node.js Thin Client</a>
</li>
<li>
<button
type='button'
class='collapsed '>Binary Client Protocol<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class="sub_pages collapsed">
<li><a href="/docs/latest//binary-client-protocol/binary-client-protocol" class=''>Binary Client Protocol</a></li>
<li><a href="/docs/latest//binary-client-protocol/data-format" class=''>Data Format</a></li>
<li><a href="/docs/latest//binary-client-protocol/key-value-queries" class=''>Key-Value Queries</a></li>
<li><a href="/docs/latest//binary-client-protocol/sql-and-scan-queries" class=''>SQL and Scan Queries</a></li>
<li><a href="/docs/latest//binary-client-protocol/binary-type-metadata" class=''>Binary Types Metadata</a></li>
<li><a href="/docs/latest//binary-client-protocol/cache-configuration" class=''>Cache Configuration</a></li>
</nav>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>ODBC Driver<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/SQL/ODBC/odbc-driver"
class=''
>ODBC Driver</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/connection-string-dsn"
class=''
>Connection String and DSN</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/querying-modifying-data"
class=''
>Querying and Modifying Data</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/specification"
class=''
>Specification</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/data-types"
class=''
>Data Types</a>
</li>
<li>
<a href="/docs/latest/SQL/ODBC/error-codes"
class=''
>Error Codes</a>
</li>
</nav>
</li>
<li>
<a href="/docs/latest/restapi" class='' >REST API</a>
</li>
<li>
<a href="/docs/latest/control-script" class='' >Control Script</a>
</li>
<li>
<a href="/docs/latest/plugins" class='' >Plugins</a>
</li>
<li>
<a href="/docs/latest/sqlline" class='' >SQLLine</a>
</li>
<li>
<button type='button' data-guide-url="" class='group-toggle collapsed '>Ignite for Spark<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/ignite-for-spark/overview"
class=''
>Overview</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/ignitecontext-and-rdd"
class=''
>IgniteContext and IgniteRDD</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/ignite-dataframe"
class=''
>Ignite DataFrame</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/installation"
class=''
>Installation</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/spark-shell"
class=''
>Test Ignite with Spark-shell</a>
</li>
<li>
<a href="/docs/latest/ignite-for-spark/troubleshooting"
class=''
>Troubleshooting</a>
</li>
</nav>
</li>
<li>
<button type='button' data-guide-url="/sql-reference/sql-reference-overview" class='group-toggle collapsed '>SQL Reference<img class="state-indicator" src="/assets/images/left-nav-arrow.svg"></button>
<nav class='nav-group collapsed'>
<li>
<a href="/docs/latest/sql-reference/sql-conformance"
class=''
>SQL Conformance</a>
</li>
<li>
<a href="/docs/latest/sql-reference/ddl"
class=''
>Data Definition Language (DDL)</a>
</li>
<li>
<a href="/docs/latest/sql-reference/dml"
class=''
>Data Manipulation Language (DML)</a>
</li>
<li>
<a href="/docs/latest/sql-reference/transactions"
class=''
>Transactions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/operational-commands"
class=''
>Operational Commands</a>
</li>
<li>
<a href="/docs/latest/sql-reference/aggregate-functions"
class=''
>Aggregate functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/numeric-functions"
class=''
>Numeric Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/string-functions"
class=''
>String Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/date-time-functions"
class=''
>Data and Time Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/system-functions"
class=''
>System Functions</a>
</li>
<li>
<a href="/docs/latest/sql-reference/data-types"
class=''
>Data Types</a>
</li>
</nav>
</li>
</nav>
<div class="left-nav__overlay"></div>
<article data-swiftype-index='true'>
<a class='edit-link' href="https://github.com/apache/ignite/tree/IGNITE-7595/docs/_docs/sql-reference/numeric-functions.adoc" target="_blank">Edit</a>
<h1>Numeric Functions</h1>
<div class="sect1">
<h2 id="abs">ABS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">ABS</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description">Description</h3>
<div class="paragraph">
<p>Returns the absolute value of an expression.</p>
</div>
<h3 id="example" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate an absolute value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">transfer_id</span><span class="p">,</span> <span class="k">ABS</span> <span class="p">(</span><span class="n">price</span><span class="p">)</span> <span class="k">from</span> <span class="n">Transfers</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="acos">ACOS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ACOS</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-2">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-2">Description</h3>
<div class="paragraph">
<p>Calculates the arc cosine. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-2" class="discrete">Example</h3>
<div class="paragraph">
<p>Get arc cos value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">acos</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="asin">ASIN</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ASIN</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-3">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-3">Description</h3>
<div class="paragraph">
<p>Calculates the arc sine. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-3" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate an arc sine:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">asin</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="atan">ATAN</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ATAN</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-4">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-4">Description</h3>
<div class="paragraph">
<p>Calculates the arc tangent. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-4" class="discrete">Example</h3>
<div class="paragraph">
<p>Get an arc tangent:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">atan</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cos">COS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">COS</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-5">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-5">Description</h3>
<div class="paragraph">
<p>Calculates the trigonometric cosine. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-5" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a cosine:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">COS</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cosh">COSH</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">COSH</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-6">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-6">Description</h3>
<div class="paragraph">
<p>Calculates the hyperbolic cosine. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-6" class="discrete">Example</h3>
<div class="paragraph">
<p>Get an hyperbolic cosine:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">HCOS</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cot">COT</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">COT</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-7">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-7">Description</h3>
<div class="paragraph">
<p>Calculates the trigonometric cotangent (1/TAN(ANGLE)). This method returns a <code>double</code>.</p>
</div>
<h3 id="example-7" class="discrete">Example</h3>
<div class="paragraph">
<p>Gets a​ trigonometric cotangent:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">COT</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="sin">SIN</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">SIN</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-8">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-8">Description</h3>
<div class="paragraph">
<p>Calculates the trigonometric sine. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-8" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a trigonometric sine:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">SIN</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="sinh">SINH</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">SINH</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-9">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-9">Description</h3>
<div class="paragraph">
<p>Calculates the hyperbolic sine. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-9" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a hyperbolic sine:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">SINH</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="tan">TAN</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">TAN</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-10">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-10">Description</h3>
<div class="paragraph">
<p>Calculates the trigonometric tangent. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-10" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a trigonometric tangent:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">TAN</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="tanh">TANH</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">TANH</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-11">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - may be a column name, a result of another function, or a math operation.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-11">Description</h3>
<div class="paragraph">
<p>Calculates the hyperbolic tangent. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-11" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a hyperbolic tangent:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">TANH</span><span class="p">(</span><span class="n">angle</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="atan2">ATAN2</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ATAN2</span> <span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-12">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>x and y</code> - the arguments.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-12">Description</h3>
<div class="paragraph">
<p>Calculates the angle when converting the rectangular coordinates to polar coordinates. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-12" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a hyperbolic tangent:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">ATAN2</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="bitand">BITAND</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">BITAND</span> <span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-13">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>x and y</code> - the arguments.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-13">Description</h3>
<div class="paragraph">
<p>The bitwise AND operation. This method returns a <code>long</code>.</p>
</div>
<h3 id="example-13" class="discrete">Example</h3>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">BITAND</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="bitget">BITGET</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">BITGET</span> <span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-14">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>x and y</code> - the arguments.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-14">Description</h3>
<div class="paragraph">
<p>Returns true if and only if the first parameter has a bit set in the position specified by the second parameter. This method returns a <code>boolean</code>. The second parameter is zero-indexed; the least significant bit has position 0.</p>
</div>
<h3 id="example-14" class="discrete">Example</h3>
<div class="paragraph">
<p>Check that 3rd bit is 1:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">BITGET</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> <span class="k">from</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="bitor">BITOR</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">BITOR</span> <span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-15">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>x and y</code> - the arguments.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-15">Description</h3>
<div class="paragraph">
<p>The bitwise OR operation. This method returns a <code>long</code>.</p>
</div>
<h3 id="example-15" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate OR between two fields:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">BITGET</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span> <span class="k">from</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="bitxor">BITXOR</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">BITXOR</span> <span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-16">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>x and y</code> - the arguments.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-16">Description</h3>
<div class="paragraph">
<p>The bitwise XOR operation. This method returns a <code>long</code>.</p>
</div>
<h3 id="example-16" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate XOR between two fields:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">BITXOR</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="mod">MOD</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">MOD</span> <span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="n">x</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-17">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>x and y</code> - the arguments.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-17">Description</h3>
<div class="paragraph">
<p>The modulo operation. This method returns a <code>long</code>.</p>
</div>
<h3 id="example-17" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate MOD between two fields:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">BITXOR</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="ceiling">CEILING</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">CEIL</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span>
<span class="n">CEILING</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-18">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-18">Description</h3>
<div class="paragraph">
<p>See also Java Math.ceil. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-18" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate a ceiling price for items:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">item_id</span><span class="p">,</span> <span class="n">CEILING</span><span class="p">(</span><span class="n">price</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Items</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="degrees">DEGREES</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">DEGREES</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-19">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-19">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.toDegrees</code>. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-19" class="discrete">Example</h3>
<div class="paragraph">
<p>Converts the argument value to degrees:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">DEGREES</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="exp">EXP</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">EXP</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-20">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-20">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.exp</code>. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-20" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculates exp:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">EXP</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Triangles</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="floor">FLOOR</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">FLOOR</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-21">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-21">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.floor</code>. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-21" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculates floor price:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">FLOOR</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Items</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="log">LOG</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">LOG</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span>
<span class="n">LN</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-22">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-22">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.log</code>. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-22" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculates LOG:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">LOG</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">from</span> <span class="n">Items</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="log10">LOG10</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">LOG10</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-23">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-23">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.log10</code> (in Java 5). This method returns a <code>double</code>.</p>
</div>
<h3 id="example-23" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate LOG10:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">LOG</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Items</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="radians">RADIANS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">RADIANS</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-24">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-24">Description</h3>
<div class="paragraph">
<p>See also Java Math.toRadians. This method returns a double.</p>
</div>
<h3 id="example-24" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculates RADIANS:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">RADIANS</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Items</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="sqrt">SQRT</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">SQRT</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-25">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-25">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.sqrt</code>. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-25" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculates SQRT:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">SQRT</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Items</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="pi">PI</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">PI</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-26">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-26">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.PI</code>. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-26" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculates PI:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">PI</span><span class="p">(</span><span class="n">X</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Items</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="power">POWER</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">POWER</span> <span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">Y</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-27">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-27">Description</h3>
<div class="paragraph">
<p>See also <code>Java Math.pow</code>. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-27" class="discrete">Example</h3>
<div class="paragraph">
<p>Calculate the ​power of 2:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">pow</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span> <span class="k">FROM</span> <span class="k">Rows</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="rand">RAND</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="err">{</span><span class="n">RAND</span> <span class="o">|</span> <span class="n">RANDOM</span><span class="err">}</span> <span class="p">([</span><span class="n">expression</span><span class="p">])</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-28">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression seeds the session&#8217;s random number generator.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-28">Description</h3>
<div class="paragraph">
<p>Calling the function without a parameter returns the next a pseudo random number. Calling it with a parameter seeds the session&#8217;s random number generator. This method returns a <code>double</code> between 0 (including) and 1 (excluding).</p>
</div>
<h3 id="example-28" class="discrete">Example</h3>
<div class="paragraph">
<p>Gets a random number for every play:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">random</span><span class="p">()</span> <span class="k">FROM</span> <span class="n">Play</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="random_uuid">RANDOM_UUID</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="err">{</span><span class="n">RANDOM_UUID</span> <span class="o">|</span> <span class="n">UUID</span><span class="err">}</span> <span class="p">()</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="description-29">Description</h3>
<div class="paragraph">
<p>Returns a new UUID with 122 pseudo random bits.</p>
</div>
<h3 id="example-29" class="discrete">Example</h3>
<div class="paragraph">
<p>Gets random number for every Player:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">UUID</span><span class="p">(),</span><span class="n">name</span> <span class="k">FROM</span> <span class="n">Player</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="round">ROUND</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ROUND</span> <span class="p">(</span> <span class="n">expression</span> <span class="p">[,</span> <span class="nb">precision</span><span class="p">]</span> <span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-29">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
<li>
<p><code>precision</code> - the number of digits after the decimal to round to. Rounds to the nearest long if the number of digits if not set.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-30">Description</h3>
<div class="paragraph">
<p>Rounds to a number of digits, or to the nearest long if the number of digits if not set. This method returns a <code>numeric</code> (the same type as the input).</p>
</div>
<h3 id="example-30" class="discrete">Example</h3>
<div class="paragraph">
<p>Convert every Player&#8217;s age to an integer number:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">name</span><span class="p">,</span> <span class="n">ROUND</span><span class="p">(</span><span class="n">age</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Player</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="roundmagic">ROUNDMAGIC</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ROUNDMAGIC</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-30">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-31">Description</h3>
<div class="paragraph">
<p>This function is good for rounding numbers, but it can be slow. It has special handling for numbers around 0. Only numbers smaller than or equal to <code>+/-1000000000000</code> are supported. The value is converted to a String internally, and then the last 4 characters are checked. '000x' becomes '0000' and '999x' becomes '999999', which is rounded automatically. This method returns a <code>double</code>.</p>
</div>
<h3 id="example-31" class="discrete">Example</h3>
<div class="paragraph">
<p>Round every Player&#8217;s age:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">name</span><span class="p">,</span> <span class="n">ROUNDMAGIC</span><span class="p">(</span><span class="n">AGE</span><span class="o">/</span><span class="mi">3</span><span class="o">*</span><span class="mi">3</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Player</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="secure_rand">SECURE_RAND</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">SECURE_RAND</span> <span class="p">(</span><span class="nb">int</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-31">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>int</code> - specifies the number​ of digits.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-32">Description</h3>
<div class="paragraph">
<p>Generate a number of cryptographically secure random numbers. This method returns <code>bytes</code>.</p>
</div>
<h3 id="example-32" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a truly random number:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">name</span><span class="p">,</span> <span class="n">SECURE_RAND</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Player</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="sign">SIGN</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">SIGN</span> <span class="p">(</span><span class="n">expression</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-32">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>expression</code> - any valid numeric expression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-33">Description</h3>
<div class="paragraph">
<p>Return -1 if the value is smaller 0, 0 if zero, and otherwise 1.</p>
</div>
<h3 id="example-33" class="discrete">Example</h3>
<div class="paragraph">
<p>Get a sign for every value:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">name</span><span class="p">,</span> <span class="n">SIGN</span><span class="p">(</span><span class="n">VALUE</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">Player</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="encrypt">ENCRYPT</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ENCRYPT</span> <span class="p">(</span><span class="n">algorithmString</span> <span class="p">,</span> <span class="n">keyBytes</span> <span class="p">,</span> <span class="n">dataBytes</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-33">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>algorithmString</code> - sets a supported AES algorithm.</p>
</li>
<li>
<p><code>keyBytes</code> - sets a key.</p>
</li>
<li>
<p><code>dataBytes</code> - sets data.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-34">Description</h3>
<div class="paragraph">
<p>Encrypt data using a key. The supported algorithm is AES. The block size is 16 bytes. This method returns <code>bytes</code>.</p>
</div>
<h3 id="example-34" class="discrete">Example</h3>
<div class="paragraph">
<p>Encrypt players name:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">ENCRYPT</span><span class="p">(</span><span class="s1">'AES'</span><span class="p">,</span> <span class="s1">'00'</span><span class="p">,</span> <span class="n">STRINGTOUTF8</span><span class="p">(</span><span class="n">Name</span><span class="p">))</span> <span class="k">FROM</span> <span class="n">Player</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="decrypt">DECRYPT</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">DECRYPT</span> <span class="p">(</span><span class="n">algorithmString</span> <span class="p">,</span> <span class="n">keyBytes</span> <span class="p">,</span> <span class="n">dataBytes</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-34">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>algorithmString</code> - sets a supported AES algorithm.</p>
</li>
<li>
<p><code>keyBytes</code> - sets a key.</p>
</li>
<li>
<p><code>dataBytes</code> - sets data.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-35">Description</h3>
<div class="paragraph">
<p>Decrypts data using a key. The supported algorithm is AES. The block size is 16 bytes. This method returns bytes.</p>
</div>
<h3 id="example-35" class="discrete">Example</h3>
<div class="paragraph">
<p>Decrypt Players' names:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">SELECT</span> <span class="n">DECRYPT</span><span class="p">(</span><span class="s1">'AES'</span><span class="p">,</span> <span class="s1">'00'</span><span class="p">,</span> <span class="s1">'3fabb4de8f1ee2e97d7793bab2db1116'</span><span class="p">)))</span> <span class="k">FROM</span> <span class="n">Player</span><span class="p">;</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="truncate">TRUNCATE</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="err">{</span><span class="n">TRUNC</span> <span class="o">|</span> <span class="k">TRUNCATE</span><span class="err">}</span> <span class="p">(</span><span class="err">\{\{</span><span class="nb">numeric</span><span class="p">,</span> <span class="n">digitsInt</span><span class="err">}</span> <span class="o">|</span> <span class="nb">timestamp</span> <span class="o">|</span> <span class="nb">date</span> <span class="o">|</span> <span class="n">timestampString</span><span class="err">}</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="description-36">Description</h3>
<div class="paragraph">
<p>Truncates to a number of digits (to the next value closer to 0). This method returns a <code>double</code>. When used with a timestamp, truncates a timestamp to a date (day) value. When used with a date, truncates a date to a date (day) value less time part. When used with a timestamp as string, truncates a timestamp to a date (day) value.</p>
</div>
<h3 id="example-36" class="discrete">Example</h3>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="k">TRUNCATE</span><span class="p">(</span><span class="n">VALUE</span><span class="p">,</span> <span class="mi">2</span><span class="p">);</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="compress">COMPRESS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">COMPRESS</span><span class="p">(</span><span class="n">dataBytes</span> <span class="p">[,</span> <span class="n">algorithmString</span><span class="p">])</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-35">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>dataBytes</code> - data to compress.</p>
</li>
<li>
<p><code>algorithmString</code> - an algorithm to use for compression.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-37">Description</h3>
<div class="paragraph">
<p>Compress the data using the specified compression algorithm. Supported algorithms are: LZF (faster but lower compression; default), and DEFLATE (higher compression). Compression does not always reduce size. Very small objects and objects with little redundancy may get larger. This method returns <code>bytes</code>.</p>
</div>
<h3 id="example-37" class="discrete">Example</h3>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">COMPRESS</span><span class="p">(</span><span class="n">STRINGTOUTF8</span><span class="p">(</span><span class="s1">'Test'</span><span class="p">))</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="expand">EXPAND</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">EXPAND</span><span class="p">(</span><span class="n">dataBytes</span><span class="p">)</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="parameters-36">Parameters</h3>
<div class="ulist">
<ul>
<li>
<p><code>dataBytes</code> - data to expand.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="description-38">Description</h3>
<div class="paragraph">
<p>Expand data that was compressed using the COMPRESS function. This method returns <code>bytes</code>.</p>
</div>
<h3 id="example-38" class="discrete">Example</h3>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">UTF8TOSTRING</span><span class="p">(</span><span class="n">EXPAND</span><span class="p">(</span><span class="n">COMPRESS</span><span class="p">(</span><span class="n">STRINGTOUTF8</span><span class="p">(</span><span class="s1">'Test'</span><span class="p">))))</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="zero">ZERO</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ZERO</span><span class="p">()</span></code></pre>
</div>
</div>
<div class="sect2">
<h3 id="description-39">Description</h3>
<div class="paragraph">
<p>Return the value 0. This function can be used even if numeric literals are disabled.</p>
</div>
<h3 id="example-39" class="discrete">Example</h3>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="sql"><span class="n">ZERO</span><span class="p">()</span></code></pre>
</div>
</div>
</div>
</div>
</div>
<div class="copyright">
© 2020 The Apache Software Foundation.<br/>
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.
</div>
</article>
<nav class="right-nav" data-swiftype-index='false'>
<ul class="sectlevel1">
<li><a href="#abs">ABS</a>
<ul class="sectlevel2">
<li><a href="#parameters">Parameters</a></li>
<li><a href="#description">Description</a></li>
</ul>
</li>
<li><a href="#acos">ACOS</a>
<ul class="sectlevel2">
<li><a href="#parameters-2">Parameters</a></li>
<li><a href="#description-2">Description</a></li>
</ul>
</li>
<li><a href="#asin">ASIN</a>
<ul class="sectlevel2">
<li><a href="#parameters-3">Parameters</a></li>
<li><a href="#description-3">Description</a></li>
</ul>
</li>
<li><a href="#atan">ATAN</a>
<ul class="sectlevel2">
<li><a href="#parameters-4">Parameters</a></li>
<li><a href="#description-4">Description</a></li>
</ul>
</li>
<li><a href="#cos">COS</a>
<ul class="sectlevel2">
<li><a href="#parameters-5">Parameters</a></li>
<li><a href="#description-5">Description</a></li>
</ul>
</li>
<li><a href="#cosh">COSH</a>
<ul class="sectlevel2">
<li><a href="#parameters-6">Parameters</a></li>
<li><a href="#description-6">Description</a></li>
</ul>
</li>
<li><a href="#cot">COT</a>
<ul class="sectlevel2">
<li><a href="#parameters-7">Parameters</a></li>
<li><a href="#description-7">Description</a></li>
</ul>
</li>
<li><a href="#sin">SIN</a>
<ul class="sectlevel2">
<li><a href="#parameters-8">Parameters</a></li>
<li><a href="#description-8">Description</a></li>
</ul>
</li>
<li><a href="#sinh">SINH</a>
<ul class="sectlevel2">
<li><a href="#parameters-9">Parameters</a></li>
<li><a href="#description-9">Description</a></li>
</ul>
</li>
<li><a href="#tan">TAN</a>
<ul class="sectlevel2">
<li><a href="#parameters-10">Parameters</a></li>
<li><a href="#description-10">Description</a></li>
</ul>
</li>
<li><a href="#tanh">TANH</a>
<ul class="sectlevel2">
<li><a href="#parameters-11">Parameters</a></li>
<li><a href="#description-11">Description</a></li>
</ul>
</li>
<li><a href="#atan2">ATAN2</a>
<ul class="sectlevel2">
<li><a href="#parameters-12">Parameters</a></li>
<li><a href="#description-12">Description</a></li>
</ul>
</li>
<li><a href="#bitand">BITAND</a>
<ul class="sectlevel2">
<li><a href="#parameters-13">Parameters</a></li>
<li><a href="#description-13">Description</a></li>
</ul>
</li>
<li><a href="#bitget">BITGET</a>
<ul class="sectlevel2">
<li><a href="#parameters-14">Parameters</a></li>
<li><a href="#description-14">Description</a></li>
</ul>
</li>
<li><a href="#bitor">BITOR</a>
<ul class="sectlevel2">
<li><a href="#parameters-15">Parameters</a></li>
<li><a href="#description-15">Description</a></li>
</ul>
</li>
<li><a href="#bitxor">BITXOR</a>
<ul class="sectlevel2">
<li><a href="#parameters-16">Parameters</a></li>
<li><a href="#description-16">Description</a></li>
</ul>
</li>
<li><a href="#mod">MOD</a>
<ul class="sectlevel2">
<li><a href="#parameters-17">Parameters</a></li>
<li><a href="#description-17">Description</a></li>
</ul>
</li>
<li><a href="#ceiling">CEILING</a>
<ul class="sectlevel2">
<li><a href="#parameters-18">Parameters</a></li>
<li><a href="#description-18">Description</a></li>
</ul>
</li>
<li><a href="#degrees">DEGREES</a>
<ul class="sectlevel2">
<li><a href="#parameters-19">Parameters</a></li>
<li><a href="#description-19">Description</a></li>
</ul>
</li>
<li><a href="#exp">EXP</a>
<ul class="sectlevel2">
<li><a href="#parameters-20">Parameters</a></li>
<li><a href="#description-20">Description</a></li>
</ul>
</li>
<li><a href="#floor">FLOOR</a>
<ul class="sectlevel2">
<li><a href="#parameters-21">Parameters</a></li>
<li><a href="#description-21">Description</a></li>
</ul>
</li>
<li><a href="#log">LOG</a>
<ul class="sectlevel2">
<li><a href="#parameters-22">Parameters</a></li>
<li><a href="#description-22">Description</a></li>
</ul>
</li>
<li><a href="#log10">LOG10</a>
<ul class="sectlevel2">
<li><a href="#parameters-23">Parameters</a></li>
<li><a href="#description-23">Description</a></li>
</ul>
</li>
<li><a href="#radians">RADIANS</a>
<ul class="sectlevel2">
<li><a href="#parameters-24">Parameters</a></li>
<li><a href="#description-24">Description</a></li>
</ul>
</li>
<li><a href="#sqrt">SQRT</a>
<ul class="sectlevel2">
<li><a href="#parameters-25">Parameters</a></li>
<li><a href="#description-25">Description</a></li>
</ul>
</li>
<li><a href="#pi">PI</a>
<ul class="sectlevel2">
<li><a href="#parameters-26">Parameters</a></li>
<li><a href="#description-26">Description</a></li>
</ul>
</li>
<li><a href="#power">POWER</a>
<ul class="sectlevel2">
<li><a href="#parameters-27">Parameters</a></li>
<li><a href="#description-27">Description</a></li>
</ul>
</li>
<li><a href="#rand">RAND</a>
<ul class="sectlevel2">
<li><a href="#parameters-28">Parameters</a></li>
<li><a href="#description-28">Description</a></li>
</ul>
</li>
<li><a href="#random_uuid">RANDOM_UUID</a>
<ul class="sectlevel2">
<li><a href="#description-29">Description</a></li>
</ul>
</li>
<li><a href="#round">ROUND</a>
<ul class="sectlevel2">
<li><a href="#parameters-29">Parameters</a></li>
<li><a href="#description-30">Description</a></li>
</ul>
</li>
<li><a href="#roundmagic">ROUNDMAGIC</a>
<ul class="sectlevel2">
<li><a href="#parameters-30">Parameters</a></li>
<li><a href="#description-31">Description</a></li>
</ul>
</li>
<li><a href="#secure_rand">SECURE_RAND</a>
<ul class="sectlevel2">
<li><a href="#parameters-31">Parameters</a></li>
<li><a href="#description-32">Description</a></li>
</ul>
</li>
<li><a href="#sign">SIGN</a>
<ul class="sectlevel2">
<li><a href="#parameters-32">Parameters</a></li>
<li><a href="#description-33">Description</a></li>
</ul>
</li>
<li><a href="#encrypt">ENCRYPT</a>
<ul class="sectlevel2">
<li><a href="#parameters-33">Parameters</a></li>
<li><a href="#description-34">Description</a></li>
</ul>
</li>
<li><a href="#decrypt">DECRYPT</a>
<ul class="sectlevel2">
<li><a href="#parameters-34">Parameters</a></li>
<li><a href="#description-35">Description</a></li>
</ul>
</li>
<li><a href="#truncate">TRUNCATE</a>
<ul class="sectlevel2">
<li><a href="#description-36">Description</a></li>
</ul>
</li>
<li><a href="#compress">COMPRESS</a>
<ul class="sectlevel2">
<li><a href="#parameters-35">Parameters</a></li>
<li><a href="#description-37">Description</a></li>
</ul>
</li>
<li><a href="#expand">EXPAND</a>
<ul class="sectlevel2">
<li><a href="#parameters-36">Parameters</a></li>
<li><a href="#description-38">Description</a></li>
</ul>
</li>
<li><a href="#zero">ZERO</a>
<ul class="sectlevel2">
<li><a href="#description-39">Description</a></li>
</ul>
</li>
</ul>
<footer>
</footer>
</nav>
</section>
<script type='module' src='/assets/js/code-copy-to-clipboard.js' async crossorigin></script>
<script>
// inits deep anchors -- needs to be done here because of https://www.bryanbraun.com/anchorjs/#dont-run-it-too-late
anchors.add('.page-docs h1, .page-docs h2, .page-docs h3:not(.discrete), .page-docs h4, .page-docs h5');
anchors.options = {
placement: 'right',
visible: 'always'
};
</script>
<!-- load google fonts async -->
<script type="text/javascript">
WebFontConfig = {
google: { families: [ 'Open+Sans:300,400,600,700&display=swap' ] }
};
(function() {
var wf = document.createElement('script');
wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})(); </script>
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script>
docsearch({
// Your apiKey and indexName will be given to you once
// we create your config
apiKey: '3eee686c0ebe39eff3baeb18c56fa5f8',
indexName: 'apache_ignite',
// Replace inputSelector with a CSS selector
// matching your search input
inputSelector: '#search-input',
// algoliaOptions: { 'facetFilters': ["version:$VERSION"] },
// Set debug to true to inspect the dropdown
debug: false,
});
</script>
<script type='module' src='/assets/js/index.js?1600382367' async crossorigin></script>
<script type='module' src='/assets/js/versioning.js?1600382367' async crossorigin></script>
</body>
</html>