System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 3de4a5875030fdaa7f44f7e988c99ee9d76fe261:


0000: 3c 21 44 4f 43 54 59 50 45 20 48 54 4d 4c 20 50  <!DOCTYPE HTML P
0010: 55 42 4c 49 43 20 22 2d 2f 2f 57 33 43 2f 2f 44  UBLIC "-//W3C//D
0020: 54 44 20 48 54 4d 4c 20 34 2e 30 31 2f 2f 45 4e  TD HTML 4.01//EN
0030: 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 33  " "http://www.w3
0040: 2e 6f 72 67 2f 54 52 2f 68 74 6d 6c 34 2f 73 74  .org/TR/html4/st
0050: 72 69 63 74 2e 64 74 64 22 3e 0a 3c 68 74 6d 6c  rict.dtd">.<html
0060: 3e 3c 68 65 61 64 3e 0a 3c 6d 65 74 61 20 6e 61  ><head>.<meta na
0070: 6d 65 3d 22 76 69 65 77 70 6f 72 74 22 20 63 6f  me="viewport" co
0080: 6e 74 65 6e 74 3d 22 77 69 64 74 68 3d 64 65 76  ntent="width=dev
0090: 69 63 65 2d 77 69 64 74 68 2c 20 69 6e 69 74 69  ice-width, initi
00a0: 61 6c 2d 73 63 61 6c 65 3d 31 2e 30 22 3e 0a 3c  al-scale=1.0">.<
00b0: 6d 65 74 61 20 68 74 74 70 2d 65 71 75 69 76 3d  meta http-equiv=
00c0: 22 63 6f 6e 74 65 6e 74 2d 74 79 70 65 22 20 63  "content-type" c
00d0: 6f 6e 74 65 6e 74 3d 22 74 65 78 74 2f 68 74 6d  ontent="text/htm
00e0: 6c 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38  l; charset=UTF-8
00f0: 22 3e 0a 3c 6c 69 6e 6b 20 68 72 65 66 3d 22 73  ">.<link href="s
0100: 71 6c 69 74 65 2e 63 73 73 22 20 72 65 6c 3d 22  qlite.css" rel="
0110: 73 74 79 6c 65 73 68 65 65 74 22 3e 0a 3c 74 69  stylesheet">.<ti
0120: 74 6c 65 3e 53 51 4c 69 74 65 20 51 75 65 72 79  tle>SQLite Query
0130: 20 4c 61 6e 67 75 61 67 65 3a 20 65 78 70 72 65   Language: expre
0140: 73 73 69 6f 6e 3c 2f 74 69 74 6c 65 3e 0a 3c 21  ssion</title>.<!
0150: 2d 2d 20 70 61 74 68 3d 20 2d 2d 3e 0a 3c 2f 68  -- path= -->.</h
0160: 65 61 64 3e 0a 3c 62 6f 64 79 3e 0a 3c 64 69 76  ead>.<body>.<div
0170: 20 63 6c 61 73 73 3d 6e 6f 73 65 61 72 63 68 3e   class=nosearch>
0180: 0a 3c 61 20 68 72 65 66 3d 22 69 6e 64 65 78 2e  .<a href="index.
0190: 68 74 6d 6c 22 3e 0a 3c 69 6d 67 20 63 6c 61 73  html">.<img clas
01a0: 73 3d 22 6c 6f 67 6f 22 20 73 72 63 3d 22 69 6d  s="logo" src="im
01b0: 61 67 65 73 2f 73 71 6c 69 74 65 33 37 30 5f 62  ages/sqlite370_b
01c0: 61 6e 6e 65 72 2e 67 69 66 22 20 61 6c 74 3d 22  anner.gif" alt="
01d0: 53 51 4c 69 74 65 22 20 62 6f 72 64 65 72 3d 22  SQLite" border="
01e0: 30 22 3e 0a 3c 2f 61 3e 0a 3c 64 69 76 3e 3c 21  0">.</a>.<div><!
01f0: 2d 2d 20 49 45 20 68 61 63 6b 20 74 6f 20 70 72  -- IE hack to pr
0200: 65 76 65 6e 74 20 64 69 73 61 70 70 65 61 72 69  event disappeari
0210: 6e 67 20 6c 6f 67 6f 20 2d 2d 3e 3c 2f 64 69 76  ng logo --></div
0220: 3e 0a 3c 64 69 76 20 63 6c 61 73 73 3d 22 74 61  >.<div class="ta
0230: 67 6c 69 6e 65 20 64 65 73 6b 74 6f 70 6f 6e 6c  gline desktoponl
0240: 79 22 3e 0a 53 6d 61 6c 6c 2e 20 46 61 73 74 2e  y">.Small. Fast.
0250: 20 52 65 6c 69 61 62 6c 65 2e 3c 62 72 3e 43 68   Reliable.<br>Ch
0260: 6f 6f 73 65 20 61 6e 79 20 74 68 72 65 65 2e 0a  oose any three..
0270: 3c 2f 64 69 76 3e 0a 3c 64 69 76 20 63 6c 61 73  </div>.<div clas
0280: 73 3d 22 6d 65 6e 75 20 6d 61 69 6e 6d 65 6e 75  s="menu mainmenu
0290: 22 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 61 20 68  ">.<ul>.<li><a h
02a0: 72 65 66 3d 22 69 6e 64 65 78 2e 68 74 6d 6c 22  ref="index.html"
02b0: 3e 48 6f 6d 65 3c 2f 61 3e 0a 3c 6c 69 20 63 6c  >Home</a>.<li cl
02c0: 61 73 73 3d 27 6d 6f 62 69 6c 65 6f 6e 6c 79 27  ass='mobileonly'
02d0: 3e 3c 61 20 68 72 65 66 3d 22 6a 61 76 61 73 63  ><a href="javasc
02e0: 72 69 70 74 3a 76 6f 69 64 28 30 29 22 20 6f 6e  ript:void(0)" on
02f0: 63 6c 69 63 6b 3d 27 74 6f 67 67 6c 65 5f 64 69  click='toggle_di
0300: 76 28 22 73 75 62 6d 65 6e 75 22 29 27 3e 4d 65  v("submenu")'>Me
0310: 6e 75 3c 2f 61 3e 0a 3c 6c 69 20 63 6c 61 73 73  nu</a>.<li class
0320: 3d 27 77 69 64 65 6f 6e 6c 79 27 3e 3c 61 20 68  ='wideonly'><a h
0330: 72 65 66 3d 27 61 62 6f 75 74 2e 68 74 6d 6c 27  ref='about.html'
0340: 3e 41 62 6f 75 74 3c 2f 61 3e 0a 3c 6c 69 20 63  >About</a>.<li c
0350: 6c 61 73 73 3d 27 64 65 73 6b 74 6f 70 6f 6e 6c  lass='desktoponl
0360: 79 27 3e 3c 61 20 68 72 65 66 3d 22 64 6f 63 73  y'><a href="docs
0370: 2e 68 74 6d 6c 22 3e 44 6f 63 75 6d 65 6e 74 61  .html">Documenta
0380: 74 69 6f 6e 3c 2f 61 3e 0a 3c 6c 69 20 63 6c 61  tion</a>.<li cla
0390: 73 73 3d 27 64 65 73 6b 74 6f 70 6f 6e 6c 79 27  ss='desktoponly'
03a0: 3e 3c 61 20 68 72 65 66 3d 22 64 6f 77 6e 6c 6f  ><a href="downlo
03b0: 61 64 2e 68 74 6d 6c 22 3e 44 6f 77 6e 6c 6f 61  ad.html">Downloa
03c0: 64 3c 2f 61 3e 0a 3c 6c 69 20 63 6c 61 73 73 3d  d</a>.<li class=
03d0: 27 77 69 64 65 6f 6e 6c 79 27 3e 3c 61 20 68 72  'wideonly'><a hr
03e0: 65 66 3d 27 63 6f 70 79 72 69 67 68 74 2e 68 74  ef='copyright.ht
03f0: 6d 6c 27 3e 4c 69 63 65 6e 73 65 3c 2f 61 3e 0a  ml'>License</a>.
0400: 3c 6c 69 20 63 6c 61 73 73 3d 27 64 65 73 6b 74  <li class='deskt
0410: 6f 70 6f 6e 6c 79 27 3e 3c 61 20 68 72 65 66 3d  oponly'><a href=
0420: 22 73 75 70 70 6f 72 74 2e 68 74 6d 6c 22 3e 53  "support.html">S
0430: 75 70 70 6f 72 74 3c 2f 61 3e 0a 3c 6c 69 20 63  upport</a>.<li c
0440: 6c 61 73 73 3d 27 64 65 73 6b 74 6f 70 6f 6e 6c  lass='desktoponl
0450: 79 27 3e 3c 61 20 68 72 65 66 3d 22 70 72 6f 73  y'><a href="pros
0460: 75 70 70 6f 72 74 2e 68 74 6d 6c 22 3e 50 75 72  upport.html">Pur
0470: 63 68 61 73 65 3c 2f 61 3e 0a 3c 6c 69 20 63 6c  chase</a>.<li cl
0480: 61 73 73 3d 27 73 65 61 72 63 68 27 20 69 64 3d  ass='search' id=
0490: 27 73 65 61 72 63 68 5f 6d 65 6e 75 62 75 74 74  'search_menubutt
04a0: 6f 6e 27 3e 0a 3c 61 20 68 72 65 66 3d 22 6a 61  on'>.<a href="ja
04b0: 76 61 73 63 72 69 70 74 3a 76 6f 69 64 28 30 29  vascript:void(0)
04c0: 22 20 6f 6e 63 6c 69 63 6b 3d 27 74 6f 67 67 6c  " onclick='toggl
04d0: 65 5f 73 65 61 72 63 68 28 29 27 3e 53 65 61 72  e_search()'>Sear
04e0: 63 68 3c 2f 61 3e 0a 3c 2f 75 6c 3e 0a 3c 2f 64  ch</a>.</ul>.</d
04f0: 69 76 3e 0a 3c 64 69 76 20 63 6c 61 73 73 3d 22  iv>.<div class="
0500: 6d 65 6e 75 20 73 75 62 6d 65 6e 75 22 20 69 64  menu submenu" id
0510: 3d 22 73 75 62 6d 65 6e 75 22 3e 0a 3c 75 6c 3e  ="submenu">.<ul>
0520: 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d 27 61 62  .<li><a href='ab
0530: 6f 75 74 2e 68 74 6d 6c 27 3e 41 62 6f 75 74 3c  out.html'>About<
0540: 2f 61 3e 0a 3c 6c 69 3e 3c 61 20 68 72 65 66 3d  /a>.<li><a href=
0550: 27 64 6f 63 73 2e 68 74 6d 6c 27 3e 44 6f 63 75  'docs.html'>Docu
0560: 6d 65 6e 74 61 74 69 6f 6e 3c 2f 61 3e 0a 3c 6c  mentation</a>.<l
0570: 69 3e 3c 61 20 68 72 65 66 3d 27 64 6f 77 6e 6c  i><a href='downl
0580: 6f 61 64 2e 68 74 6d 6c 27 3e 44 6f 77 6e 6c 6f  oad.html'>Downlo
0590: 61 64 3c 2f 61 3e 0a 3c 6c 69 3e 3c 61 20 68 72  ad</a>.<li><a hr
05a0: 65 66 3d 27 73 75 70 70 6f 72 74 2e 68 74 6d 6c  ef='support.html
05b0: 27 3e 53 75 70 70 6f 72 74 3c 2f 61 3e 0a 3c 6c  '>Support</a>.<l
05c0: 69 3e 3c 61 20 68 72 65 66 3d 27 70 72 6f 73 75  i><a href='prosu
05d0: 70 70 6f 72 74 2e 68 74 6d 6c 27 3e 50 75 72 63  pport.html'>Purc
05e0: 68 61 73 65 3c 2f 61 3e 0a 3c 2f 75 6c 3e 0a 3c  hase</a>.</ul>.<
05f0: 2f 64 69 76 3e 0a 3c 64 69 76 20 63 6c 61 73 73  /div>.<div class
0600: 3d 22 73 65 61 72 63 68 6d 65 6e 75 22 20 69 64  ="searchmenu" id
0610: 3d 22 73 65 61 72 63 68 6d 65 6e 75 22 3e 0a 3c  ="searchmenu">.<
0620: 66 6f 72 6d 20 6d 65 74 68 6f 64 3d 22 47 45 54  form method="GET
0630: 22 20 61 63 74 69 6f 6e 3d 22 73 65 61 72 63 68  " action="search
0640: 22 3e 0a 3c 73 65 6c 65 63 74 20 6e 61 6d 65 3d  ">.<select name=
0650: 22 73 22 20 69 64 3d 22 73 65 61 72 63 68 74 79  "s" id="searchty
0660: 70 65 22 3e 0a 3c 6f 70 74 69 6f 6e 20 76 61 6c  pe">.<option val
0670: 75 65 3d 22 64 22 3e 53 65 61 72 63 68 20 44 6f  ue="d">Search Do
0680: 63 75 6d 65 6e 74 61 74 69 6f 6e 3c 2f 6f 70 74  cumentation</opt
0690: 69 6f 6e 3e 0a 3c 6f 70 74 69 6f 6e 20 76 61 6c  ion>.<option val
06a0: 75 65 3d 22 63 22 3e 53 65 61 72 63 68 20 43 68  ue="c">Search Ch
06b0: 61 6e 67 65 6c 6f 67 3c 2f 6f 70 74 69 6f 6e 3e  angelog</option>
06c0: 0a 3c 2f 73 65 6c 65 63 74 3e 0a 3c 69 6e 70 75  .</select>.<inpu
06d0: 74 20 74 79 70 65 3d 22 74 65 78 74 22 20 6e 61  t type="text" na
06e0: 6d 65 3d 22 71 22 20 69 64 3d 22 73 65 61 72 63  me="q" id="searc
06f0: 68 62 6f 78 22 20 76 61 6c 75 65 3d 22 22 3e 0a  hbox" value="">.
0700: 3c 69 6e 70 75 74 20 74 79 70 65 3d 22 73 75 62  <input type="sub
0710: 6d 69 74 22 20 76 61 6c 75 65 3d 22 47 6f 22 3e  mit" value="Go">
0720: 0a 3c 2f 66 6f 72 6d 3e 0a 3c 2f 64 69 76 3e 0a  .</form>.</div>.
0730: 3c 2f 64 69 76 3e 0a 3c 73 63 72 69 70 74 3e 0a  </div>.<script>.
0740: 66 75 6e 63 74 69 6f 6e 20 74 6f 67 67 6c 65 5f  function toggle_
0750: 64 69 76 28 6e 6d 29 20 7b 0a 76 61 72 20 77 20  div(nm) {.var w 
0760: 3d 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c  = document.getEl
0770: 65 6d 65 6e 74 42 79 49 64 28 6e 6d 29 3b 0a 69  ementById(nm);.i
0780: 66 28 20 77 2e 73 74 79 6c 65 2e 64 69 73 70 6c  f( w.style.displ
0790: 61 79 3d 3d 22 62 6c 6f 63 6b 22 20 29 7b 0a 77  ay=="block" ){.w
07a0: 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d  .style.display =
07b0: 20 22 6e 6f 6e 65 22 3b 0a 7d 65 6c 73 65 7b 0a   "none";.}else{.
07c0: 77 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20  w.style.display 
07d0: 3d 20 22 62 6c 6f 63 6b 22 3b 0a 7d 0a 7d 0a 66  = "block";.}.}.f
07e0: 75 6e 63 74 69 6f 6e 20 74 6f 67 67 6c 65 5f 73  unction toggle_s
07f0: 65 61 72 63 68 28 29 20 7b 0a 76 61 72 20 77 20  earch() {.var w 
0800: 3d 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c  = document.getEl
0810: 65 6d 65 6e 74 42 79 49 64 28 22 73 65 61 72 63  ementById("searc
0820: 68 6d 65 6e 75 22 29 3b 0a 69 66 28 20 77 2e 73  hmenu");.if( w.s
0830: 74 79 6c 65 2e 64 69 73 70 6c 61 79 3d 3d 22 62  tyle.display=="b
0840: 6c 6f 63 6b 22 20 29 7b 0a 77 2e 73 74 79 6c 65  lock" ){.w.style
0850: 2e 64 69 73 70 6c 61 79 20 3d 20 22 6e 6f 6e 65  .display = "none
0860: 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 77 2e 73 74  ";.} else {.w.st
0870: 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d 20 22 62  yle.display = "b
0880: 6c 6f 63 6b 22 3b 0a 73 65 74 54 69 6d 65 6f 75  lock";.setTimeou
0890: 74 28 66 75 6e 63 74 69 6f 6e 28 29 7b 0a 64 6f  t(function(){.do
08a0: 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e  cument.getElemen
08b0: 74 42 79 49 64 28 22 73 65 61 72 63 68 62 6f 78  tById("searchbox
08c0: 22 29 2e 66 6f 63 75 73 28 29 0a 7d 2c 20 33 30  ").focus().}, 30
08d0: 29 3b 0a 7d 0a 7d 0a 66 75 6e 63 74 69 6f 6e 20  );.}.}.function 
08e0: 64 69 76 5f 6f 66 66 28 6e 6d 29 7b 64 6f 63 75  div_off(nm){docu
08f0: 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42  ment.getElementB
0900: 79 49 64 28 6e 6d 29 2e 73 74 79 6c 65 2e 64 69  yId(nm).style.di
0910: 73 70 6c 61 79 3d 22 6e 6f 6e 65 22 3b 7d 0a 77  splay="none";}.w
0920: 69 6e 64 6f 77 2e 6f 6e 62 65 66 6f 72 65 75 6e  indow.onbeforeun
0930: 6c 6f 61 64 20 3d 20 66 75 6e 63 74 69 6f 6e 28  load = function(
0940: 65 29 7b 64 69 76 5f 6f 66 66 28 22 73 75 62 6d  e){div_off("subm
0950: 65 6e 75 22 29 3b 7d 0a 2f 2a 20 44 69 73 61 62  enu");}./* Disab
0960: 6c 65 20 74 68 65 20 53 65 61 72 63 68 20 66 65  le the Search fe
0970: 61 74 75 72 65 20 69 66 20 77 65 20 61 72 65 20  ature if we are 
0980: 6e 6f 74 20 6f 70 65 72 61 74 69 6e 67 20 66 72  not operating fr
0990: 6f 6d 20 43 47 49 2c 20 73 69 6e 63 65 20 2a 2f  om CGI, since */
09a0: 0a 2f 2a 20 53 65 61 72 63 68 20 69 73 20 61 63  ./* Search is ac
09b0: 63 6f 6d 70 6c 69 73 68 65 64 20 75 73 69 6e 67  complished using
09c0: 20 43 47 49 20 61 6e 64 20 77 69 6c 6c 20 6e 6f   CGI and will no
09d0: 74 20 77 6f 72 6b 20 77 69 74 68 6f 75 74 20 69  t work without i
09e0: 74 2e 20 2a 2f 0a 69 66 28 20 21 6c 6f 63 61 74  t. */.if( !locat
09f0: 69 6f 6e 2e 6f 72 69 67 69 6e 2e 6d 61 74 63 68  ion.origin.match
0a00: 20 7c 7c 20 21 6c 6f 63 61 74 69 6f 6e 2e 6f 72   || !location.or
0a10: 69 67 69 6e 2e 6d 61 74 63 68 28 2f 68 74 74 70  igin.match(/http
0a20: 2f 29 20 29 7b 0a 64 6f 63 75 6d 65 6e 74 2e 67  /) ){.document.g
0a30: 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 22 73  etElementById("s
0a40: 65 61 72 63 68 5f 6d 65 6e 75 62 75 74 74 6f 6e  earch_menubutton
0a50: 22 29 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79  ").style.display
0a60: 20 3d 20 22 6e 6f 6e 65 22 3b 0a 7d 0a 2f 2a 20   = "none";.}./* 
0a70: 55 73 65 64 20 62 79 20 74 68 65 20 48 69 64 65  Used by the Hide
0a80: 2f 53 68 6f 77 20 62 75 74 74 6f 6e 20 62 65 73  /Show button bes
0a90: 69 64 65 20 73 79 6e 74 61 78 20 64 69 61 67 72  ide syntax diagr
0aa0: 61 6d 73 2c 20 74 6f 20 74 6f 67 67 6c 65 20 74  ams, to toggle t
0ab0: 68 65 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 68  he */.function h
0ac0: 69 64 65 6f 72 73 68 6f 77 28 62 74 6e 2c 6f 62  ideorshow(btn,ob
0ad0: 6a 29 7b 0a 76 61 72 20 78 20 3d 20 64 6f 63 75  j){.var x = docu
0ae0: 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42  ment.getElementB
0af0: 79 49 64 28 6f 62 6a 29 3b 0a 76 61 72 20 62 20  yId(obj);.var b 
0b00: 3d 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c  = document.getEl
0b10: 65 6d 65 6e 74 42 79 49 64 28 62 74 6e 29 3b 0a  ementById(btn);.
0b20: 69 66 28 20 78 2e 73 74 79 6c 65 2e 64 69 73 70  if( x.style.disp
0b30: 6c 61 79 21 3d 27 6e 6f 6e 65 27 20 29 7b 0a 78  lay!='none' ){.x
0b40: 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d  .style.display =
0b50: 20 27 6e 6f 6e 65 27 3b 0a 62 2e 69 6e 6e 65 72   'none';.b.inner
0b60: 48 54 4d 4c 3d 27 73 68 6f 77 27 3b 0a 7d 65 6c  HTML='show';.}el
0b70: 73 65 7b 0a 78 2e 73 74 79 6c 65 2e 64 69 73 70  se{.x.style.disp
0b80: 6c 61 79 20 3d 20 27 27 3b 0a 62 2e 69 6e 6e 65  lay = '';.b.inne
0b90: 72 48 54 4d 4c 3d 27 68 69 64 65 27 3b 0a 7d 0a  rHTML='hide';.}.
0ba0: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a  return false;.}.
0bb0: 3c 2f 73 63 72 69 70 74 3e 0a 3c 2f 64 69 76 3e  </script>.</div>
0bc0: 0a 3c 64 69 76 20 63 6c 61 73 73 3d 6e 6f 73 65  .<div class=nose
0bd0: 61 72 63 68 3e 3c 68 31 20 61 6c 69 67 6e 3d 22  arch><h1 align="
0be0: 63 65 6e 74 65 72 22 3e 53 51 4c 20 41 73 20 55  center">SQL As U
0bf0: 6e 64 65 72 73 74 6f 6f 64 20 42 79 20 53 51 4c  nderstood By SQL
0c00: 69 74 65 3c 2f 68 31 3e 3c 70 3e 3c 61 20 68 72  ite</h1><p><a hr
0c10: 65 66 3d 22 6c 61 6e 67 2e 68 74 6d 6c 22 3e 5b  ef="lang.html">[
0c20: 54 6f 70 5d 3c 2f 61 3e 3c 2f 70 3e 3c 68 32 3e  Top]</a></p><h2>
0c30: 65 78 70 72 65 73 73 69 6f 6e 3c 2f 68 32 3e 3c  expression</h2><
0c40: 2f 64 69 76 3e 3c 70 3e 3c 62 3e 3c 61 20 68 72  /div><p><b><a hr
0c50: 65 66 3d 22 73 79 6e 74 61 78 2f 65 78 70 72 2e  ef="syntax/expr.
0c60: 68 74 6d 6c 22 3e 65 78 70 72 3a 3c 2f 61 3e 3c  html">expr:</a><
0c70: 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27  /b>.<button id='
0c80: 78 31 34 39 35 27 20 6f 6e 63 6c 69 63 6b 3d 27  x1495' onclick='
0c90: 68 69 64 65 6f 72 73 68 6f 77 28 22 78 31 34 39  hideorshow("x149
0ca0: 35 22 2c 22 78 31 34 39 36 22 29 27 3e 68 69 64  5","x1496")'>hid
0cb0: 65 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20  e</button></p>. 
0cc0: 3c 64 69 76 20 69 64 3d 27 78 31 34 39 36 27 20  <div id='x1496' 
0cd0: 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69  class='imgcontai
0ce0: 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d  ner'>. <img alt=
0cf0: 22 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20  "syntax diagram 
0d00: 65 78 70 72 22 20 73 72 63 3d 22 69 6d 61 67 65  expr" src="image
0d10: 73 2f 73 79 6e 74 61 78 2f 65 78 70 72 2e 67 69  s/syntax/expr.gi
0d20: 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68  f" />.<p><b><a h
0d30: 72 65 66 3d 22 73 79 6e 74 61 78 2f 66 69 6c 74  ref="syntax/filt
0d40: 65 72 2e 68 74 6d 6c 22 3e 66 69 6c 74 65 72 3a  er.html">filter:
0d50: 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e  </a></b>.<button
0d60: 20 69 64 3d 27 78 31 34 39 37 27 20 6f 6e 63 6c   id='x1497' oncl
0d70: 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77 28  ick='hideorshow(
0d80: 22 78 31 34 39 37 22 2c 22 78 31 34 39 38 22 29  "x1497","x1498")
0d90: 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c  '>show</button><
0da0: 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78 31  /p>. <div id='x1
0db0: 34 39 38 27 20 73 74 79 6c 65 3d 27 64 69 73 70  498' style='disp
0dc0: 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73  lay:none;' class
0dd0: 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e  ='imgcontainer'>
0de0: 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74  . <img alt="synt
0df0: 61 78 20 64 69 61 67 72 61 6d 20 66 69 6c 74 65  ax diagram filte
0e00: 72 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73  r" src="images/s
0e10: 79 6e 74 61 78 2f 66 69 6c 74 65 72 2e 67 69 66  yntax/filter.gif
0e20: 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e 3c  " />.</div>.<p><
0e30: 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61  b><a href="synta
0e40: 78 2f 6c 69 74 65 72 61 6c 2d 76 61 6c 75 65 2e  x/literal-value.
0e50: 68 74 6d 6c 22 3e 6c 69 74 65 72 61 6c 2d 76 61  html">literal-va
0e60: 6c 75 65 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75  lue:</a></b>.<bu
0e70: 74 74 6f 6e 20 69 64 3d 27 78 31 34 39 39 27 20  tton id='x1499' 
0e80: 6f 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73  onclick='hideors
0e90: 68 6f 77 28 22 78 31 34 39 39 22 2c 22 78 31 35  how("x1499","x15
0ea0: 30 30 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74  00")'>show</butt
0eb0: 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64  on></p>. <div id
0ec0: 3d 27 78 31 35 30 30 27 20 73 74 79 6c 65 3d 27  ='x1500' style='
0ed0: 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63  display:none;' c
0ee0: 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e  lass='imgcontain
0ef0: 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22  er'>. <img alt="
0f00: 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 6c  syntax diagram l
0f10: 69 74 65 72 61 6c 2d 76 61 6c 75 65 22 20 73 72  iteral-value" sr
0f20: 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61 78  c="images/syntax
0f30: 2f 6c 69 74 65 72 61 6c 2d 76 61 6c 75 65 2e 67  /literal-value.g
0f40: 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 70  if" />.</div>.<p
0f50: 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e  ><b><a href="syn
0f60: 74 61 78 2f 72 61 69 73 65 2d 66 75 6e 63 74 69  tax/raise-functi
0f70: 6f 6e 2e 68 74 6d 6c 22 3e 72 61 69 73 65 2d 66  on.html">raise-f
0f80: 75 6e 63 74 69 6f 6e 3a 3c 2f 61 3e 3c 2f 62 3e  unction:</a></b>
0f90: 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 35  .<button id='x15
0fa0: 30 31 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64  01' onclick='hid
0fb0: 65 6f 72 73 68 6f 77 28 22 78 31 35 30 31 22 2c  eorshow("x1501",
0fc0: 22 78 31 35 30 32 22 29 27 3e 73 68 6f 77 3c 2f  "x1502")'>show</
0fd0: 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69  button></p>. <di
0fe0: 76 20 69 64 3d 27 78 31 35 30 32 27 20 73 74 79  v id='x1502' sty
0ff0: 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65  le='display:none
1000: 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e  ;' class='imgcon
1010: 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61  tainer'>. <img a
1020: 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72  lt="syntax diagr
1030: 61 6d 20 72 61 69 73 65 2d 66 75 6e 63 74 69 6f  am raise-functio
1040: 6e 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73  n" src="images/s
1050: 79 6e 74 61 78 2f 72 61 69 73 65 2d 66 75 6e 63  yntax/raise-func
1060: 74 69 6f 6e 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64  tion.gif" />.</d
1070: 69 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65  iv>.<p><b><a hre
1080: 66 3d 22 73 79 6e 74 61 78 2f 73 65 6c 65 63 74  f="syntax/select
1090: 2d 73 74 6d 74 2e 68 74 6d 6c 22 3e 73 65 6c 65  -stmt.html">sele
10a0: 63 74 2d 73 74 6d 74 3a 3c 2f 61 3e 3c 2f 62 3e  ct-stmt:</a></b>
10b0: 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 35  .<button id='x15
10c0: 30 33 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64  03' onclick='hid
10d0: 65 6f 72 73 68 6f 77 28 22 78 31 35 30 33 22 2c  eorshow("x1503",
10e0: 22 78 31 35 30 34 22 29 27 3e 73 68 6f 77 3c 2f  "x1504")'>show</
10f0: 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69  button></p>. <di
1100: 76 20 69 64 3d 27 78 31 35 30 34 27 20 73 74 79  v id='x1504' sty
1110: 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65  le='display:none
1120: 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e  ;' class='imgcon
1130: 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61  tainer'>. <img a
1140: 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72  lt="syntax diagr
1150: 61 6d 20 73 65 6c 65 63 74 2d 73 74 6d 74 22 20  am select-stmt" 
1160: 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74  src="images/synt
1170: 61 78 2f 73 65 6c 65 63 74 2d 73 74 6d 74 2e 67  ax/select-stmt.g
1180: 69 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c 61 20  if" />.<p><b><a 
1190: 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 63 6f 6d  href="syntax/com
11a0: 6d 6f 6e 2d 74 61 62 6c 65 2d 65 78 70 72 65 73  mon-table-expres
11b0: 73 69 6f 6e 2e 68 74 6d 6c 22 3e 63 6f 6d 6d 6f  sion.html">commo
11c0: 6e 2d 74 61 62 6c 65 2d 65 78 70 72 65 73 73 69  n-table-expressi
11d0: 6f 6e 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74  on:</a></b>.<but
11e0: 74 6f 6e 20 69 64 3d 27 78 31 35 30 35 27 20 6f  ton id='x1505' o
11f0: 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68  nclick='hideorsh
1200: 6f 77 28 22 78 31 35 30 35 22 2c 22 78 31 35 30  ow("x1505","x150
1210: 36 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f  6")'>show</butto
1220: 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d  n></p>. <div id=
1230: 27 78 31 35 30 36 27 20 73 74 79 6c 65 3d 27 64  'x1506' style='d
1240: 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c  isplay:none;' cl
1250: 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65  ass='imgcontaine
1260: 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73  r'>. <img alt="s
1270: 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 63 6f  yntax diagram co
1280: 6d 6d 6f 6e 2d 74 61 62 6c 65 2d 65 78 70 72 65  mmon-table-expre
1290: 73 73 69 6f 6e 22 20 73 72 63 3d 22 69 6d 61 67  ssion" src="imag
12a0: 65 73 2f 73 79 6e 74 61 78 2f 63 6f 6d 6d 6f 6e  es/syntax/common
12b0: 2d 74 61 62 6c 65 2d 65 78 70 72 65 73 73 69 6f  -table-expressio
12c0: 6e 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e  n.gif" />.</div>
12d0: 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22  .<p><b><a href="
12e0: 73 79 6e 74 61 78 2f 63 6f 6d 70 6f 75 6e 64 2d  syntax/compound-
12f0: 6f 70 65 72 61 74 6f 72 2e 68 74 6d 6c 22 3e 63  operator.html">c
1300: 6f 6d 70 6f 75 6e 64 2d 6f 70 65 72 61 74 6f 72  ompound-operator
1310: 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f  :</a></b>.<butto
1320: 6e 20 69 64 3d 27 78 31 35 30 37 27 20 6f 6e 63  n id='x1507' onc
1330: 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77  lick='hideorshow
1340: 28 22 78 31 35 30 37 22 2c 22 78 31 35 30 38 22  ("x1507","x1508"
1350: 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e  )'>show</button>
1360: 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78  </p>. <div id='x
1370: 31 35 30 38 27 20 73 74 79 6c 65 3d 27 64 69 73  1508' style='dis
1380: 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73  play:none;' clas
1390: 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27  s='imgcontainer'
13a0: 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e  >. <img alt="syn
13b0: 74 61 78 20 64 69 61 67 72 61 6d 20 63 6f 6d 70  tax diagram comp
13c0: 6f 75 6e 64 2d 6f 70 65 72 61 74 6f 72 22 20 73  ound-operator" s
13d0: 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61  rc="images/synta
13e0: 78 2f 63 6f 6d 70 6f 75 6e 64 2d 6f 70 65 72 61  x/compound-opera
13f0: 74 6f 72 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69  tor.gif" />.</di
1400: 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66  v>.<p><b><a href
1410: 3d 22 73 79 6e 74 61 78 2f 6a 6f 69 6e 2d 63 6c  ="syntax/join-cl
1420: 61 75 73 65 2e 68 74 6d 6c 22 3e 6a 6f 69 6e 2d  ause.html">join-
1430: 63 6c 61 75 73 65 3a 3c 2f 61 3e 3c 2f 62 3e 0a  clause:</a></b>.
1440: 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 35 30  <button id='x150
1450: 39 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64 65  9' onclick='hide
1460: 6f 72 73 68 6f 77 28 22 78 31 35 30 39 22 2c 22  orshow("x1509","
1470: 78 31 35 31 30 22 29 27 3e 73 68 6f 77 3c 2f 62  x1510")'>show</b
1480: 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76  utton></p>. <div
1490: 20 69 64 3d 27 78 31 35 31 30 27 20 73 74 79 6c   id='x1510' styl
14a0: 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b  e='display:none;
14b0: 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74  ' class='imgcont
14c0: 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c  ainer'>. <img al
14d0: 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72 61  t="syntax diagra
14e0: 6d 20 6a 6f 69 6e 2d 63 6c 61 75 73 65 22 20 73  m join-clause" s
14f0: 72 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61  rc="images/synta
1500: 78 2f 6a 6f 69 6e 2d 63 6c 61 75 73 65 2e 67 69  x/join-clause.gi
1510: 66 22 20 2f 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68  f" />.<p><b><a h
1520: 72 65 66 3d 22 73 79 6e 74 61 78 2f 6a 6f 69 6e  ref="syntax/join
1530: 2d 63 6f 6e 73 74 72 61 69 6e 74 2e 68 74 6d 6c  -constraint.html
1540: 22 3e 6a 6f 69 6e 2d 63 6f 6e 73 74 72 61 69 6e  ">join-constrain
1550: 74 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74  t:</a></b>.<butt
1560: 6f 6e 20 69 64 3d 27 78 31 35 31 31 27 20 6f 6e  on id='x1511' on
1570: 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f  click='hideorsho
1580: 77 28 22 78 31 35 31 31 22 2c 22 78 31 35 31 32  w("x1511","x1512
1590: 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e  ")'>show</button
15a0: 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27  ></p>. <div id='
15b0: 78 31 35 31 32 27 20 73 74 79 6c 65 3d 27 64 69  x1512' style='di
15c0: 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61  splay:none;' cla
15d0: 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72  ss='imgcontainer
15e0: 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79  '>. <img alt="sy
15f0: 6e 74 61 78 20 64 69 61 67 72 61 6d 20 6a 6f 69  ntax diagram joi
1600: 6e 2d 63 6f 6e 73 74 72 61 69 6e 74 22 20 73 72  n-constraint" sr
1610: 63 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61 78  c="images/syntax
1620: 2f 6a 6f 69 6e 2d 63 6f 6e 73 74 72 61 69 6e 74  /join-constraint
1630: 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a  .gif" />.</div>.
1640: 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73  <p><b><a href="s
1650: 79 6e 74 61 78 2f 6a 6f 69 6e 2d 6f 70 65 72 61  yntax/join-opera
1660: 74 6f 72 2e 68 74 6d 6c 22 3e 6a 6f 69 6e 2d 6f  tor.html">join-o
1670: 70 65 72 61 74 6f 72 3a 3c 2f 61 3e 3c 2f 62 3e  perator:</a></b>
1680: 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 35  .<button id='x15
1690: 31 33 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64  13' onclick='hid
16a0: 65 6f 72 73 68 6f 77 28 22 78 31 35 31 33 22 2c  eorshow("x1513",
16b0: 22 78 31 35 31 34 22 29 27 3e 73 68 6f 77 3c 2f  "x1514")'>show</
16c0: 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69  button></p>. <di
16d0: 76 20 69 64 3d 27 78 31 35 31 34 27 20 73 74 79  v id='x1514' sty
16e0: 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65  le='display:none
16f0: 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e  ;' class='imgcon
1700: 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61  tainer'>. <img a
1710: 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72  lt="syntax diagr
1720: 61 6d 20 6a 6f 69 6e 2d 6f 70 65 72 61 74 6f 72  am join-operator
1730: 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73 79  " src="images/sy
1740: 6e 74 61 78 2f 6a 6f 69 6e 2d 6f 70 65 72 61 74  ntax/join-operat
1750: 6f 72 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76  or.gif" />.</div
1760: 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e 3c 62 3e 3c  >.</div>.<p><b><
1770: 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78 2f 6f  a href="syntax/o
1780: 72 64 65 72 69 6e 67 2d 74 65 72 6d 2e 68 74 6d  rdering-term.htm
1790: 6c 22 3e 6f 72 64 65 72 69 6e 67 2d 74 65 72 6d  l">ordering-term
17a0: 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f  :</a></b>.<butto
17b0: 6e 20 69 64 3d 27 78 31 35 31 35 27 20 6f 6e 63  n id='x1515' onc
17c0: 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77  lick='hideorshow
17d0: 28 22 78 31 35 31 35 22 2c 22 78 31 35 31 36 22  ("x1515","x1516"
17e0: 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e  )'>show</button>
17f0: 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78  </p>. <div id='x
1800: 31 35 31 36 27 20 73 74 79 6c 65 3d 27 64 69 73  1516' style='dis
1810: 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73  play:none;' clas
1820: 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27  s='imgcontainer'
1830: 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e  >. <img alt="syn
1840: 74 61 78 20 64 69 61 67 72 61 6d 20 6f 72 64 65  tax diagram orde
1850: 72 69 6e 67 2d 74 65 72 6d 22 20 73 72 63 3d 22  ring-term" src="
1860: 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f 6f 72  images/syntax/or
1870: 64 65 72 69 6e 67 2d 74 65 72 6d 2e 67 69 66 22  dering-term.gif"
1880: 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e 3c 62   />.</div>.<p><b
1890: 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78  ><a href="syntax
18a0: 2f 72 65 73 75 6c 74 2d 63 6f 6c 75 6d 6e 2e 68  /result-column.h
18b0: 74 6d 6c 22 3e 72 65 73 75 6c 74 2d 63 6f 6c 75  tml">result-colu
18c0: 6d 6e 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74  mn:</a></b>.<but
18d0: 74 6f 6e 20 69 64 3d 27 78 31 35 31 37 27 20 6f  ton id='x1517' o
18e0: 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f 72 73 68  nclick='hideorsh
18f0: 6f 77 28 22 78 31 35 31 37 22 2c 22 78 31 35 31  ow("x1517","x151
1900: 38 22 29 27 3e 73 68 6f 77 3c 2f 62 75 74 74 6f  8")'>show</butto
1910: 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20 69 64 3d  n></p>. <div id=
1920: 27 78 31 35 31 38 27 20 73 74 79 6c 65 3d 27 64  'x1518' style='d
1930: 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c  isplay:none;' cl
1940: 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61 69 6e 65  ass='imgcontaine
1950: 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74 3d 22 73  r'>. <img alt="s
1960: 79 6e 74 61 78 20 64 69 61 67 72 61 6d 20 72 65  yntax diagram re
1970: 73 75 6c 74 2d 63 6f 6c 75 6d 6e 22 20 73 72 63  sult-column" src
1980: 3d 22 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f  ="images/syntax/
1990: 72 65 73 75 6c 74 2d 63 6f 6c 75 6d 6e 2e 67 69  result-column.gi
19a0: 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e  f" />.</div>.<p>
19b0: 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74  <b><a href="synt
19c0: 61 78 2f 74 61 62 6c 65 2d 6f 72 2d 73 75 62 71  ax/table-or-subq
19d0: 75 65 72 79 2e 68 74 6d 6c 22 3e 74 61 62 6c 65  uery.html">table
19e0: 2d 6f 72 2d 73 75 62 71 75 65 72 79 3a 3c 2f 61  -or-subquery:</a
19f0: 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64  ></b>.<button id
1a00: 3d 27 78 31 35 31 39 27 20 6f 6e 63 6c 69 63 6b  ='x1519' onclick
1a10: 3d 27 68 69 64 65 6f 72 73 68 6f 77 28 22 78 31  ='hideorshow("x1
1a20: 35 31 39 22 2c 22 78 31 35 32 30 22 29 27 3e 73  519","x1520")'>s
1a30: 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e  how</button></p>
1a40: 0a 20 3c 64 69 76 20 69 64 3d 27 78 31 35 32 30  . <div id='x1520
1a50: 27 20 73 74 79 6c 65 3d 27 64 69 73 70 6c 61 79  ' style='display
1a60: 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d 27 69  :none;' class='i
1a70: 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c  mgcontainer'>. <
1a80: 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61 78 20  img alt="syntax 
1a90: 64 69 61 67 72 61 6d 20 74 61 62 6c 65 2d 6f 72  diagram table-or
1aa0: 2d 73 75 62 71 75 65 72 79 22 20 73 72 63 3d 22  -subquery" src="
1ab0: 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f 74 61  images/syntax/ta
1ac0: 62 6c 65 2d 6f 72 2d 73 75 62 71 75 65 72 79 2e  ble-or-subquery.
1ad0: 67 69 66 22 20 2f 3e 0a 3c 2f 64 69 76 3e 0a 3c  gif" />.</div>.<
1ae0: 2f 64 69 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68  /div>.<p><b><a h
1af0: 72 65 66 3d 22 73 79 6e 74 61 78 2f 74 79 70 65  ref="syntax/type
1b00: 2d 6e 61 6d 65 2e 68 74 6d 6c 22 3e 74 79 70 65  -name.html">type
1b10: 2d 6e 61 6d 65 3a 3c 2f 61 3e 3c 2f 62 3e 0a 3c  -name:</a></b>.<
1b20: 62 75 74 74 6f 6e 20 69 64 3d 27 78 31 35 32 31  button id='x1521
1b30: 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69 64 65 6f  ' onclick='hideo
1b40: 72 73 68 6f 77 28 22 78 31 35 32 31 22 2c 22 78  rshow("x1521","x
1b50: 31 35 32 32 22 29 27 3e 73 68 6f 77 3c 2f 62 75  1522")'>show</bu
1b60: 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64 69 76 20  tton></p>. <div 
1b70: 69 64 3d 27 78 31 35 32 32 27 20 73 74 79 6c 65  id='x1522' style
1b80: 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e 65 3b 27  ='display:none;'
1b90: 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f 6e 74 61   class='imgconta
1ba0: 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20 61 6c 74  iner'>. <img alt
1bb0: 3d 22 73 79 6e 74 61 78 20 64 69 61 67 72 61 6d  ="syntax diagram
1bc0: 20 74 79 70 65 2d 6e 61 6d 65 22 20 73 72 63 3d   type-name" src=
1bd0: 22 69 6d 61 67 65 73 2f 73 79 6e 74 61 78 2f 74  "images/syntax/t
1be0: 79 70 65 2d 6e 61 6d 65 2e 67 69 66 22 20 2f 3e  ype-name.gif" />
1bf0: 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66 3d 22  .<p><b><a href="
1c00: 73 79 6e 74 61 78 2f 73 69 67 6e 65 64 2d 6e 75  syntax/signed-nu
1c10: 6d 62 65 72 2e 68 74 6d 6c 22 3e 73 69 67 6e 65  mber.html">signe
1c20: 64 2d 6e 75 6d 62 65 72 3a 3c 2f 61 3e 3c 2f 62  d-number:</a></b
1c30: 3e 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27 78 31  >.<button id='x1
1c40: 35 32 33 27 20 6f 6e 63 6c 69 63 6b 3d 27 68 69  523' onclick='hi
1c50: 64 65 6f 72 73 68 6f 77 28 22 78 31 35 32 33 22  deorshow("x1523"
1c60: 2c 22 78 31 35 32 34 22 29 27 3e 73 68 6f 77 3c  ,"x1524")'>show<
1c70: 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20 3c 64  /button></p>. <d
1c80: 69 76 20 69 64 3d 27 78 31 35 32 34 27 20 73 74  iv id='x1524' st
1c90: 79 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e 6f 6e  yle='display:non
1ca0: 65 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67 63 6f  e;' class='imgco
1cb0: 6e 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d 67 20  ntainer'>. <img 
1cc0: 61 6c 74 3d 22 73 79 6e 74 61 78 20 64 69 61 67  alt="syntax diag
1cd0: 72 61 6d 20 73 69 67 6e 65 64 2d 6e 75 6d 62 65  ram signed-numbe
1ce0: 72 22 20 73 72 63 3d 22 69 6d 61 67 65 73 2f 73  r" src="images/s
1cf0: 79 6e 74 61 78 2f 73 69 67 6e 65 64 2d 6e 75 6d  yntax/signed-num
1d00: 62 65 72 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69  ber.gif" />.</di
1d10: 76 3e 0a 3c 2f 64 69 76 3e 0a 3c 70 3e 3c 62 3e  v>.</div>.<p><b>
1d20: 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78 2f  <a href="syntax/
1d30: 77 69 6e 64 6f 77 2d 64 65 66 6e 2e 68 74 6d 6c  window-defn.html
1d40: 22 3e 77 69 6e 64 6f 77 2d 64 65 66 6e 3a 3c 2f  ">window-defn:</
1d50: 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69  a></b>.<button i
1d60: 64 3d 27 78 31 35 32 35 27 20 6f 6e 63 6c 69 63  d='x1525' onclic
1d70: 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77 28 22 78  k='hideorshow("x
1d80: 31 35 32 35 22 2c 22 78 31 35 32 36 22 29 27 3e  1525","x1526")'>
1d90: 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70  show</button></p
1da0: 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78 31 35 32  >. <div id='x152
1db0: 36 27 20 73 74 79 6c 65 3d 27 64 69 73 70 6c 61  6' style='displa
1dc0: 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d 27  y:none;' class='
1dd0: 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20  imgcontainer'>. 
1de0: 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61 78  <img alt="syntax
1df0: 20 64 69 61 67 72 61 6d 20 77 69 6e 64 6f 77 2d   diagram window-
1e00: 64 65 66 6e 22 20 73 72 63 3d 22 69 6d 61 67 65  defn" src="image
1e10: 73 2f 73 79 6e 74 61 78 2f 77 69 6e 64 6f 77 2d  s/syntax/window-
1e20: 64 65 66 6e 2e 67 69 66 22 20 2f 3e 0a 3c 70 3e  defn.gif" />.<p>
1e30: 3c 62 3e 3c 61 20 68 72 65 66 3d 22 73 79 6e 74  <b><a href="synt
1e40: 61 78 2f 66 72 61 6d 65 2d 73 70 65 63 2e 68 74  ax/frame-spec.ht
1e50: 6d 6c 22 3e 66 72 61 6d 65 2d 73 70 65 63 3a 3c  ml">frame-spec:<
1e60: 2f 61 3e 3c 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20  /a></b>.<button 
1e70: 69 64 3d 27 78 31 35 32 37 27 20 6f 6e 63 6c 69  id='x1527' oncli
1e80: 63 6b 3d 27 68 69 64 65 6f 72 73 68 6f 77 28 22  ck='hideorshow("
1e90: 78 31 35 32 37 22 2c 22 78 31 35 32 38 22 29 27  x1527","x1528")'
1ea0: 3e 73 68 6f 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f  >show</button></
1eb0: 70 3e 0a 20 3c 64 69 76 20 69 64 3d 27 78 31 35  p>. <div id='x15
1ec0: 32 38 27 20 73 74 79 6c 65 3d 27 64 69 73 70 6c  28' style='displ
1ed0: 61 79 3a 6e 6f 6e 65 3b 27 20 63 6c 61 73 73 3d  ay:none;' class=
1ee0: 27 69 6d 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a  'imgcontainer'>.
1ef0: 20 3c 69 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61   <img alt="synta
1f00: 78 20 64 69 61 67 72 61 6d 20 66 72 61 6d 65 2d  x diagram frame-
1f10: 73 70 65 63 22 20 73 72 63 3d 22 69 6d 61 67 65  spec" src="image
1f20: 73 2f 73 79 6e 74 61 78 2f 66 72 61 6d 65 2d 73  s/syntax/frame-s
1f30: 70 65 63 2e 67 69 66 22 20 2f 3e 0a 3c 2f 64 69  pec.gif" />.</di
1f40: 76 3e 0a 3c 70 3e 3c 62 3e 3c 61 20 68 72 65 66  v>.<p><b><a href
1f50: 3d 22 73 79 6e 74 61 78 2f 6f 72 64 65 72 69 6e  ="syntax/orderin
1f60: 67 2d 74 65 72 6d 2e 68 74 6d 6c 22 3e 6f 72 64  g-term.html">ord
1f70: 65 72 69 6e 67 2d 74 65 72 6d 3a 3c 2f 61 3e 3c  ering-term:</a><
1f80: 2f 62 3e 0a 3c 62 75 74 74 6f 6e 20 69 64 3d 27  /b>.<button id='
1f90: 78 31 35 32 39 27 20 6f 6e 63 6c 69 63 6b 3d 27  x1529' onclick='
1fa0: 68 69 64 65 6f 72 73 68 6f 77 28 22 78 31 35 32  hideorshow("x152
1fb0: 39 22 2c 22 78 31 35 33 30 22 29 27 3e 73 68 6f  9","x1530")'>sho
1fc0: 77 3c 2f 62 75 74 74 6f 6e 3e 3c 2f 70 3e 0a 20  w</button></p>. 
1fd0: 3c 64 69 76 20 69 64 3d 27 78 31 35 33 30 27 20  <div id='x1530' 
1fe0: 73 74 79 6c 65 3d 27 64 69 73 70 6c 61 79 3a 6e  style='display:n
1ff0: 6f 6e 65 3b 27 20 63 6c 61 73 73 3d 27 69 6d 67  one;' class='img
2000: 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c 69 6d  container'>. <im
2010: 67 20 61 6c 74 3d 22 73 79 6e 74 61 78 20 64 69  g alt="syntax di
2020: 61 67 72 61 6d 20 6f 72 64 65 72 69 6e 67 2d 74  agram ordering-t
2030: 65 72 6d 22 20 73 72 63 3d 22 69 6d 61 67 65 73  erm" src="images
2040: 2f 73 79 6e 74 61 78 2f 6f 72 64 65 72 69 6e 67  /syntax/ordering
2050: 2d 74 65 72 6d 2e 67 69 66 22 20 2f 3e 0a 3c 2f  -term.gif" />.</
2060: 64 69 76 3e 0a 3c 2f 64 69 76 3e 0a 3c 2f 64 69  div>.</div>.</di
2070: 76 3e 0a 0a 0a 3c 70 3e 54 68 69 73 20 73 65 63  v>...<p>This sec
2080: 74 69 6f 6e 20 69 73 20 64 69 66 66 65 72 65 6e  tion is differen
2090: 74 20 66 72 6f 6d 20 74 68 65 20 6f 74 68 65 72  t from the other
20a0: 73 2e 20 20 4d 6f 73 74 20 6f 74 68 65 72 20 73  s.  Most other s
20b0: 65 63 74 69 6f 6e 73 20 6f 66 0a 74 68 69 73 20  ections of.this 
20c0: 64 6f 63 75 6d 65 6e 74 20 74 61 6c 6b 73 20 61  document talks a
20d0: 62 6f 75 74 20 61 20 70 61 72 74 69 63 75 6c 61  bout a particula
20e0: 72 20 53 51 4c 20 63 6f 6d 6d 61 6e 64 2e 20 20  r SQL command.  
20f0: 54 68 69 73 20 73 65 63 74 69 6f 6e 20 64 6f 65  This section doe
2100: 73 0a 6e 6f 74 20 74 61 6c 6b 20 61 62 6f 75 74  s.not talk about
2110: 20 61 20 73 74 61 6e 64 61 6c 6f 6e 65 20 63 6f   a standalone co
2120: 6d 6d 61 6e 64 20 62 75 74 20 61 62 6f 75 74 20  mmand but about 
2130: 22 65 78 70 72 65 73 73 69 6f 6e 73 22 20 77 68  "expressions" wh
2140: 69 63 68 20 61 72 65 20 0a 73 75 62 63 6f 6d 70  ich are .subcomp
2150: 6f 6e 65 6e 74 73 20 6f 66 20 6d 6f 73 74 20 6f  onents of most o
2160: 74 68 65 72 20 63 6f 6d 6d 61 6e 64 73 2e 3c 2f  ther commands.</
2170: 70 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 62 69 6e  p>..<a name="bin
2180: 61 72 79 6f 70 73 22 3e 3c 2f 61 3e 0a 0a 3c 68  aryops"></a>..<h
2190: 33 3e 4f 70 65 72 61 74 6f 72 73 3c 2f 68 33 3e  3>Operators</h3>
21a0: 0a 3c 70 3e 53 51 4c 69 74 65 20 75 6e 64 65 72  .<p>SQLite under
21b0: 73 74 61 6e 64 73 20 74 68 65 20 66 6f 6c 6c 6f  stands the follo
21c0: 77 69 6e 67 20 62 69 6e 61 72 79 20 6f 70 65 72  wing binary oper
21d0: 61 74 6f 72 73 2c 20 69 6e 20 6f 72 64 65 72 20  ators, in order 
21e0: 66 72 6f 6d 0a 68 69 67 68 65 73 74 20 74 6f 20  from.highest to 
21f0: 6c 6f 77 65 73 74 20 70 72 65 63 65 64 65 6e 63  lowest precedenc
2200: 65 3a 3c 2f 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75  e:</p>..<blockqu
2210: 6f 74 65 3e 3c 70 72 65 3e 0a 3c 66 6f 6e 74 20  ote><pre>.<font 
2220: 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e  color="#2c2cf0">
2230: 3c 62 69 67 3e 7c 7c 0a 2a 20 20 20 20 2f 20 20  <big>||.*    /  
2240: 20 20 25 0a 2b 20 20 20 20 2d 0a 26 6c 74 3b 26    %.+    -.&lt;&
2250: 6c 74 3b 20 20 20 26 67 74 3b 26 67 74 3b 20 20  lt;   &gt;&gt;  
2260: 20 26 61 6d 70 3b 20 20 20 20 7c 0a 26 6c 74 3b   &amp;    |.&lt;
2270: 20 20 20 20 26 6c 74 3b 3d 20 20 20 26 67 74 3b      &lt;=   &gt;
2280: 20 20 20 20 26 67 74 3b 3d 0a 3d 20 20 20 20 3d      &gt;=.=    =
2290: 3d 20 20 20 21 3d 20 20 20 26 6c 74 3b 26 67 74  =   !=   &lt;&gt
22a0: 3b 20 20 20 3c 2f 62 69 67 3e 49 53 20 20 20 49  ;   </big>IS   I
22b0: 53 20 4e 4f 54 20 20 20 49 4e 20 20 20 4c 49 4b  S NOT   IN   LIK
22c0: 45 20 20 20 47 4c 4f 42 20 20 20 4d 41 54 43 48  E   GLOB   MATCH
22d0: 20 20 20 52 45 47 45 58 50 0a 41 4e 44 20 20 20     REGEXP.AND   
22e0: 0a 4f 52 3c 2f 66 6f 6e 74 3e 0a 3c 2f 70 72 65  .OR</font>.</pre
22f0: 3e 3c 2f 62 6c 6f 63 6b 71 75 6f 74 65 3e 0a 0a  ></blockquote>..
2300: 3c 70 3e 53 75 70 70 6f 72 74 65 64 20 75 6e 61  <p>Supported una
2310: 72 79 20 70 72 65 66 69 78 20 6f 70 65 72 61 74  ry prefix operat
2320: 6f 72 73 20 61 72 65 20 74 68 65 73 65 3a 3c 2f  ors are these:</
2330: 70 3e 0a 0a 3c 62 6c 6f 63 6b 71 75 6f 74 65 3e  p>..<blockquote>
2340: 3c 70 72 65 3e 0a 3c 66 6f 6e 74 20 63 6f 6c 6f  <pre>.<font colo
2350: 72 3d 22 23 32 63 32 63 66 30 22 3e 3c 62 69 67  r="#2c2cf0"><big
2360: 3e 2d 20 20 20 20 2b 20 20 20 20 7e 20 20 20 20  >-    +    ~    
2370: 4e 4f 54 3c 2f 62 69 67 3e 3c 2f 66 6f 6e 74 3e  NOT</big></font>
2380: 0a 3c 2f 70 72 65 3e 3c 2f 62 6c 6f 63 6b 71 75  .</pre></blockqu
2390: 6f 74 65 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 63  ote>..<a name="c
23a0: 6f 6c 6c 61 74 65 6f 70 22 3e 3c 2f 61 3e 0a 0a  ollateop"></a>..
23b0: 3c 70 3e 54 68 65 20 43 4f 4c 4c 41 54 45 20 6f  <p>The COLLATE o
23c0: 70 65 72 61 74 6f 72 20 69 73 20 61 20 75 6e 61  perator is a una
23d0: 72 79 20 70 6f 73 74 66 69 78 0a 6f 70 65 72 61  ry postfix.opera
23e0: 74 6f 72 20 74 68 61 74 20 61 73 73 69 67 6e 73  tor that assigns
23f0: 20 61 20 3c 61 20 68 72 65 66 3d 22 64 61 74 61   a <a href="data
2400: 74 79 70 65 33 2e 68 74 6d 6c 23 63 6f 6c 6c 61  type3.html#colla
2410: 74 69 6f 6e 22 3e 63 6f 6c 6c 61 74 69 6e 67 20  tion">collating 
2420: 73 65 71 75 65 6e 63 65 3c 2f 61 3e 20 74 6f 20  sequence</a> to 
2430: 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 54  an expression..T
2440: 68 65 20 43 4f 4c 4c 41 54 45 20 6f 70 65 72 61  he COLLATE opera
2450: 74 6f 72 20 68 61 73 20 61 20 68 69 67 68 65 72  tor has a higher
2460: 20 70 72 65 63 65 64 65 6e 63 65 20 28 62 69 6e   precedence (bin
2470: 64 73 20 6d 6f 72 65 20 74 69 67 68 74 6c 79 29  ds more tightly)
2480: 20 74 68 61 6e 20 61 6e 79 0a 62 69 6e 61 72 79   than any.binary
2490: 20 6f 70 65 72 61 74 6f 72 20 61 6e 64 20 61 6e   operator and an
24a0: 79 20 75 6e 61 72 79 20 70 72 65 66 69 78 20 6f  y unary prefix o
24b0: 70 65 72 61 74 6f 72 20 65 78 63 65 70 74 20 22  perator except "
24c0: 7e 22 2e 0a 28 43 4f 4c 4c 41 54 45 20 61 6e 64  ~"..(COLLATE and
24d0: 20 22 7e 22 20 61 72 65 20 61 73 73 6f 63 69 61   "~" are associa
24e0: 74 69 76 65 20 73 6f 20 74 68 65 69 72 20 62 69  tive so their bi
24f0: 6e 64 69 6e 67 20 6f 72 64 65 72 20 64 6f 65 73  nding order does
2500: 20 6e 6f 74 20 6d 61 74 74 65 72 2e 29 0a 54 68   not matter.).Th
2510: 65 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71 75  e collating sequ
2520: 65 6e 63 65 20 73 65 74 20 62 79 20 74 68 65 20  ence set by the 
2530: 43 4f 4c 4c 41 54 45 20 6f 70 65 72 61 74 6f 72  COLLATE operator
2540: 20 6f 76 65 72 72 69 64 65 73 20 74 68 65 0a 63   overrides the.c
2550: 6f 6c 6c 61 74 69 6e 67 20 73 65 71 75 65 6e 63  ollating sequenc
2560: 65 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20  e determined by 
2570: 74 68 65 20 43 4f 4c 4c 41 54 45 20 63 6c 61 75  the COLLATE clau
2580: 73 65 20 69 6e 20 61 20 74 61 62 6c 65 0a 3c 61  se in a table.<a
2590: 20 68 72 65 66 3d 22 6c 61 6e 67 5f 63 72 65 61   href="lang_crea
25a0: 74 65 74 61 62 6c 65 2e 68 74 6d 6c 23 74 61 62  tetable.html#tab
25b0: 6c 65 63 6f 6c 64 65 66 22 3e 63 6f 6c 75 6d 6e  lecoldef">column
25c0: 20 64 65 66 69 6e 69 74 69 6f 6e 3c 2f 61 3e 2e   definition</a>.
25d0: 0a 53 65 65 20 74 68 65 20 3c 61 20 68 72 65 66  .See the <a href
25e0: 3d 22 64 61 74 61 74 79 70 65 33 2e 68 74 6d 6c  ="datatype3.html
25f0: 23 63 6f 6c 6c 61 74 69 6f 6e 22 3e 64 65 74 61  #collation">deta
2600: 69 6c 65 64 20 64 69 73 63 75 73 73 69 6f 6e 20  iled discussion 
2610: 6f 6e 20 63 6f 6c 6c 61 74 69 6e 67 20 73 65 71  on collating seq
2620: 75 65 6e 63 65 73 3c 2f 61 3e 0a 69 6e 20 74 68  uences</a>.in th
2630: 65 20 3c 61 20 68 72 65 66 3d 22 64 61 74 61 74  e <a href="datat
2640: 79 70 65 33 2e 68 74 6d 6c 22 3e 44 61 74 61 74  ype3.html">Datat
2650: 79 70 65 20 49 6e 20 53 51 4c 69 74 65 33 3c 2f  ype In SQLite3</
2660: 61 3e 20 64 6f 63 75 6d 65 6e 74 20 66 6f 72 20  a> document for 
2670: 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72  additional infor
2680: 6d 61 74 69 6f 6e 2e 0a 3c 2f 70 3e 0a 0a 0a 3c  mation..</p>...<
2690: 70 3e 54 68 65 20 75 6e 61 72 79 20 6f 70 65 72  p>The unary oper
26a0: 61 74 6f 72 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72  ator <font color
26b0: 3d 22 23 32 63 32 63 66 30 22 3e 3c 62 69 67 3e  ="#2c2cf0"><big>
26c0: 2b 3c 2f 62 69 67 3e 3c 2f 66 6f 6e 74 3e 20 69  +</big></font> i
26d0: 73 20 61 20 6e 6f 2d 6f 70 2e 20 20 49 74 20 63  s a no-op.  It c
26e0: 61 6e 20 62 65 20 61 70 70 6c 69 65 64 0a 74 6f  an be applied.to
26f0: 20 73 74 72 69 6e 67 73 2c 20 6e 75 6d 62 65 72   strings, number
2700: 73 2c 20 62 6c 6f 62 73 20 6f 72 20 4e 55 4c 4c  s, blobs or NULL
2710: 20 61 6e 64 20 69 74 20 61 6c 77 61 79 73 20 72   and it always r
2720: 65 74 75 72 6e 73 20 61 20 72 65 73 75 6c 74 0a  eturns a result.
2730: 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 76 61  with the same va
2740: 6c 75 65 20 61 73 20 74 68 65 20 6f 70 65 72 61  lue as the opera
2750: 6e 64 2e 3c 2f 70 3e 0a 0a 3c 70 3e 4e 6f 74 65  nd.</p>..<p>Note
2760: 20 74 68 61 74 20 74 68 65 72 65 20 61 72 65 20   that there are 
2770: 74 77 6f 20 76 61 72 69 61 74 69 6f 6e 73 20 6f  two variations o
2780: 66 20 74 68 65 20 65 71 75 61 6c 73 20 61 6e 64  f the equals and
2790: 20 6e 6f 74 20 65 71 75 61 6c 73 0a 6f 70 65 72   not equals.oper
27a0: 61 74 6f 72 73 2e 20 20 45 71 75 61 6c 73 20 63  ators.  Equals c
27b0: 61 6e 20 62 65 20 65 69 74 68 65 72 0a 0a 3c 66  an be either..<f
27c0: 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63  ont color="#2c2c
27d0: 66 30 22 3e 3c 62 69 67 3e 3d 3c 2f 62 69 67 3e  f0"><big>=</big>
27e0: 3c 2f 66 6f 6e 74 3e 20 6f 72 20 3c 66 6f 6e 74  </font> or <font
27f0: 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22   color="#2c2cf0"
2800: 3e 3c 62 69 67 3e 3d 3d 3c 2f 62 69 67 3e 3c 2f  ><big>==</big></
2810: 66 6f 6e 74 3e 2e 0a 54 68 65 20 6e 6f 6e 2d 65  font>..The non-e
2820: 71 75 61 6c 73 20 6f 70 65 72 61 74 6f 72 20 63  quals operator c
2830: 61 6e 20 62 65 20 65 69 74 68 65 72 0a 3c 66 6f  an be either.<fo
2840: 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66  nt color="#2c2cf
2850: 30 22 3e 3c 62 69 67 3e 21 3d 3c 2f 62 69 67 3e  0"><big>!=</big>
2860: 3c 2f 66 6f 6e 74 3e 20 6f 72 20 3c 66 6f 6e 74  </font> or <font
2870: 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22   color="#2c2cf0"
2880: 3e 3c 62 69 67 3e 26 6c 74 3b 26 67 74 3b 3c 2f  ><big>&lt;&gt;</
2890: 62 69 67 3e 3c 2f 66 6f 6e 74 3e 2e 0a 54 68 65  big></font>..The
28a0: 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32   <font color="#2
28b0: 63 32 63 66 30 22 3e 3c 62 69 67 3e 7c 7c 3c 2f  c2cf0"><big>||</
28c0: 62 69 67 3e 3c 2f 66 6f 6e 74 3e 20 6f 70 65 72  big></font> oper
28d0: 61 74 6f 72 20 69 73 20 22 63 6f 6e 63 61 74 65  ator is "concate
28e0: 6e 61 74 65 22 20 2d 20 69 74 20 6a 6f 69 6e 73  nate" - it joins
28f0: 20 74 6f 67 65 74 68 65 72 0a 74 68 65 20 74 77   together.the tw
2900: 6f 20 73 74 72 69 6e 67 73 20 6f 66 20 69 74 73  o strings of its
2910: 20 6f 70 65 72 61 6e 64 73 2e 0a 54 68 65 20 6f   operands..The o
2920: 70 65 72 61 74 6f 72 20 3c 66 6f 6e 74 20 63 6f  perator <font co
2930: 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e 3c 62  lor="#2c2cf0"><b
2940: 69 67 3e 25 3c 2f 62 69 67 3e 3c 2f 66 6f 6e 74  ig>%</big></font
2950: 3e 20 6f 75 74 70 75 74 73 20 74 68 65 20 69 6e  > outputs the in
2960: 74 65 67 65 72 20 76 61 6c 75 65 20 6f 66 20 69  teger value of i
2970: 74 73 20 6c 65 66 74 20 0a 6f 70 65 72 61 6e 64  ts left .operand
2980: 20 6d 6f 64 75 6c 6f 20 69 74 73 20 72 69 67 68   modulo its righ
2990: 74 20 6f 70 65 72 61 6e 64 2e 20 20 49 6e 20 6f  t operand.  In o
29a0: 74 68 65 72 20 77 6f 72 64 73 2c 20 74 68 65 0a  ther words, the.
29b0: 6f 70 65 72 61 74 6f 72 20 3c 66 6f 6e 74 20 63  operator <font c
29c0: 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e 3c  olor="#2c2cf0"><
29d0: 62 69 67 3e 25 3c 2f 62 69 67 3e 3c 2f 66 6f 6e  big>%</big></fon
29e0: 74 3e 20 77 6f 72 6b 73 20 69 6e 20 53 51 4c 69  t> works in SQLi
29f0: 74 65 20 74 68 65 20 73 61 6d 65 20 61 73 20 69  te the same as i
2a00: 74 20 64 6f 65 73 0a 69 6e 20 41 4e 53 49 2d 43  t does.in ANSI-C
2a10: 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 72 65  .</p>..<p>The re
2a20: 73 75 6c 74 20 6f 66 20 61 6e 79 20 62 69 6e 61  sult of any bina
2a30: 72 79 20 6f 70 65 72 61 74 6f 72 20 69 73 20 65  ry operator is e
2a40: 69 74 68 65 72 20 61 20 6e 75 6d 65 72 69 63 20  ither a numeric 
2a50: 76 61 6c 75 65 20 6f 72 20 0a 4e 55 4c 4c 2c 20  value or .NULL, 
2a60: 65 78 63 65 70 74 20 66 6f 72 20 74 68 65 20 3c  except for the <
2a70: 66 6f 6e 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32  font color="#2c2
2a80: 63 66 30 22 3e 3c 62 69 67 3e 7c 7c 3c 2f 62 69  cf0"><big>||</bi
2a90: 67 3e 3c 2f 66 6f 6e 74 3e 20 63 6f 6e 63 61 74  g></font> concat
2aa0: 65 6e 61 74 69 6f 6e 20 6f 70 65 72 61 74 6f 72  enation operator
2ab0: 20 77 68 69 63 68 20 61 6c 77 61 79 73 20 0a 65   which always .e
2ac0: 76 61 6c 75 61 74 65 73 20 74 6f 20 65 69 74 68  valuates to eith
2ad0: 65 72 20 4e 55 4c 4c 20 6f 72 20 61 20 74 65 78  er NULL or a tex
2ae0: 74 20 76 61 6c 75 65 2e 3c 2f 70 3e 3c 61 20 6e  t value.</p><a n
2af0: 61 6d 65 3d 22 69 73 69 73 6e 6f 74 22 3e 3c 2f  ame="isisnot"></
2b00: 61 3e 0a 3c 70 3e 54 68 65 20 3c 66 6f 6e 74 20  a>.<p>The <font 
2b10: 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e  color="#2c2cf0">
2b20: 3c 62 69 67 3e 49 53 3c 2f 62 69 67 3e 3c 2f 66  <big>IS</big></f
2b30: 6f 6e 74 3e 20 61 6e 64 20 3c 66 6f 6e 74 20 63  ont> and <font c
2b40: 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e 3c  olor="#2c2cf0"><
2b50: 62 69 67 3e 49 53 20 4e 4f 54 3c 2f 62 69 67 3e  big>IS NOT</big>
2b60: 3c 2f 66 6f 6e 74 3e 20 6f 70 65 72 61 74 6f 72  </font> operator
2b70: 73 20 77 6f 72 6b 0a 6c 69 6b 65 20 3c 66 6f 6e  s work.like <fon
2b80: 74 20 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30  t color="#2c2cf0
2b90: 22 3e 3c 62 69 67 3e 3d 3c 2f 62 69 67 3e 3c 2f  "><big>=</big></
2ba0: 66 6f 6e 74 3e 20 61 6e 64 20 3c 66 6f 6e 74 20  font> and <font 
2bb0: 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e  color="#2c2cf0">
2bc0: 3c 62 69 67 3e 21 3d 3c 2f 62 69 67 3e 3c 2f 66  <big>!=</big></f
2bd0: 6f 6e 74 3e 20 65 78 63 65 70 74 20 77 68 65 6e  ont> except when
2be0: 20 6f 6e 65 20 6f 72 20 62 6f 74 68 20 6f 66 20   one or both of 
2bf0: 74 68 65 0a 6f 70 65 72 61 6e 64 73 20 61 72 65  the.operands are
2c00: 20 4e 55 4c 4c 2e 20 49 6e 20 74 68 69 73 20 63   NULL. In this c
2c10: 61 73 65 2c 20 69 66 20 62 6f 74 68 20 6f 70 65  ase, if both ope
2c20: 72 61 6e 64 73 20 61 72 65 20 4e 55 4c 4c 2c 20  rands are NULL, 
2c30: 74 68 65 6e 20 74 68 65 0a 49 53 20 6f 70 65 72  then the.IS oper
2c40: 61 74 6f 72 20 65 76 61 6c 75 61 74 65 73 20 74  ator evaluates t
2c50: 6f 20 31 20 28 74 72 75 65 29 20 61 6e 64 20 74  o 1 (true) and t
2c60: 68 65 20 49 53 20 4e 4f 54 20 6f 70 65 72 61 74  he IS NOT operat
2c70: 6f 72 20 65 76 61 6c 75 61 74 65 73 0a 74 6f 20  or evaluates.to 
2c80: 30 20 28 66 61 6c 73 65 29 2e 20 49 66 20 6f 6e  0 (false). If on
2c90: 65 20 6f 70 65 72 61 6e 64 20 69 73 20 4e 55 4c  e operand is NUL
2ca0: 4c 20 61 6e 64 20 74 68 65 20 6f 74 68 65 72 20  L and the other 
2cb0: 69 73 20 6e 6f 74 2c 20 74 68 65 6e 20 74 68 65  is not, then the
2cc0: 0a 49 53 20 6f 70 65 72 61 74 6f 72 20 65 76 61  .IS operator eva
2cd0: 6c 75 61 74 65 73 20 74 6f 20 30 20 28 66 61 6c  luates to 0 (fal
2ce0: 73 65 29 20 61 6e 64 20 74 68 65 20 49 53 20 4e  se) and the IS N
2cf0: 4f 54 20 6f 70 65 72 61 74 6f 72 20 69 73 20 31  OT operator is 1
2d00: 20 28 74 72 75 65 29 2e 0a 49 74 20 69 73 20 6e   (true)..It is n
2d10: 6f 74 20 70 6f 73 73 69 62 6c 65 20 66 6f 72 20  ot possible for 
2d20: 61 6e 20 49 53 20 6f 72 20 49 53 20 4e 4f 54 20  an IS or IS NOT 
2d30: 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 65 76  expression to ev
2d40: 61 6c 75 61 74 65 20 74 6f 20 4e 55 4c 4c 2e 0a  aluate to NULL..
2d50: 4f 70 65 72 61 74 6f 72 73 20 3c 66 6f 6e 74 20  Operators <font 
2d60: 63 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e  color="#2c2cf0">
2d70: 3c 62 69 67 3e 49 53 3c 2f 62 69 67 3e 3c 2f 66  <big>IS</big></f
2d80: 6f 6e 74 3e 20 61 6e 64 20 3c 66 6f 6e 74 20 63  ont> and <font c
2d90: 6f 6c 6f 72 3d 22 23 32 63 32 63 66 30 22 3e 3c  olor="#2c2cf0"><
2da0: 62 69 67 3e 49 53 20 4e 4f 54 3c 2f 62 69 67 3e  big>IS NOT</big>
2db0: 3c 2f 66 6f 6e 74 3e 20 68 61 76 65 20 74 68 65  </font> have the
2dc0: 20 73 61 6d 65 20 0a 70 72 65 63 65 64 65 6e 63   same .precedenc
2dd0: 65 20 61 73 20 3c 66 6f 6e 74 20 63 6f 6c 6f 72  e as <font color
2de0: 3d 22 23 32 63 32 63 66 30 22 3e 3c 62 69 67 3e  ="#2c2cf0"><big>
2df0: 3d 3c 2f 62 69 67 3e 3c 2f 66 6f 6e 74 3e 2e 3c  =</big></font>.<
2e00: 61 20 6e 61 6d 65 3d 22 6c 69 74 76 61 6c 75 65  a name="litvalue
2e10: 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 4c 69 74 65  "></a>..<h3>Lite
2e20: 72 61 6c 20 56 61 6c 75 65 73 20 28 43 6f 6e 73  ral Values (Cons
2e30: 74 61 6e 74 73 29 3c 2f 68 33 3e 0a 3c 70 3e 0a  tants)</h3>.<p>.
2e40: 41 20 6c 69 74 65 72 61 6c 20 76 61 6c 75 65 20  A literal value 
2e50: 72 65 70 72 65 73 65 6e 74 73 20 61 20 63 6f 6e  represents a con
2e60: 73 74 61 6e 74 2e 0a 4c 69 74 65 72 61 6c 20 76  stant..Literal v
2e70: 61 6c 75 65 73 20 6d 61 79 20 62 65 20 69 6e 74  alues may be int
2e80: 65 67 65 72 73 2c 20 66 6c 6f 61 74 69 6e 67 20  egers, floating 
2e90: 70 6f 69 6e 74 20 6e 75 6d 62 65 72 73 2c 20 73  point numbers, s
2ea0: 74 72 69 6e 67 73 2c 0a 42 4c 4f 42 73 2c 20 6f  trings,.BLOBs, o
2eb0: 72 20 4e 55 4c 4c 73 2e 0a 3c 70 3e 0a 54 68 65  r NULLs..<p>.The
2ec0: 20 73 79 6e 74 61 78 20 66 6f 72 20 69 6e 74 65   syntax for inte
2ed0: 67 65 72 20 61 6e 64 20 66 6c 6f 61 74 69 6e 67  ger and floating
2ee0: 20 70 6f 69 6e 74 20 6c 69 74 65 72 61 6c 73 20   point literals 
2ef0: 28 63 6f 6c 6c 65 63 74 69 76 65 6c 79 0a 22 6e  (collectively."n
2f00: 75 6d 65 72 69 63 20 6c 69 74 65 72 61 6c 73 22  umeric literals"
2f10: 29 20 69 73 20 73 68 6f 77 6e 20 62 79 20 74 68  ) is shown by th
2f20: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 61 67  e following diag
2f30: 72 61 6d 3a 3c 2f 70 3e 0a 0a 3c 70 3e 3c 62 3e  ram:</p>..<p><b>
2f40: 3c 61 20 68 72 65 66 3d 22 73 79 6e 74 61 78 2f  <a href="syntax/
2f50: 6e 75 6d 65 72 69 63 2d 6c 69 74 65 72 61 6c 2e  numeric-literal.
2f60: 68 74 6d 6c 22 3e 6e 75 6d 65 72 69 63 2d 6c 69  html">numeric-li
2f70: 74 65 72 61 6c 3a 3c 2f 61 3e 3c 2f 62 3e 3c 2f  teral:</a></b></
2f80: 70 3e 3c 64 69 76 20 63 6c 61 73 73 3d 27 69 6d  p><div class='im
2f90: 67 63 6f 6e 74 61 69 6e 65 72 27 3e 0a 20 3c 69  gcontainer'>. <i
2fa0: 6d 67 20 61 6c 74 3d 22 73 79 6e 74 61 78 20 64  mg alt="syntax d
2fb0: 69 61 67 72 61 6d 20 6e 75 6d 65 72 69 63 2d 6c  iagram numeric-l
2fc0: 69 74 65 72 61 6c 22 20 73 72 63 3d 22 69 6d 61  iteral" src="ima
2fd0: 67 65 73 2f 73 79 6e 74 61 78 2f 6e 75 6d 65 72  ges/syntax/numer
2fe0: 69 63 2d 6c 69 74 65 72 61 6c 2e 67 69 66 22 3e  ic-literal.gif">
2ff0: 3c 2f 69 6d 67 3e 0a 20 3c 2f 64 69 76 3e 0a 0a  </img>. </div>..
3000: 0a 3c 70 3e 0a 49 66 20 61 20 6e 75 6d 65 72 69  .<p>.If a numeri
3010: 63 20 6c 69 74 65 72 61 6c 20 68 61 73 20 61 20  c literal has a 
3020: 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20 6f 72  decimal point or
3030: 20 61 6e 20 65 78 70 6f 6e 65 6e 74 69 61 74 69   an exponentiati
3040: 6f 6e 0a 63 6c 61 75 73 65 20 6f 72 20 69 66 20  on.clause or if 
3050: 69 74 73 20 6d 61 67 6e 69 74 75 64 65 20 69 73  its magnitude is
3060: 20 6c 65 73 73 20 74 68 61 6e 20 2d 39 32 32 33   less than -9223
3070: 33 37 32 30 33 36 38 35 34 37 37 35 38 30 38 20  372036854775808 
3080: 6f 72 0a 67 72 65 61 74 65 72 20 74 68 61 6e 20  or.greater than 
3090: 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35  9223372036854775
30a0: 38 30 37 2c 20 74 68 65 6e 20 69 74 20 69 73 20  807, then it is 
30b0: 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  a floating point
30c0: 20 6c 69 74 65 72 61 6c 2e 0a 4f 74 68 65 72 77   literal..Otherw
30d0: 69 73 65 20 69 73 20 69 74 20 69 73 20 61 6e 20  ise is it is an 
30e0: 20 69 6e 74 65 67 65 72 20 6c 69 74 65 72 61 6c   integer literal
30f0: 2e 0a 54 68 65 20 22 45 22 20 63 68 61 72 61 63  ..The "E" charac
3100: 74 65 72 20 74 68 61 74 20 62 65 67 69 6e 73 20  ter that begins 
3110: 74 68 65 20 65 78 70 6f 6e 65 6e 74 69 61 74 69  the exponentiati
3120: 6f 6e 0a 63 6c 61 75 73 65 20 6f 66 20 61 20 66  on.clause of a f
3130: 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 6c 69  loating point li
3140: 74 65 72 61 6c 20 63 61 6e 20 62 65 20 65 69 74  teral can be eit
3150: 68 65 72 20 75 70 70 65 72 20 6f 72 20 6c 6f 77  her upper or low
3160: 65 72 20 63 61 73 65 2e 0a 54 68 65 20 22 2e 22  er case..The "."
3170: 20 63 68 61 72 61 63 74 65 72 20 69 73 20 61 6c   character is al
3180: 77 61 79 73 20 75 73 65 64 20 0a 61 73 20 74 68  ways used .as th
3190: 65 20 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20  e decimal point 
31a0: 65 76 65 6e 20 69 66 20 74 68 65 20 6c 6f 63 61  even if the loca
31b0: 6c 65 20 73 65 74 74 69 6e 67 20 73 70 65 63 69  le setting speci
31c0: 66 69 65 73 20 22 2c 22 20 66 6f 72 0a 74 68 69  fies "," for.thi
31d0: 73 20 72 6f 6c 65 20 2d 20 74 68 65 20 75 73 65  s role - the use
31e0: 20 6f 66 20 22 2c 22 20 66 6f 72 20 74 68 65 20   of "," for the 
31f0: 64 65 63 69 6d 61 6c 20 70 6f 69 6e 74 20 77 6f  decimal point wo
3200: 75 6c 64 20 72 65 73 75 6c 74 20 69 6e 0a 73 79  uld result in.sy
3210: 6e 74 61 63 74 69 63 20 61 6d 62 69 67 75 69 74  ntactic ambiguit
3220: 79 2e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 68 65 78  y...<a name="hex
3230: 69 6e 74 22 3e 3c 2f 61 3e 0a 0a 3c 70 3e 48 65  int"></a>..<p>He
3240: 78 61 64 65 63 69 6d 61 6c 20 69 6e 74 65 67 65  xadecimal intege
3250: 72 20 6c 69 74 65 72 61 6c 73 20 66 6f 6c 6c 6f  r literals follo
3260: 77 20 74 68 65 20 43 2d 6c 61 6e 67 75 61 67 65  w the C-language
3270: 20 6e 6f 74 61 74 69 6f 6e 20 6f 66 0a 22 30 78   notation of."0x
3280: 22 20 6f 72 20 22 30 58 22 20 66 6f 6c 6c 6f 77  " or "0X" follow
3290: 65 64 20 62 79 20 68 65 78 61 64 65 63 69 6d 61  ed by hexadecima
32a0: 6c 20 64 69 67 69 74 73 2e 0a 46 6f 72 20 65 78  l digits..For ex
32b0: 61 6d 70 6c 65 2c 20 30 78 31 32 33 34 20 6d 65  ample, 0x1234 me
32c0: 61 6e 73 20 74 68 65 20 73 61 6d 65 20 61 73 20  ans the same as 
32d0: 34 36 36 30 0a 61 6e 64 20 30 78 38 30 30 30 30  4660.and 0x80000
32e0: 30 30 30 30 30 30 30 30 30 30 30 20 6d 65 61 6e  00000000000 mean
32f0: 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 2d 39  s the same as -9
3300: 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35 38  2233720368547758
3310: 30 38 2e 0a 20 48 65 78 61 64 65 63 69 6d 61 6c  08.. Hexadecimal
3320: 20 69 6e 74 65 67 65 72 20 6c 69 74 65 72 61 6c   integer literal
3330: 73 20 61 72 65 20 69 6e 74 65 72 70 72 65 74 65  s are interprete
3340: 64 20 61 73 20 36 34 2d 62 69 74 0a 74 77 6f 27  d as 64-bit.two'
3350: 73 2d 63 6f 6d 70 6c 65 6d 65 6e 74 20 69 6e 74  s-complement int
3360: 65 67 65 72 73 20 61 6e 64 20 61 72 65 20 74 68  egers and are th
3370: 75 73 20 6c 69 6d 69 74 65 64 0a 74 6f 20 73 69  us limited.to si
3380: 78 74 65 65 6e 20 73 69 67 6e 69 66 69 63 61 6e  xteen significan
3390: 74 20 64 69 67 69 74 73 20 6f 66 20 70 72 65 63  t digits of prec
33a0: 69 73 69 6f 6e 2e 0a 53 75 70 70 6f 72 74 20 66  ision..Support f
33b0: 6f 72 20 68 65 78 61 64 65 63 69 6d 61 6c 20 69  or hexadecimal i
33c0: 6e 74 65 67 65 72 73 20 77 61 73 20 61 64 64 65  ntegers was adde
33d0: 64 20 74 6f 20 53 51 4c 69 74 65 0a 76 65 72 73  d to SQLite.vers
33e0: 69 6f 6e 20 33 2e 38 2e 36 20 28 32 30 31 34 2d  ion 3.8.6 (2014-
33f0: 30 38 2d 31 35 29 2e 0a 46 6f 72 20 62 61 63 6b  08-15)..For back
3400: 77 61 72 64 73 20 63 6f 6d 70 61 74 69 62 69 6c  wards compatibil
3410: 69 74 79 2c 20 74 68 65 20 22 30 78 22 20 68 65  ity, the "0x" he
3420: 78 61 64 65 63 69 6d 61 6c 20 69 6e 74 65 67 65  xadecimal intege
3430: 72 0a 6e 6f 74 61 74 69 6f 6e 20 69 73 20 6f 6e  r.notation is on
3440: 6c 79 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79  ly understood by
3450: 20 74 68 65 20 53 51 4c 20 6c 61 6e 67 75 61 67   the SQL languag
3460: 65 20 70 61 72 73 65 72 2c 20 6e 6f 74 20 62 79  e parser, not by
3470: 20 74 68 65 0a 74 79 70 65 20 63 6f 6e 76 65 72   the.type conver
3480: 73 69 6f 6e 73 20 72 6f 75 74 69 6e 65 73 2e 0a  sions routines..
3490: 53 74 72 69 6e 67 20 76 61 72 69 61 62 6c 65 73  String variables
34a0: 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 20 74 65   that.contain te
34b0: 78 74 20 66 6f 72 6d 61 74 74 65 64 20 6c 69 6b  xt formatted lik
34c0: 65 20 68 65 78 61 64 65 63 69 6d 61 6c 20 69 6e  e hexadecimal in
34d0: 74 65 67 65 72 73 20 61 72 65 20 6e 6f 74 0a 69  tegers are not.i
34e0: 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 68 65  nterpreted as he
34f0: 78 61 64 65 63 69 6d 61 6c 20 69 6e 74 65 67 65  xadecimal intege
3500: 72 73 20 77 68 65 6e 20 63 6f 65 72 63 69 6e 67  rs when coercing
3510: 20 74 68 65 20 73 74 72 69 6e 67 20 76 61 6c 75   the string valu
3520: 65 0a 69 6e 74 6f 20 61 6e 20 69 6e 74 65 67 65  e.into an intege
3530: 72 20 64 75 65 20 74 6f 20 61 20 3c 61 20 68 72  r due to a <a hr
3540: 65 66 3d 22 6c 61 6e 67 5f 65 78 70 72 2e 68 74  ef="lang_expr.ht
3550: 6d 6c 23 63 61 73 74 65 78 70 72 22 3e 43 41 53  ml#castexpr">CAS
3560: 54 20 65 78 70 72 65 73 73 69 6f 6e 3c 2f 61 3e  T expression</a>
3570: 20 6f 72 20 66 6f 72 20 61 20 3c 61 20 68 72 65   or for a <a hre
3580: 66 3d 22 64 61 74 61 74 79 70 65 33 2e 68 74 6d  f="datatype3.htm
3590: 6c 23 61 66 66 69 6e 69 74 79 22 3e 63 6f 6c 75  l#affinity">colu
35a0: 6d 6e 20 61 66 66 69 6e 69 74 79 3c 2f 61 3e 0a  mn affinity</a>.
35b0: 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 6f  transformation o
35c0: 72 20 70 72 69 6f 72 20 74 6f 20 70 65 72 66 6f  r prior to perfo
35d0: 72 6d 69 6e 67 20 61 20 6e 75 6d 65 72 69 63 20  rming a numeric 
35e0: 6f 70 65 72 61 74 69 6f 6e 20 6f 72 20 66 6f 72  operation or for
35f0: 0a 61 6e 79 20 6f 74 68 65 72 20 72 75 6e 2d 74  .any other run-t
3600: 69 6d 65 20 63 6f 6e 76 65 72 73 69 6f 6e 73 2e  ime conversions.
3610: 20 20 57 68 65 6e 20 63 6f 65 72 63 69 6e 67 20    When coercing 
3620: 61 0a 73 74 72 69 6e 67 20 76 61 6c 75 65 20 69  a.string value i
3630: 6e 20 74 68 65 20 66 6f 72 6d 61 74 20 6f 66 20  n the format of 
3640: 61 20 68 65 78 61 64 65 63 69 6d 61 6c 20 69 6e  a hexadecimal in
3650: 74 65 67 65 72 20 69 6e 74 6f 20 61 6e 20 69 6e  teger into an in
3660: 74 65 67 65 72 0a 76 61 6c 75 65 2c 20 74 68 65  teger.value, the
3670: 20 63 6f 6e 76 65 72 73 69 6f 6e 20 70 72 6f 63   conversion proc
3680: 65 73 73 20 73 74 6f 70 73 20 77 68 65 6e 20 74  ess stops when t
3690: 68 65 20 27 78 27 20 63 68 61 72 61 63 74 65 72  he 'x' character
36a0: 20 69 73 20 73 65 65 6e 0a 73 6f 20 74 68 65 20   is seen.so the 
36b0: 72 65 73 75 6c 74 69 6e 67 20 69 6e 74 65 67 65  resulting intege
36c0: 72 20 76 61 6c 75 65 20 69 73 20 61 6c 77 61 79  r value is alway
36d0: 73 20 7a 65 72 6f 2e 0a 53 51 4c 69 74 65 20 6f  s zero..SQLite o
36e0: 6e 6c 79 20 75 6e 64 65 72 73 74 61 6e 64 73 20  nly understands 
36f0: 74 68 65 20 68 65 78 61 64 65 63 69 6d 61 6c 20  the hexadecimal 
3700: 69 6e 74 65 67 65 72 20 6e 6f 74 61 74 69 6f 6e  integer notation
3710: 20 77 68 65 6e 20 69 74 0a 61 70 70 65 61 72 73   when it.appears
3720: 20 69 6e 20 74 68 65 20 53 51 4c 20 73 74 61 74   in the SQL stat
3730: 65 6d 65 6e 74 20 74 65 78 74 2c 20 6e 6f 74 20  ement text, not 
3740: 77 68 65 6e 20 69 74 20 61 70 70 65 61 72 73 20  when it appears 
3750: 61 73 0a 70 61 72 74 20 6f 66 20 74 68 65 20 63  as.part of the c
3760: 6f 6e 74 65 6e 74 20 6f 66 20 74 68 65 20 64 61  ontent of the da
3770: 74 61 62 61 73 65 2e 0a 0a 3c 70 3e 20 41 20 73  tabase...<p> A s
3780: 74 72 69 6e 67 20 63 6f 6e 73 74 61 6e 74 20 69  tring constant i
3790: 73 20 66 6f 72 6d 65 64 20 62 79 20 65 6e 63 6c  s formed by encl
37a0: 6f 73 69 6e 67 20 74 68 65 0a 73 74 72 69 6e 67  osing the.string
37b0: 20 69 6e 20 73 69 6e 67 6c 65 20 71 75 6f 74 65   in single quote
37c0: 73 20 28 27 29 2e 20 20 41 20 73 69 6e 67 6c 65  s (').  A single
37d0: 20 71 75 6f 74 65 20 77 69 74 68 69 6e 20 74 68   quote within th
37e0: 65 20 73 74 72 69 6e 67 20 63 61 6e 0a 62 65 20  e string can.be 
37f0: 65 6e 63 6f 64 65 64 20 62 79 20 70 75 74 74 69  encoded by putti
3800: 6e 67 20 74 77 6f 20 73 69 6e 67 6c 65 20 71 75  ng two single qu
3810: 6f 74 65 73 20 69 6e 20 61 20 72 6f 77 20 2d 20  otes in a row - 
3820: 61 73 20 69 6e 20 50 61 73 63 61 6c 2e 0a 43 2d  as in Pascal..C-
3830: 73 74 79 6c 65 20 65 73 63 61 70 65 73 20 75 73  style escapes us
3840: 69 6e 67 20 74 68 65 20 62 61 63 6b 73 6c 61 73  ing the backslas
3850: 68 20 63 68 61 72 61 63 74 65 72 20 61 72 65 20  h character are 
3860: 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 65  not supported be
3870: 63 61 75 73 65 0a 74 68 65 79 20 61 72 65 20 6e  cause.they are n
3880: 6f 74 20 73 74 61 6e 64 61 72 64 20 53 51 4c 2e  ot standard SQL.
3890: 0a 0a 3c 70 3e 20 42 4c 4f 42 20 6c 69 74 65 72  ..<p> BLOB liter
38a0: 61 6c 73 20 61 72 65 20 73 74 72 69 6e 67 20 6c  als are string l
38b0: 69 74 65 72 61 6c 73 20 63 6f 6e 74 61 69 6e 69  iterals containi
38c0: 6e 67 20 68 65 78 61 64 65 63 69 6d 61 6c 20 64  ng hexadecimal d
38d0: 61 74 61 20 61 6e 64 0a 70 72 65 63 65 64 65 64  ata and.preceded
38e0: 20 62 79 20 61 20 73 69 6e 67 6c 65 20 22 78 22   by a single "x"
38f0: 20 6f 72 20 22 58 22 20 63 68 61 72 61 63 74 65   or "X" characte
3900: 72 2e 20 20 45 78 61 6d 70 6c 65 3a 20 58 27 35  r.  Example: X'5
3910: 33 35 31 34 43 36 39 37 34 36 35 27 0a 0a 3c 70  3514C697465'..<p
3920: 3e 0a 41 20 6c 69 74 65 72 61 6c 20 76 61 6c 75  >.A literal valu
3930: 65 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 74 68  e can also be th
3940: 65 20 74 6f 6b 65 6e 20 22 4e 55 4c 4c 22 2e 0a  e token "NULL"..
3950: 3c 2f 70 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 76  </p>..<a name="v
3960: 61 72 70 61 72 61 6d 22 3e 3c 2f 61 3e 0a 0a 3c  arparam"></a>..<
3970: 68 33 3e 50 61 72 61 6d 65 74 65 72 73 3c 2f 68  h3>Parameters</h
3980: 33 3e 0a 3c 70 3e 0a 41 20 22 76 61 72 69 61 62  3>.<p>.A "variab
3990: 6c 65 22 20 6f 72 20 22 70 61 72 61 6d 65 74 65  le" or "paramete
39a0: 72 22 20 74 6f 6b 65 6e 0a 73 70 65 63 69 66 69  r" token.specifi
39b0: 65 73 20 61 20 70 6c 61 63 65 68 6f 6c 64 65 72  es a placeholder
39c0: 20 69 6e 20 74 68 65 20 65 78 70 72 65 73 73 69   in the expressi
39d0: 6f 6e 20 66 6f 72 20 61 20 0a 76 61 6c 75 65 20  on for a .value 
39e0: 74 68 61 74 20 69 73 20 66 69 6c 6c 65 64 20 69  that is filled i
39f0: 6e 20 61 74 20 72 75 6e 74 69 6d 65 20 75 73 69  n at runtime usi
3a00: 6e 67 20 74 68 65 0a 3c 61 20 68 72 65 66 3d 22  ng the.<a href="
3a10: 63 33 72 65 66 2f 62 69 6e 64 5f 62 6c 6f 62 2e  c3ref/bind_blob.
3a20: 68 74 6d 6c 22 3e 73 71 6c 69 74 65 33 5f 62 69  html">sqlite3_bi
3a30: 6e 64 28 29 3c 2f 61 3e 20 66 61 6d 69 6c 79 20  nd()</a> family 
3a40: 6f 66 20 43 2f 43 2b 2b 20 69 6e 74 65 72 66 61  of C/C++ interfa
3a50: 63 65 73 2e 0a 50 61 72 61 6d 65 74 65 72 73 20  ces..Parameters 
3a60: 63 61 6e 20 74 61 6b 65 20 73 65 76 65 72 61 6c  can take several
3a70: 20 66 6f 72 6d 73 3a 0a 3c 2f 70 3e 0a 0a 3c 62   forms:.</p>..<b
3a80: 6c 6f 63 6b 71 75 6f 74 65 3e 0a 3c 74 61 62 6c  lockquote>.<tabl
3a90: 65 3e 0a 3c 74 72 3e 0a 3c 74 64 20 61 6c 69 67  e>.<tr>.<td alig
3aa0: 6e 3d 22 72 69 67 68 74 22 20 76 61 6c 69 67 6e  n="right" valign
3ab0: 3d 22 74 6f 70 22 3e 3c 62 3e 3f 3c 2f 62 3e 3c  ="top"><b>?</b><
3ac0: 69 3e 4e 4e 4e 3c 2f 69 3e 3c 2f 74 64 3e 3c 74  i>NNN</i></td><t
3ad0: 64 20 77 69 64 74 68 3d 22 32 30 22 3e 3c 2f 74  d width="20"></t
3ae0: 64 3e 0a 3c 74 64 3e 41 20 71 75 65 73 74 69 6f  d>.<td>A questio
3af0: 6e 20 6d 61 72 6b 20 66 6f 6c 6c 6f 77 65 64 20  n mark followed 
3b00: 62 79 20 61 20 6e 75 6d 62 65 72 20 3c 69 3e 4e  by a number <i>N
3b10: 4e 4e 3c 2f 69 3e 20 68 6f 6c 64 73 20 61 20 73  NN</i> holds a s
3b20: 70 6f 74 20 66 6f 72 20 74 68 65 0a 4e 4e 4e 2d  pot for the.NNN-
3b30: 74 68 20 70 61 72 61 6d 65 74 65 72 2e 20 20 4e  th parameter.  N
3b40: 4e 4e 20 6d 75 73 74 20 62 65 20 62 65 74 77 65  NN must be betwe
3b50: 65 6e 20 31 20 61 6e 64 20 3c 61 20 68 72 65 66  en 1 and <a href
3b60: 3d 22 6c 69 6d 69 74 73 2e 68 74 6d 6c 23 6d 61  ="limits.html#ma
3b70: 78 5f 76 61 72 69 61 62 6c 65 5f 6e 75 6d 62 65  x_variable_numbe
3b80: 72 22 3e 53 51 4c 49 54 45 5f 4d 41 58 5f 56 41  r">SQLITE_MAX_VA
3b90: 52 49 41 42 4c 45 5f 4e 55 4d 42 45 52 3c 2f 61  RIABLE_NUMBER</a
3ba0: 3e 2e 0a 3c 2f 74 64 3e 0a 3c 2f 74 72 3e 0a 3c  >..</td>.</tr>.<
3bb0: 74 72 3e 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72  tr>.<td align="r
3bc0: 69 67 68 74 22 20 76 61 6c 69 67 6e 3d 22 74 6f  ight" valign="to
3bd0: 70 22 3e 3c 62 3e 3f 3c 2f 62 3e 3c 2f 74 64 3e  p"><b>?</b></td>
3be0: 3c 74 64 20 77 69 64 74 68 3d 22 32 30 22 3e 3c  <td width="20"><
3bf0: 2f 74 64 3e 0a 3c 74 64 3e 41 20 71 75 65 73 74  /td>.<td>A quest
3c00: 69 6f 6e 20 6d 61 72 6b 20 74 68 61 74 20 69 73  ion mark that is
3c10: 20 6e 6f 74 20 66 6f 6c 6c 6f 77 65 64 20 62 79   not followed by
3c20: 20 61 20 6e 75 6d 62 65 72 20 63 72 65 61 74 65   a number create
3c30: 73 20 61 20 70 61 72 61 6d 65 74 65 72 0a 77 69  s a parameter.wi
3c40: 74 68 20 61 20 6e 75 6d 62 65 72 20 6f 6e 65 20  th a number one 
3c50: 67 72 65 61 74 65 72 20 74 68 61 6e 20 74 68 65  greater than the
3c60: 20 6c 61 72 67 65 73 74 20 70 61 72 61 6d 65 74   largest paramet
3c70: 65 72 20 6e 75 6d 62 65 72 20 61 6c 72 65 61 64  er number alread
3c80: 79 20 61 73 73 69 67 6e 65 64 2e 0a 49 66 20 74  y assigned..If t
3c90: 68 69 73 20 6d 65 61 6e 73 20 74 68 65 20 70 61  his means the pa
3ca0: 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20 69  rameter number i
3cb0: 73 20 67 72 65 61 74 65 72 20 74 68 61 6e 0a 3c  s greater than.<
3cc0: 61 20 68 72 65 66 3d 22 6c 69 6d 69 74 73 2e 68  a href="limits.h
3cd0: 74 6d 6c 23 6d 61 78 5f 76 61 72 69 61 62 6c 65  tml#max_variable
3ce0: 5f 6e 75 6d 62 65 72 22 3e 53 51 4c 49 54 45 5f  _number">SQLITE_
3cf0: 4d 41 58 5f 56 41 52 49 41 42 4c 45 5f 4e 55 4d  MAX_VARIABLE_NUM
3d00: 42 45 52 3c 2f 61 3e 2c 20 69 74 20 69 73 20 61  BER</a>, it is a
3d10: 6e 20 65 72 72 6f 72 2e 0a 54 68 69 73 20 70 61  n error..This pa
3d20: 72 61 6d 65 74 65 72 20 66 6f 72 6d 61 74 20 69  rameter format i
3d30: 73 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 63  s provided for c
3d40: 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74  ompatibility wit
3d50: 68 20 6f 74 68 65 72 20 64 61 74 61 62 61 73 65  h other database
3d60: 0a 65 6e 67 69 6e 65 73 2e 20 20 42 75 74 20 62  .engines.  But b
3d70: 65 63 61 75 73 65 20 69 74 20 69 73 20 65 61 73  ecause it is eas
3d80: 79 20 74 6f 20 6d 69 73 63 6f 75 6e 74 20 74 68  y to miscount th
3d90: 65 20 71 75 65 73 74 69 6f 6e 20 6d 61 72 6b 73  e question marks
3da0: 2c 20 74 68 65 0a 75 73 65 20 6f 66 20 74 68 69  , the.use of thi
3db0: 73 20 70 61 72 61 6d 65 74 65 72 20 66 6f 72 6d  s parameter form
3dc0: 61 74 20 69 73 20 64 69 73 63 6f 75 72 61 67 65  at is discourage
3dd0: 64 2e 20 20 50 72 6f 67 72 61 6d 6d 65 72 73 20  d.  Programmers 
3de0: 61 72 65 20 65 6e 63 6f 75 72 61 67 65 64 0a 74  are encouraged.t
3df0: 6f 20 75 73 65 20 6f 6e 65 20 6f 66 20 74 68 65  o use one of the
3e00: 20 73 79 6d 62 6f 6c 69 63 20 66 6f 72 6d 61 74   symbolic format
3e10: 73 20 62 65 6c 6f 77 20 6f 72 20 74 68 65 20 3f  s below or the ?
3e20: 4e 4e 4e 20 66 6f 72 6d 61 74 20 61 62 6f 76 65  NNN format above
3e30: 20 69 6e 73 74 65 61 64 2e 0a 3c 2f 74 64 3e 0a   instead..</td>.
3e40: 3c 2f 74 72 3e 0a 3c 74 72 3e 0a 3c 74 64 20 61  </tr>.<tr>.<td a
3e50: 6c 69 67 6e 3d 22 72 69 67 68 74 22 20 76 61 6c  lign="right" val
3e60: 69 67 6e 3d 22 74 6f 70 22 3e 3c 62 3e 3a 3c 2f  ign="top"><b>:</
3e70: 62 3e 3c 69 3e 41 41 41 41 3c 2f 69 3e 3c 2f 74  b><i>AAAA</i></t
3e80: 64 3e 3c 74 64 20 77 69 64 74 68 3d 22 32 30 22  d><td width="20"
3e90: 3e 3c 2f 74 64 3e 0a 3c 74 64 3e 41 20 63 6f 6c  ></td>.<td>A col
3ea0: 6f 6e 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61  on followed by a
3eb0: 6e 20 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d  n identifier nam
3ec0: 65 20 68 6f 6c 64 73 20 61 20 73 70 6f 74 20 66  e holds a spot f
3ed0: 6f 72 20 61 20 0a 3c 61 20 68 72 65 66 3d 22 63  or a .<a href="c
3ee0: 33 72 65 66 2f 62 69 6e 64 5f 70 61 72 61 6d 65  3ref/bind_parame
3ef0: 74 65 72 5f 6e 61 6d 65 2e 68 74 6d 6c 22 3e 6e  ter_name.html">n
3f00: 61 6d 65 64 20 70 61 72 61 6d 65 74 65 72 3c 2f  amed parameter</
3f10: 61 3e 20 77 69 74 68 20 74 68 65 20 6e 61 6d 65  a> with the name
3f20: 20 3a 41 41 41 41 2e 20 20 0a 4e 61 6d 65 64 20   :AAAA.  .Named 
3f30: 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 61  parameters are a
3f40: 6c 73 6f 20 6e 75 6d 62 65 72 65 64 2e 20 54 68  lso numbered. Th
3f50: 65 20 6e 75 6d 62 65 72 20 61 73 73 69 67 6e 65  e number assigne
3f60: 64 20 69 73 20 6f 6e 65 20 67 72 65 61 74 65 72  d is one greater
3f70: 20 74 68 61 6e 0a 74 68 65 20 6c 61 72 67 65 73   than.the larges
3f80: 74 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d 62  t parameter numb
3f90: 65 72 20 61 6c 72 65 61 64 79 20 61 73 73 69 67  er already assig
3fa0: 6e 65 64 2e 20 49 66 20 74 68 69 73 20 6d 65 61  ned. If this mea
3fb0: 6e 73 20 74 68 65 20 70 61 72 61 6d 65 74 65 72  ns the parameter
3fc0: 0a 77 6f 75 6c 64 20 62 65 20 61 73 73 69 67 6e  .would be assign
3fd0: 65 64 20 61 20 6e 75 6d 62 65 72 20 67 72 65 61  ed a number grea
3fe0: 74 65 72 20 74 68 61 6e 20 3c 61 20 68 72 65 66  ter than <a href
3ff0: 3d 22 6c 69 6d 69 74 73 2e 68 74 6d 6c 23 6d 61  ="limits.html#ma
4000: 78 5f 76 61 72 69 61 62 6c 65 5f 6e 75 6d 62 65  x_variable_numbe
4010: 72 22 3e 53 51 4c 49 54 45 5f 4d 41 58 5f 56 41  r">SQLITE_MAX_VA
4020: 52 49 41 42 4c 45 5f 4e 55 4d 42 45 52 3c 2f 61  RIABLE_NUMBER</a
4030: 3e 2c 20 69 74 20 69 73 0a 61 6e 20 65 72 72 6f  >, it is.an erro
4040: 72 2e 20 54 6f 20 61 76 6f 69 64 20 63 6f 6e 66  r. To avoid conf
4050: 75 73 69 6f 6e 2c 20 69 74 20 69 73 20 62 65 73  usion, it is bes
4060: 74 20 74 6f 20 61 76 6f 69 64 20 6d 69 78 69 6e  t to avoid mixin
4070: 67 20 6e 61 6d 65 64 20 61 6e 64 20 6e 75 6d 62  g named and numb
4080: 65 72 65 64 0a 70 61 72 61 6d 65 74 65 72 73 2e  ered.parameters.
4090: 3c 2f 74 64 3e 0a 3c 2f 74 72 3e 0a 3c 74 72 3e  </td>.</tr>.<tr>
40a0: 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  .<td align="righ
40b0: 74 22 20 76 61 6c 69 67 6e 3d 22 74 6f 70 22 3e  t" valign="top">
40c0: 3c 62 3e 40 3c 2f 62 3e 3c 69 3e 41 41 41 41 3c  <b>@</b><i>AAAA<
40d0: 2f 69 3e 3c 2f 74 64 3e 3c 74 64 20 77 69 64 74  /i></td><td widt
40e0: 68 3d 22 32 30 22 3e 3c 2f 74 64 3e 0a 3c 74 64  h="20"></td>.<td
40f0: 3e 41 6e 20 22 61 74 22 20 73 69 67 6e 20 77 6f  >An "at" sign wo
4100: 72 6b 73 20 65 78 61 63 74 6c 79 20 6c 69 6b 65  rks exactly like
4110: 20 61 20 63 6f 6c 6f 6e 2c 20 65 78 63 65 70 74   a colon, except
4120: 20 74 68 61 74 20 74 68 65 20 6e 61 6d 65 20 6f   that the name o
4130: 66 0a 74 68 65 20 70 61 72 61 6d 65 74 65 72 20  f.the parameter 
4140: 63 72 65 61 74 65 64 20 69 73 20 40 41 41 41 41  created is @AAAA
4150: 2e 3c 2f 74 64 3e 0a 3c 2f 74 72 3e 0a 3c 74 72  .</td>.</tr>.<tr
4160: 3e 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  >.<td align="rig
4170: 68 74 22 20 76 61 6c 69 67 6e 3d 22 74 6f 70 22  ht" valign="top"
4180: 3e 3c 62 3e 24 3c 2f 62 3e 3c 69 3e 41 41 41 41  ><b>$</b><i>AAAA
4190: 3c 2f 69 3e 3c 2f 74 64 3e 3c 74 64 20 77 69 64  </i></td><td wid
41a0: 74 68 3d 22 32 30 22 3e 3c 2f 74 64 3e 0a 3c 74  th="20"></td>.<t
41b0: 64 3e 41 20 64 6f 6c 6c 61 72 2d 73 69 67 6e 20  d>A dollar-sign 
41c0: 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 6e 20 69  followed by an i
41d0: 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65 20 61  dentifier name a
41e0: 6c 73 6f 20 68 6f 6c 64 73 20 61 20 73 70 6f 74  lso holds a spot
41f0: 20 66 6f 72 20 61 20 6e 61 6d 65 64 0a 70 61 72   for a named.par
4200: 61 6d 65 74 65 72 20 77 69 74 68 20 74 68 65 20  ameter with the 
4210: 6e 61 6d 65 20 24 41 41 41 41 2e 20 20 54 68 65  name $AAAA.  The
4220: 20 69 64 65 6e 74 69 66 69 65 72 20 6e 61 6d 65   identifier name
4230: 20 69 6e 20 74 68 69 73 20 63 61 73 65 20 63 61   in this case ca
4240: 6e 20 69 6e 63 6c 75 64 65 0a 6f 6e 65 20 6f 72  n include.one or
4250: 20 6d 6f 72 65 20 6f 63 63 75 72 72 65 6e 63 65   more occurrence
4260: 73 20 6f 66 20 22 3a 3a 22 20 61 6e 64 20 61 20  s of "::" and a 
4270: 73 75 66 66 69 78 20 65 6e 63 6c 6f 73 65 64 20  suffix enclosed 
4280: 69 6e 20 22 28 2e 2e 2e 29 22 20 63 6f 6e 74 61  in "(...)" conta
4290: 69 6e 69 6e 67 0a 61 6e 79 20 74 65 78 74 20 61  ining.any text a
42a0: 74 20 61 6c 6c 2e 20 20 54 68 69 73 20 73 79 6e  t all.  This syn
42b0: 74 61 78 20 69 73 20 74 68 65 20 66 6f 72 6d 20  tax is the form 
42c0: 6f 66 20 61 20 76 61 72 69 61 62 6c 65 20 6e 61  of a variable na
42d0: 6d 65 20 69 6e 20 74 68 65 0a 3c 61 20 68 72 65  me in the.<a hre
42e0: 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 74 63  f="http://www.tc
42f0: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 22 3e 54 63 6c  l-lang.org/">Tcl
4300: 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e   programming lan
4310: 67 75 61 67 65 3c 2f 61 3e 2e 20 20 54 68 65 20  guage</a>.  The 
4320: 70 72 65 73 65 6e 63 65 0a 6f 66 20 74 68 69 73  presence.of this
4330: 20 73 79 6e 74 61 78 20 72 65 73 75 6c 74 73 20   syntax results 
4340: 66 72 6f 6d 20 74 68 65 20 66 61 63 74 20 74 68  from the fact th
4350: 61 74 20 53 51 4c 69 74 65 20 69 73 20 72 65 61  at SQLite is rea
4360: 6c 6c 79 20 61 20 0a 3c 61 20 68 72 65 66 3d 22  lly a .<a href="
4370: 74 63 6c 73 71 6c 69 74 65 2e 68 74 6d 6c 22 3e  tclsqlite.html">
4380: 54 63 6c 20 65 78 74 65 6e 73 69 6f 6e 3c 2f 61  Tcl extension</a
4390: 3e 20 74 68 61 74 20 68 61 73 20 65 73 63 61 70  > that has escap
43a0: 65 64 20 69 6e 74 6f 20 74 68 65 20 77 69 6c 64  ed into the wild
43b0: 2e 3c 2f 74 64 3e 0a 3c 2f 74 72 3e 0a 3c 2f 74  .</td>.</tr>.</t
43c0: 61 62 6c 65 3e 0a 3c 2f 62 6c 6f 63 6b 71 75 6f  able>.</blockquo
43d0: 74 65 3e 0a 0a 3c 70 3e 50 61 72 61 6d 65 74 65  te>..<p>Paramete
43e0: 72 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20  rs that are not 
43f0: 61 73 73 69 67 6e 65 64 20 76 61 6c 75 65 73 20  assigned values 
4400: 75 73 69 6e 67 0a 3c 61 20 68 72 65 66 3d 22 63  using.<a href="c
4410: 33 72 65 66 2f 62 69 6e 64 5f 62 6c 6f 62 2e 68  3ref/bind_blob.h
4420: 74 6d 6c 22 3e 73 71 6c 69 74 65 33 5f 62 69 6e  tml">sqlite3_bin
4430: 64 28 29 3c 2f 61 3e 20 61 72 65 20 74 72 65 61  d()</a> are trea
4440: 74 65 64 0a 61 73 20 4e 55 4c 4c 2e 20 20 54 68  ted.as NULL.  Th
4450: 65 20 3c 61 20 68 72 65 66 3d 22 63 33 72 65 66  e <a href="c3ref
4460: 2f 62 69 6e 64 5f 70 61 72 61 6d 65 74 65 72 5f  /bind_parameter_
4470: 69 6e 64 65 78 2e 68 74 6d 6c 22 3e 73 71 6c 69  index.html">sqli
4480: 74 65 33 5f 62 69 6e 64 5f 70 61 72 61 6d 65 74  te3_bind_paramet
4490: 65 72 5f 69 6e 64 65 78 28 29 3c 2f 61 3e 20 69  er_index()</a> i
44a0: 6e 74 65 72 66 61 63 65 20 63 61 6e 20 62 65 20  nterface can be 
44b0: 75 73 65 64 0a 74 6f 20 74 72 61 6e 73 6c 61 74  used.to translat
44c0: 65 20 61 20 73 79 6d 62 6f 6c 69 63 20 70 61 72  e a symbolic par
44d0: 61 6d 65 74 65 72 20 6e 61 6d 65 20 69 6e 74 6f  ameter name into
44e0: 20 69 74 73 20 65 71 75 69 76 61 6c 65 6e 74 20   its equivalent 
44f0: 6e 75 6d 65 72 69 63 20 69 6e 64 65 78 2e 3c 2f  numeric index.</
4500: 70 3e 0a 0a 3c 70 3e 54 68 65 20 6d 61 78 69 6d  p>..<p>The maxim
4510: 75 6d 20 70 61 72 61 6d 65 74 65 72 20 6e 75 6d  um parameter num
4520: 62 65 72 20 69 73 20 73 65 74 20 61 74 20 63 6f  ber is set at co
4530: 6d 70 69 6c 65 2d 74 69 6d 65 20 62 79 0a 74 68  mpile-time by.th
4540: 65 20 3c 61 20 68 72 65 66 3d 22 6c 69 6d 69 74  e <a href="limit
4550: 73 2e 68 74 6d 6c 23 6d 61 78 5f 76 61 72 69 61  s.html#max_varia
4560: 62 6c 65 5f 6e 75 6d 62 65 72 22 3e 53 51 4c 49  ble_number">SQLI
4570: 54 45 5f 4d 41 58 5f 56 41 52 49 41 42 4c 45 5f  TE_MAX_VARIABLE_
4580: 4e 55 4d 42 45 52 3c 2f 61 3e 20 6d 61 63 72 6f  NUMBER</a> macro
4590: 2e 20 20 41 6e 20 69 6e 64 69 76 69 64 75 61 6c  .  An individual
45a0: 20 3c 61 20 68 72 65 66 3d 22 63 33 72 65 66 2f   <a href="c3ref/
45b0: 73 71 6c 69 74 65 33 2e 68 74 6d 6c 22 3e 64 61  sqlite3.html">da
45c0: 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f  tabase connectio
45d0: 6e 3c 2f 61 3e 0a 44 20 63 61 6e 20 72 65 64 75  n</a>.D can redu
45e0: 63 65 20 69 74 73 20 6d 61 78 69 6d 75 6d 20 70  ce its maximum p
45f0: 61 72 61 6d 65 74 65 72 20 6e 75 6d 62 65 72 20  arameter number 
4600: 62 65 6c 6f 77 20 74 68 65 20 63 6f 6d 70 69 6c  below the compil
4610: 65 2d 74 69 6d 65 20 6d 61 78 69 6d 75 6d 0a 75  e-time maximum.u
4620: 73 69 6e 67 20 74 68 65 20 3c 61 20 68 72 65 66  sing the <a href
4630: 3d 22 63 33 72 65 66 2f 6c 69 6d 69 74 2e 68 74  ="c3ref/limit.ht
4640: 6d 6c 22 3e 73 71 6c 69 74 65 33 5f 6c 69 6d 69  ml">sqlite3_limi
4650: 74 3c 2f 61 3e 28 44 2c 20 3c 61 20 68 72 65 66  t</a>(D, <a href
4660: 3d 22 63 33 72 65 66 2f 63 5f 6c 69 6d 69 74 5f  ="c3ref/c_limit_
4670: 61 74 74 61 63 68 65 64 2e 68 74 6d 6c 23 73 71  attached.html#sq
4680: 6c 69 74 65 6c 69 6d 69 74 76 61 72 69 61 62 6c  litelimitvariabl
4690: 65 6e 75 6d 62 65 72 22 3e 53 51 4c 49 54 45 5f  enumber">SQLITE_
46a0: 4c 49 4d 49 54 5f 56 41 52 49 41 42 4c 45 5f 4e  LIMIT_VARIABLE_N
46b0: 55 4d 42 45 52 3c 2f 61 3e 2c 2e 2e 2e 29 20 69  UMBER</a>,...) i
46c0: 6e 74 65 72 66 61 63 65 2e 0a 3c 2f 70 3e 0a 0a  nterface..</p>..
46d0: 3c 61 20 6e 61 6d 65 3d 22 6c 69 6b 65 22 3e 3c  <a name="like"><
46e0: 2f 61 3e 0a 0a 3c 68 33 3e 54 68 65 20 4c 49 4b  /a>..<h3>The LIK
46f0: 45 2c 20 47 4c 4f 42 2c 20 52 45 47 45 58 50 2c  E, GLOB, REGEXP,
4700: 20 61 6e 64 20 4d 41 54 43 48 20 6f 70 65 72 61   and MATCH opera
4710: 74 6f 72 73 3c 2f 68 33 3e 0a 3c 70 3e 54 68 65  tors</h3>.<p>The
4720: 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 20 64   LIKE operator d
4730: 6f 65 73 20 61 20 70 61 74 74 65 72 6e 20 6d 61  oes a pattern ma
4740: 74 63 68 69 6e 67 20 63 6f 6d 70 61 72 69 73 6f  tching compariso
4750: 6e 2e 20 54 68 65 20 6f 70 65 72 61 6e 64 0a 74  n. The operand.t
4760: 6f 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 74  o the right of t
4770: 68 65 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72  he LIKE operator
4780: 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 70 61   contains the pa
4790: 74 74 65 72 6e 20 61 6e 64 20 74 68 65 20 6c 65  ttern and the le
47a0: 66 74 20 68 61 6e 64 0a 6f 70 65 72 61 6e 64 20  ft hand.operand 
47b0: 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 73 74 72  contains the str
47c0: 69 6e 67 20 74 6f 20 6d 61 74 63 68 20 61 67 61  ing to match aga
47d0: 69 6e 73 74 20 74 68 65 20 70 61 74 74 65 72 6e  inst the pattern
47e0: 2e 0a 0a 41 20 70 65 72 63 65 6e 74 20 73 79 6d  ...A percent sym
47f0: 62 6f 6c 20 28 22 25 22 29 20 69 6e 20 74 68 65  bol ("%") in the
4800: 20 4c 49 4b 45 20 70 61 74 74 65 72 6e 20 6d 61   LIKE pattern ma
4810: 74 63 68 65 73 20 61 6e 79 0a 73 65 71 75 65 6e  tches any.sequen
4820: 63 65 20 6f 66 20 7a 65 72 6f 20 6f 72 20 6d 6f  ce of zero or mo
4830: 72 65 20 63 68 61 72 61 63 74 65 72 73 20 69 6e  re characters in
4840: 20 74 68 65 20 73 74 72 69 6e 67 2e 20 20 41 6e   the string.  An
4850: 20 75 6e 64 65 72 73 63 6f 72 65 0a 28 22 5f 22   underscore.("_"
4860: 29 20 69 6e 20 74 68 65 20 4c 49 4b 45 20 70 61  ) in the LIKE pa
4870: 74 74 65 72 6e 20 6d 61 74 63 68 65 73 20 61 6e  ttern matches an
4880: 79 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74  y single charact
4890: 65 72 20 69 6e 20 74 68 65 0a 73 74 72 69 6e 67  er in the.string
48a0: 2e 20 20 41 6e 79 20 6f 74 68 65 72 20 63 68 61  .  Any other cha
48b0: 72 61 63 74 65 72 20 6d 61 74 63 68 65 73 20 69  racter matches i
48c0: 74 73 65 6c 66 20 6f 72 20 69 74 73 20 6c 6f 77  tself or its low
48d0: 65 72 2f 75 70 70 65 72 20 63 61 73 65 0a 65 71  er/upper case.eq
48e0: 75 69 76 61 6c 65 6e 74 20 28 69 2e 65 2e 20 63  uivalent (i.e. c
48f0: 61 73 65 2d 69 6e 73 65 6e 73 69 74 69 76 65 20  ase-insensitive 
4900: 6d 61 74 63 68 69 6e 67 29 2e 0a 0a 3c 75 3e 49  matching)...<u>I
4910: 6d 70 6f 72 74 61 6e 74 20 4e 6f 74 65 3a 3c 2f  mportant Note:</
4920: 75 3e 20 53 51 4c 69 74 65 20 6f 6e 6c 79 0a 75  u> SQLite only.u
4930: 6e 64 65 72 73 74 61 6e 64 73 20 75 70 70 65 72  nderstands upper
4940: 2f 6c 6f 77 65 72 20 63 61 73 65 20 66 6f 72 20  /lower case for 
4950: 41 53 43 49 49 20 63 68 61 72 61 63 74 65 72 73  ASCII characters
4960: 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 54 68   by default.  Th
4970: 65 0a 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 20  e.LIKE operator 
4980: 69 73 20 63 61 73 65 20 73 65 6e 73 69 74 69 76  is case sensitiv
4990: 65 20 62 79 20 64 65 66 61 75 6c 74 20 66 6f 72  e by default for
49a0: 20 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74   unicode charact
49b0: 65 72 73 20 74 68 61 74 20 61 72 65 0a 62 65 79  ers that are.bey
49c0: 6f 6e 64 20 74 68 65 20 41 53 43 49 49 20 72 61  ond the ASCII ra
49d0: 6e 67 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c  nge.  For exampl
49e0: 65 2c 0a 74 68 65 20 65 78 70 72 65 73 73 69 6f  e,.the expressio
49f0: 6e 20 3c 62 3e 27 61 27 26 6e 62 73 70 3b 4c 49  n <b>'a'&nbsp;LI
4a00: 4b 45 26 6e 62 73 70 3b 27 41 27 3c 2f 62 3e 0a  KE&nbsp;'A'</b>.
4a10: 69 73 20 54 52 55 45 20 62 75 74 20 3c 62 3e 27  is TRUE but <b>'
4a20: 26 61 65 6c 69 67 3b 27 26 6e 62 73 70 3b 4c 49  &aelig;'&nbsp;LI
4a30: 4b 45 26 6e 62 73 70 3b 27 26 41 45 6c 69 67 3b  KE&nbsp;'&AElig;
4a40: 27 3c 2f 62 3e 20 69 73 20 46 41 4c 53 45 2e 0a  '</b> is FALSE..
4a50: 54 68 65 20 49 43 55 20 65 78 74 65 6e 73 69 6f  The ICU extensio
4a60: 6e 20 74 6f 20 53 51 4c 69 74 65 20 69 6e 63 6c  n to SQLite incl
4a70: 75 64 65 73 20 61 6e 20 65 6e 68 61 6e 63 65 64  udes an enhanced
4a80: 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 0a   version of the.
4a90: 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 20 74 68  LIKE operator th
4aa0: 61 74 20 64 6f 65 73 20 63 61 73 65 20 66 6f 6c  at does case fol
4ab0: 64 69 6e 67 20 61 63 72 6f 73 73 20 61 6c 6c 20  ding across all 
4ac0: 75 6e 69 63 6f 64 65 20 63 68 61 72 61 63 74 65  unicode characte
4ad0: 72 73 2e 3c 2f 70 3e 0a 0a 3c 70 3e 49 66 20 74  rs.</p>..<p>If t
4ae0: 68 65 20 6f 70 74 69 6f 6e 61 6c 20 45 53 43 41  he optional ESCA
4af0: 50 45 20 63 6c 61 75 73 65 20 69 73 20 70 72 65  PE clause is pre
4b00: 73 65 6e 74 2c 20 74 68 65 6e 20 74 68 65 20 65  sent, then the e
4b10: 78 70 72 65 73 73 69 6f 6e 0a 66 6f 6c 6c 6f 77  xpression.follow
4b20: 69 6e 67 20 74 68 65 20 45 53 43 41 50 45 20 6b  ing the ESCAPE k
4b30: 65 79 77 6f 72 64 20 6d 75 73 74 20 65 76 61 6c  eyword must eval
4b40: 75 61 74 65 20 74 6f 20 61 20 73 74 72 69 6e 67  uate to a string
4b50: 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 0a 61   consisting of.a
4b60: 20 73 69 6e 67 6c 65 20 63 68 61 72 61 63 74 65   single characte
4b70: 72 2e 20 54 68 69 73 20 63 68 61 72 61 63 74 65  r. This characte
4b80: 72 20 6d 61 79 20 62 65 20 75 73 65 64 20 69 6e  r may be used in
4b90: 20 74 68 65 20 4c 49 4b 45 20 70 61 74 74 65 72   the LIKE patter
4ba0: 6e 0a 74 6f 20 69 6e 63 6c 75 64 65 20 6c 69 74  n.to include lit
4bb0: 65 72 61 6c 20 70 65 72 63 65 6e 74 20 6f 72 20  eral percent or 
4bc0: 75 6e 64 65 72 73 63 6f 72 65 20 63 68 61 72 61  underscore chara
4bd0: 63 74 65 72 73 2e 20 54 68 65 20 65 73 63 61 70  cters. The escap
4be0: 65 0a 63 68 61 72 61 63 74 65 72 20 66 6f 6c 6c  e.character foll
4bf0: 6f 77 65 64 20 62 79 20 61 20 70 65 72 63 65 6e  owed by a percen
4c00: 74 20 73 79 6d 62 6f 6c 20 28 25 29 2c 20 75 6e  t symbol (%), un
4c10: 64 65 72 73 63 6f 72 65 20 28 5f 29 2c 20 6f 72  derscore (_), or
4c20: 20 61 20 73 65 63 6f 6e 64 0a 69 6e 73 74 61 6e   a second.instan
4c30: 63 65 20 6f 66 20 74 68 65 20 65 73 63 61 70 65  ce of the escape
4c40: 20 63 68 61 72 61 63 74 65 72 20 69 74 73 65 6c   character itsel
4c50: 66 20 6d 61 74 63 68 65 73 20 61 0a 6c 69 74 65  f matches a.lite
4c60: 72 61 6c 20 70 65 72 63 65 6e 74 20 73 79 6d 62  ral percent symb
4c70: 6f 6c 2c 20 75 6e 64 65 72 73 63 6f 72 65 2c 20  ol, underscore, 
4c80: 6f 72 20 61 20 73 69 6e 67 6c 65 20 65 73 63 61  or a single esca
4c90: 70 65 20 63 68 61 72 61 63 74 65 72 2c 0a 72 65  pe character,.re
4ca0: 73 70 65 63 74 69 76 65 6c 79 2e 0a 0a 3c 70 3e  spectively...<p>
4cb0: 54 68 65 20 69 6e 66 69 78 20 4c 49 4b 45 20 6f  The infix LIKE o
4cc0: 70 65 72 61 74 6f 72 20 69 73 20 69 6d 70 6c 65  perator is imple
4cd0: 6d 65 6e 74 65 64 20 62 79 20 63 61 6c 6c 69 6e  mented by callin
4ce0: 67 20 74 68 65 0a 61 70 70 6c 69 63 61 74 69 6f  g the.applicatio
4cf0: 6e 2d 64 65 66 69 6e 65 64 20 53 51 4c 20 66 75  n-defined SQL fu
4d00: 6e 63 74 69 6f 6e 73 20 3c 61 20 68 72 65 66 3d  nctions <a href=
4d10: 22 6c 61 6e 67 5f 63 6f 72 65 66 75 6e 63 2e 68  "lang_corefunc.h
4d20: 74 6d 6c 23 6c 69 6b 65 22 3e 6c 69 6b 65 28 3c  tml#like">like(<
4d30: 69 3e 59 3c 2f 69 3e 2c 3c 69 3e 58 3c 2f 69 3e  i>Y</i>,<i>X</i>
4d40: 29 3c 2f 61 3e 20 6f 72 0a 3c 61 20 68 72 65 66  )</a> or.<a href
4d50: 3d 22 6c 61 6e 67 5f 63 6f 72 65 66 75 6e 63 2e  ="lang_corefunc.
4d60: 68 74 6d 6c 23 6c 69 6b 65 22 3e 6c 69 6b 65 28  html#like">like(
4d70: 3c 69 3e 59 3c 2f 69 3e 2c 3c 69 3e 58 3c 2f 69  <i>Y</i>,<i>X</i
4d80: 3e 2c 3c 69 3e 5a 3c 2f 69 3e 29 3c 2f 61 3e 3c  >,<i>Z</i>)</a><
4d90: 2f 61 3e 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 65  /a>.</p>..<p>The
4da0: 20 4c 49 4b 45 20 6f 70 65 72 61 74 6f 72 20 63   LIKE operator c
4db0: 61 6e 20 62 65 20 6d 61 64 65 20 63 61 73 65 20  an be made case 
4dc0: 73 65 6e 73 69 74 69 76 65 20 75 73 69 6e 67 20  sensitive using 
4dd0: 74 68 65 0a 3c 61 20 68 72 65 66 3d 22 70 72 61  the.<a href="pra
4de0: 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67 6d 61 5f  gma.html#pragma_
4df0: 63 61 73 65 5f 73 65 6e 73 69 74 69 76 65 5f 6c  case_sensitive_l
4e00: 69 6b 65 22 3e 63 61 73 65 5f 73 65 6e 73 69 74  ike">case_sensit
4e10: 69 76 65 5f 6c 69 6b 65 20 70 72 61 67 6d 61 3c  ive_like pragma<
4e20: 2f 61 3e 2e 3c 2f 70 3e 0a 0a 3c 61 20 6e 61 6d  /a>.</p>..<a nam
4e30: 65 3d 22 67 6c 6f 62 22 3e 3c 2f 61 3e 0a 0a 3c  e="glob"></a>..<
4e40: 70 3e 54 68 65 20 47 4c 4f 42 20 6f 70 65 72 61  p>The GLOB opera
4e50: 74 6f 72 20 69 73 20 73 69 6d 69 6c 61 72 20 74  tor is similar t
4e60: 6f 20 4c 49 4b 45 20 62 75 74 20 75 73 65 73 20  o LIKE but uses 
4e70: 74 68 65 20 55 6e 69 78 0a 66 69 6c 65 20 67 6c  the Unix.file gl
4e80: 6f 62 62 69 6e 67 20 73 79 6e 74 61 78 20 66 6f  obbing syntax fo
4e90: 72 20 69 74 73 20 77 69 6c 64 63 61 72 64 73 2e  r its wildcards.
4ea0: 20 20 41 6c 73 6f 2c 20 47 4c 4f 42 20 69 73 20    Also, GLOB is 
4eb0: 63 61 73 65 0a 73 65 6e 73 69 74 69 76 65 2c 20  case.sensitive, 
4ec0: 75 6e 6c 69 6b 65 20 4c 49 4b 45 2e 20 20 42 6f  unlike LIKE.  Bo
4ed0: 74 68 20 47 4c 4f 42 20 61 6e 64 20 4c 49 4b 45  th GLOB and LIKE
4ee0: 20 6d 61 79 20 62 65 20 70 72 65 63 65 64 65 64   may be preceded
4ef0: 20 62 79 0a 74 68 65 20 4e 4f 54 20 6b 65 79 77   by.the NOT keyw
4f00: 6f 72 64 20 74 6f 20 69 6e 76 65 72 74 20 74 68  ord to invert th
4f10: 65 20 73 65 6e 73 65 20 6f 66 20 74 68 65 20 74  e sense of the t
4f20: 65 73 74 2e 20 20 54 68 65 20 69 6e 66 69 78 20  est.  The infix 
4f30: 47 4c 4f 42 20 0a 6f 70 65 72 61 74 6f 72 20 69  GLOB .operator i
4f40: 73 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79  s implemented by
4f50: 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 66 75 6e   calling the fun
4f60: 63 74 69 6f 6e 0a 3c 61 20 68 72 65 66 3d 22 6c  ction.<a href="l
4f70: 61 6e 67 5f 63 6f 72 65 66 75 6e 63 2e 68 74 6d  ang_corefunc.htm
4f80: 6c 23 67 6c 6f 62 22 3e 67 6c 6f 62 28 3c 69 3e  l#glob">glob(<i>
4f90: 59 3c 2f 69 3e 2c 3c 69 3e 58 3c 2f 69 3e 29 3c  Y</i>,<i>X</i>)<
4fa0: 2f 61 3e 20 61 6e 64 20 63 61 6e 20 62 65 20 6d  /a> and can be m
4fb0: 6f 64 69 66 69 65 64 20 62 79 20 6f 76 65 72 72  odified by overr
4fc0: 69 64 69 6e 67 0a 74 68 61 74 20 66 75 6e 63 74  iding.that funct
4fd0: 69 6f 6e 2e 3c 2f 70 3e 0a 0a 3c 61 20 6e 61 6d  ion.</p>..<a nam
4fe0: 65 3d 22 72 65 67 65 78 70 22 3e 3c 2f 61 3e 0a  e="regexp"></a>.
4ff0: 0a 3c 70 3e 54 68 65 20 52 45 47 45 58 50 20 6f  .<p>The REGEXP o
5000: 70 65 72 61 74 6f 72 20 69 73 20 61 20 73 70 65  perator is a spe
5010: 63 69 61 6c 20 73 79 6e 74 61 78 20 66 6f 72 20  cial syntax for 
5020: 74 68 65 20 72 65 67 65 78 70 28 29 0a 75 73 65  the regexp().use
5030: 72 20 66 75 6e 63 74 69 6f 6e 2e 20 20 4e 6f 20  r function.  No 
5040: 72 65 67 65 78 70 28 29 20 75 73 65 72 20 66 75  regexp() user fu
5050: 6e 63 74 69 6f 6e 20 69 73 20 64 65 66 69 6e 65  nction is define
5060: 64 20 62 79 20 64 65 66 61 75 6c 74 0a 61 6e 64  d by default.and
5070: 20 73 6f 20 75 73 65 20 6f 66 20 74 68 65 20 52   so use of the R
5080: 45 47 45 58 50 20 6f 70 65 72 61 74 6f 72 20 77  EGEXP operator w
5090: 69 6c 6c 20 6e 6f 72 6d 61 6c 6c 79 20 72 65 73  ill normally res
50a0: 75 6c 74 20 69 6e 20 61 6e 0a 65 72 72 6f 72 20  ult in an.error 
50b0: 6d 65 73 73 61 67 65 2e 20 20 49 66 20 61 6e 20  message.  If an 
50c0: 3c 61 20 68 72 65 66 3d 22 63 33 72 65 66 2f 63  <a href="c3ref/c
50d0: 72 65 61 74 65 5f 66 75 6e 63 74 69 6f 6e 2e 68  reate_function.h
50e0: 74 6d 6c 22 3e 61 70 70 6c 69 63 61 74 69 6f 6e  tml">application
50f0: 2d 64 65 66 69 6e 65 64 20 53 51 4c 20 66 75 6e  -defined SQL fun
5100: 63 74 69 6f 6e 3c 2f 61 3e 20 6e 61 6d 65 64 20  ction</a> named 
5110: 22 72 65 67 65 78 70 22 0a 69 73 20 61 64 64 65  "regexp".is adde
5120: 64 20 61 74 20 72 75 6e 2d 74 69 6d 65 2c 20 74  d at run-time, t
5130: 68 65 6e 20 74 68 65 20 22 3c 69 3e 58 3c 2f 69  hen the "<i>X</i
5140: 3e 20 52 45 47 45 58 50 20 3c 69 3e 59 3c 2f 69  > REGEXP <i>Y</i
5150: 3e 22 20 6f 70 65 72 61 74 6f 72 20 77 69 6c 6c  >" operator will
5160: 0a 62 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20  .be implemented 
5170: 61 73 20 61 20 63 61 6c 6c 20 74 6f 20 22 72 65  as a call to "re
5180: 67 65 78 70 28 3c 69 3e 59 3c 2f 69 3e 2c 3c 69  gexp(<i>Y</i>,<i
5190: 3e 58 3c 2f 69 3e 29 22 2e 3c 2f 70 3e 0a 0a 3c  >X</i>)".</p>..<
51a0: 61 20 6e 61 6d 65 3d 22 6d 61 74 63 68 22 3e 3c  a name="match"><
51b0: 2f 61 3e 0a 0a 3c 70 3e 54 68 65 20 4d 41 54 43  /a>..<p>The MATC
51c0: 48 20 6f 70 65 72 61 74 6f 72 20 69 73 20 61 20  H operator is a 
51d0: 73 70 65 63 69 61 6c 20 73 79 6e 74 61 78 20 66  special syntax f
51e0: 6f 72 20 74 68 65 20 6d 61 74 63 68 28 29 0a 61  or the match().a
51f0: 70 70 6c 69 63 61 74 69 6f 6e 2d 64 65 66 69 6e  pplication-defin
5200: 65 64 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68  ed function.  Th
5210: 65 20 64 65 66 61 75 6c 74 20 6d 61 74 63 68 28  e default match(
5220: 29 20 66 75 6e 63 74 69 6f 6e 20 69 6d 70 6c 65  ) function imple
5230: 6d 65 6e 74 61 74 69 6f 6e 0a 72 61 69 73 65 73  mentation.raises
5240: 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 61 6e   an exception an
5250: 64 20 69 73 20 6e 6f 74 20 72 65 61 6c 6c 79 20  d is not really 
5260: 75 73 65 66 75 6c 20 66 6f 72 20 61 6e 79 74 68  useful for anyth
5270: 69 6e 67 2e 0a 42 75 74 20 65 78 74 65 6e 73 69  ing..But extensi
5280: 6f 6e 73 20 63 61 6e 20 6f 76 65 72 72 69 64 65  ons can override
5290: 20 74 68 65 20 6d 61 74 63 68 28 29 20 66 75 6e   the match() fun
52a0: 63 74 69 6f 6e 20 77 69 74 68 20 6d 6f 72 65 0a  ction with more.
52b0: 68 65 6c 70 66 75 6c 20 6c 6f 67 69 63 2e 3c 2f  helpful logic.</
52c0: 70 3e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 62 65 74  p>..<a name="bet
52d0: 77 65 65 6e 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e  ween"></a>..<h3>
52e0: 54 68 65 20 42 45 54 57 45 45 4e 20 6f 70 65 72  The BETWEEN oper
52f0: 61 74 6f 72 3c 2f 68 33 3e 0a 3c 70 3e 54 68 65  ator</h3>.<p>The
5300: 20 42 45 54 57 45 45 4e 20 6f 70 65 72 61 74 6f   BETWEEN operato
5310: 72 20 69 73 20 6c 6f 67 69 63 61 6c 6c 79 20 65  r is logically e
5320: 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 61 20 70  quivalent to a p
5330: 61 69 72 20 6f 66 20 63 6f 6d 70 61 72 69 73 6f  air of compariso
5340: 6e 73 2e 0a 22 3c 69 3e 78 3c 2f 69 3e 20 3c 62  ns.."<i>x</i> <b
5350: 3e 42 45 54 57 45 45 4e 3c 2f 62 3e 20 3c 69 3e  >BETWEEN</b> <i>
5360: 79 3c 2f 69 3e 20 3c 62 3e 41 4e 44 3c 2f 62 3e  y</i> <b>AND</b>
5370: 20 3c 69 3e 7a 3c 2f 69 3e 22 20 69 73 20 0a 65   <i>z</i>" is .e
5380: 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 0a 22 3c  quivalent to ."<
5390: 69 3e 78 3c 2f 69 3e 3c 62 3e 26 67 74 3b 3d 3c  i>x</i><b>&gt;=<
53a0: 2f 62 3e 3c 69 3e 79 3c 2f 69 3e 20 3c 62 3e 41  /b><i>y</i> <b>A
53b0: 4e 44 3c 2f 62 3e 20 3c 69 3e 78 3c 2f 69 3e 3c  ND</b> <i>x</i><
53c0: 62 3e 26 6c 74 3b 3d 3c 2f 62 3e 3c 69 3e 7a 3c  b>&lt;=</b><i>z<
53d0: 2f 69 3e 22 20 65 78 63 65 70 74 0a 74 68 61 74  /i>" except.that
53e0: 20 77 69 74 68 20 42 45 54 57 45 45 4e 2c 20 74   with BETWEEN, t
53f0: 68 65 20 3c 69 3e 78 3c 2f 69 3e 20 65 78 70 72  he <i>x</i> expr
5400: 65 73 73 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 65  ession is only e
5410: 76 61 6c 75 61 74 65 64 20 6f 6e 63 65 2e 0a 54  valuated once..T
5420: 68 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f 66  he precedence of
5430: 20 74 68 65 20 42 45 54 57 45 45 4e 20 6f 70 65   the BETWEEN ope
5440: 72 61 74 6f 72 20 69 73 20 74 68 65 20 73 61 6d  rator is the sam
5450: 65 20 61 73 20 74 68 65 20 70 72 65 63 65 64 65  e as the precede
5460: 6e 63 65 0a 61 73 20 6f 70 65 72 61 74 6f 72 73  nce.as operators
5470: 20 3c 62 3e 3d 3d 3c 2f 62 3e 20 61 6e 64 20 3c   <b>==</b> and <
5480: 62 3e 21 3d 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  b>!=</b> and <b>
5490: 4c 49 4b 45 3c 2f 62 3e 20 61 6e 64 20 67 72 6f  LIKE</b> and gro
54a0: 75 70 73 20 6c 65 66 74 20 74 6f 20 72 69 67 68  ups left to righ
54b0: 74 2e 0a 0a 3c 61 20 6e 61 6d 65 3d 22 63 61 73  t...<a name="cas
54c0: 65 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 54 68 65  e"></a>..<h3>The
54d0: 20 43 41 53 45 20 65 78 70 72 65 73 73 69 6f 6e   CASE expression
54e0: 3c 2f 68 33 3e 0a 3c 70 3e 41 20 43 41 53 45 20  </h3>.<p>A CASE 
54f0: 65 78 70 72 65 73 73 69 6f 6e 20 73 65 72 76 65  expression serve
5500: 73 20 61 20 72 6f 6c 65 20 73 69 6d 69 6c 61 72  s a role similar
5510: 20 74 6f 20 49 46 2d 54 48 45 4e 2d 45 4c 53 45   to IF-THEN-ELSE
5520: 20 69 6e 20 6f 74 68 65 72 0a 70 72 6f 67 72 61   in other.progra
5530: 6d 6d 69 6e 67 20 6c 61 6e 67 75 61 67 65 73 2e  mming languages.
5540: 20 20 0a 0a 3c 70 3e 54 68 65 20 6f 70 74 69 6f    ..<p>The optio
5550: 6e 61 6c 20 65 78 70 72 65 73 73 69 6f 6e 20 74  nal expression t
5560: 68 61 74 20 6f 63 63 75 72 73 20 69 6e 20 62 65  hat occurs in be
5570: 74 77 65 65 6e 20 74 68 65 20 43 41 53 45 20 6b  tween the CASE k
5580: 65 79 77 6f 72 64 20 61 6e 64 20 74 68 65 0a 66  eyword and the.f
5590: 69 72 73 74 20 57 48 45 4e 20 6b 65 79 77 6f 72  irst WHEN keywor
55a0: 64 20 69 73 20 63 61 6c 6c 65 64 20 74 68 65 20  d is called the 
55b0: 22 62 61 73 65 22 20 65 78 70 72 65 73 73 69 6f  "base" expressio
55c0: 6e 2e 20 54 68 65 72 65 20 61 72 65 20 74 77 6f  n. There are two
55d0: 20 62 61 73 69 63 20 66 6f 72 6d 73 0a 6f 66 20   basic forms.of 
55e0: 74 68 65 20 43 41 53 45 20 65 78 70 72 65 73 73  the CASE express
55f0: 69 6f 6e 3a 20 74 68 6f 73 65 20 77 69 74 68 20  ion: those with 
5600: 61 20 62 61 73 65 20 65 78 70 72 65 73 73 69 6f  a base expressio
5610: 6e 20 61 6e 64 20 74 68 6f 73 65 20 77 69 74 68  n and those with
5620: 6f 75 74 2e 0a 0a 3c 70 3e 49 6e 20 61 20 43 41  out...<p>In a CA
5630: 53 45 20 77 69 74 68 6f 75 74 20 61 20 62 61 73  SE without a bas
5640: 65 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 65 61  e expression, ea
5650: 63 68 20 57 48 45 4e 20 65 78 70 72 65 73 73 69  ch WHEN expressi
5660: 6f 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 0a  on is evaluated.
5670: 61 6e 64 20 74 68 65 20 72 65 73 75 6c 74 20 74  and the result t
5680: 72 65 61 74 65 64 20 61 73 20 61 20 62 6f 6f 6c  reated as a bool
5690: 65 61 6e 2c 20 73 74 61 72 74 69 6e 67 20 77 69  ean, starting wi
56a0: 74 68 20 74 68 65 20 6c 65 66 74 6d 6f 73 74 20  th the leftmost 
56b0: 61 6e 64 20 63 6f 6e 74 69 6e 75 69 6e 67 0a 74  and continuing.t
56c0: 6f 20 74 68 65 20 72 69 67 68 74 2e 20 54 68 65  o the right. The
56d0: 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 43   result of the C
56e0: 41 53 45 20 65 78 70 72 65 73 73 69 6f 6e 20 69  ASE expression i
56f0: 73 20 74 68 65 20 65 76 61 6c 75 61 74 69 6f 6e  s the evaluation
5700: 20 6f 66 20 74 68 65 20 54 48 45 4e 0a 65 78 70   of the THEN.exp
5710: 72 65 73 73 69 6f 6e 20 74 68 61 74 20 63 6f 72  ression that cor
5720: 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20  responds to the 
5730: 66 69 72 73 74 20 57 48 45 4e 20 65 78 70 72 65  first WHEN expre
5740: 73 73 69 6f 6e 20 74 68 61 74 20 65 76 61 6c 75  ssion that evalu
5750: 61 74 65 73 20 74 6f 0a 74 72 75 65 2e 20 4f 72  ates to.true. Or
5760: 2c 20 69 66 20 6e 6f 6e 65 20 6f 66 20 74 68 65  , if none of the
5770: 20 57 48 45 4e 20 65 78 70 72 65 73 73 69 6f 6e   WHEN expression
5780: 73 20 65 76 61 6c 75 61 74 65 20 74 6f 20 74 72  s evaluate to tr
5790: 75 65 2c 20 74 68 65 20 72 65 73 75 6c 74 20 6f  ue, the result o
57a0: 66 0a 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65  f.evaluating the
57b0: 20 45 4c 53 45 20 65 78 70 72 65 73 73 69 6f 6e   ELSE expression
57c0: 2c 20 69 66 20 61 6e 79 2e 20 49 66 20 74 68 65  , if any. If the
57d0: 72 65 20 69 73 20 6e 6f 20 45 4c 53 45 20 65 78  re is no ELSE ex
57e0: 70 72 65 73 73 69 6f 6e 20 61 6e 64 0a 6e 6f 6e  pression and.non
57f0: 65 20 6f 66 20 74 68 65 20 57 48 45 4e 20 65 78  e of the WHEN ex
5800: 70 72 65 73 73 69 6f 6e 73 20 61 72 65 20 74 72  pressions are tr
5810: 75 65 2c 20 74 68 65 6e 20 74 68 65 20 6f 76 65  ue, then the ove
5820: 72 61 6c 6c 20 72 65 73 75 6c 74 20 69 73 20 4e  rall result is N
5830: 55 4c 4c 2e 0a 0a 3c 70 3e 41 20 4e 55 4c 4c 20  ULL...<p>A NULL 
5840: 72 65 73 75 6c 74 20 69 73 20 63 6f 6e 73 69 64  result is consid
5850: 65 72 65 64 20 75 6e 74 72 75 65 20 77 68 65 6e  ered untrue when
5860: 20 65 76 61 6c 75 61 74 69 6e 67 20 57 48 45 4e   evaluating WHEN
5870: 20 74 65 72 6d 73 2e 0a 0a 3c 70 3e 49 6e 20 61   terms...<p>In a
5880: 20 43 41 53 45 20 77 69 74 68 20 61 20 62 61 73   CASE with a bas
5890: 65 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 74 68  e expression, th
58a0: 65 20 62 61 73 65 20 65 78 70 72 65 73 73 69 6f  e base expressio
58b0: 6e 20 69 73 20 65 76 61 6c 75 61 74 65 64 20 6a  n is evaluated j
58c0: 75 73 74 0a 6f 6e 63 65 20 61 6e 64 20 74 68 65  ust.once and the
58d0: 20 72 65 73 75 6c 74 20 69 73 20 63 6f 6d 70 61   result is compa
58e0: 72 65 64 20 61 67 61 69 6e 73 74 20 74 68 65 20  red against the 
58f0: 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20 65 61  evaluation of ea
5900: 63 68 20 57 48 45 4e 20 0a 65 78 70 72 65 73 73  ch WHEN .express
5910: 69 6f 6e 20 66 72 6f 6d 20 6c 65 66 74 20 74 6f  ion from left to
5920: 20 72 69 67 68 74 2e 20 54 68 65 20 72 65 73 75   right. The resu
5930: 6c 74 20 6f 66 20 74 68 65 20 43 41 53 45 20 65  lt of the CASE e
5940: 78 70 72 65 73 73 69 6f 6e 20 69 73 20 74 68 65  xpression is the
5950: 20 0a 65 76 61 6c 75 61 74 69 6f 6e 20 6f 66 20   .evaluation of 
5960: 74 68 65 20 54 48 45 4e 20 65 78 70 72 65 73 73  the THEN express
5970: 69 6f 6e 20 74 68 61 74 20 63 6f 72 72 65 73 70  ion that corresp
5980: 6f 6e 64 73 20 74 6f 20 74 68 65 20 66 69 72 73  onds to the firs
5990: 74 20 57 48 45 4e 0a 65 78 70 72 65 73 73 69 6f  t WHEN.expressio
59a0: 6e 20 66 6f 72 20 77 68 69 63 68 20 74 68 65 20  n for which the 
59b0: 63 6f 6d 70 61 72 69 73 6f 6e 20 69 73 20 74 72  comparison is tr
59c0: 75 65 2e 20 4f 72 2c 20 69 66 20 6e 6f 6e 65 20  ue. Or, if none 
59d0: 6f 66 20 74 68 65 20 57 48 45 4e 0a 65 78 70 72  of the WHEN.expr
59e0: 65 73 73 69 6f 6e 73 20 65 76 61 6c 75 61 74 65  essions evaluate
59f0: 20 74 6f 20 61 20 76 61 6c 75 65 20 65 71 75 61   to a value equa
5a00: 6c 20 74 6f 20 74 68 65 20 62 61 73 65 20 65 78  l to the base ex
5a10: 70 72 65 73 73 69 6f 6e 2c 20 74 68 65 20 72 65  pression, the re
5a20: 73 75 6c 74 0a 6f 66 20 65 76 61 6c 75 61 74 69  sult.of evaluati
5a30: 6e 67 20 74 68 65 20 45 4c 53 45 20 65 78 70 72  ng the ELSE expr
5a40: 65 73 73 69 6f 6e 2c 20 69 66 20 61 6e 79 2e 20  ession, if any. 
5a50: 49 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 45  If there is no E
5a60: 4c 53 45 20 65 78 70 72 65 73 73 69 6f 6e 20 61  LSE expression a
5a70: 6e 64 0a 6e 6f 6e 65 20 6f 66 20 74 68 65 20 57  nd.none of the W
5a80: 48 45 4e 20 65 78 70 72 65 73 73 69 6f 6e 73 20  HEN expressions 
5a90: 70 72 6f 64 75 63 65 20 61 20 72 65 73 75 6c 74  produce a result
5aa0: 20 65 71 75 61 6c 20 74 6f 20 74 68 65 20 62 61   equal to the ba
5ab0: 73 65 20 65 78 70 72 65 73 73 69 6f 6e 2c 0a 74  se expression,.t
5ac0: 68 65 20 6f 76 65 72 61 6c 6c 20 72 65 73 75 6c  he overall resul
5ad0: 74 20 69 73 20 4e 55 4c 4c 2e 0a 0a 3c 70 3e 57  t is NULL...<p>W
5ae0: 68 65 6e 20 63 6f 6d 70 61 72 69 6e 67 20 61 20  hen comparing a 
5af0: 62 61 73 65 20 65 78 70 72 65 73 73 69 6f 6e 20  base expression 
5b00: 61 67 61 69 6e 73 74 20 61 20 57 48 45 4e 20 65  against a WHEN e
5b10: 78 70 72 65 73 73 69 6f 6e 2c 20 74 68 65 20 73  xpression, the s
5b20: 61 6d 65 0a 63 6f 6c 6c 61 74 69 6e 67 20 73 65  ame.collating se
5b30: 71 75 65 6e 63 65 2c 20 61 66 66 69 6e 69 74 79  quence, affinity
5b40: 2c 20 61 6e 64 20 4e 55 4c 4c 2d 68 61 6e 64 6c  , and NULL-handl
5b50: 69 6e 67 20 72 75 6c 65 73 20 61 70 70 6c 79 20  ing rules apply 
5b60: 61 73 20 69 66 20 74 68 65 0a 62 61 73 65 20 65  as if the.base e
5b70: 78 70 72 65 73 73 69 6f 6e 20 61 6e 64 20 57 48  xpression and WH
5b80: 45 4e 20 65 78 70 72 65 73 73 69 6f 6e 20 61 72  EN expression ar
5b90: 65 20 72 65 73 70 65 63 74 69 76 65 6c 79 20 74  e respectively t
5ba0: 68 65 20 6c 65 66 74 2d 20 61 6e 64 0a 72 69 67  he left- and.rig
5bb0: 68 74 2d 68 61 6e 64 20 6f 70 65 72 61 6e 64 73  ht-hand operands
5bc0: 20 6f 66 20 61 6e 20 3c 62 69 67 3e 3c 62 3e 3d   of an <big><b>=
5bd0: 3c 2f 62 3e 3c 2f 62 69 67 3e 20 6f 70 65 72 61  </b></big> opera
5be0: 74 6f 72 2e 3c 2f 70 3e 20 49 66 20 74 68 65 20  tor.</p> If the 
5bf0: 62 61 73 65 20 0a 65 78 70 72 65 73 73 69 6f 6e  base .expression
5c00: 20 69 73 20 4e 55 4c 4c 20 74 68 65 6e 20 74 68   is NULL then th
5c10: 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20  e result of the 
5c20: 43 41 53 45 20 69 73 20 61 6c 77 61 79 73 20 74  CASE is always t
5c30: 68 65 20 72 65 73 75 6c 74 20 0a 6f 66 20 65 76  he result .of ev
5c40: 61 6c 75 61 74 69 6e 67 20 74 68 65 20 45 4c 53  aluating the ELS
5c50: 45 20 65 78 70 72 65 73 73 69 6f 6e 20 69 66 20  E expression if 
5c60: 69 74 20 65 78 69 73 74 73 2c 20 6f 72 20 4e 55  it exists, or NU
5c70: 4c 4c 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f  LL if it does no
5c80: 74 2e 0a 0a 3c 70 3e 42 6f 74 68 20 66 6f 72 6d  t...<p>Both form
5c90: 73 20 6f 66 20 74 68 65 20 43 41 53 45 20 65 78  s of the CASE ex
5ca0: 70 72 65 73 73 69 6f 6e 20 75 73 65 20 6c 61 7a  pression use laz
5cb0: 79 2c 20 6f 72 20 73 68 6f 72 74 2d 63 69 72 63  y, or short-circ
5cc0: 75 69 74 2c 20 0a 65 76 61 6c 75 61 74 69 6f 6e  uit, .evaluation
5cd0: 2e 0a 0a 3c 70 3e 54 68 65 20 6f 6e 6c 79 20 64  ...<p>The only d
5ce0: 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65  ifference betwee
5cf0: 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  n the following 
5d00: 74 77 6f 20 43 41 53 45 20 65 78 70 72 65 73 73  two CASE express
5d10: 69 6f 6e 73 20 69 73 20 74 68 61 74 20 0a 74 68  ions is that .th
5d20: 65 20 3c 69 3e 78 3c 2f 69 3e 20 65 78 70 72 65  e <i>x</i> expre
5d30: 73 73 69 6f 6e 20 69 73 20 65 76 61 6c 75 61 74  ssion is evaluat
5d40: 65 64 20 65 78 61 63 74 6c 79 20 6f 6e 63 65 20  ed exactly once 
5d50: 69 6e 20 74 68 65 20 66 69 72 73 74 20 65 78 61  in the first exa
5d60: 6d 70 6c 65 20 62 75 74 20 0a 6d 69 67 68 74 20  mple but .might 
5d70: 62 65 20 65 76 61 6c 75 61 74 65 64 20 6d 75 6c  be evaluated mul
5d80: 74 69 70 6c 65 20 74 69 6d 65 73 20 69 6e 20 74  tiple times in t
5d90: 68 65 20 73 65 63 6f 6e 64 3a 0a 0a 3c 75 6c 3e  he second:..<ul>
5da0: 3c 70 72 65 3e 0a 3c 6c 69 3e 43 41 53 45 20 78  <pre>.<li>CASE x
5db0: 20 57 48 45 4e 20 77 31 20 54 48 45 4e 20 72 31   WHEN w1 THEN r1
5dc0: 20 57 48 45 4e 20 77 32 20 54 48 45 4e 20 72 32   WHEN w2 THEN r2
5dd0: 20 45 4c 53 45 20 72 33 20 45 4e 44 0a 3c 6c 69   ELSE r3 END.<li
5de0: 3e 43 41 53 45 20 57 48 45 4e 20 78 3d 77 31 20  >CASE WHEN x=w1 
5df0: 54 48 45 4e 20 72 31 20 57 48 45 4e 20 78 3d 77  THEN r1 WHEN x=w
5e00: 32 20 54 48 45 4e 20 72 32 20 45 4c 53 45 20 72  2 THEN r2 ELSE r
5e10: 33 20 45 4e 44 0a 3c 2f 70 72 65 3e 3c 2f 75 6c  3 END.</pre></ul
5e20: 3e 0a 0a 0a 3c 61 20 6e 61 6d 65 3d 22 69 6e 5f  >...<a name="in_
5e30: 6f 70 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 54 68  op"></a>..<h3>Th
5e40: 65 20 49 4e 20 61 6e 64 20 4e 4f 54 20 49 4e 20  e IN and NOT IN 
5e50: 6f 70 65 72 61 74 6f 72 73 3c 2f 68 33 3e 0a 3c  operators</h3>.<
5e60: 70 3e 54 68 65 20 49 4e 20 61 6e 64 20 4e 4f 54  p>The IN and NOT
5e70: 20 49 4e 20 6f 70 65 72 61 74 6f 72 73 20 74 61   IN operators ta
5e80: 6b 65 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e  ke an expression
5e90: 20 6f 6e 20 74 68 65 0a 6c 65 66 74 20 61 6e 64   on the.left and
5ea0: 20 61 20 6c 69 73 74 20 6f 66 20 76 61 6c 75 65   a list of value
5eb0: 73 20 6f 72 20 61 20 73 75 62 71 75 65 72 79 20  s or a subquery 
5ec0: 6f 6e 20 74 68 65 20 72 69 67 68 74 2e 0a 57 68  on the right..Wh
5ed0: 65 6e 20 74 68 65 20 72 69 67 68 74 20 6f 70 65  en the right ope
5ee0: 72 61 6e 64 20 6f 66 20 61 6e 20 49 4e 20 6f 72  rand of an IN or
5ef0: 20 4e 4f 54 20 49 4e 20 6f 70 65 72 61 74 6f 72   NOT IN operator
5f00: 20 69 73 20 61 20 73 75 62 71 75 65 72 79 2c 20   is a subquery, 
5f10: 74 68 65 0a 73 75 62 71 75 65 72 79 20 6d 75 73  the.subquery mus
5f20: 74 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20  t have the same 
5f30: 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e  number of column
5f40: 73 20 61 73 20 74 68 65 72 65 20 61 72 65 20 63  s as there are c
5f50: 6f 6c 75 6d 6e 73 20 69 6e 0a 74 68 65 20 3c 61  olumns in.the <a
5f60: 20 68 72 65 66 3d 22 72 6f 77 76 61 6c 75 65 2e   href="rowvalue.
5f70: 68 74 6d 6c 22 3e 72 6f 77 20 76 61 6c 75 65 3c  html">row value<
5f80: 2f 61 3e 20 6f 66 20 74 68 65 20 6c 65 66 74 20  /a> of the left 
5f90: 6f 70 65 72 61 6e 64 2e 20 20 54 68 65 20 73 75  operand.  The su
5fa0: 62 71 75 65 72 79 20 6f 6e 20 74 68 65 0a 72 69  bquery on the.ri
5fb0: 67 68 74 20 6f 66 20 61 6e 20 49 4e 20 6f 72 20  ght of an IN or 
5fc0: 4e 4f 54 20 49 4e 20 6f 70 65 72 61 74 6f 72 20  NOT IN operator 
5fd0: 6d 75 73 74 20 62 65 20 61 20 73 63 61 6c 61 72  must be a scalar
5fe0: 20 73 75 62 71 75 65 72 79 20 69 66 20 74 68 65   subquery if the
5ff0: 20 6c 65 66 74 0a 65 78 70 72 65 73 73 69 6f 6e   left.expression
6000: 20 69 73 20 6e 6f 74 20 61 20 3c 61 20 68 72 65   is not a <a hre
6010: 66 3d 22 72 6f 77 76 61 6c 75 65 2e 68 74 6d 6c  f="rowvalue.html
6020: 22 3e 72 6f 77 20 76 61 6c 75 65 3c 2f 61 3e 20  ">row value</a> 
6030: 65 78 70 72 65 73 73 69 6f 6e 2e 0a 49 66 20 74  expression..If t
6040: 68 65 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64  he right operand
6050: 20 6f 66 20 61 6e 20 49 4e 20 6f 72 20 4e 4f 54   of an IN or NOT
6060: 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 69 73 20   IN operator is 
6070: 61 20 6c 69 73 74 20 6f 66 20 76 61 6c 75 65 73  a list of values
6080: 2c 0a 65 61 63 68 20 6f 66 20 74 68 6f 73 65 20  ,.each of those 
6090: 76 61 6c 75 65 73 20 6d 75 73 74 20 62 65 20 73  values must be s
60a0: 63 61 6c 61 72 73 20 61 6e 64 20 74 68 65 20 6c  calars and the l
60b0: 65 66 74 20 65 78 70 72 65 73 73 69 6f 6e 20 6d  eft expression m
60c0: 75 73 74 20 61 6c 73 6f 0a 62 65 20 61 20 73 63  ust also.be a sc
60d0: 61 6c 61 72 2e 0a 54 68 65 20 72 69 67 68 74 2d  alar..The right-
60e0: 68 61 6e 64 20 73 69 64 65 20 6f 66 20 61 6e 20  hand side of an 
60f0: 49 4e 20 6f 72 20 4e 4f 54 20 49 4e 20 6f 70 65  IN or NOT IN ope
6100: 72 61 74 6f 72 20 63 61 6e 20 62 65 20 61 0a 74  rator can be a.t
6110: 61 62 6c 65 20 3c 69 3e 6e 61 6d 65 3c 2f 69 3e  able <i>name</i>
6120: 20 6f 72 20 3c 61 20 68 72 65 66 3d 22 76 74 61   or <a href="vta
6130: 62 2e 68 74 6d 6c 23 74 61 62 66 75 6e 63 32 22  b.html#tabfunc2"
6140: 3e 74 61 62 6c 65 2d 76 61 6c 75 65 64 20 66 75  >table-valued fu
6150: 6e 63 74 69 6f 6e 3c 2f 61 3e 20 3c 69 3e 6e 61  nction</a> <i>na
6160: 6d 65 3c 2f 69 3e 20 69 6e 20 77 68 69 63 68 20  me</i> in which 
6170: 0a 63 61 73 65 20 74 68 65 20 72 69 67 68 74 2d  .case the right-
6180: 68 61 6e 64 20 73 69 64 65 20 69 73 20 75 6e 64  hand side is und
6190: 65 72 73 74 6f 6f 64 20 74 6f 20 62 65 20 73 75  erstood to be su
61a0: 62 71 75 65 72 79 20 6f 66 0a 74 68 65 20 66 6f  bquery of.the fo
61b0: 72 6d 20 22 28 53 45 4c 45 43 54 20 2a 20 46 52  rm "(SELECT * FR
61c0: 4f 4d 20 3c 69 3e 6e 61 6d 65 3c 2f 69 3e 29 22  OM <i>name</i>)"
61d0: 2e 0a 57 68 65 6e 20 74 68 65 20 72 69 67 68 74  ..When the right
61e0: 20 6f 70 65 72 61 6e 64 20 69 73 20 61 6e 20 65   operand is an e
61f0: 6d 70 74 79 20 73 65 74 2c 20 74 68 65 20 72 65  mpty set, the re
6200: 73 75 6c 74 20 6f 66 20 49 4e 20 69 73 20 66 61  sult of IN is fa
6210: 6c 73 65 20 61 6e 64 20 74 68 65 0a 72 65 73 75  lse and the.resu
6220: 6c 74 20 6f 66 20 4e 4f 54 20 49 4e 20 69 73 20  lt of NOT IN is 
6230: 74 72 75 65 2c 20 72 65 67 61 72 64 6c 65 73 73  true, regardless
6240: 20 6f 66 20 74 68 65 20 6c 65 66 74 20 6f 70 65   of the left ope
6250: 72 61 6e 64 20 61 6e 64 20 65 76 65 6e 20 69 66  rand and even if
6260: 20 74 68 65 0a 6c 65 66 74 20 6f 70 65 72 61 6e   the.left operan
6270: 64 20 69 73 20 4e 55 4c 4c 2e 0a 3c 70 3e 54 68  d is NULL..<p>Th
6280: 65 20 72 65 73 75 6c 74 20 6f 66 20 61 6e 20 49  e result of an I
6290: 4e 20 6f 72 20 4e 4f 54 20 49 4e 20 6f 70 65 72  N or NOT IN oper
62a0: 61 74 6f 72 20 69 73 20 64 65 74 65 72 6d 69 6e  ator is determin
62b0: 65 64 20 62 79 20 74 68 65 20 66 6f 6c 6c 6f 77  ed by the follow
62c0: 69 6e 67 0a 6d 61 74 72 69 78 3a 0a 0a 3c 63 65  ing.matrix:..<ce
62d0: 6e 74 65 72 3e 0a 3c 74 61 62 6c 65 20 62 6f 72  nter>.<table bor
62e0: 64 65 72 3d 31 3e 0a 3c 74 72 3e 0a 3c 74 68 3e  der=1>.<tr>.<th>
62f0: 4c 65 66 74 20 6f 70 65 72 61 6e 64 20 3c 62 72  Left operand <br
6300: 3e 69 73 20 4e 55 4c 4c 0a 3c 74 68 3e 52 69 67  >is NULL.<th>Rig
6310: 68 74 20 6f 70 65 72 61 6e 64 20 3c 62 72 3e 63  ht operand <br>c
6320: 6f 6e 74 61 69 6e 73 20 4e 55 4c 4c 0a 3c 74 68  ontains NULL.<th
6330: 3e 52 69 67 68 74 20 6f 70 65 72 61 6e 64 20 3c  >Right operand <
6340: 62 72 3e 69 73 20 61 6e 20 65 6d 70 74 79 20 73  br>is an empty s
6350: 65 74 0a 3c 74 68 3e 4c 65 66 74 20 6f 70 65 72  et.<th>Left oper
6360: 61 6e 64 20 66 6f 75 6e 64 20 3c 62 72 3e 77 69  and found <br>wi
6370: 74 68 69 6e 20 72 69 67 68 74 20 6f 70 65 72 61  thin right opera
6380: 6e 64 0a 3c 74 68 3e 52 65 73 75 6c 74 20 6f 66  nd.<th>Result of
6390: 20 3c 62 72 3e 49 4e 20 6f 70 65 72 61 74 6f 72   <br>IN operator
63a0: 0a 3c 74 68 3e 52 65 73 75 6c 74 20 6f 66 20 3c  .<th>Result of <
63b0: 62 72 3e 4e 4f 54 20 49 4e 20 6f 70 65 72 61 74  br>NOT IN operat
63c0: 6f 72 0a 3c 74 72 3e 0a 3c 74 64 20 61 6c 69 67  or.<tr>.<td alig
63d0: 6e 3d 22 63 65 6e 74 65 72 22 3e 6e 6f 0a 3c 74  n="center">no.<t
63e0: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
63f0: 3e 6e 6f 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 63  >no.<td align="c
6400: 65 6e 74 65 72 22 3e 6e 6f 0a 3c 74 64 20 61 6c  enter">no.<td al
6410: 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 6e 6f 0a  ign="center">no.
6420: 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65  <td align="cente
6430: 72 22 3e 66 61 6c 73 65 0a 3c 74 64 20 61 6c 69  r">false.<td ali
6440: 67 6e 3d 22 63 65 6e 74 65 72 22 3e 74 72 75 65  gn="center">true
6450: 0a 3c 74 72 3e 0a 3c 74 64 20 61 6c 69 67 6e 3d  .<tr>.<td align=
6460: 22 63 65 6e 74 65 72 22 3e 64 6f 65 73 20 6e 6f  "center">does no
6470: 74 20 6d 61 74 74 65 72 0a 3c 74 64 20 61 6c 69  t matter.<td ali
6480: 67 6e 3d 22 63 65 6e 74 65 72 22 3e 6e 6f 0a 3c  gn="center">no.<
6490: 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72  td align="center
64a0: 22 3e 79 65 73 0a 3c 74 64 20 61 6c 69 67 6e 3d  ">yes.<td align=
64b0: 22 63 65 6e 74 65 72 22 3e 6e 6f 0a 3c 74 64 20  "center">no.<td 
64c0: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 66  align="center">f
64d0: 61 6c 73 65 0a 3c 74 64 20 61 6c 69 67 6e 3d 22  alse.<td align="
64e0: 63 65 6e 74 65 72 22 3e 74 72 75 65 0a 3c 74 72  center">true.<tr
64f0: 3e 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e  >.<td align="cen
6500: 74 65 72 22 3e 6e 6f 0a 3c 74 64 20 61 6c 69 67  ter">no.<td alig
6510: 6e 3d 22 63 65 6e 74 65 72 22 3e 64 6f 65 73 20  n="center">does 
6520: 6e 6f 74 20 6d 61 74 74 65 72 0a 3c 74 64 20 61  not matter.<td a
6530: 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 6e 6f  lign="center">no
6540: 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74  .<td align="cent
6550: 65 72 22 3e 79 65 73 0a 3c 74 64 20 61 6c 69 67  er">yes.<td alig
6560: 6e 3d 22 63 65 6e 74 65 72 22 3e 74 72 75 65 0a  n="center">true.
6570: 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65  <td align="cente
6580: 72 22 3e 66 61 6c 73 65 0a 3c 74 72 3e 0a 3c 74  r">false.<tr>.<t
6590: 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22  d align="center"
65a0: 3e 6e 6f 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 63  >no.<td align="c
65b0: 65 6e 74 65 72 22 3e 79 65 73 0a 3c 74 64 20 61  enter">yes.<td a
65c0: 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 6e 6f  lign="center">no
65d0: 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74  .<td align="cent
65e0: 65 72 22 3e 6e 6f 0a 3c 74 64 20 61 6c 69 67 6e  er">no.<td align
65f0: 3d 22 63 65 6e 74 65 72 22 3e 4e 55 4c 4c 0a 3c  ="center">NULL.<
6600: 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72  td align="center
6610: 22 3e 4e 55 4c 4c 0a 3c 74 72 3e 0a 3c 74 64 20  ">NULL.<tr>.<td 
6620: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 79  align="center">y
6630: 65 73 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 63 65  es.<td align="ce
6640: 6e 74 65 72 22 3e 64 6f 65 73 20 6e 6f 74 20 6d  nter">does not m
6650: 61 74 74 65 72 0a 3c 74 64 20 61 6c 69 67 6e 3d  atter.<td align=
6660: 22 63 65 6e 74 65 72 22 3e 6e 6f 0a 3c 74 64 20  "center">no.<td 
6670: 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 64  align="center">d
6680: 6f 65 73 20 6e 6f 74 20 6d 61 74 74 65 72 0a 3c  oes not matter.<
6690: 74 64 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72  td align="center
66a0: 22 3e 4e 55 4c 4c 0a 3c 74 64 20 61 6c 69 67 6e  ">NULL.<td align
66b0: 3d 22 63 65 6e 74 65 72 22 3e 4e 55 4c 4c 0a 3c  ="center">NULL.<
66c0: 2f 74 61 62 6c 65 3e 0a 3c 2f 63 65 6e 74 65 72  /table>.</center
66d0: 3e 0a 0a 3c 70 3e 4e 6f 74 65 20 74 68 61 74 20  >..<p>Note that 
66e0: 53 51 4c 69 74 65 20 61 6c 6c 6f 77 73 20 74 68  SQLite allows th
66f0: 65 20 70 61 72 65 6e 74 68 65 73 69 7a 65 64 20  e parenthesized 
6700: 6c 69 73 74 20 6f 66 20 73 63 61 6c 61 72 20 76  list of scalar v
6710: 61 6c 75 65 73 20 6f 6e 0a 74 68 65 20 72 69 67  alues on.the rig
6720: 68 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20  ht-hand side of 
6730: 61 6e 20 49 4e 20 6f 72 20 4e 4f 54 20 49 4e 20  an IN or NOT IN 
6740: 6f 70 65 72 61 74 6f 72 20 74 6f 20 62 65 20 61  operator to be a
6750: 6e 20 65 6d 70 74 79 20 6c 69 73 74 20 62 75 74  n empty list but
6760: 0a 6d 6f 73 74 20 6f 74 68 65 72 20 53 51 4c 20  .most other SQL 
6770: 64 61 74 61 62 61 73 65 20 64 61 74 61 62 61 73  database databas
6780: 65 20 65 6e 67 69 6e 65 73 20 61 6e 64 20 74 68  e engines and th
6790: 65 20 53 51 4c 39 32 20 73 74 61 6e 64 61 72 64  e SQL92 standard
67a0: 20 72 65 71 75 69 72 65 0a 74 68 65 20 6c 69 73   require.the lis
67b0: 74 20 74 6f 20 63 6f 6e 74 61 69 6e 20 61 74 20  t to contain at 
67c0: 6c 65 61 73 74 20 6f 6e 65 20 65 6c 65 6d 65 6e  least one elemen
67d0: 74 2e 3c 2f 70 3e 0a 0a 3c 68 33 3e 54 61 62 6c  t.</p>..<h3>Tabl
67e0: 65 20 43 6f 6c 75 6d 6e 20 4e 61 6d 65 73 3c 2f  e Column Names</
67f0: 68 33 3e 0a 0a 3c 70 3e 41 20 63 6f 6c 75 6d 6e  h3>..<p>A column
6800: 20 6e 61 6d 65 20 63 61 6e 20 62 65 20 61 6e 79   name can be any
6810: 20 6f 66 20 74 68 65 20 6e 61 6d 65 73 20 64 65   of the names de
6820: 66 69 6e 65 64 20 69 6e 20 74 68 65 20 3c 61 20  fined in the <a 
6830: 68 72 65 66 3d 22 6c 61 6e 67 5f 63 72 65 61 74  href="lang_creat
6840: 65 74 61 62 6c 65 2e 68 74 6d 6c 22 3e 43 52 45  etable.html">CRE
6850: 41 54 45 20 54 41 42 4c 45 3c 2f 61 3e 0a 73 74  ATE TABLE</a>.st
6860: 61 74 65 6d 65 6e 74 20 6f 72 20 6f 6e 65 20 6f  atement or one o
6870: 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  f the following 
6880: 73 70 65 63 69 61 6c 20 69 64 65 6e 74 69 66 69  special identifi
6890: 65 72 73 3a 20 22 3c 62 3e 52 4f 57 49 44 3c 2f  ers: "<b>ROWID</
68a0: 62 3e 22 2c 0a 22 3c 62 3e 4f 49 44 3c 2f 62 3e  b>",."<b>OID</b>
68b0: 22 2c 20 6f 72 20 22 3c 62 3e 5f 52 4f 57 49 44  ", or "<b>_ROWID
68c0: 5f 3c 2f 62 3e 22 2e 0a 54 68 65 20 74 68 72 65  _</b>"..The thre
68d0: 65 20 73 70 65 63 69 61 6c 20 69 64 65 6e 74 69  e special identi
68e0: 66 69 65 72 73 20 64 65 73 63 72 69 62 65 20 74  fiers describe t
68f0: 68 65 0a 75 6e 69 71 75 65 20 69 6e 74 65 67 65  he.unique intege
6900: 72 20 6b 65 79 20 28 74 68 65 20 3c 61 20 68 72  r key (the <a hr
6910: 65 66 3d 22 6c 61 6e 67 5f 63 72 65 61 74 65 74  ef="lang_createt
6920: 61 62 6c 65 2e 68 74 6d 6c 23 72 6f 77 69 64 22  able.html#rowid"
6930: 3e 72 6f 77 69 64 3c 2f 61 3e 29 20 61 73 73 6f  >rowid</a>) asso
6940: 63 69 61 74 65 64 20 77 69 74 68 20 65 76 65 72  ciated with ever
6950: 79 20 0a 72 6f 77 20 6f 66 20 65 76 65 72 79 20  y .row of every 
6960: 74 61 62 6c 65 20 61 6e 64 20 73 6f 20 61 72 65  table and so are
6970: 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 6f   not available o
6980: 6e 20 3c 61 20 68 72 65 66 3d 22 77 69 74 68 6f  n <a href="witho
6990: 75 74 72 6f 77 69 64 2e 68 74 6d 6c 22 3e 57 49  utrowid.html">WI
69a0: 54 48 4f 55 54 20 52 4f 57 49 44 3c 2f 61 3e 20  THOUT ROWID</a> 
69b0: 74 61 62 6c 65 73 2e 0a 54 68 65 20 73 70 65 63  tables..The spec
69c0: 69 61 6c 20 69 64 65 6e 74 69 66 69 65 72 73 20  ial identifiers 
69d0: 6f 6e 6c 79 20 72 65 66 65 72 20 74 6f 20 74 68  only refer to th
69e0: 65 20 72 6f 77 20 6b 65 79 20 69 66 20 74 68 65  e row key if the
69f0: 20 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 63   <a href="lang_c
6a00: 72 65 61 74 65 74 61 62 6c 65 2e 68 74 6d 6c 22  reatetable.html"
6a10: 3e 43 52 45 41 54 45 20 54 41 42 4c 45 3c 2f 61  >CREATE TABLE</a
6a20: 3e 0a 73 74 61 74 65 6d 65 6e 74 20 64 6f 65 73  >.statement does
6a30: 20 6e 6f 74 20 64 65 66 69 6e 65 20 61 20 72 65   not define a re
6a40: 61 6c 20 63 6f 6c 75 6d 6e 20 77 69 74 68 20 74  al column with t
6a50: 68 65 20 73 61 6d 65 20 6e 61 6d 65 2e 0a 54 68  he same name..Th
6a60: 65 20 72 6f 77 69 64 20 63 61 6e 20 62 65 20 75  e rowid can be u
6a70: 73 65 64 20 61 6e 79 77 68 65 72 65 20 61 20 72  sed anywhere a r
6a80: 65 67 75 6c 61 72 0a 63 6f 6c 75 6d 6e 20 63 61  egular.column ca
6a90: 6e 20 62 65 20 75 73 65 64 2e 3c 2f 70 3e 0a 0a  n be used.</p>..
6aa0: 3c 61 20 6e 61 6d 65 3d 22 65 78 69 73 74 73 5f  <a name="exists_
6ab0: 6f 70 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 54 68  op"></a>..<h3>Th
6ac0: 65 20 45 58 49 53 54 53 20 6f 70 65 72 61 74 6f  e EXISTS operato
6ad0: 72 3c 2f 68 33 3e 0a 0a 3c 70 3e 54 68 65 20 45  r</h3>..<p>The E
6ae0: 58 49 53 54 53 20 6f 70 65 72 61 74 6f 72 20 61  XISTS operator a
6af0: 6c 77 61 79 73 20 65 76 61 6c 75 61 74 65 73 20  lways evaluates 
6b00: 74 6f 20 6f 6e 65 20 6f 66 20 74 68 65 20 69 6e  to one of the in
6b10: 74 65 67 65 72 20 76 61 6c 75 65 73 20 30 20 0a  teger values 0 .
6b20: 61 6e 64 20 31 2e 20 49 66 20 65 78 65 63 75 74  and 1. If execut
6b30: 69 6e 67 20 74 68 65 20 53 45 4c 45 43 54 20 73  ing the SELECT s
6b40: 74 61 74 65 6d 65 6e 74 20 73 70 65 63 69 66 69  tatement specifi
6b50: 65 64 20 61 73 20 74 68 65 20 72 69 67 68 74 2d  ed as the right-
6b60: 68 61 6e 64 20 0a 6f 70 65 72 61 6e 64 20 6f 66  hand .operand of
6b70: 20 74 68 65 20 45 58 49 53 54 53 20 6f 70 65 72   the EXISTS oper
6b80: 61 74 6f 72 20 77 6f 75 6c 64 20 72 65 74 75 72  ator would retur
6b90: 6e 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 72 6f  n one or more ro
6ba0: 77 73 2c 20 74 68 65 6e 20 74 68 65 0a 45 58 49  ws, then the.EXI
6bb0: 53 54 53 20 6f 70 65 72 61 74 6f 72 20 65 76 61  STS operator eva
6bc0: 6c 75 61 74 65 73 20 74 6f 20 31 2e 20 49 66 20  luates to 1. If 
6bd0: 65 78 65 63 75 74 69 6e 67 20 74 68 65 20 53 45  executing the SE
6be0: 4c 45 43 54 20 77 6f 75 6c 64 20 72 65 74 75 72  LECT would retur
6bf0: 6e 0a 6e 6f 20 72 6f 77 73 20 61 74 20 61 6c 6c  n.no rows at all
6c00: 2c 20 74 68 65 6e 20 74 68 65 20 45 58 49 53 54  , then the EXIST
6c10: 53 20 6f 70 65 72 61 74 6f 72 20 65 76 61 6c 75  S operator evalu
6c20: 61 74 65 73 20 74 6f 20 30 2e 20 0a 0a 3c 70 3e  ates to 0. ..<p>
6c30: 54 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f  The number of co
6c40: 6c 75 6d 6e 73 20 69 6e 20 65 61 63 68 20 72 6f  lumns in each ro
6c50: 77 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68  w returned by th
6c60: 65 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  e SELECT stateme
6c70: 6e 74 0a 28 69 66 20 61 6e 79 29 20 61 6e 64 20  nt.(if any) and 
6c80: 74 68 65 20 73 70 65 63 69 66 69 63 20 76 61 6c  the specific val
6c90: 75 65 73 20 72 65 74 75 72 6e 65 64 20 68 61 76  ues returned hav
6ca0: 65 20 6e 6f 20 65 66 66 65 63 74 20 6f 6e 20 74  e no effect on t
6cb0: 68 65 20 72 65 73 75 6c 74 73 0a 6f 66 20 74 68  he results.of th
6cc0: 65 20 45 58 49 53 54 53 20 6f 70 65 72 61 74 6f  e EXISTS operato
6cd0: 72 2e 20 49 6e 20 70 61 72 74 69 63 75 6c 61 72  r. In particular
6ce0: 2c 20 72 6f 77 73 20 63 6f 6e 74 61 69 6e 69 6e  , rows containin
6cf0: 67 20 4e 55 4c 4c 20 76 61 6c 75 65 73 20 61 72  g NULL values ar
6d00: 65 0a 6e 6f 74 20 68 61 6e 64 6c 65 64 20 61 6e  e.not handled an
6d10: 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72  y differently fr
6d20: 6f 6d 20 72 6f 77 73 20 77 69 74 68 6f 75 74 20  om rows without 
6d30: 4e 55 4c 4c 20 76 61 6c 75 65 73 2e 0a 0a 3c 61  NULL values...<a
6d40: 20 6e 61 6d 65 3d 22 73 75 62 71 22 3e 3c 2f 61   name="subq"></a
6d50: 3e 0a 0a 3c 68 33 3e 53 75 62 71 75 65 72 79 20  >..<h3>Subquery 
6d60: 45 78 70 72 65 73 73 69 6f 6e 73 3c 2f 68 33 3e  Expressions</h3>
6d70: 0a 0a 3c 70 3e 41 20 3c 61 20 68 72 65 66 3d 22  ..<p>A <a href="
6d80: 6c 61 6e 67 5f 73 65 6c 65 63 74 2e 68 74 6d 6c  lang_select.html
6d90: 22 3e 53 45 4c 45 43 54 3c 2f 61 3e 20 73 74 61  ">SELECT</a> sta
6da0: 74 65 6d 65 6e 74 20 65 6e 63 6c 6f 73 65 64 20  tement enclosed 
6db0: 69 6e 20 70 61 72 65 6e 74 68 65 73 65 73 20 69  in parentheses i
6dc0: 73 20 61 20 73 75 62 71 75 65 72 79 2e 0a 41 6c  s a subquery..Al
6dd0: 6c 20 74 79 70 65 73 20 6f 66 20 53 45 4c 45 43  l types of SELEC
6de0: 54 20 73 74 61 74 65 6d 65 6e 74 2c 20 69 6e 63  T statement, inc
6df0: 6c 75 64 69 6e 67 0a 61 67 67 72 65 67 61 74 65  luding.aggregate
6e00: 20 61 6e 64 20 63 6f 6d 70 6f 75 6e 64 20 53 45   and compound SE
6e10: 4c 45 43 54 20 71 75 65 72 69 65 73 20 28 71 75  LECT queries (qu
6e20: 65 72 69 65 73 20 77 69 74 68 20 6b 65 79 77 6f  eries with keywo
6e30: 72 64 73 20 6c 69 6b 65 0a 55 4e 49 4f 4e 20 6f  rds like.UNION o
6e40: 72 20 45 58 43 45 50 54 29 20 61 72 65 20 61 6c  r EXCEPT) are al
6e50: 6c 6f 77 65 64 20 61 73 20 73 63 61 6c 61 72 20  lowed as scalar 
6e60: 73 75 62 71 75 65 72 69 65 73 2e 0a 54 68 65 20  subqueries..The 
6e70: 76 61 6c 75 65 20 6f 66 20 61 20 73 75 62 71 75  value of a subqu
6e80: 65 72 79 20 65 78 70 72 65 73 73 69 6f 6e 20 69  ery expression i
6e90: 73 20 74 68 65 20 66 69 72 73 74 20 72 6f 77 20  s the first row 
6ea0: 6f 66 20 74 68 65 20 72 65 73 75 6c 74 0a 66 72  of the result.fr
6eb0: 6f 6d 20 74 68 65 20 65 6e 63 6c 6f 73 65 64 20  om the enclosed 
6ec0: 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 73 65  <a href="lang_se
6ed0: 6c 65 63 74 2e 68 74 6d 6c 22 3e 53 45 4c 45 43  lect.html">SELEC
6ee0: 54 3c 2f 61 3e 20 73 74 61 74 65 6d 65 6e 74 2e  T</a> statement.
6ef0: 0a 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c  .In other words,
6f00: 20 61 6e 20 69 6d 70 6c 69 65 64 20 22 4c 49 4d   an implied "LIM
6f10: 49 54 20 31 22 20 69 73 20 61 64 64 65 64 20 74  IT 1" is added t
6f20: 6f 20 74 68 65 20 73 75 62 71 75 65 72 79 2c 20  o the subquery, 
6f30: 6f 76 65 72 72 69 64 69 6e 67 0a 61 6e 20 65 78  overriding.an ex
6f40: 70 6c 69 63 69 74 6c 79 20 63 6f 64 65 64 20 4c  plicitly coded L
6f50: 49 4d 49 54 2e 0a 54 68 65 20 76 61 6c 75 65 20  IMIT..The value 
6f60: 6f 66 20 61 20 73 75 62 71 75 65 72 79 20 65 78  of a subquery ex
6f70: 70 72 65 73 73 69 6f 6e 20 69 73 20 4e 55 4c 4c  pression is NULL
6f80: 20 69 66 20 74 68 65 20 65 6e 63 6c 6f 73 65 64   if the enclosed
6f90: 0a 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f 73  .<a href="lang_s
6fa0: 65 6c 65 63 74 2e 68 74 6d 6c 22 3e 53 45 4c 45  elect.html">SELE
6fb0: 43 54 3c 2f 61 3e 20 73 74 61 74 65 6d 65 6e 74  CT</a> statement
6fc0: 20 72 65 74 75 72 6e 73 20 6e 6f 20 72 6f 77 73   returns no rows
6fd0: 2e 0a 0a 3c 70 3e 41 20 73 75 62 71 75 65 72 79  ...<p>A subquery
6fe0: 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20   that returns a 
6ff0: 73 69 6e 67 6c 65 20 63 6f 6c 75 6d 6e 20 69 73  single column is
7000: 20 61 20 73 63 61 6c 61 72 20 73 75 62 71 75 65   a scalar subque
7010: 72 79 20 61 6e 64 20 63 61 6e 0a 62 65 20 75 73  ry and can.be us
7020: 65 64 20 6d 6f 73 74 20 61 6e 79 77 68 65 72 65  ed most anywhere
7030: 2e 0a 41 20 73 75 62 71 75 65 72 79 20 74 68 61  ..A subquery tha
7040: 74 20 72 65 74 75 72 6e 73 20 74 77 6f 20 6f 72  t returns two or
7050: 20 6d 6f 72 65 20 63 6f 6c 75 6d 6e 73 20 69 73   more columns is
7060: 20 61 20 3c 61 20 68 72 65 66 3d 22 72 6f 77 76   a <a href="rowv
7070: 61 6c 75 65 2e 68 74 6d 6c 22 3e 72 6f 77 20 76  alue.html">row v
7080: 61 6c 75 65 3c 2f 61 3e 0a 73 75 62 71 75 65 72  alue</a>.subquer
7090: 79 20 61 6e 64 20 63 61 6e 20 6f 6e 6c 79 20 62  y and can only b
70a0: 65 20 75 73 65 64 20 61 73 20 74 68 65 20 6f 70  e used as the op
70b0: 65 72 61 6e 64 20 6f 66 20 61 20 63 6f 6d 70 61  erand of a compa
70c0: 72 69 73 6f 6e 20 6f 70 65 72 61 74 6f 72 2e 0a  rison operator..
70d0: 0a 3c 61 20 6e 61 6d 65 3d 22 63 6f 73 75 62 22  .<a name="cosub"
70e0: 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 43 6f 72 72 65  ></a>..<h3>Corre
70f0: 6c 61 74 65 64 20 53 75 62 71 75 65 72 69 65 73  lated Subqueries
7100: 3c 2f 68 33 3e 0a 0a 3c 70 3e 41 20 3c 61 20 68  </h3>..<p>A <a h
7110: 72 65 66 3d 22 6c 61 6e 67 5f 73 65 6c 65 63 74  ref="lang_select
7120: 2e 68 74 6d 6c 22 3e 53 45 4c 45 43 54 3c 2f 61  .html">SELECT</a
7130: 3e 20 73 74 61 74 65 6d 65 6e 74 20 75 73 65 64  > statement used
7140: 20 61 73 20 65 69 74 68 65 72 20 61 20 73 63 61   as either a sca
7150: 6c 61 72 20 73 75 62 71 75 65 72 79 20 6f 72 20  lar subquery or 
7160: 61 73 20 74 68 65 20 0a 72 69 67 68 74 2d 68 61  as the .right-ha
7170: 6e 64 20 6f 70 65 72 61 6e 64 20 6f 66 20 61 6e  nd operand of an
7180: 20 49 4e 2c 20 4e 4f 54 20 49 4e 20 6f 72 20 45   IN, NOT IN or E
7190: 58 49 53 54 53 20 65 78 70 72 65 73 73 69 6f 6e  XISTS expression
71a0: 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 0a 72 65   may contain .re
71b0: 66 65 72 65 6e 63 65 73 20 74 6f 20 63 6f 6c 75  ferences to colu
71c0: 6d 6e 73 20 69 6e 20 74 68 65 20 6f 75 74 65 72  mns in the outer
71d0: 20 71 75 65 72 79 2e 20 53 75 63 68 20 61 20 73   query. Such a s
71e0: 75 62 71 75 65 72 79 20 69 73 20 6b 6e 6f 77 6e  ubquery is known
71f0: 20 61 73 0a 61 20 63 6f 72 72 65 6c 61 74 65 64   as.a correlated
7200: 20 73 75 62 71 75 65 72 79 2e 20 41 20 63 6f 72   subquery. A cor
7210: 72 65 6c 61 74 65 64 20 73 75 62 71 75 65 72 79  related subquery
7220: 20 69 73 20 72 65 65 76 61 6c 75 61 74 65 64 20   is reevaluated 
7230: 65 61 63 68 20 74 69 6d 65 0a 69 74 73 20 72 65  each time.its re
7240: 73 75 6c 74 20 69 73 20 72 65 71 75 69 72 65 64  sult is required
7250: 2e 20 41 6e 20 75 6e 63 6f 72 72 65 6c 61 74 65  . An uncorrelate
7260: 64 20 73 75 62 71 75 65 72 79 20 69 73 20 65 76  d subquery is ev
7270: 61 6c 75 61 74 65 64 20 6f 6e 6c 79 20 6f 6e 63  aluated only onc
7280: 65 0a 61 6e 64 20 74 68 65 20 72 65 73 75 6c 74  e.and the result
7290: 20 72 65 75 73 65 64 20 61 73 20 6e 65 63 65 73   reused as neces
72a0: 73 61 72 79 2e 0a 0a 3c 61 20 6e 61 6d 65 3d 22  sary...<a name="
72b0: 63 61 73 74 65 78 70 72 22 3e 3c 2f 61 3e 0a 0a  castexpr"></a>..
72c0: 3c 68 33 3e 43 41 53 54 20 65 78 70 72 65 73 73  <h3>CAST express
72d0: 69 6f 6e 73 3c 2f 68 33 3e 0a 0a 3c 70 3e 41 20  ions</h3>..<p>A 
72e0: 43 41 53 54 20 65 78 70 72 65 73 73 69 6f 6e 20  CAST expression 
72f0: 6f 66 20 74 68 65 20 66 6f 72 6d 20 22 43 41 53  of the form "CAS
7300: 54 28 3c 69 3e 65 78 70 72 3c 2f 69 3e 20 41 53  T(<i>expr</i> AS
7310: 20 3c 69 3e 74 79 70 65 2d 6e 61 6d 65 3c 2f 69   <i>type-name</i
7320: 3e 29 22 0a 69 73 20 75 73 65 64 20 74 6f 20 63  >)".is used to c
7330: 6f 6e 76 65 72 74 20 74 68 65 20 76 61 6c 75 65  onvert the value
7340: 20 6f 66 20 3c 69 3e 65 78 70 72 3c 2f 69 3e 20   of <i>expr</i> 
7350: 74 6f 20 0a 61 20 64 69 66 66 65 72 65 6e 74 20  to .a different 
7360: 3c 61 20 68 72 65 66 3d 22 64 61 74 61 74 79 70  <a href="datatyp
7370: 65 33 2e 68 74 6d 6c 23 73 74 6f 72 61 67 65 63  e3.html#storagec
7380: 6c 61 73 73 65 73 22 3e 73 74 6f 72 61 67 65 20  lasses">storage 
7390: 63 6c 61 73 73 3c 2f 61 3e 20 73 70 65 63 69 66  class</a> specif
73a0: 69 65 64 20 62 79 20 3c 73 70 61 6e 20 63 6c 61  ied by <span cla
73b0: 73 73 3d 27 79 79 74 65 72 6d 27 3e 74 79 70 65  ss='yyterm'>type
73c0: 2d 6e 61 6d 65 3c 2f 73 70 61 6e 3e 2e 0a 41 20  -name</span>..A 
73d0: 43 41 53 54 20 63 6f 6e 76 65 72 73 69 6f 6e 20  CAST conversion 
73e0: 69 73 20 73 69 6d 69 6c 61 72 20 74 6f 20 74 68  is similar to th
73f0: 65 20 63 6f 6e 76 65 72 73 69 6f 6e 20 74 68 61  e conversion tha
7400: 74 20 74 61 6b 65 73 0a 70 6c 61 63 65 20 77 68  t takes.place wh
7410: 65 6e 20 61 20 3c 61 20 68 72 65 66 3d 22 64 61  en a <a href="da
7420: 74 61 74 79 70 65 33 2e 68 74 6d 6c 23 61 66 66  tatype3.html#aff
7430: 69 6e 69 74 79 22 3e 63 6f 6c 75 6d 6e 20 61 66  inity">column af
7440: 66 69 6e 69 74 79 3c 2f 61 3e 20 69 73 20 61 70  finity</a> is ap
7450: 70 6c 69 65 64 20 74 6f 20 61 20 76 61 6c 75 65  plied to a value
7460: 20 65 78 63 65 70 74 20 74 68 61 74 20 77 69 74   except that wit
7470: 68 0a 74 68 65 20 43 41 53 54 20 6f 70 65 72 61  h.the CAST opera
7480: 74 6f 72 20 74 68 65 20 63 6f 6e 76 65 72 73 69  tor the conversi
7490: 6f 6e 20 61 6c 77 61 79 73 20 74 61 6b 65 73 20  on always takes 
74a0: 70 6c 61 63 65 20 65 76 65 6e 20 69 66 20 74 68  place even if th
74b0: 65 20 63 6f 6e 76 65 72 73 69 6f 6e 0a 6c 6f 73  e conversion.los
74c0: 73 79 20 61 6e 64 20 69 72 72 65 76 65 72 73 69  sy and irreversi
74d0: 62 6c 65 2c 20 77 68 65 72 65 61 73 20 63 6f 6c  ble, whereas col
74e0: 75 6d 6e 20 61 66 66 69 6e 69 74 79 20 6f 6e 6c  umn affinity onl
74f0: 79 20 63 68 61 6e 67 65 73 20 74 68 65 20 64 61  y changes the da
7500: 74 61 20 74 79 70 65 0a 6f 66 20 61 20 76 61 6c  ta type.of a val
7510: 75 65 20 69 66 20 74 68 65 20 63 68 61 6e 67 65  ue if the change
7520: 20 69 73 20 6c 6f 73 73 6c 65 73 73 20 61 6e 64   is lossless and
7530: 20 72 65 76 65 72 73 69 62 6c 65 2e 0a 0a 3c 70   reversible...<p
7540: 3e 49 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66  >If the value of
7550: 20 3c 69 3e 65 78 70 72 3c 2f 69 3e 20 69 73 20   <i>expr</i> is 
7560: 4e 55 4c 4c 2c 20 74 68 65 6e 20 74 68 65 20 72  NULL, then the r
7570: 65 73 75 6c 74 20 6f 66 20 74 68 65 20 43 41 53  esult of the CAS
7580: 54 0a 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20  T.expression is 
7590: 61 6c 73 6f 20 4e 55 4c 4c 2e 20 4f 74 68 65 72  also NULL. Other
75a0: 77 69 73 65 2c 20 74 68 65 20 73 74 6f 72 61 67  wise, the storag
75b0: 65 20 63 6c 61 73 73 20 6f 66 20 74 68 65 20 72  e class of the r
75c0: 65 73 75 6c 74 0a 69 73 20 64 65 74 65 72 6d 69  esult.is determi
75d0: 6e 65 64 20 62 79 20 61 70 70 6c 79 69 6e 67 20  ned by applying 
75e0: 74 68 65 20 3c 61 20 68 72 65 66 3d 22 64 61 74  the <a href="dat
75f0: 61 74 79 70 65 33 2e 68 74 6d 6c 23 61 66 66 6e  atype3.html#affn
7600: 61 6d 65 22 3e 72 75 6c 65 73 20 66 6f 72 20 64  ame">rules for d
7610: 65 74 65 72 6d 69 6e 69 6e 67 20 63 6f 6c 75 6d  etermining colum
7620: 6e 20 61 66 66 69 6e 69 74 79 3c 2f 61 3e 20 74  n affinity</a> t
7630: 6f 0a 74 68 65 20 3c 73 70 61 6e 20 63 6c 61 73  o.the <span clas
7640: 73 3d 27 79 79 74 65 72 6d 27 3e 74 79 70 65 2d  s='yyterm'>type-
7650: 6e 61 6d 65 3c 2f 73 70 61 6e 3e 2e 0a 0a 3c 74  name</span>...<t
7660: 61 62 6c 65 20 62 6f 72 64 65 72 3d 31 3e 0a 3c  able border=1>.<
7670: 74 72 3e 0a 20 20 3c 74 68 3e 20 41 66 66 69 6e  tr>.  <th> Affin
7680: 69 74 79 20 6f 66 20 3c 73 70 61 6e 20 63 6c 61  ity of <span cla
7690: 73 73 3d 27 79 79 74 65 72 6d 27 3e 74 79 70 65  ss='yyterm'>type
76a0: 2d 6e 61 6d 65 3c 2f 73 70 61 6e 3e 0a 20 20 3c  -name</span>.  <
76b0: 74 68 3e 20 43 6f 6e 76 65 72 73 69 6f 6e 20 50  th> Conversion P
76c0: 72 6f 63 65 73 73 69 6e 67 0a 3c 74 72 3e 0a 20  rocessing.<tr>. 
76d0: 20 3c 74 64 3e 20 4e 4f 4e 45 20 0a 20 20 3c 74   <td> NONE .  <t
76e0: 64 3e 20 43 61 73 74 69 6e 67 20 61 20 76 61 6c  d> Casting a val
76f0: 75 65 20 74 6f 20 61 20 3c 73 70 61 6e 20 63 6c  ue to a <span cl
7700: 61 73 73 3d 27 79 79 74 65 72 6d 27 3e 74 79 70  ass='yyterm'>typ
7710: 65 2d 6e 61 6d 65 3c 2f 73 70 61 6e 3e 20 77 69  e-name</span> wi
7720: 74 68 20 6e 6f 20 61 66 66 69 6e 69 74 79 20 0a  th no affinity .
7730: 20 20 63 61 75 73 65 73 20 74 68 65 20 76 61 6c    causes the val
7740: 75 65 20 74 6f 0a 20 20 62 65 20 63 6f 6e 76 65  ue to.  be conve
7750: 72 74 65 64 20 69 6e 74 6f 20 61 20 42 4c 4f 42  rted into a BLOB
7760: 2e 20 20 43 61 73 74 69 6e 67 20 74 6f 20 61 20  .  Casting to a 
7770: 42 4c 4f 42 20 63 6f 6e 73 69 73 74 73 20 6f 66  BLOB consists of
7780: 20 66 69 72 73 74 20 63 61 73 74 69 6e 67 0a 20   first casting. 
7790: 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 54 45   the value to TE
77a0: 58 54 20 69 6e 20 74 68 65 20 3c 61 20 68 72 65  XT in the <a hre
77b0: 66 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23 70  f="pragma.html#p
77c0: 72 61 67 6d 61 5f 65 6e 63 6f 64 69 6e 67 22 3e  ragma_encoding">
77d0: 65 6e 63 6f 64 69 6e 67 3c 2f 61 3e 20 6f 66 20  encoding</a> of 
77e0: 74 68 65 20 64 61 74 61 62 61 73 65 20 63 6f 6e  the database con
77f0: 6e 65 63 74 69 6f 6e 2c 20 74 68 65 6e 0a 20 20  nection, then.  
7800: 69 6e 74 65 72 70 72 65 74 69 6e 67 20 74 68 65  interpreting the
7810: 20 72 65 73 75 6c 74 69 6e 67 20 62 79 74 65 20   resulting byte 
7820: 73 65 71 75 65 6e 63 65 20 61 73 20 61 20 42 4c  sequence as a BL
7830: 4f 42 20 69 6e 73 74 65 61 64 20 6f 66 20 61 73  OB instead of as
7840: 20 54 45 58 54 2e 0a 0a 3c 74 72 3e 0a 20 20 3c   TEXT...<tr>.  <
7850: 74 64 3e 20 54 45 58 54 0a 20 20 3c 74 64 3e 20  td> TEXT.  <td> 
7860: 54 6f 20 63 61 73 74 20 61 20 42 4c 4f 42 20 76  To cast a BLOB v
7870: 61 6c 75 65 20 74 6f 20 54 45 58 54 2c 20 74 68  alue to TEXT, th
7880: 65 20 73 65 71 75 65 6e 63 65 20 6f 66 20 62 79  e sequence of by
7890: 74 65 73 20 74 68 61 74 20 6d 61 6b 65 20 75 70  tes that make up
78a0: 20 74 68 65 0a 20 20 42 4c 4f 42 20 69 73 20 69   the.  BLOB is i
78b0: 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 74 65  nterpreted as te
78c0: 78 74 20 65 6e 63 6f 64 65 64 20 75 73 69 6e 67  xt encoded using
78d0: 20 74 68 65 20 64 61 74 61 62 61 73 65 20 65 6e   the database en
78e0: 63 6f 64 69 6e 67 2e 0a 20 20 3c 70 3e 0a 20 20  coding..  <p>.  
78f0: 20 43 61 73 74 69 6e 67 20 61 6e 20 49 4e 54 45   Casting an INTE
7900: 47 45 52 20 6f 72 20 52 45 41 4c 20 76 61 6c 75  GER or REAL valu
7910: 65 20 69 6e 74 6f 20 54 45 58 54 20 72 65 6e 64  e into TEXT rend
7920: 65 72 73 20 74 68 65 20 76 61 6c 75 65 20 61 73  ers the value as
7930: 20 69 66 20 76 69 61 20 0a 20 20 20 20 3c 61 20   if via .    <a 
7940: 68 72 65 66 3d 22 63 33 72 65 66 2f 6d 70 72 69  href="c3ref/mpri
7950: 6e 74 66 2e 68 74 6d 6c 22 3e 73 71 6c 69 74 65  ntf.html">sqlite
7960: 33 5f 73 6e 70 72 69 6e 74 66 28 29 3c 2f 61 3e  3_snprintf()</a>
7970: 20 65 78 63 65 70 74 20 74 68 61 74 20 74 68 65   except that the
7980: 20 72 65 73 75 6c 74 69 6e 67 20 54 45 58 54 20   resulting TEXT 
7990: 75 73 65 73 20 74 68 65 20 3c 61 20 68 72 65 66  uses the <a href
79a0: 3d 22 70 72 61 67 6d 61 2e 68 74 6d 6c 23 70 72  ="pragma.html#pr
79b0: 61 67 6d 61 5f 65 6e 63 6f 64 69 6e 67 22 3e 65  agma_encoding">e
79c0: 6e 63 6f 64 69 6e 67 3c 2f 61 3e 20 6f 66 0a 20  ncoding</a> of. 
79d0: 20 20 20 74 68 65 20 64 61 74 61 62 61 73 65 20     the database 
79e0: 63 6f 6e 6e 65 63 74 69 6f 6e 2e 0a 0a 3c 74 72  connection...<tr
79f0: 3e 0a 20 20 3c 74 64 3e 20 52 45 41 4c 0a 20 20  >.  <td> REAL.  
7a00: 3c 74 64 3e 20 57 68 65 6e 20 63 61 73 74 69 6e  <td> When castin
7a10: 67 20 61 20 42 4c 4f 42 20 76 61 6c 75 65 20 74  g a BLOB value t
7a20: 6f 20 61 20 52 45 41 4c 2c 20 74 68 65 20 76 61  o a REAL, the va
7a30: 6c 75 65 20 69 73 20 66 69 72 73 74 20 63 6f 6e  lue is first con
7a40: 76 65 72 74 65 64 20 74 6f 0a 20 20 20 20 20 20  verted to.      
7a50: 20 20 54 45 58 54 2e 0a 20 20 20 20 20 20 20 3c    TEXT..       <
7a60: 70 3e 57 68 65 6e 20 63 61 73 74 69 6e 67 20 61  p>When casting a
7a70: 20 54 45 58 54 20 76 61 6c 75 65 20 74 6f 20 52   TEXT value to R
7a80: 45 41 4c 2c 20 74 68 65 20 6c 6f 6e 67 65 73 74  EAL, the longest
7a90: 20 70 6f 73 73 69 62 6c 65 20 70 72 65 66 69 78   possible prefix
7aa0: 20 6f 66 0a 20 20 20 20 20 20 20 20 74 68 65 20   of.        the 
7ab0: 76 61 6c 75 65 20 74 68 61 74 20 63 61 6e 20 62  value that can b
7ac0: 65 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73  e interpreted as
7ad0: 20 61 20 72 65 61 6c 20 6e 75 6d 62 65 72 20 69   a real number i
7ae0: 73 20 65 78 74 72 61 63 74 65 64 20 66 72 6f 6d  s extracted from
7af0: 0a 20 20 20 20 20 20 20 20 74 68 65 20 54 45 58  .        the TEX
7b00: 54 20 76 61 6c 75 65 20 61 6e 64 20 74 68 65 20  T value and the 
7b10: 72 65 6d 61 69 6e 64 65 72 20 69 67 6e 6f 72 65  remainder ignore
7b20: 64 2e 20 41 6e 79 20 6c 65 61 64 69 6e 67 20 73  d. Any leading s
7b30: 70 61 63 65 73 20 69 6e 20 74 68 65 0a 20 20 20  paces in the.   
7b40: 20 20 20 20 20 54 45 58 54 20 76 61 6c 75 65 20       TEXT value 
7b50: 61 72 65 20 69 67 6e 6f 72 65 64 20 77 68 65 6e  are ignored when
7b60: 20 63 6f 6e 76 65 72 67 69 6e 67 20 66 72 6f 6d   converging from
7b70: 20 54 45 58 54 20 74 6f 20 52 45 41 4c 2e 20 49   TEXT to REAL. I
7b80: 66 20 74 68 65 72 65 20 69 73 0a 20 20 20 20 20  f there is.     
7b90: 20 20 20 6e 6f 20 70 72 65 66 69 78 20 74 68 61     no prefix tha
7ba0: 74 20 63 61 6e 20 62 65 20 69 6e 74 65 72 70 72  t can be interpr
7bb0: 65 74 65 64 20 61 73 20 61 20 72 65 61 6c 20 6e  eted as a real n
7bc0: 75 6d 62 65 72 2c 20 74 68 65 20 72 65 73 75 6c  umber, the resul
7bd0: 74 20 6f 66 20 74 68 65 0a 20 20 20 20 20 20 20  t of the.       
7be0: 20 63 6f 6e 76 65 72 73 69 6f 6e 20 69 73 20 30   conversion is 0
7bf0: 2e 30 2e 0a 0a 3c 74 72 3e 0a 20 20 3c 74 64 3e  .0...<tr>.  <td>
7c00: 20 49 4e 54 45 47 45 52 0a 20 20 3c 74 64 3e 20   INTEGER.  <td> 
7c10: 57 68 65 6e 20 63 61 73 74 69 6e 67 20 61 20 42  When casting a B
7c20: 4c 4f 42 20 76 61 6c 75 65 20 74 6f 20 49 4e 54  LOB value to INT
7c30: 45 47 45 52 2c 20 74 68 65 20 76 61 6c 75 65 20  EGER, the value 
7c40: 69 73 20 66 69 72 73 74 20 63 6f 6e 76 65 72 74  is first convert
7c50: 65 64 20 74 6f 0a 20 20 20 20 20 20 20 20 54 45  ed to.        TE
7c60: 58 54 2e 0a 20 20 20 20 20 20 20 3c 70 3e 57 68  XT..       <p>Wh
7c70: 65 6e 20 63 61 73 74 69 6e 67 20 61 20 54 45 58  en casting a TEX
7c80: 54 20 76 61 6c 75 65 20 74 6f 20 49 4e 54 45 47  T value to INTEG
7c90: 45 52 2c 20 74 68 65 20 6c 6f 6e 67 65 73 74 20  ER, the longest 
7ca0: 70 6f 73 73 69 62 6c 65 20 70 72 65 66 69 78 20  possible prefix 
7cb0: 6f 66 0a 20 20 20 20 20 20 20 20 74 68 65 20 76  of.        the v
7cc0: 61 6c 75 65 20 74 68 61 74 20 63 61 6e 20 62 65  alue that can be
7cd0: 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20   interpreted as 
7ce0: 61 6e 20 69 6e 74 65 67 65 72 20 6e 75 6d 62 65  an integer numbe
7cf0: 72 20 69 73 20 65 78 74 72 61 63 74 65 64 20 66  r is extracted f
7d00: 72 6f 6d 0a 20 20 20 20 20 20 20 20 74 68 65 20  rom.        the 
7d10: 54 45 58 54 20 76 61 6c 75 65 20 61 6e 64 20 74  TEXT value and t
7d20: 68 65 20 72 65 6d 61 69 6e 64 65 72 20 69 67 6e  he remainder ign
7d30: 6f 72 65 64 2e 20 41 6e 79 20 6c 65 61 64 69 6e  ored. Any leadin
7d40: 67 20 73 70 61 63 65 73 20 69 6e 20 74 68 65 0a  g spaces in the.
7d50: 20 20 20 20 20 20 20 20 54 45 58 54 20 76 61 6c          TEXT val
7d60: 75 65 20 77 68 65 6e 20 63 6f 6e 76 65 72 74 69  ue when converti
7d70: 6e 67 20 66 72 6f 6d 20 54 45 58 54 20 74 6f 20  ng from TEXT to 
7d80: 49 4e 54 45 47 45 52 20 61 72 65 20 69 67 6e 6f  INTEGER are igno
7d90: 72 65 64 2e 20 49 66 20 74 68 65 72 65 0a 20 20  red. If there.  
7da0: 20 20 20 20 20 20 69 73 20 6e 6f 20 70 72 65 66        is no pref
7db0: 69 78 20 74 68 61 74 20 63 61 6e 20 62 65 20 69  ix that can be i
7dc0: 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 6e  nterpreted as an
7dd0: 20 69 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 2c   integer number,
7de0: 20 74 68 65 20 72 65 73 75 6c 74 0a 20 20 20 20   the result.    
7df0: 20 20 20 20 6f 66 20 74 68 65 20 63 6f 6e 76 65      of the conve
7e00: 72 73 69 6f 6e 20 69 73 20 30 2e 20 20 49 66 20  rsion is 0.  If 
7e10: 74 68 65 20 70 72 65 66 69 78 20 69 6e 74 65 67  the prefix integ
7e20: 65 72 20 69 73 20 67 72 65 61 74 65 72 20 74 68  er is greater th
7e30: 61 6e 0a 20 20 20 20 20 20 20 20 2b 39 32 32 33  an.        +9223
7e40: 33 37 32 30 33 36 38 35 34 37 37 35 38 30 37 20  372036854775807 
7e50: 74 68 65 6e 20 74 68 65 20 72 65 73 75 6c 74 20  then the result 
7e60: 6f 66 20 74 68 65 20 63 61 73 74 20 69 73 20 65  of the cast is e
7e70: 78 61 63 74 6c 79 0a 20 20 20 20 20 20 20 20 2b  xactly.        +
7e80: 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35  9223372036854775
7e90: 38 30 37 2e 20 20 53 69 6d 69 6c 61 72 6c 79 2c  807.  Similarly,
7ea0: 20 69 66 20 74 68 65 20 70 72 65 66 69 78 20 69   if the prefix i
7eb0: 6e 74 65 67 65 72 20 69 73 0a 20 20 20 20 20 20  nteger is.      
7ec0: 20 20 6c 65 73 73 20 74 68 61 6e 20 2d 39 32 32    less than -922
7ed0: 33 33 37 32 30 33 36 38 35 34 37 37 35 38 30 38  3372036854775808
7ee0: 20 74 68 65 6e 20 74 68 65 20 72 65 73 75 6c 74   then the result
7ef0: 20 6f 66 20 74 68 65 20 63 61 73 74 20 69 73 0a   of the cast is.
7f00: 20 20 20 20 20 20 20 20 65 78 61 63 74 6c 79 20          exactly 
7f10: 2d 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37  -922337203685477
7f20: 35 38 30 38 2e 0a 0a 20 20 20 20 20 20 20 20 3c  5808...        <
7f30: 70 3e 57 68 65 6e 20 63 61 73 74 69 6e 67 20 74  p>When casting t
7f40: 6f 20 49 4e 54 45 47 45 52 2c 20 69 66 20 74 68  o INTEGER, if th
7f50: 65 20 74 65 78 74 20 6c 6f 6f 6b 73 20 6c 69 6b  e text looks lik
7f60: 65 20 61 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69  e a floating poi
7f70: 6e 74 0a 20 20 20 20 20 20 20 20 76 61 6c 75 65  nt.        value
7f80: 20 77 69 74 68 20 61 6e 20 65 78 70 6f 6e 65 6e   with an exponen
7f90: 74 2c 20 74 68 65 20 65 78 70 6f 6e 65 6e 74 20  t, the exponent 
7fa0: 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 20  will be ignored 
7fb0: 62 65 63 61 75 73 65 20 69 74 20 69 73 0a 20 20  because it is.  
7fc0: 20 20 20 20 20 20 6e 6f 20 70 61 72 74 20 6f 66        no part of
7fd0: 20 74 68 65 20 69 6e 74 65 67 65 72 20 70 72 65   the integer pre
7fe0: 66 69 78 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c  fix.  For exampl
7ff0: 65 2c 0a 20 20 20 20 20 20 20 20 22 28 43 41 53  e,.        "(CAS
8000: 54 20 27 31 32 33 65 2b 35 27 20 41 53 20 49 4e  T '123e+5' AS IN
8010: 54 45 47 45 52 29 22 20 72 65 73 75 6c 74 73 20  TEGER)" results 
8020: 69 6e 20 31 32 33 2c 20 6e 6f 74 20 69 6e 20 31  in 123, not in 1
8030: 32 33 30 30 30 30 30 2e 0a 0a 20 20 20 20 20 20  2300000...      
8040: 20 20 3c 70 3e 20 54 68 65 20 43 41 53 54 20 6f    <p> The CAST o
8050: 70 65 72 61 74 6f 72 20 75 6e 64 65 72 73 74 61  perator understa
8060: 6e 64 73 20 64 65 63 69 6d 61 6c 0a 20 20 20 20  nds decimal.    
8070: 20 20 20 20 69 6e 74 65 67 65 72 73 20 6f 6e 6c      integers onl
8080: 79 20 26 6d 64 61 73 68 3b 20 63 6f 6e 76 65 72  y &mdash; conver
8090: 73 69 6f 6e 20 6f 66 20 3c 61 20 68 72 65 66 3d  sion of <a href=
80a0: 22 6c 61 6e 67 5f 65 78 70 72 2e 68 74 6d 6c 23  "lang_expr.html#
80b0: 68 65 78 69 6e 74 22 3e 68 65 78 61 64 65 63 69  hexint">hexadeci
80c0: 6d 61 6c 20 69 6e 74 65 67 65 72 73 3c 2f 61 3e  mal integers</a>
80d0: 20 73 74 6f 70 73 20 0a 20 20 20 20 20 20 20 20   stops .        
80e0: 61 74 20 74 68 65 20 22 78 22 20 69 6e 20 74 68  at the "x" in th
80f0: 65 20 22 30 78 22 20 70 72 65 66 69 78 20 6f 66  e "0x" prefix of
8100: 20 74 68 65 20 68 65 78 61 64 65 63 69 6d 61 6c   the hexadecimal
8110: 20 69 6e 74 65 67 65 72 20 73 74 72 69 6e 67 20   integer string 
8120: 0a 20 20 20 20 20 20 20 20 61 6e 64 20 74 68 75  .        and thu
8130: 73 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20  s result of the 
8140: 43 41 53 54 20 69 73 20 61 6c 77 61 79 73 20 7a  CAST is always z
8150: 65 72 6f 2e 0a 0a 20 20 20 20 20 20 3c 70 3e 41  ero...      <p>A
8160: 20 63 61 73 74 20 6f 66 20 61 20 52 45 41 4c 20   cast of a REAL 
8170: 76 61 6c 75 65 20 69 6e 74 6f 20 61 6e 20 49 4e  value into an IN
8180: 54 45 47 45 52 20 72 65 73 75 6c 74 73 20 69 6e  TEGER results in
8190: 20 74 68 65 20 69 6e 74 65 67 65 72 0a 20 20 20   the integer.   
81a0: 20 20 20 62 65 74 77 65 65 6e 20 74 68 65 20 52     between the R
81b0: 45 41 4c 20 76 61 6c 75 65 20 61 6e 64 20 7a 65  EAL value and ze
81c0: 72 6f 20 74 68 61 74 20 69 73 20 63 6c 6f 73 65  ro that is close
81d0: 73 74 20 74 6f 20 74 68 65 20 52 45 41 4c 20 76  st to the REAL v
81e0: 61 6c 75 65 2e 0a 20 20 20 20 20 20 49 66 20 61  alue..      If a
81f0: 20 52 45 41 4c 20 69 73 20 67 72 65 61 74 65 72   REAL is greater
8200: 20 74 68 61 6e 20 74 68 65 20 67 72 65 61 74 65   than the greate
8210: 73 74 20 70 6f 73 73 69 62 6c 65 20 73 69 67 6e  st possible sign
8220: 65 64 0a 20 20 20 20 20 20 69 6e 74 65 67 65 72  ed.      integer
8230: 20 28 2b 39 32 32 33 33 37 32 30 33 36 38 35 34   (+9223372036854
8240: 37 37 35 38 30 37 29 20 74 68 65 6e 20 74 68 65  775807) then the
8250: 20 72 65 73 75 6c 74 20 69 73 20 74 68 65 20 67   result is the g
8260: 72 65 61 74 65 73 74 20 70 6f 73 73 69 62 6c 65  reatest possible
8270: 0a 20 20 20 20 20 20 73 69 67 6e 65 64 20 69 6e  .      signed in
8280: 74 65 67 65 72 20 61 6e 64 20 69 66 20 74 68 65  teger and if the
8290: 20 52 45 41 4c 20 69 73 20 6c 65 73 73 20 74 68   REAL is less th
82a0: 61 6e 20 74 68 65 20 6c 65 61 73 74 20 70 6f 73  an the least pos
82b0: 73 69 62 6c 65 20 73 69 67 6e 65 64 0a 20 20 20  sible signed.   
82c0: 20 20 20 69 6e 74 65 67 65 72 20 28 2d 39 32 32     integer (-922
82d0: 33 33 37 32 30 33 36 38 35 34 37 37 35 38 30 38  3372036854775808
82e0: 29 20 74 68 65 6e 20 74 68 65 20 72 65 73 75 6c  ) then the resul
82f0: 74 20 69 73 20 74 68 65 20 6c 65 61 73 74 20 70  t is the least p
8300: 6f 73 73 69 62 6c 65 0a 20 20 20 20 20 20 73 69  ossible.      si
8310: 67 6e 65 64 20 69 6e 74 65 67 65 72 2e 0a 0a 20  gned integer... 
8320: 20 20 20 20 20 3c 70 3e 50 72 69 6f 72 20 74 6f       <p>Prior to
8330: 20 53 51 4c 69 74 65 20 76 65 72 73 69 6f 6e 20   SQLite version 
8340: 33 2e 38 2e 32 20 28 32 30 31 33 2d 31 32 2d 30  3.8.2 (2013-12-0
8350: 36 29 2c 0a 20 20 20 20 20 20 63 61 73 74 69 6e  6),.      castin
8360: 67 20 61 20 52 45 41 4c 20 76 61 6c 75 65 20 67  g a REAL value g
8370: 72 65 61 74 65 72 20 74 68 61 6e 0a 20 20 20 20  reater than.    
8380: 20 20 2b 39 32 32 33 33 37 32 30 33 36 38 35 34    +9223372036854
8390: 37 37 35 38 30 37 2e 30 20 69 6e 74 6f 20 61 6e  775807.0 into an
83a0: 20 69 6e 74 65 67 65 72 20 72 65 73 75 6c 74 65   integer resulte
83b0: 64 20 69 6e 20 74 68 65 20 6d 6f 73 74 20 6e 65  d in the most ne
83c0: 67 61 74 69 76 65 0a 20 20 20 20 20 20 69 6e 74  gative.      int
83d0: 65 67 65 72 2c 20 2d 39 32 32 33 33 37 32 30 33  eger, -922337203
83e0: 36 38 35 34 37 37 35 38 30 38 2e 20 20 54 68 69  6854775808.  Thi
83f0: 73 20 62 65 68 61 76 69 6f 72 20 77 61 73 20 6d  s behavior was m
8400: 65 61 6e 74 20 74 6f 20 65 6d 75 6c 61 74 65 20  eant to emulate 
8410: 74 68 65 0a 20 20 20 20 20 20 62 65 68 61 76 69  the.      behavi
8420: 6f 72 20 6f 66 20 78 38 36 2f 78 36 34 20 68 61  or of x86/x64 ha
8430: 72 64 77 61 72 65 20 77 68 65 6e 20 64 6f 69 6e  rdware when doin
8440: 67 20 74 68 65 20 65 71 75 69 76 61 6c 65 6e 74  g the equivalent
8450: 20 63 61 73 74 2e 0a 0a 3c 74 72 3e 0a 20 20 3c   cast...<tr>.  <
8460: 74 64 3e 20 4e 55 4d 45 52 49 43 0a 20 20 3c 74  td> NUMERIC.  <t
8470: 64 3e 20 43 61 73 74 69 6e 67 20 61 20 54 45 58  d> Casting a TEX
8480: 54 20 6f 72 20 42 4c 4f 42 20 76 61 6c 75 65 20  T or BLOB value 
8490: 69 6e 74 6f 20 4e 55 4d 45 52 49 43 20 66 69 72  into NUMERIC fir
84a0: 73 74 20 64 6f 65 73 20 61 20 66 6f 72 63 65 64  st does a forced
84b0: 0a 20 20 20 63 6f 6e 76 65 72 73 69 6f 6e 20 69  .   conversion i
84c0: 6e 74 6f 20 52 45 41 4c 20 62 75 74 20 74 68 65  nto REAL but the
84d0: 6e 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65 72  n further conver
84e0: 74 73 20 74 68 65 20 72 65 73 75 6c 74 20 69 6e  ts the result in
84f0: 74 6f 20 49 4e 54 45 47 45 52 20 69 66 0a 20 20  to INTEGER if.  
8500: 20 61 6e 64 20 6f 6e 6c 79 20 69 66 20 74 68 65   and only if the
8510: 20 63 6f 6e 76 65 72 73 69 6f 6e 20 66 72 6f 6d   conversion from
8520: 20 52 45 41 4c 20 74 6f 20 49 4e 54 45 47 45 52   REAL to INTEGER
8530: 20 69 73 20 6c 6f 73 73 6c 65 73 73 20 61 6e 64   is lossless and
8540: 20 72 65 76 65 72 73 69 62 6c 65 2e 0a 20 20 20   reversible..   
8550: 54 68 69 73 20 69 73 20 74 68 65 20 6f 6e 6c 79  This is the only
8560: 20 63 6f 6e 74 65 78 74 20 69 6e 20 53 51 4c 69   context in SQLi
8570: 74 65 20 77 68 65 72 65 20 74 68 65 20 4e 55 4d  te where the NUM
8580: 45 52 49 43 20 61 6e 64 20 49 4e 54 45 47 45 52  ERIC and INTEGER
8590: 20 3c 61 20 68 72 65 66 3d 22 64 61 74 61 74 79   <a href="dataty
85a0: 70 65 33 2e 68 74 6d 6c 23 61 66 66 69 6e 69 74  pe3.html#affinit
85b0: 79 22 3e 61 66 66 69 6e 69 74 69 65 73 3c 2f 61  y">affinities</a
85c0: 3e 0a 20 20 20 62 65 68 61 76 65 20 64 69 66 66  >.   behave diff
85d0: 65 72 65 6e 74 6c 79 2e 0a 20 20 20 3c 70 3e 20  erently..   <p> 
85e0: 43 61 73 74 69 6e 67 20 61 20 52 45 41 4c 20 6f  Casting a REAL o
85f0: 72 20 49 4e 54 45 47 45 52 20 76 61 6c 75 65 20  r INTEGER value 
8600: 74 6f 20 4e 55 4d 45 52 49 43 20 69 73 20 61 20  to NUMERIC is a 
8610: 6e 6f 2d 6f 70 2c 20 65 76 65 6e 20 69 66 20 61  no-op, even if a
8620: 20 72 65 61 6c 0a 20 20 20 76 61 6c 75 65 20 63   real.   value c
8630: 6f 75 6c 64 20 62 65 20 6c 6f 73 73 6c 65 73 73  ould be lossless
8640: 6c 79 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20  ly converted to 
8650: 61 6e 20 69 6e 74 65 67 65 72 2e 0a 0a 3c 2f 74  an integer...</t
8660: 72 3e 0a 0a 3c 2f 74 61 62 6c 65 3e 0a 0a 3c 70  r>..</table>..<p
8670: 3e 4e 6f 74 65 20 74 68 61 74 20 74 68 65 20 72  >Note that the r
8680: 65 73 75 6c 74 20 66 72 6f 6d 20 63 61 73 74 69  esult from casti
8690: 6e 67 20 61 6e 79 20 6e 6f 6e 2d 42 4c 4f 42 20  ng any non-BLOB 
86a0: 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 0a 42 4c  value into a .BL
86b0: 4f 42 20 61 6e 64 20 74 68 65 20 72 65 73 75 6c  OB and the resul
86c0: 74 20 66 72 6f 6d 20 63 61 73 74 69 6e 67 20 61  t from casting a
86d0: 6e 79 20 42 4c 4f 42 20 76 61 6c 75 65 20 69 6e  ny BLOB value in
86e0: 74 6f 20 61 20 6e 6f 6e 2d 42 4c 4f 42 20 76 61  to a non-BLOB va
86f0: 6c 75 65 0a 6d 61 79 20 62 65 20 64 69 66 66 65  lue.may be diffe
8700: 72 65 6e 74 20 64 65 70 65 6e 64 69 6e 67 20 6f  rent depending o
8710: 6e 20 77 68 65 74 68 65 72 20 74 68 65 20 64 61  n whether the da
8720: 74 61 62 61 73 65 20 3c 61 20 68 72 65 66 3d 22  tabase <a href="
8730: 70 72 61 67 6d 61 2e 68 74 6d 6c 23 70 72 61 67  pragma.html#prag
8740: 6d 61 5f 65 6e 63 6f 64 69 6e 67 22 3e 65 6e 63  ma_encoding">enc
8750: 6f 64 69 6e 67 3c 2f 61 3e 20 69 73 20 55 54 46  oding</a> is UTF
8760: 2d 38 2c 0a 55 54 46 2d 31 36 62 65 2c 20 6f 72  -8,.UTF-16be, or
8770: 20 55 54 46 2d 31 36 6c 65 2e 0a 0a 0a 3c 61 20   UTF-16le....<a 
8780: 6e 61 6d 65 3d 22 62 6f 6f 6c 65 61 6e 65 78 70  name="booleanexp
8790: 72 22 3e 3c 2f 61 3e 0a 0a 3c 68 33 3e 42 6f 6f  r"></a>..<h3>Boo
87a0: 6c 65 61 6e 20 45 78 70 72 65 73 73 69 6f 6e 73  lean Expressions
87b0: 3c 2f 68 33 3e 0a 0a 3c 70 3e 54 68 65 20 53 51  </h3>..<p>The SQ
87c0: 4c 20 6c 61 6e 67 75 61 67 65 20 66 65 61 74 75  L language featu
87d0: 72 65 73 20 73 65 76 65 72 61 6c 20 63 6f 6e 74  res several cont
87e0: 65 78 74 73 20 77 68 65 72 65 20 61 6e 20 65 78  exts where an ex
87f0: 70 72 65 73 73 69 6f 6e 20 69 73 20 0a 65 76 61  pression is .eva
8800: 6c 75 61 74 65 64 20 61 6e 64 20 74 68 65 20 72  luated and the r
8810: 65 73 75 6c 74 20 63 6f 6e 76 65 72 74 65 64 20  esult converted 
8820: 74 6f 20 61 20 62 6f 6f 6c 65 61 6e 20 28 74 72  to a boolean (tr
8830: 75 65 20 6f 72 20 66 61 6c 73 65 29 20 76 61 6c  ue or false) val
8840: 75 65 2e 20 54 68 65 73 65 0a 63 6f 6e 74 65 78  ue. These.contex
8850: 74 73 20 61 72 65 3a 0a 0a 20 20 3c 75 6c 3e 0a  ts are:..  <ul>.
8860: 20 20 20 20 3c 6c 69 3e 20 74 68 65 20 57 48 45      <li> the WHE
8870: 52 45 20 63 6c 61 75 73 65 20 6f 66 20 61 20 53  RE clause of a S
8880: 45 4c 45 43 54 2c 20 55 50 44 41 54 45 20 6f 72  ELECT, UPDATE or
8890: 20 44 45 4c 45 54 45 20 73 74 61 74 65 6d 65 6e   DELETE statemen
88a0: 74 2c 0a 20 20 20 20 3c 6c 69 3e 20 74 68 65 20  t,.    <li> the 
88b0: 4f 4e 20 6f 72 20 55 53 49 4e 47 20 63 6c 61 75  ON or USING clau
88c0: 73 65 20 6f 66 20 61 20 6a 6f 69 6e 20 69 6e 20  se of a join in 
88d0: 61 20 53 45 4c 45 43 54 20 73 74 61 74 65 6d 65  a SELECT stateme
88e0: 6e 74 2c 0a 20 20 20 20 3c 6c 69 3e 20 74 68 65  nt,.    <li> the
88f0: 20 48 41 56 49 4e 47 20 63 6c 61 75 73 65 20 6f   HAVING clause o
8900: 66 20 61 20 53 45 4c 45 43 54 20 73 74 61 74 65  f a SELECT state
8910: 6d 65 6e 74 2c 0a 20 20 20 20 3c 6c 69 3e 20 74  ment,.    <li> t
8920: 68 65 20 57 48 45 4e 20 63 6c 61 75 73 65 20 6f  he WHEN clause o
8930: 66 20 61 6e 20 53 51 4c 20 74 72 69 67 67 65 72  f an SQL trigger
8940: 2c 20 61 6e 64 0a 20 20 20 20 3c 6c 69 3e 20 74  , and.    <li> t
8950: 68 65 20 57 48 45 4e 20 63 6c 61 75 73 65 20 6f  he WHEN clause o
8960: 72 20 63 6c 61 75 73 65 73 20 6f 66 20 73 6f 6d  r clauses of som
8970: 65 20 43 41 53 45 20 65 78 70 72 65 73 73 69 6f  e CASE expressio
8980: 6e 73 2e 0a 20 20 3c 2f 75 6c 3e 0a 0a 3c 70 3e  ns..  </ul>..<p>
8990: 54 6f 20 63 6f 6e 76 65 72 74 20 74 68 65 20 72  To convert the r
89a0: 65 73 75 6c 74 73 20 6f 66 20 61 6e 20 53 51 4c  esults of an SQL
89b0: 20 65 78 70 72 65 73 73 69 6f 6e 20 74 6f 20 61   expression to a
89c0: 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 2c 20   boolean value, 
89d0: 53 51 4c 69 74 65 0a 66 69 72 73 74 20 63 61 73  SQLite.first cas
89e0: 74 73 20 74 68 65 20 72 65 73 75 6c 74 20 74 6f  ts the result to
89f0: 20 61 20 4e 55 4d 45 52 49 43 20 76 61 6c 75 65   a NUMERIC value
8a00: 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79   in the same way
8a10: 20 61 73 20 61 20 0a 3c 61 20 68 72 65 66 3d 22   as a .<a href="
8a20: 6c 61 6e 67 5f 65 78 70 72 2e 68 74 6d 6c 23 63  lang_expr.html#c
8a30: 61 73 74 65 78 70 72 22 3e 43 41 53 54 20 65 78  astexpr">CAST ex
8a40: 70 72 65 73 73 69 6f 6e 3c 2f 61 3e 2e 20 41 20  pression</a>. A 
8a50: 6e 75 6d 65 72 69 63 20 7a 65 72 6f 20 76 61 6c  numeric zero val
8a60: 75 65 20 28 69 6e 74 65 67 65 72 20 76 61 6c 75  ue (integer valu
8a70: 65 20 30 20 6f 72 20 72 65 61 6c 20 0a 76 61 6c  e 0 or real .val
8a80: 75 65 20 30 2e 30 29 20 69 73 20 63 6f 6e 73 69  ue 0.0) is consi
8a90: 64 65 72 65 64 20 74 6f 20 62 65 20 66 61 6c 73  dered to be fals
8aa0: 65 2e 20 20 41 20 4e 55 4c 4c 20 76 61 6c 75 65  e.  A NULL value
8ab0: 20 69 73 20 73 74 69 6c 6c 20 4e 55 4c 4c 2e 0a   is still NULL..
8ac0: 41 6c 6c 20 6f 74 68 65 72 20 76 61 6c 75 65 73  All other values
8ad0: 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20   are considered 
8ae0: 74 72 75 65 2e 0a 0a 3c 70 3e 46 6f 72 20 65 78  true...<p>For ex
8af0: 61 6d 70 6c 65 2c 20 74 68 65 20 76 61 6c 75 65  ample, the value
8b00: 73 20 4e 55 4c 4c 2c 20 30 2e 30 2c 20 30 2c 20  s NULL, 0.0, 0, 
8b10: 27 65 6e 67 6c 69 73 68 27 20 61 6e 64 20 27 30  'english' and '0
8b20: 27 20 61 72 65 20 61 6c 6c 20 63 6f 6e 73 69 64  ' are all consid
8b30: 65 72 65 64 0a 74 6f 20 62 65 20 66 61 6c 73 65  ered.to be false
8b40: 2e 20 56 61 6c 75 65 73 20 31 2c 20 31 2e 30 2c  . Values 1, 1.0,
8b50: 20 30 2e 31 2c 20 2d 30 2e 31 20 61 6e 64 20 27   0.1, -0.1 and '
8b60: 31 65 6e 67 6c 69 73 68 27 20 61 72 65 20 63 6f  1english' are co
8b70: 6e 73 69 64 65 72 65 64 20 74 6f 20 0a 62 65 20  nsidered to .be 
8b80: 74 72 75 65 2e 0a 0a 3c 70 3e 42 65 67 69 6e 6e  true...<p>Beginn
8b90: 69 6e 67 20 77 69 74 68 20 53 51 4c 69 74 65 20  ing with SQLite 
8ba0: 33 2e 32 33 2e 30 20 28 32 30 31 38 2d 30 34 2d  3.23.0 (2018-04-
8bb0: 30 32 29 2c 20 53 51 4c 69 74 65 20 72 65 63 6f  02), SQLite reco
8bc0: 67 6e 69 7a 65 73 20 74 68 65 0a 69 64 65 6e 74  gnizes the.ident
8bd0: 69 66 69 65 72 73 20 22 54 52 55 45 22 20 61 6e  ifiers "TRUE" an
8be0: 64 20 22 46 41 4c 53 45 22 20 61 73 20 62 6f 6f  d "FALSE" as boo
8bf0: 6c 65 61 6e 20 6c 69 74 65 72 61 6c 73 2c 20 69  lean literals, i
8c00: 66 20 61 6e 64 20 6f 6e 6c 79 20 69 66 20 74 68  f and only if th
8c10: 6f 73 65 0a 69 64 65 6e 74 69 66 69 65 72 73 20  ose.identifiers 
8c20: 61 72 65 20 6e 6f 74 20 61 6c 72 65 61 64 79 20  are not already 
8c30: 75 73 65 64 20 66 6f 72 20 73 6f 6d 65 20 6f 74  used for some ot
8c40: 68 65 72 20 6d 65 61 6e 69 6e 67 2e 20 20 49 66  her meaning.  If
8c50: 20 74 68 65 72 65 20 61 6c 72 65 61 64 79 0a 65   there already.e
8c60: 78 69 73 74 73 20 63 6f 6c 75 6d 6e 73 20 6f 72  xists columns or
8c70: 20 74 61 62 6c 65 73 20 6f 72 20 6f 74 68 65 72   tables or other
8c80: 20 6f 62 6a 65 63 74 73 20 6e 61 6d 65 64 20 54   objects named T
8c90: 52 55 45 20 6f 72 20 46 41 4c 53 45 2c 20 74 68  RUE or FALSE, th
8ca0: 65 6e 20 66 6f 72 0a 74 68 65 20 73 61 6b 65 20  en for.the sake 
8cb0: 6f 66 20 62 61 63 6b 77 61 72 64 73 20 63 6f 6d  of backwards com
8cc0: 70 61 74 69 62 69 6c 69 74 79 2c 20 74 68 65 20  patibility, the 
8cd0: 54 52 55 45 20 61 6e 64 20 46 41 4c 53 45 20 69  TRUE and FALSE i
8ce0: 64 65 6e 74 69 66 69 65 72 73 20 72 65 66 65 72  dentifiers refer
8cf0: 0a 74 6f 20 74 68 6f 73 65 20 6f 74 68 65 72 20  .to those other 
8d00: 6f 62 6a 65 63 74 73 2c 20 6e 6f 74 20 74 6f 20  objects, not to 
8d10: 74 68 65 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75  the boolean valu
8d20: 65 73 2e 0a 0a 3c 70 3e 54 68 65 20 62 6f 6f 6c  es...<p>The bool
8d30: 65 61 6e 20 69 64 65 6e 74 69 66 69 65 72 73 20  ean identifiers 
8d40: 54 52 55 45 20 61 6e 64 20 46 41 4c 53 45 20 61  TRUE and FALSE a
8d50: 72 65 20 75 73 75 61 6c 6c 79 20 6a 75 73 74 20  re usually just 
8d60: 61 6c 69 61 73 65 73 20 66 6f 72 0a 74 68 65 20  aliases for.the 
8d70: 69 6e 74 65 67 65 72 20 76 61 6c 75 65 73 20 31  integer values 1
8d80: 20 61 6e 64 20 30 2c 20 72 65 73 70 65 63 74 69   and 0, respecti
8d90: 76 65 6c 79 2e 20 20 48 6f 77 65 76 65 72 2c 20  vely.  However, 
8da0: 69 66 20 54 52 55 45 20 6f 72 20 46 41 4c 53 45  if TRUE or FALSE
8db0: 0a 6f 63 63 75 72 20 6f 6e 20 74 68 65 20 72 69  .occur on the ri
8dc0: 67 68 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66  ght-hand side of
8dd0: 20 61 6e 20 49 53 20 6f 70 65 72 61 74 6f 72 2c   an IS operator,
8de0: 20 74 68 65 6e 20 74 68 65 79 20 66 6f 72 6d 20   then they form 
8df0: 6e 65 77 0a 75 6e 61 72 79 20 70 6f 73 74 66 69  new.unary postfi
8e00: 78 20 6f 70 65 72 61 74 6f 72 73 20 22 49 53 20  x operators "IS 
8e10: 54 52 55 45 22 20 61 6e 64 20 22 49 53 20 46 41  TRUE" and "IS FA
8e20: 4c 53 45 22 20 77 68 69 63 68 20 74 65 73 74 20  LSE" which test 
8e30: 74 68 65 20 62 6f 6f 6c 65 61 6e 0a 76 61 6c 75  the boolean.valu
8e40: 65 20 6f 66 20 74 68 65 20 6f 70 65 72 61 6e 64  e of the operand
8e50: 20 6f 6e 20 74 68 65 20 6c 65 66 74 2e 0a 0a 3c   on the left...<
8e60: 68 33 3e 46 75 6e 63 74 69 6f 6e 73 3c 2f 68 33  h3>Functions</h3
8e70: 3e 0a 3c 70 3e 53 51 4c 69 74 65 20 73 75 70 70  >.<p>SQLite supp
8e80: 6f 72 74 73 20 6d 61 6e 79 20 3c 61 20 68 72 65  orts many <a hre
8e90: 66 3d 22 6c 61 6e 67 5f 63 6f 72 65 66 75 6e 63  f="lang_corefunc
8ea0: 2e 68 74 6d 6c 22 3e 73 69 6d 70 6c 65 3c 2f 61  .html">simple</a
8eb0: 3e 2c 20 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67  >, <a href="lang
8ec0: 5f 61 67 67 66 75 6e 63 2e 68 74 6d 6c 22 3e 61  _aggfunc.html">a
8ed0: 67 67 72 65 67 61 74 65 3c 2f 61 3e 2c 0a 61 6e  ggregate</a>,.an
8ee0: 64 20 3c 61 20 68 72 65 66 3d 22 77 69 6e 64 6f  d <a href="windo
8ef0: 77 66 75 6e 63 74 69 6f 6e 73 2e 68 74 6d 6c 22  wfunctions.html"
8f00: 3e 77 69 6e 64 6f 77 3c 2f 61 3e 0a 53 51 4c 20  >window</a>.SQL 
8f10: 66 75 6e 63 74 69 6f 6e 73 2e 20 20 46 6f 72 20  functions.  For 
8f20: 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 70 75 72  presentation pur
8f30: 70 6f 73 65 73 2c 20 73 69 6d 70 6c 65 20 66 75  poses, simple fu
8f40: 6e 63 74 69 6f 6e 73 20 61 72 65 20 66 75 72 74  nctions are furt
8f50: 68 65 72 0a 73 75 62 64 69 76 69 64 65 64 20 69  her.subdivided i
8f60: 6e 74 6f 20 3c 61 20 68 72 65 66 3d 22 6c 61 6e  nto <a href="lan
8f70: 67 5f 63 6f 72 65 66 75 6e 63 2e 68 74 6d 6c 22  g_corefunc.html"
8f80: 3e 63 6f 72 65 20 66 75 6e 63 74 69 6f 6e 73 3c  >core functions<
8f90: 2f 61 3e 2c 20 3c 61 20 68 72 65 66 3d 22 6c 61  /a>, <a href="la
8fa0: 6e 67 5f 64 61 74 65 66 75 6e 63 2e 68 74 6d 6c  ng_datefunc.html
8fb0: 22 3e 64 61 74 65 2d 74 69 6d 65 20 66 75 6e 63  ">date-time func
8fc0: 74 69 6f 6e 73 3c 2f 61 3e 2c 0a 61 6e 64 20 3c  tions</a>,.and <
8fd0: 61 20 68 72 65 66 3d 22 6a 73 6f 6e 31 2e 68 74  a href="json1.ht
8fe0: 6d 6c 22 3e 4a 53 4f 4e 20 66 75 6e 63 74 69 6f  ml">JSON functio
8ff0: 6e 73 3c 2f 61 3e 2e 0a 41 70 70 6c 69 63 61 74  ns</a>..Applicat
9000: 69 6f 6e 73 20 63 61 6e 20 61 64 64 20 6e 65 77  ions can add new
9010: 20 66 75 6e 63 74 69 6f 6e 73 2c 20 77 72 69 74   functions, writ
9020: 74 65 6e 20 69 6e 20 43 2f 43 2b 2b 2c 20 75 73  ten in C/C++, us
9030: 69 6e 67 20 74 68 65 0a 3c 61 20 68 72 65 66 3d  ing the.<a href=
9040: 22 63 33 72 65 66 2f 63 72 65 61 74 65 5f 66 75  "c3ref/create_fu
9050: 6e 63 74 69 6f 6e 2e 68 74 6d 6c 22 3e 73 71 6c  nction.html">sql
9060: 69 74 65 33 5f 63 72 65 61 74 65 5f 66 75 6e 63  ite3_create_func
9070: 74 69 6f 6e 28 29 3c 2f 61 3e 20 69 6e 74 65 72  tion()</a> inter
9080: 66 61 63 65 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 49  face..</p>..<p>I
9090: 74 20 69 73 20 70 6f 73 73 69 62 6c 65 20 74 6f  t is possible to
90a0: 20 68 61 76 65 20 61 6e 20 61 67 67 72 65 67 61   have an aggrega
90b0: 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68  te function with
90c0: 20 74 68 65 20 73 61 6d 65 20 6e 61 6d 65 20 61   the same name a
90d0: 73 20 61 0a 73 69 6d 70 6c 65 20 66 75 6e 63 74  s a.simple funct
90e0: 69 6f 6e 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20  ion, as long as 
90f0: 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72  the number of ar
9100: 67 75 6d 65 6e 74 73 20 66 6f 72 20 74 68 65 20  guments for the 
9110: 74 77 6f 20 66 6f 72 6d 73 20 6f 66 20 74 68 65  two forms of the
9120: 0a 66 75 6e 63 74 69 6f 6e 20 61 72 65 20 64 69  .function are di
9130: 66 66 65 72 65 6e 74 2e 20 20 46 6f 72 20 65 78  fferent.  For ex
9140: 61 6d 70 6c 65 2c 20 74 68 65 20 3c 61 20 68 72  ample, the <a hr
9150: 65 66 3d 22 6c 61 6e 67 5f 61 67 67 66 75 6e 63  ef="lang_aggfunc
9160: 2e 68 74 6d 6c 23 6d 61 78 67 67 75 6e 63 22 3e  .html#maxggunc">
9170: 6d 61 78 28 29 3c 2f 61 3e 20 66 75 6e 63 74 69  max()</a> functi
9180: 6f 6e 20 77 69 74 68 20 61 0a 73 69 6e 67 6c 65  on with a.single
9190: 20 61 72 67 75 6d 65 6e 74 20 69 73 20 61 6e 20   argument is an 
91a0: 61 67 67 72 65 67 61 74 65 20 61 6e 64 20 74 68  aggregate and th
91b0: 65 20 3c 61 20 68 72 65 66 3d 22 6c 61 6e 67 5f  e <a href="lang_
91c0: 63 6f 72 65 66 75 6e 63 2e 68 74 6d 6c 23 6d 61  corefunc.html#ma
91d0: 78 6f 72 65 75 6e 63 22 3e 6d 61 78 28 29 3c 2f  xoreunc">max()</
91e0: 61 3e 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68  a> function with
91f0: 20 74 77 6f 20 6f 72 20 6d 6f 72 65 0a 61 72 67   two or more.arg
9200: 75 6d 65 6e 74 73 20 69 73 20 61 20 73 69 6d 70  uments is a simp
9210: 6c 65 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 0a     le function....