sqllogictest
Hex Artifact Content
Not logged in

Artifact 471dbd2d3495625cc52cc8b55662d872370fadc8:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
02d0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
02e0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
02f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 30 0d 0a  owsort label-0..
0300: 53 45 4c 45 43 54 20 2b 20 39 34 20 2a 20 2d 20  SELECT + 94 * - 
0310: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
0320: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
0330: 2d 2d 2d 2d 0d 0a 2d 32 38 32 0d 0a 0d 0a 73 6b  ----..-282....sk
0340: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
0350: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
0360: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
0370: 65 6c 2d 30 0d 0a 53 45 4c 45 43 54 20 2b 20 39  el-0..SELECT + 9
0380: 34 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  4 * - + COUNT ( 
0390: 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
03a0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38   tab0..----..-28
03b0: 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
03c0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
03d0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
03e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
03f0: 6c 61 62 65 6c 2d 31 0d 0a 53 45 4c 45 43 54 20  label-1..SELECT 
0400: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 43 41 53  DISTINCT + + CAS
0410: 54 28 20 2d 20 32 38 20 41 53 20 53 49 47 4e 45  T( - 28 AS SIGNE
0420: 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  D ) AS col2 FROM
0430: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
0440: 2d 2d 2d 0d 0a 2d 32 38 0d 0a 0d 0a 73 6b 69 70  ---..-28....skip
0450: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
0460: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
0470: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0480: 2d 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  -1..SELECT DISTI
0490: 4e 43 54 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  NCT + + CAST ( -
04a0: 20 32 38 20 41 53 20 49 4e 54 45 47 45 52 20 29   28 AS INTEGER )
04b0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
04c0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
04d0: 0d 0a 2d 32 38 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-28....query I
04e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
04f0: 20 28 20 37 34 20 29 20 2b 20 2d 20 63 6f 6c 30   ( 74 ) + - col0
0500: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
0510: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d  r0..----..-13..-
0520: 32 33 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  23..59....onlyif
0530: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
0540: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
0550: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
0560: 65 6c 2d 33 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  el-3..SELECT MIN
0570: 28 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29  ( + ( - + col1 )
0580: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
0590: 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69  --..-81....skipi
05a0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
05b0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
05c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
05d0: 33 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20  3..SELECT MIN ( 
05e0: 2b 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 29  + ( - + col1 ) )
05f0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
0600: 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-81....query I
0610: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
0620: 54 20 34 31 2c 20 63 6f 6c 32 20 2a 20 32 36 20  T 41, col2 * 26 
0630: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
0640: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d 0a 31 32 32  0..----..41..122
0650: 32 0d 0a 34 31 0d 0a 32 35 37 34 0d 0a 34 31 0d  2..41..2574..41.
0660: 0a 32 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .260....onlyif m
0670: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
0680: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
0690: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
06a0: 6c 2d 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  l-5..SELECT + CO
06b0: 55 4e 54 28 20 2d 20 63 6f 6c 32 20 29 20 41 53  UNT( - col2 ) AS
06c0: 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 28 20 2a 20   col2, COUNT( * 
06d0: 29 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  ) - COUNT( * ) A
06e0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
06f0: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 30 0d 0a 0d 0a  ..----..3..0....
0700: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
0710: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
0720: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
0730: 6c 61 62 65 6c 2d 35 0d 0a 53 45 4c 45 43 54 20  label-5..SELECT 
0740: 2b 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 32  + COUNT ( - col2
0750: 20 29 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55 4e   ) AS col2, COUN
0760: 54 20 28 20 2a 20 29 20 2d 20 43 4f 55 4e 54 20  T ( * ) - COUNT 
0770: 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
0780: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab2..----..3
0790: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
07a0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
07b0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
07c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
07d0: 74 20 6c 61 62 65 6c 2d 36 0d 0a 53 45 4c 45 43  t label-6..SELEC
07e0: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
07f0: 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d  * - + col0 + - -
0800: 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53 20 53   CAST( col2 AS S
0810: 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
0820: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
0830: 31 36 38 0d 0a 2d 31 38 31 37 0d 0a 32 0d 0a 0d  168..-1817..2...
0840: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
0850: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
0860: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
0870: 6c 61 62 65 6c 2d 36 0d 0a 53 45 4c 45 43 54 20  label-6..SELECT 
0880: 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20  DISTINCT col1 * 
0890: 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 43  - + col0 + - - C
08a0: 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20 49 4e  AST ( col2 AS IN
08b0: 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
08c0: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
08d0: 31 36 38 0d 0a 2d 31 38 31 37 0d 0a 32 0d 0a 0d  168..-1817..2...
08e0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
08f0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
0900: 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
0910: 45 20 4e 55 4c 4c 20 3e 20 63 6f 6c 32 0d 0a 2d  E NULL > col2..-
0920: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
0930: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
0940: 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 34 33 20 2d   - col0 * - 43 -
0950: 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f   + col1 + - - co
0960: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
0970: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 37 33  cor0..----..1973
0980: 0d 0a 32 37 33 39 0d 0a 33 32 33 33 0d 0a 0d 0a  ..2739..3233....
0990: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
09a0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
09b0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
09c0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
09d0: 2d 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  -9..SELECT DISTI
09e0: 4e 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  NCT - CAST( NULL
09f0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d   AS SIGNED ) * -
0a00: 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
0a10: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
0a20: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
0a30: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
0a40: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
0a50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
0a60: 6c 61 62 65 6c 2d 39 0d 0a 53 45 4c 45 43 54 20  label-9..SELECT 
0a70: 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20  DISTINCT - CAST 
0a80: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
0a90: 52 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 41  R ) * - - col1 A
0aa0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
0ab0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
0ac0: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
0ad0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
0ae0: 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b  ALL + - col1 * +
0af0: 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 41   col2 + + col2 A
0b00: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
0b10: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
0b20: 35 30 0d 0a 2d 33 30 34 30 0d 0a 2d 33 38 32 38  50..-3040..-3828
0b30: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
0b40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
0b50: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
0b60: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  cor0 WHERE + col
0b70: 30 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 35 34  0 NOT BETWEEN 54
0b80: 20 41 4e 44 20 2d 20 32 34 0d 0a 2d 2d 2d 2d 0d   AND - 24..----.
0b90: 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a  .-10..-47..-99..
0ba0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
0bb0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
0bc0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
0bd0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 0d 0a 53  sort label-12..S
0be0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
0bf0: 20 4d 41 58 28 20 28 20 2b 20 38 38 20 29 20 29   MAX( ( + 88 ) )
0c00: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
0c10: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
0c20: 0d 0a 38 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..88....skipif m
0c30: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
0c40: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
0c50: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 0d  owsort label-12.
0c60: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
0c70: 20 2b 20 4d 41 58 20 28 20 28 20 2b 20 38 38 20   + MAX ( ( + 88 
0c80: 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
0c90: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
0ca0: 2d 2d 2d 0d 0a 38 38 0d 0a 0d 0a 71 75 65 72 79  ---..88....query
0cb0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
0cc0: 43 54 20 35 32 20 2b 20 2b 20 2d 20 39 33 20 46  CT 52 + + - 93 F
0cd0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
0ce0: 2d 2d 2d 0d 0a 2d 34 31 0d 0a 2d 34 31 0d 0a 2d  ---..-41..-41..-
0cf0: 34 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  41....onlyif mys
0d00: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
0d10: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
0d20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
0d30: 34 0d 0a 53 45 4c 45 43 54 20 38 39 20 2b 20 28  4..SELECT 89 + (
0d40: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
0d50: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
0d60: 0a 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .86....skipif my
0d70: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
0d80: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
0d90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 0d 0a  wsort label-14..
0da0: 53 45 4c 45 43 54 20 38 39 20 2b 20 28 20 2d 20  SELECT 89 + ( - 
0db0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 46 52  COUNT ( * ) ) FR
0dc0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38  OM tab2..----..8
0dd0: 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  6....skipif post
0de0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
0df0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
0e00: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
0e10: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
0e20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
0e30: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b  ELECT ALL col2 +
0e40: 20 2d 20 36 37 20 63 6f 6c 32 20 46 52 4f 4d 20   - 67 col2 FROM 
0e50: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d  tab0..----..-20.
0e60: 0a 2d 35 37 0d 0a 33 32 0d 0a 0d 0a 6f 6e 6c 79  .-57..32....only
0e70: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
0e80: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
0e90: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
0ea0: 61 62 65 6c 2d 31 36 0d 0a 53 45 4c 45 43 54 20  abel-16..SELECT 
0eb0: 2b 20 53 55 4d 28 20 2b 20 2d 20 28 20 2b 20 2d  + SUM( + - ( + -
0ec0: 20 33 35 20 29 20 29 20 2b 20 2b 20 39 35 20 46   35 ) ) + + 95 F
0ed0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
0ee0: 32 30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  200....skipif my
0ef0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
0f00: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
0f10: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 0d 0a  wsort label-16..
0f20: 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20 2b  SELECT + SUM ( +
0f30: 20 2d 20 28 20 2b 20 2d 20 33 35 20 29 20 29 20   - ( + - 35 ) ) 
0f40: 2b 20 2b 20 39 35 20 46 52 4f 4d 20 74 61 62 32  + + 95 FROM tab2
0f50: 0d 0a 2d 2d 2d 2d 0d 0a 32 30 30 0d 0a 0d 0a 71  ..----..200....q
0f60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
0f70: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
0f80: 31 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 46  1 + ( + col2 ) F
0f90: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
0fa0: 32 31 0d 0a 35 34 0d 0a 38 32 0d 0a 0d 0a 71 75  21..54..82....qu
0fb0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
0fc0: 45 4c 45 43 54 20 33 38 20 2b 20 2b 20 2d 20 37  ELECT 38 + + - 7
0fd0: 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + - col1 FROM t
0fe0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a  ab0..----..-50..
0ff0: 31 30 0d 0a 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  10..30....onlyif
1000: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1010: 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
1020: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1030: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1040: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 0d  owsort label-19.
1050: 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55  .SELECT CAST( NU
1060: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
1070: 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   - - COUNT( * ) 
1080: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1090: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
10a0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10b0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
10c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10d0: 6c 61 62 65 6c 2d 31 39 0d 0a 53 45 4c 45 43 54  label-19..SELECT
10e0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
10f0: 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2d 20  INTEGER ) + - - 
1100: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
1110: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
1120: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
1130: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1140: 4c 45 43 54 20 2d 20 2b 20 32 31 20 41 53 20 63  LECT - + 21 AS c
1150: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1160: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   cor0..----..-21
1170: 0d 0a 2d 32 31 0d 0a 2d 32 31 0d 0a 0d 0a 71 75  ..-21..-21....qu
1180: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1190: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11a0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
11b0: 63 6f 72 30 20 57 48 45 52 45 20 31 30 20 2b 20  cor0 WHERE 10 + 
11c0: 63 6f 6c 32 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d  col2 < NULL..---
11d0: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
11e0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
11f0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1200: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1210: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1220: 74 20 6c 61 62 65 6c 2d 32 32 0d 0a 53 45 4c 45  t label-22..SELE
1230: 43 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c  CT ALL CAST( NUL
1240: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20  L AS SIGNED ) - 
1250: 2d 20 53 55 4d 28 20 41 4c 4c 20 2b 20 2b 20 63  - SUM( ALL + + c
1260: 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol0 ) FROM tab2 
1270: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
1280: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1290: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
12a0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
12b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 0d 0a  wsort label-22..
12c0: 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20  SELECT ALL CAST 
12d0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
12e0: 52 20 29 20 2d 20 2d 20 53 55 4d 20 28 20 41 4c  R ) - - SUM ( AL
12f0: 4c 20 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  L + + col0 ) FRO
1300: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1310: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
1320: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1330: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
1340: 6f 6c 31 20 2a 20 2b 20 28 20 2d 20 2d 20 32 34  ol1 * + ( - - 24
1350: 20 29 20 2b 20 2d 20 2d 20 32 30 20 2a 20 2d 20   ) + - - 20 * - 
1360: 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c  + col1 + + + col
1370: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
1380: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a  or0..----..101..
1390: 31 37 31 0d 0a 33 33 39 0d 0a 0d 0a 71 75 65 72  171..339....quer
13a0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
13b0: 45 43 54 20 2b 20 28 20 2d 20 34 20 29 20 2a 20  ECT + ( - 4 ) * 
13c0: 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c  + col1 + + + col
13d0: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
13e0: 2d 0d 0a 2d 31 38 31 0d 0a 2d 32 31 30 0d 0a 2d  -..-181..-210..-
13f0: 32 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  268....onlyif my
1400: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1410: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1420: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1430: 32 35 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b  25..SELECT + ( +
1440: 20 28 20 2d 20 34 35 20 29 20 29 20 2a 20 2b 20   ( - 45 ) ) * + 
1450: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
1460: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 35  tab0..----..-135
1470: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1480: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1490: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
14a0: 72 74 20 6c 61 62 65 6c 2d 32 35 0d 0a 53 45 4c  rt label-25..SEL
14b0: 45 43 54 20 2b 20 28 20 2b 20 28 20 2d 20 34 35  ECT + ( + ( - 45
14c0: 20 29 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28   ) ) * + COUNT (
14d0: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   * ) FROM tab0..
14e0: 2d 2d 2d 2d 0d 0a 2d 31 33 35 0d 0a 0d 0a 6f 6e  ----..-135....on
14f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1500: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1510: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1520: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
1530: 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  6..SELECT ALL - 
1540: 43 41 53 54 28 20 35 36 20 41 53 20 53 49 47 4e  CAST( 56 AS SIGN
1550: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  ED ) FROM tab2 A
1560: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
1570: 36 0d 0a 2d 35 36 0d 0a 2d 35 36 0d 0a 0d 0a 73  6..-56..-56....s
1580: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1590: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
15a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15b0: 62 65 6c 2d 32 36 0d 0a 53 45 4c 45 43 54 20 41  bel-26..SELECT A
15c0: 4c 4c 20 2d 20 43 41 53 54 20 28 20 35 36 20 41  LL - CAST ( 56 A
15d0: 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
15e0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
15f0: 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 35 36 0d 0a 2d  ---..-56..-56..-
1600: 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  56....query III 
1610: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1620: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
1630: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
1640: 6c 31 20 3e 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  l1 > + col0 + - 
1650: 31 37 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 32 31  17..----..87..21
1660: 0d 0a 31 30 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d  ..10..97..1..99.
1670: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1680: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1690: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
16a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16b0: 62 65 6c 2d 32 38 0d 0a 53 45 4c 45 43 54 20 41  bel-28..SELECT A
16c0: 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31  LL col2 * - col1
16d0: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
16e0: 20 53 49 47 4e 45 44 20 29 20 2f 20 2d 20 35 39   SIGNED ) / - 59
16f0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1700: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  b1 cor0..----..N
1710: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
1720: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1730: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1740: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1750: 74 20 6c 61 62 65 6c 2d 32 38 0d 0a 53 45 4c 45  t label-28..SELE
1760: 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20  CT ALL col2 * - 
1770: 63 6f 6c 31 20 2b 20 43 41 53 54 20 28 20 4e 55  col1 + CAST ( NU
1780: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
1790: 2f 20 2d 20 35 39 20 41 53 20 63 6f 6c 31 20 46  / - 59 AS col1 F
17a0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
17b0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
17c0: 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
17d0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
17e0: 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
17f0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1800: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1810: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 0d 0a  wsort label-29..
1820: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 35  SELECT ALL - - 5
1830: 35 20 44 49 56 20 2d 20 43 4f 55 4e 54 28 20 2a  5 DIV - COUNT( *
1840: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
1850: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d  cor0..----..-18.
1860: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1870: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1880: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1890: 74 20 6c 61 62 65 6c 2d 32 39 0d 0a 53 45 4c 45  t label-29..SELE
18a0: 43 54 20 41 4c 4c 20 2d 20 2d 20 35 35 20 2f 20  CT ALL - - 55 / 
18b0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
18c0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
18d0: 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 0d 0a 6f 6e  .----..-18....on
18e0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
18f0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1900: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1910: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
1920: 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
1930: 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT + CAST( NULL 
1940: 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 2b 20  AS SIGNED ) / + 
1950: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
1960: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1970: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
1980: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1990: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
19a0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 0d 0a 53  sort label-30..S
19b0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
19c0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
19d0: 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20 63 6f  INTEGER ) / + co
19e0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
19f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
1a00: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1a10: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
1a20: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1a30: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1a40: 6c 61 62 65 6c 2d 33 31 0d 0a 53 45 4c 45 43 54  label-31..SELECT
1a50: 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 35 38 20 41   - col2 * - 58 A
1a60: 53 20 63 6f 6c 31 2c 20 2b 20 32 38 20 44 49 56  S col1, + 28 DIV
1a70: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
1a80: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
1a90: 33 33 34 0d 0a 30 0d 0a 32 33 32 30 0d 0a 30 0d  334..0..2320..0.
1aa0: 0a 33 33 36 34 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .3364..0....skip
1ab0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1ac0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1ad0: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1ae0: 6c 2d 33 31 0d 0a 53 45 4c 45 43 54 20 2d 20 63  l-31..SELECT - c
1af0: 6f 6c 32 20 2a 20 2d 20 35 38 20 41 53 20 63 6f  ol2 * - 58 AS co
1b00: 6c 31 2c 20 2b 20 32 38 20 2f 20 63 6f 6c 31 20  l1, + 28 / col1 
1b10: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1b20: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 33 34 0d 0a 30  2..----..1334..0
1b30: 0d 0a 32 33 32 30 0d 0a 30 0d 0a 33 33 36 34 0d  ..2320..0..3364.
1b40: 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
1b50: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1b60: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1b70: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
1b80: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
1b90: 43 54 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e  CT + SUM( DISTIN
1ba0: 43 54 20 2b 20 2b 20 34 32 20 29 20 46 52 4f 4d  CT + + 42 ) FROM
1bb0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d   tab1..----..42.
1bc0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1bd0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1be0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1bf0: 74 20 6c 61 62 65 6c 2d 33 32 0d 0a 53 45 4c 45  t label-32..SELE
1c00: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55  CT DISTINCT + SU
1c10: 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  M ( DISTINCT + +
1c20: 20 34 32 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   42 ) FROM tab1.
1c30: 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a 71 75 65  .----..42....que
1c40: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1c50: 4c 45 43 54 20 34 34 20 2a 20 2b 20 38 38 20 46  LECT 44 * + 88 F
1c60: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1c70: 33 38 37 32 0d 0a 33 38 37 32 0d 0a 33 38 37 32  3872..3872..3872
1c80: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
1c90: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1ca0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1cb0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1cc0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1cd0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1ce0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1cf0: 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d  + col1 col0 FROM
1d00: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
1d10: 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20  + + col0 IS NOT 
1d20: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
1d30: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1d40: 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 2b 20  ELECT ALL ( - + 
1d50: 38 35 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  85 ) FROM tab2..
1d60: 2d 2d 2d 2d 0d 0a 2d 38 35 0d 0a 2d 38 35 0d 0a  ----..-85..-85..
1d70: 2d 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -85....query II 
1d80: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d90: 41 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29  ALL - ( - col0 )
1da0: 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 2a   AS col0, col0 *
1db0: 20 2b 20 36 35 20 2a 20 2b 20 63 6f 6c 32 20 41   + 65 * + col2 A
1dc0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1dd0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   cor0..----..15.
1de0: 0a 34 35 38 32 35 0d 0a 38 37 0d 0a 35 36 35 35  .45825..87..5655
1df0: 30 0d 0a 39 37 0d 0a 36 32 34 31 39 35 0d 0a 0d  0..97..624195...
1e00: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1e10: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1e20: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1e30: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1e40: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1e50: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1e60: 54 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63  T - - col0 * - c
1e70: 6f 6c 30 20 2a 20 2b 20 2b 20 28 20 2d 20 2b 20  ol0 * + + ( - + 
1e80: 38 20 29 20 2b 20 37 37 20 2a 20 2b 20 63 6f 6c  8 ) + 77 * + col
1e90: 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  2 col2 FROM tab1
1ea0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1eb0: 32 38 32 30 30 0d 0a 36 32 33 34 33 0d 0a 37 31  28200..62343..71
1ec0: 34 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  484....query I r
1ed0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1ee0: 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2d 20 31  ISTINCT col2 - 1
1ef0: 39 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f  9 * + + col1 FRO
1f00: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1f10: 2d 2d 2d 2d 0d 0a 2d 31 34 39 32 0d 0a 2d 33 38  ----..-1492..-38
1f20: 39 0d 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  9..80....onlyif 
1f30: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1f40: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1f50: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f60: 6c 2d 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-39..SELECT ALL
1f70: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   + COUNT( * ) + 
1f80: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
1f90: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
1fa0: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  cor0 WHERE + col
1fb0: 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
1fc0: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
1fd0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1fe0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1ff0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 0d 0a 53  sort label-39..S
2000: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
2010: 54 20 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 20  T ( * ) + COUNT 
2020: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
2030: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2040: 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20  WHERE + col2 IS 
2050: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
2060: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2070: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d  ..SELECT ALL + -
2080: 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 30 20 2b   col1 - + col0 +
2090: 20 2d 20 2d 20 28 20 2d 20 2b 20 34 37 20 29 20   - - ( - + 47 ) 
20a0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
20b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 34 0d 0a 2d  0..----..-144..-
20c0: 31 38 38 0d 0a 2d 31 38 39 0d 0a 0d 0a 71 75 65  188..-189....que
20d0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
20e0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
20f0: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
2100: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
2110: 4e 55 4c 4c 20 29 20 3c 3e 20 2b 20 2d 20 63 6f  NULL ) <> + - co
2120: 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d  l2 + + - col2..-
2130: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
2140: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2150: 20 32 32 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b   22 * + col0 + +
2160: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
2170: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2180: 0a 31 39 32 34 0d 0a 32 32 33 33 0d 0a 33 37 37  .1924..2233..377
2190: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21a0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 36  ort..SELECT + 26
21b0: 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * - col2 AS col
21c0: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
21d0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 33 34  or0..----..-1534
21e0: 0d 0a 2d 31 37 36 38 0d 0a 2d 32 34 39 36 0d 0a  ..-1768..-2496..
21f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2200: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2210: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2220: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2230: 65 6c 2d 34 34 0d 0a 53 45 4c 45 43 54 20 44 49  el-44..SELECT DI
2240: 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 20  STINCT - + col2 
2250: 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  * col2 FROM tab1
2260: 20 57 48 45 52 45 20 2b 20 43 41 53 54 28 20 4e   WHERE + CAST( N
2270: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2280: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
2290: 33 34 38 31 0d 0a 2d 34 36 32 34 0d 0a 2d 39 32  3481..-4624..-92
22a0: 31 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  16....skipif mys
22b0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22c0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
22d0: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 0d 0a 53  sort label-44..S
22e0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
22f0: 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 46   + col2 * col2 F
2300: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
2310: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2320: 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c  INTEGER ) IS NUL
2330: 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 38 31 0d 0a  L..----..-3481..
2340: 2d 34 36 32 34 0d 0a 2d 39 32 31 36 0d 0a 0d 0a  -4624..-9216....
2350: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2360: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2370: 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 38 35 20 46   col1 + + - 85 F
2380: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2390: 2d 34 0d 0a 2d 36 34 0d 0a 2d 38 34 0d 0a 0d 0a  -4..-64..-84....
23a0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
23b0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
23c0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
23d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23e0: 2d 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -46..SELECT ALL 
23f0: 63 6f 6c 30 20 44 49 56 20 2d 20 2b 20 63 6f 6c  col0 DIV - + col
2400: 32 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2b  2 + + col2 + - +
2410: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2420: 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 2d 32 35 0d  .----..-18..-25.
2430: 0a 2d 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-25....skipif m
2440: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2450: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2460: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 0d  owsort label-46.
2470: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30  .SELECT ALL col0
2480: 20 2f 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20   / - + col2 + + 
2490: 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 30 20  col2 + - + col0 
24a0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
24b0: 0a 2d 31 38 0d 0a 2d 32 35 0d 0a 2d 32 35 0d 0a  .-18..-25..-25..
24c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
24d0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
24e0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
24f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53  sort label-47..S
2500: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f  ELECT ALL + - CO
2510: 55 4e 54 28 20 2a 20 29 20 2a 20 39 33 20 46 52  UNT( * ) * 93 FR
2520: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
2530: 2d 2d 0d 0a 2d 32 37 39 0d 0a 0d 0a 73 6b 69 70  --..-279....skip
2540: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2550: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2560: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2570: 2d 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -47..SELECT ALL 
2580: 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
2590: 2a 20 39 33 20 46 52 4f 4d 20 74 61 62 31 20 63  * 93 FROM tab1 c
25a0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 39 0d  or0..----..-279.
25b0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
25c0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  rt..SELECT ALL (
25d0: 20 2d 20 33 31 20 29 20 41 53 20 63 6f 6c 30 20   - 31 ) AS col0 
25e0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
25f0: 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31 0d 0a  ----..-31..-31..
2600: 2d 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -31....query III
2610: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2620: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
2630: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 28 20   cor0 WHERE ( ( 
2640: 2b 20 63 6f 6c 32 20 29 20 3c 3d 20 63 6f 6c 32  + col2 ) <= col2
2650: 20 2a 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   * - col2 )..---
2660: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
2670: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
2680: 6c 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f  l1 AS col1, + co
2690: 6c 31 20 2a 20 2d 20 28 20 32 20 29 20 2a 20 63  l1 * - ( 2 ) * c
26a0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
26b0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
26c0: 0a 2d 35 32 30 32 0d 0a 36 37 0d 0a 2d 38 39 37  .-5202..67..-897
26d0: 38 0d 0a 37 37 0d 0a 2d 31 31 38 35 38 0d 0a 0d  8..77..-11858...
26e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26f0: 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20  ..SELECT + col0 
2700: 2a 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  * + - col2 FROM 
2710: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2720: 2d 2d 0d 0a 2d 34 38 39 36 0d 0a 2d 35 30 31 35  --..-4896..-5015
2730: 0d 0a 2d 36 31 38 38 0d 0a 0d 0a 71 75 65 72 79  ..-6188....query
2740: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2750: 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32 20  CT ALL - - col2 
2760: 2a 20 2d 20 28 20 34 35 20 29 20 41 53 20 63 6f  * - ( 45 ) AS co
2770: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2780: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 31  cor0..----..-211
2790: 35 0d 0a 2d 34 34 35 35 0d 0a 2d 34 35 30 0d 0a  5..-4455..-450..
27a0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
27b0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
27c0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
27d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27e0: 65 6c 2d 35 33 0d 0a 53 45 4c 45 43 54 20 2d 20  el-53..SELECT - 
27f0: 63 6f 6c 32 20 44 49 56 20 2b 20 2b 20 33 37 20  col2 DIV + + 37 
2800: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2810: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2820: 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73 6b  .-1..-1..0....sk
2830: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2840: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2850: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2860: 65 6c 2d 35 33 0d 0a 53 45 4c 45 43 54 20 2d 20  el-53..SELECT - 
2870: 63 6f 6c 32 20 2f 20 2b 20 2b 20 33 37 20 41 53  col2 / + + 37 AS
2880: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2890: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
28a0: 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 71 75 65 72  1..-1..0....quer
28b0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
28c0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
28d0: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
28e0: 4e 4f 54 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 31  NOT - ( + + col1
28f0: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
2900: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2910: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2920: 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2d  ALL + col2 * + -
2930: 20 36 38 20 46 52 4f 4d 20 74 61 62 30 20 41 53   68 FROM tab0 AS
2940: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31   cor0..----..-31
2950: 39 36 0d 0a 2d 36 37 33 32 0d 0a 2d 36 38 30 0d  96..-6732..-680.
2960: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2970: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2980: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
2990: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 0d  owsort label-56.
29a0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
29b0: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
29c0: 2d 20 32 31 2c 20 2b 20 35 32 20 2a 20 2d 20 43  - 21, + 52 * - C
29d0: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
29e0: 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab2 cor0 WHERE N
29f0: 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ULL = NULL..----
2a00: 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..0....skipif
2a10: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2a20: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2a30: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a40: 35 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  56..SELECT DISTI
2a50: 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  NCT + COUNT ( * 
2a60: 29 20 2a 20 2d 20 32 31 2c 20 2b 20 35 32 20 2a  ) * - 21, + 52 *
2a70: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
2a80: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
2a90: 45 52 45 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d  ERE NULL = NULL.
2aa0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  .----..0..0....o
2ab0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2ac0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2ad0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2ae0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2af0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2b00: 6c 2d 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-57..SELECT ALL
2b10: 20 2b 20 2b 20 38 34 20 44 49 56 20 2b 20 2b 20   + + 84 DIV + + 
2b20: 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20  SUM( DISTINCT + 
2b30: 2d 20 38 36 20 29 20 2a 20 39 39 20 46 52 4f 4d  - 86 ) * 99 FROM
2b40: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2b50: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
2b60: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2b70: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2b80: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
2b90: 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  7..SELECT ALL + 
2ba0: 2b 20 38 34 20 2f 20 2b 20 2b 20 53 55 4d 20 28  + 84 / + + SUM (
2bb0: 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 38 36   DISTINCT + - 86
2bc0: 20 29 20 2a 20 39 39 20 46 52 4f 4d 20 74 61 62   ) * 99 FROM tab
2bd0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2be0: 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .0....query I ro
2bf0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2c00: 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20  + col1 * + col0 
2c10: 2a 20 2b 20 63 6f 6c 31 20 2b 20 36 34 20 2b 20  * + col1 + 64 + 
2c20: 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  + col0 AS col0 F
2c30: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
2c40: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
2c50: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2c60: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2c70: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2c80: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c90: 6c 2d 35 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43  l-59..SELECT - C
2ca0: 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d  OUNT( DISTINCT -
2cb0: 20 38 38 20 29 20 41 53 20 63 6f 6c 32 20 46 52   88 ) AS col2 FR
2cc0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
2cd0: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
2ce0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2cf0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2d00: 6f 72 74 20 6c 61 62 65 6c 2d 35 39 0d 0a 53 45  ort label-59..SE
2d10: 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 44  LECT - COUNT ( D
2d20: 49 53 54 49 4e 43 54 20 2d 20 38 38 20 29 20 41  ISTINCT - 88 ) A
2d30: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2d40: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75  ..----..-1....qu
2d50: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2d60: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2d70: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
2d80: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
2d90: 35 36 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  56 < NULL..----.
2da0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2db0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2dc0: 4e 43 54 20 2b 20 28 20 63 6f 6c 30 20 29 20 2b  NCT + ( col0 ) +
2dd0: 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
2de0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 39 36  0..----..108..96
2df0: 0d 0a 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..98....query I 
2e00: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e10: 41 4c 4c 20 2d 20 31 36 20 46 52 4f 4d 20 74 61  ALL - 16 FROM ta
2e20: 62 32 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30  b2, tab1 AS cor0
2e30: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
2e40: 20 68 61 73 68 69 6e 67 20 74 6f 20 62 65 32 32   hashing to be22
2e50: 61 63 37 36 62 34 32 63 36 66 37 32 31 32 65 63  ac76b42c6f7212ec
2e60: 63 30 62 61 37 63 38 39 65 62 33 34 0d 0a 0d 0a  c0ba7c89eb34....
2e70: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2e80: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2e90: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2ea0: 72 74 20 6c 61 62 65 6c 2d 36 33 0d 0a 53 45 4c  rt label-63..SEL
2eb0: 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 41  ECT ALL + SUM( A
2ec0: 4c 4c 20 38 39 20 29 20 46 52 4f 4d 20 74 61 62  LL 89 ) FROM tab
2ed0: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 36 37 0d 0a 0d 0a  1..----..267....
2ee0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2ef0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2f00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f10: 61 62 65 6c 2d 36 33 0d 0a 53 45 4c 45 43 54 20  abel-63..SELECT 
2f20: 41 4c 4c 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20  ALL + SUM ( ALL 
2f30: 38 39 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  89 ) FROM tab1..
2f40: 2d 2d 2d 2d 0d 0a 32 36 37 0d 0a 0d 0a 6f 6e 6c  ----..267....onl
2f50: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2f60: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2f70: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2f80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34  rowsort label-64
2f90: 0d 0a 53 45 4c 45 43 54 20 2b 20 38 35 20 2b 20  ..SELECT + 85 + 
2fa0: 2d 20 31 31 20 44 49 56 20 2b 20 63 6f 6c 31 20  - 11 DIV + col1 
2fb0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2fc0: 32 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a 38 35 0d  2..----..85..85.
2fd0: 0a 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .85....skipif my
2fe0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2ff0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
3000: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 0d 0a  wsort label-64..
3010: 53 45 4c 45 43 54 20 2b 20 38 35 20 2b 20 2d 20  SELECT + 85 + - 
3020: 31 31 20 2f 20 2b 20 63 6f 6c 31 20 41 53 20 63  11 / + col1 AS c
3030: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
3040: 2d 2d 2d 0d 0a 38 35 0d 0a 38 35 0d 0a 38 35 0d  ---..85..85..85.
3050: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
3060: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
3070: 2d 20 33 39 20 41 53 20 63 6f 6c 32 2c 20 28 20  - 39 AS col2, ( 
3080: 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
3090: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
30a0: 0d 0a 2d 33 39 0d 0a 2d 35 31 0d 0a 2d 33 39 0d  ..-39..-51..-39.
30b0: 0a 2d 38 35 0d 0a 2d 33 39 0d 0a 2d 39 31 0d 0a  .-85..-39..-91..
30c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30d0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
30e0: 33 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  30 AS col0 FROM 
30f0: 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
3100: 55 4c 4c 20 3e 3d 20 28 20 4e 55 4c 4c 20 29 0d  ULL >= ( NULL ).
3110: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
3120: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
3130: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
3140: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
3150: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
3160: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3170: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
3180: 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 33 34 20 63   * col1 + - 34 c
3190: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
31a0: 2d 2d 2d 0d 0a 31 37 36 0d 0a 33 37 37 33 0d 0a  ---..176..3773..
31b0: 36 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  65....onlyif mys
31c0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
31d0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
31e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
31f0: 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
3200: 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
3210: 2d 20 34 37 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 47 AS col0 FRO
3220: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
3230: 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  41....skipif mys
3240: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
3250: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
3260: 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 0d 0a 53  sort label-68..S
3270: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
3280: 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 34  OUNT ( * ) * - 4
3290: 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  7 AS col0 FROM t
32a0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31 0d  ab1..----..-141.
32b0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
32c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
32d0: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 63  ROM tab0 WHERE c
32e0: 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ol0 NOT BETWEEN 
32f0: 4e 55 4c 4c 20 41 4e 44 20 28 20 4e 55 4c 4c 20  NULL AND ( NULL 
3300: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
3310: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
3320: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
3330: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3340: 62 65 6c 2d 37 30 0d 0a 53 45 4c 45 43 54 20 43  bel-70..SELECT C
3350: 4f 55 4e 54 28 20 41 4c 4c 20 63 6f 6c 30 20 29  OUNT( ALL col0 )
3360: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
3370: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
3380: 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70  .----..6....skip
3390: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
33a0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33c0: 2d 37 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  -70..SELECT COUN
33d0: 54 20 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 2b  T ( ALL col0 ) +
33e0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
33f0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
3400: 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69  ----..6....onlyi
3410: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
3420: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
3430: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
3440: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 0d 0a  wsort label-71..
3450: 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 2b  SELECT + CAST( +
3460: 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
3470: 29 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  ) - col1 AS col1
3480: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
3490: 0d 0a 2d 32 38 0d 0a 2d 33 37 0d 0a 2d 39 0d 0a  ..-28..-37..-9..
34a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
34b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
34c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34d0: 20 6c 61 62 65 6c 2d 37 31 0d 0a 53 45 4c 45 43   label-71..SELEC
34e0: 54 20 2b 20 43 41 53 54 20 28 20 2b 20 63 6f 6c  T + CAST ( + col
34f0: 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d  2 AS INTEGER ) -
3500: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
3510: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
3520: 32 38 0d 0a 2d 33 37 0d 0a 2d 39 0d 0a 0d 0a 6f  28..-37..-9....o
3530: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
3540: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
3550: 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20  D type: DIV for 
3560: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
3570: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
3580: 6f 72 74 20 6c 61 62 65 6c 2d 37 32 0d 0a 53 45  ort label-72..SE
3590: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 44 49  LECT ALL col2 DI
35a0: 56 20 2b 20 28 20 2d 20 43 41 53 54 28 20 2b 20  V + ( - CAST( + 
35b0: 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
35c0: 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
35d0: 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a  --..-1..0..0....
35e0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
35f0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3600: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3610: 61 62 65 6c 2d 37 32 0d 0a 53 45 4c 45 43 54 20  abel-72..SELECT 
3620: 41 4c 4c 20 63 6f 6c 32 20 2f 20 2b 20 28 20 2d  ALL col2 / + ( -
3630: 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 30 20 41   CAST ( + col0 A
3640: 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 46 52  S INTEGER ) ) FR
3650: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
3660: 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  1..0..0....onlyi
3670: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
3680: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
3690: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
36a0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a  wsort label-73..
36b0: 53 45 4c 45 43 54 20 38 39 20 2b 20 2b 20 43 41  SELECT 89 + + CA
36c0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
36d0: 45 44 20 29 20 2f 20 63 6f 6c 32 20 46 52 4f 4d  ED ) / col2 FROM
36e0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
36f0: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
3700: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
3710: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
3720: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3730: 6c 61 62 65 6c 2d 37 33 0d 0a 53 45 4c 45 43 54  label-73..SELECT
3740: 20 38 39 20 2b 20 2b 20 43 41 53 54 20 28 20 4e   89 + + CAST ( N
3750: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
3760: 20 2f 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   / col2 FROM tab
3770: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
3780: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ULL..NULL....que
3790: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
37a0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
37b0: 63 6f 6c 32 20 2d 20 35 32 20 41 53 20 63 6f 6c  col2 - 52 AS col
37c0: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
37d0: 2d 0d 0a 2d 31 31 31 0d 0a 2d 31 32 30 0d 0a 2d  -..-111..-120..-
37e0: 31 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  148....query III
37f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3800: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
3810: 52 45 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20  RE + ( + col2 ) 
3820: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
3830: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
3840: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
3850: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
3860: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3870: 6c 2d 37 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-76..SELECT DIS
3880: 54 49 4e 43 54 20 2d 20 31 32 20 2a 20 2d 20 31  TINCT - 12 * - 1
3890: 33 20 2b 20 2d 20 63 6f 6c 30 20 44 49 56 20 35  3 + - col0 DIV 5
38a0: 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  3 FROM tab0..---
38b0: 2d 0d 0a 31 35 35 0d 0a 31 35 36 0d 0a 0d 0a 73  -..155..156....s
38c0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
38d0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
38e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
38f0: 62 65 6c 2d 37 36 0d 0a 53 45 4c 45 43 54 20 44  bel-76..SELECT D
3900: 49 53 54 49 4e 43 54 20 2d 20 31 32 20 2a 20 2d  ISTINCT - 12 * -
3910: 20 31 33 20 2b 20 2d 20 63 6f 6c 30 20 2f 20 35   13 + - col0 / 5
3920: 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  3 FROM tab0..---
3930: 2d 0d 0a 31 35 35 0d 0a 31 35 36 0d 0a 0d 0a 71  -..155..156....q
3940: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
3950: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
3960: 2d 20 28 20 2d 20 38 34 20 29 20 41 53 20 63 6f  - ( - 84 ) AS co
3970: 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
3980: 2d 2d 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79 20  --..84....query 
3990: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
39a0: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
39b0: 61 62 31 20 57 48 45 52 45 20 63 6f 6c 32 20 2a  ab1 WHERE col2 *
39c0: 20 63 6f 6c 31 20 2b 20 35 33 20 42 45 54 57 45   col1 + 53 BETWE
39d0: 45 4e 20 63 6f 6c 30 20 2a 20 2b 20 35 38 20 2b  EN col0 * + 58 +
39e0: 20 37 37 20 41 4e 44 20 28 20 2d 20 63 6f 6c 30   77 AND ( - col0
39f0: 20 2f 20 2d 20 28 20 34 39 20 29 20 29 0d 0a 2d   / - ( 49 ) )..-
3a00: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
3a10: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
3a20: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
3a30: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
3a40: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
3a50: 6f 72 74 20 6c 61 62 65 6c 2d 37 39 0d 0a 53 45  ort label-79..SE
3a60: 4c 45 43 54 20 2b 20 31 38 20 2a 20 2b 20 4d 49  LECT + 18 * + MI
3a70: 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  N( DISTINCT - CA
3a80: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
3a90: 45 44 20 29 20 29 20 2b 20 2d 20 38 32 20 41 53  ED ) ) + - 82 AS
3aa0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
3ab0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
3ac0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
3ad0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
3ae0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3af0: 62 65 6c 2d 37 39 0d 0a 53 45 4c 45 43 54 20 2b  bel-79..SELECT +
3b00: 20 31 38 20 2a 20 2b 20 4d 49 4e 20 28 20 44 49   18 * + MIN ( DI
3b10: 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20  STINCT - CAST ( 
3b20: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
3b30: 29 20 29 20 2b 20 2d 20 38 32 20 41 53 20 63 6f  ) ) + - 82 AS co
3b40: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
3b50: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
3b60: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3b70: 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 31 20  ECT DISTINCT 81 
3b80: 2b 20 2d 20 34 34 20 2a 20 2d 20 63 6f 6c 30 20  + - 44 * - col0 
3b90: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
3ba0: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 33 32 35 0d 0a 33  1..----..2325..3
3bb0: 38 32 31 0d 0a 34 30 38 35 0d 0a 0d 0a 71 75 65  821..4085....que
3bc0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
3bd0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
3be0: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 28  b0 WHERE NOT + (
3bf0: 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e   col0 ) IS NOT N
3c00: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
3c10: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
3c20: 4c 45 43 54 20 2d 20 38 37 20 2a 20 63 6f 6c 32  LECT - 87 * col2
3c30: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
3c40: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 38 39 0d  b0..----..-4089.
3c50: 0a 2d 38 36 31 33 0d 0a 2d 38 37 30 0d 0a 0d 0a  .-8613..-870....
3c60: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
3c70: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
3c80: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
3c90: 72 74 20 6c 61 62 65 6c 2d 38 33 0d 0a 53 45 4c  rt label-83..SEL
3ca0: 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
3cb0: 20 2d 20 2b 20 34 20 41 53 20 63 6f 6c 32 20 46   - + 4 AS col2 F
3cc0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
3cd0: 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -1....skipif mys
3ce0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
3cf0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
3d00: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 0d 0a 53  sort label-83..S
3d10: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
3d20: 2a 20 29 20 2d 20 2b 20 34 20 41 53 20 63 6f 6c  * ) - + 4 AS col
3d30: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
3d40: 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-1....query I
3d50: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3d60: 20 44 49 53 54 49 4e 43 54 20 31 34 20 41 53 20   DISTINCT 14 AS 
3d70: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
3d80: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2f 20  HERE NOT col1 / 
3d90: 34 35 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  45 IS NULL..----
3da0: 0d 0a 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..14....query I 
3db0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3dc0: 2d 20 36 30 20 2a 20 63 6f 6c 32 20 41 53 20 63  - 60 * col2 AS c
3dd0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
3de0: 2d 2d 2d 0d 0a 2d 32 38 32 30 0d 0a 2d 35 39 34  ---..-2820..-594
3df0: 30 0d 0a 2d 36 30 30 0d 0a 0d 0a 71 75 65 72 79  0..-600....query
3e00: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3e10: 43 54 20 2d 20 37 37 20 2b 20 63 6f 6c 32 20 46  CT - 77 + col2 F
3e20: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
3e30: 2d 33 30 0d 0a 2d 36 37 0d 0a 32 32 0d 0a 0d 0a  -30..-67..22....
3e40: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
3e50: 0a 53 45 4c 45 43 54 20 36 37 20 2b 20 35 30 20  .SELECT 67 + 50 
3e60: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
3e70: 0a 31 31 37 0d 0a 31 31 37 0d 0a 31 31 37 0d 0a  .117..117..117..
3e80: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
3e90: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
3ea0: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f  OM tab2 WHERE co
3eb0: 6c 30 20 3c 3e 20 28 20 63 6f 6c 30 20 29 0d 0a  l0 <> ( col0 )..
3ec0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
3ed0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3ee0: 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32 20 41 53  col1 / - col2 AS
3ef0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
3f00: 57 48 45 52 45 20 31 35 20 3c 3e 20 28 20 4e 55  WHERE 15 <> ( NU
3f10: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  LL )..----....on
3f20: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
3f30: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
3f40: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
3f50: 20 6c 61 62 65 6c 2d 39 30 0d 0a 53 45 4c 45 43   label-90..SELEC
3f60: 54 20 2d 20 28 20 2d 20 53 55 4d 28 20 2d 20 63  T - ( - SUM( - c
3f70: 6f 6c 30 20 29 20 29 20 63 6f 6c 31 20 46 52 4f  ol0 ) ) col1 FRO
3f80: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
3f90: 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  27....skipif mys
3fa0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
3fb0: 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
3fc0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
3fd0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
3fe0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
3ff0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
4000: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4010: 62 65 6c 2d 39 30 0d 0a 53 45 4c 45 43 54 20 2d  bel-90..SELECT -
4020: 20 28 20 2d 20 53 55 4d 20 28 20 2d 20 63 6f 6c   ( - SUM ( - col
4030: 30 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  0 ) ) col1 FROM 
4040: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 37  tab1..----..-227
4050: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
4060: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
4070: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
4080: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 0d  owsort label-91.
4090: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55  .SELECT ALL - SU
40a0: 4d 28 20 28 20 38 30 20 29 20 29 20 41 53 20 63  M( ( 80 ) ) AS c
40b0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
40c0: 2d 2d 2d 0d 0a 2d 32 34 30 0d 0a 0d 0a 73 6b 69  ---..-240....ski
40d0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
40e0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
40f0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4100: 6c 2d 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-91..SELECT ALL
4110: 20 2d 20 53 55 4d 20 28 20 28 20 38 30 20 29 20   - SUM ( ( 80 ) 
4120: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
4130: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 30 0d  ab1..----..-240.
4140: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4150: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
4160: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
4170: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 0d 0a  wsort label-92..
4180: 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 44 49  SELECT + MAX( DI
4190: 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 41 53  STINCT col0 ) AS
41a0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
41b0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 39  cor0 WHERE NOT 9
41c0: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
41d0: 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .97....skipif my
41e0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
41f0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
4200: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 0d 0a  wsort label-92..
4210: 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 44  SELECT + MAX ( D
4220: 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 41  ISTINCT col0 ) A
4230: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
4240: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
4250: 39 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  91 IS NULL..----
4260: 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..97....query II
4270: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4280: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
4290: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
42a0: 28 20 63 6f 6c 30 20 29 20 4e 4f 54 20 42 45 54  ( col0 ) NOT BET
42b0: 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41 4e 44 20  WEEN - col1 AND 
42c0: 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 2b 20  col1 * - col0 + 
42d0: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  col0..----..9 va
42e0: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
42f0: 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
4300: 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
4310: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
4320: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
4330: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
4340: 4e 4f 54 20 2b 20 63 6f 6c 30 20 42 45 54 57 45  NOT + col0 BETWE
4350: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f  EN NULL AND + co
4360: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  l0..----....skip
4370: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
4380: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
4390: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
43a0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
43b0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
43c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
43d0: 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20   col1 col2 FROM 
43e0: 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
43f0: 20 63 6f 6c 30 20 2f 20 36 20 49 4e 20 28 20 2d   col0 / 6 IN ( -
4400: 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2a 20 36   col2 + col1 * 6
4410: 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36  7 )..----..51..6
4420: 37 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..77....onlyif 
4430: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
4440: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
4450: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4460: 6c 2d 39 36 0d 0a 53 45 4c 45 43 54 20 37 33 20  l-96..SELECT 73 
4470: 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  * + COUNT( * ) F
4480: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
4490: 32 31 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  219....skipif my
44a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
44b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
44c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 0d 0a  wsort label-96..
44d0: 53 45 4c 45 43 54 20 37 33 20 2a 20 2b 20 43 4f  SELECT 73 * + CO
44e0: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
44f0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 39 0d 0a  ab2..----..219..
4500: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
4510: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
4520: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
4530: 54 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20  T + col2 * col0 
4540: 3c 20 2b 20 38 38 0d 0a 2d 2d 2d 2d 0d 0a 39 20  < + 88..----..9 
4550: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
4560: 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
4570: 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
4580: 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  b7....query I ro
4590: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
45a0: 6c 30 20 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c 32  l0 + col1 / col2
45b0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
45c0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
45d0: 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
45e0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
45f0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
4600: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
4610: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 0d 0a  wsort label-99..
4620: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 38  SELECT ALL + - 8
4630: 38 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  8 * + COUNT( * )
4640: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
4650: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
4660: 0d 0a 2d 32 36 34 0d 0a 0d 0a 73 6b 69 70 69 66  ..-264....skipif
4670: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
4680: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
4690: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
46a0: 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  9..SELECT ALL + 
46b0: 2d 20 38 38 20 2a 20 2b 20 43 4f 55 4e 54 20 28  - 88 * + COUNT (
46c0: 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
46d0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
46e0: 2d 2d 2d 2d 0d 0a 2d 32 36 34 0d 0a 0d 0a 71 75  ----..-264....qu
46f0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
4700: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
4710: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
4720: 57 48 45 52 45 20 35 34 20 42 45 54 57 45 45 4e  WHERE 54 BETWEEN
4730: 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
4740: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
4750: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4760: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
4770: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
4780: 4e 4f 54 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  NOT + col1 * col
4790: 31 20 3c 3e 20 33 32 0d 0a 2d 2d 2d 2d 0d 0a 0d  1 <> 32..----...
47a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
47b0: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20  ..SELECT col1 * 
47c0: 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
47d0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
47e0: 4f 54 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20  OT - ( - col0 ) 
47f0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
4800: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
4810: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
4820: 6f 6c 30 20 2a 20 37 36 20 2b 20 2b 20 63 6f 6c  ol0 * 76 + + col
4830: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
4840: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38 39 30 0d  or0..----..3890.
4850: 0a 36 34 36 35 0d 0a 36 39 36 33 0d 0a 0d 0a 6f  .6465..6963....o
4860: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
4870: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
4880: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
4890: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
48a0: 31 30 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  104..SELECT - co
48b0: 6c 30 20 44 49 56 20 63 6f 6c 31 20 2b 20 34 20  l0 DIV col1 + 4 
48c0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
48d0: 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 31 0d 0a 33 0d  ----..-13..1..3.
48e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
48f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
4900: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4910: 74 20 6c 61 62 65 6c 2d 31 30 34 0d 0a 53 45 4c  t label-104..SEL
4920: 45 43 54 20 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c  ECT - col0 / col
4930: 31 20 2b 20 34 20 46 52 4f 4d 20 74 61 62 31 20  1 + 4 FROM tab1 
4940: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d  cor0..----..-13.
4950: 0a 31 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .1..3....query I
4960: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4970: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b   DISTINCT col2 +
4980: 20 38 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53   89 FROM tab2 AS
4990: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2d 20   cor0 WHERE ( - 
49a0: 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  col2 ) IS NULL..
49b0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
49c0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
49d0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
49e0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
49f0: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
4a00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4a10: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
4a20: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
4a30: 48 45 52 45 20 2b 20 32 32 20 2f 20 2b 20 35 31  HERE + 22 / + 51
4a40: 20 42 45 54 57 45 45 4e 20 2b 20 39 35 20 41 4e   BETWEEN + 95 AN
4a50: 44 20 28 20 2b 20 33 39 20 2f 20 35 34 20 29 0d  D ( + 39 / 54 ).
4a60: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
4a70: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
4a80: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
4a90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4aa0: 6c 2d 31 30 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-107..SELECT DI
4ab0: 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
4ac0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
4ad0: 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
4ae0: 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2d 20 36  ( + col2 ) * - 6
4af0: 31 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 35 37 20  1 + col0 * - 57 
4b00: 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d  NOT IN ( col1 ).
4b10: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
4b20: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4b30: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4b40: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4b50: 2d 31 30 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -107..SELECT DIS
4b60: 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
4b70: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
4b80: 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
4b90: 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2d 20 36  ( + col2 ) * - 6
4ba0: 31 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 35 37 20  1 + col0 * - 57 
4bb0: 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d  NOT IN ( col1 ).
4bc0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
4bd0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
4be0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
4bf0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
4c00: 61 62 65 6c 2d 31 30 38 0d 0a 53 45 4c 45 43 54  abel-108..SELECT
4c10: 20 4d 49 4e 28 20 2b 20 38 32 20 29 20 41 53 20   MIN( + 82 ) AS 
4c20: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
4c30: 2d 2d 2d 2d 0d 0a 38 32 0d 0a 0d 0a 73 6b 69 70  ----..82....skip
4c40: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4c50: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4c60: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4c70: 2d 31 30 38 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -108..SELECT MIN
4c80: 20 28 20 2b 20 38 32 20 29 20 41 53 20 63 6f 6c   ( + 82 ) AS col
4c90: 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
4ca0: 2d 0d 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -..82....query I
4cb0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
4cc0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
4cd0: 48 45 52 45 20 35 20 2a 20 63 6f 6c 31 20 42 45  HERE 5 * col1 BE
4ce0: 54 57 45 45 4e 20 2d 20 63 6f 6c 32 20 2b 20 2d  TWEEN - col2 + -
4cf0: 20 63 6f 6c 32 20 41 4e 44 20 63 6f 6c 31 0d 0a   col2 AND col1..
4d00: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
4d10: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4d20: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
4d30: 45 52 45 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 31  ERE - col0 * - 1
4d40: 34 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 39 33 20  4 + col0 / + 93 
4d50: 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 28 20  NOT BETWEEN + ( 
4d60: 63 6f 6c 30 20 29 20 2f 20 2d 20 63 6f 6c 30 20  col0 ) / - col0 
4d70: 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
4d80: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
4d90: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
4da0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f  OM tab1 WHERE co
4db0: 6c 30 20 2b 20 2b 20 31 36 20 49 53 20 4e 4f 54  l0 + + 16 IS NOT
4dc0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
4dd0: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
4de0: 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
4df0: 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
4e00: 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  d....onlyif mysq
4e10: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
4e20: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
4e30: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
4e40: 74 20 6c 61 62 65 6c 2d 31 31 32 0d 0a 53 45 4c  t label-112..SEL
4e50: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
4e60: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
4e70: 2b 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53 20  + CAST( col2 AS 
4e80: 53 49 47 4e 45 44 20 29 20 29 20 49 53 20 4e 55  SIGNED ) ) IS NU
4e90: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
4ea0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4eb0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4ec0: 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
4ed0: 65 6c 2d 31 31 32 0d 0a 53 45 4c 45 43 54 20 2a  el-112..SELECT *
4ee0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
4ef0: 72 30 20 57 48 45 52 45 20 28 20 2b 20 43 41 53  r0 WHERE ( + CAS
4f00: 54 20 28 20 63 6f 6c 32 20 41 53 20 49 4e 54 45  T ( col2 AS INTE
4f10: 47 45 52 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d  GER ) ) IS NULL.
4f20: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
4f30: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
4f40: 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
4f50: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
4f60: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
4f70: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 0d  wsort label-113.
4f80: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4f90: 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20   - COUNT( ALL + 
4fa0: 43 41 53 54 28 20 35 38 20 41 53 20 53 49 47 4e  CAST( 58 AS SIGN
4fb0: 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  ED ) ) FROM tab0
4fc0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
4fd0: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
4fe0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  ULL..----..-3...
4ff0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
5000: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
5010: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
5020: 6c 61 62 65 6c 2d 31 31 33 0d 0a 53 45 4c 45 43  label-113..SELEC
5030: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
5040: 4e 54 20 28 20 41 4c 4c 20 2b 20 43 41 53 54 20  NT ( ALL + CAST 
5050: 28 20 35 38 20 41 53 20 49 4e 54 45 47 45 52 20  ( 58 AS INTEGER 
5060: 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ) ) FROM tab0 AS
5070: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
5080: 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
5090: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e  ..----..-3....on
50a0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
50b0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
50c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
50d0: 20 6c 61 62 65 6c 2d 31 31 34 0d 0a 53 45 4c 45   label-114..SELE
50e0: 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20  CT DISTINCT ( + 
50f0: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41  - COUNT( * ) ) A
5100: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
5110: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
5120: 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
5130: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
5140: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
5150: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 0d 0a  sort label-114..
5160: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
5170: 28 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ( + - COUNT ( * 
5180: 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ) ) AS col2 FROM
5190: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
51a0: 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
51b0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
51c0: 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20  CT ALL + + col1 
51d0: 2b 20 2b 20 63 6f 6c 30 20 2a 20 36 31 20 41 53  + + col0 * 61 AS
51e0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
51f0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
5200: 33 32 38 0d 0a 35 39 31 38 0d 0a 39 39 36 0d 0a  328..5918..996..
5210: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
5220: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
5230: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
5240: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 0d 0a  sort label-116..
5250: 53 45 4c 45 43 54 20 2d 20 34 35 20 2b 20 2d 20  SELECT - 45 + - 
5260: 2b 20 53 55 4d 28 20 2b 20 63 6f 6c 30 20 29 20  + SUM( + col0 ) 
5270: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
5280: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
5290: 0a 2d 32 33 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-230....skipif 
52a0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
52b0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
52c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
52d0: 36 0d 0a 53 45 4c 45 43 54 20 2d 20 34 35 20 2b  6..SELECT - 45 +
52e0: 20 2d 20 2b 20 53 55 4d 20 28 20 2b 20 63 6f 6c   - + SUM ( + col
52f0: 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
5300: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
5310: 2d 2d 2d 0d 0a 2d 32 33 30 0d 0a 0d 0a 6f 6e 6c  ---..-230....onl
5320: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
5330: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
5340: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
5350: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
5360: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5370: 31 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  117..SELECT DIST
5380: 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  INCT - COUNT( * 
5390: 29 20 2b 20 2d 20 2d 20 28 20 2b 20 43 41 53 54  ) + - - ( + CAST
53a0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
53b0: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   ) ) FROM tab2..
53c0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
53d0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
53e0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
53f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5400: 65 6c 2d 31 31 37 0d 0a 53 45 4c 45 43 54 20 44  el-117..SELECT D
5410: 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20  ISTINCT - COUNT 
5420: 28 20 2a 20 29 20 2b 20 2d 20 2d 20 28 20 2b 20  ( * ) + - - ( + 
5430: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
5440: 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20  NTEGER ) ) FROM 
5450: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
5460: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5470: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
5480: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56  SIGNED type: DIV
5490: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
54a0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
54b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
54c0: 31 38 0d 0a 53 45 4c 45 43 54 20 36 34 20 2b 20  18..SELECT 64 + 
54d0: 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c  + col0 + + - col
54e0: 30 20 2b 20 2b 20 63 6f 6c 32 20 44 49 56 20 2d  0 + + col2 DIV -
54f0: 20 43 41 53 54 28 20 2d 20 31 20 41 53 20 53 49   CAST( - 1 AS SI
5500: 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46  GNED ) AS col2 F
5510: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
5520: 31 30 34 0d 0a 31 32 32 0d 0a 38 37 0d 0a 0d 0a  104..122..87....
5530: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
5540: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
5550: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5560: 61 62 65 6c 2d 31 31 38 0d 0a 53 45 4c 45 43 54  abel-118..SELECT
5570: 20 36 34 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b   64 + + col0 + +
5580: 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32   - col0 + + col2
5590: 20 2f 20 2d 20 43 41 53 54 20 28 20 2d 20 31 20   / - CAST ( - 1 
55a0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
55b0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
55c0: 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 32 32 0d 0a  ----..104..122..
55d0: 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  87....query I ro
55e0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
55f0: 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 2b 20 63  STINCT - ( + + c
5600: 6f 6c 31 20 29 20 2b 20 2d 20 63 6f 6c 31 20 46  ol1 ) + - col1 F
5610: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
5620: 2d 31 30 0d 0a 2d 32 38 0d 0a 2d 39 34 0d 0a 0d  -10..-28..-94...
5630: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
5640: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
5650: 43 54 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 30 20  CT + col2, col0 
5660: 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  * col1 FROM tab2
5670: 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32 33 34 36  ..----..23..2346
5680: 0d 0a 34 30 0d 0a 34 39 32 38 0d 0a 35 38 0d 0a  ..40..4928..58..
5690: 35 30 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  5025....query I 
56a0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
56b0: 41 4c 4c 20 2d 20 37 38 20 2b 20 39 36 20 41 53  ALL - 78 + 96 AS
56c0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
56d0: 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 31 38 0d 0a 31  .----..18..18..1
56e0: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
56f0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
5700: 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31   - col0 + + col1
5710: 20 2b 20 2b 20 38 33 20 2a 20 63 6f 6c 32 20 41   + + 83 * col2 A
5720: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
5730: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
5740: 33 39 36 37 0d 0a 37 36 34 0d 0a 38 31 32 31 0d  3967..764..8121.
5750: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
5760: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
5770: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
5780: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5790: 62 65 6c 2d 31 32 33 0d 0a 53 45 4c 45 43 54 20  bel-123..SELECT 
57a0: 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e  DISTINCT CAST( N
57b0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
57c0: 2d 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b  - - - col2 * + +
57d0: 20 63 6f 6c 32 20 2f 20 2d 20 39 32 20 46 52 4f   col2 / - 92 FRO
57e0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
57f0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
5800: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5810: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5820: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5830: 65 6c 2d 31 32 33 0d 0a 53 45 4c 45 43 54 20 44  el-123..SELECT D
5840: 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e  ISTINCT CAST ( N
5850: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
5860: 20 2d 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20   - - - col2 * + 
5870: 2b 20 63 6f 6c 32 20 2f 20 2d 20 39 32 20 46 52  + col2 / - 92 FR
5880: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
5890: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
58a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
58b0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
58c0: 2d 20 63 6f 6c 30 20 2d 20 2d 20 28 20 39 31 20  - col0 - - ( 91 
58d0: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
58e0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
58f0: 2d 20 38 30 20 29 20 49 53 20 4e 4f 54 20 4e 55  - 80 ) IS NOT NU
5900: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
5910: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
5920: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
5930: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
5940: 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45 4e  ( NULL ) BETWEEN
5950: 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 2d 20   ( NULL ) AND - 
5960: 35 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  54..----....skip
5970: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
5980: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
5990: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
59a0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
59b0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
59c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
59d0: 54 49 4e 43 54 20 2d 20 28 20 63 6f 6c 31 20 29  TINCT - ( col1 )
59e0: 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 39 36   - + + col2 + 96
59f0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
5a00: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
5a10: 31 34 0d 0a 2d 31 39 0d 0a 33 32 0d 0a 0d 0a 71  14..-19..32....q
5a20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
5a30: 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 32 20  SELECT + - col2 
5a40: 2a 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  * - + col2 AS co
5a50: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
5a60: 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 38 31 0d 0a 34  0..----..3481..4
5a70: 36 32 34 0d 0a 39 32 31 36 0d 0a 0d 0a 71 75 65  624..9216....que
5a80: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
5a90: 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 32 39  ELECT ALL ( + 29
5aa0: 20 29 2c 20 63 6f 6c 31 20 2b 20 2b 20 34 33 20   ), col1 + + 43 
5ab0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
5ac0: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 34 38 0d  1..----..29..48.
5ad0: 0a 32 39 0d 0a 35 37 0d 0a 32 39 0d 0a 39 30 0d  .29..57..29..90.
5ae0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
5af0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
5b00: 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20  INCT + col2 * + 
5b10: 35 36 20 41 53 20 63 6f 6c 31 2c 20 2d 20 35 36  56 AS col1, - 56
5b20: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
5b30: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 33 32 0d 0a  r0..----..2632..
5b40: 2d 35 36 0d 0a 35 35 34 34 0d 0a 2d 35 36 0d 0a  -56..5544..-56..
5b50: 35 36 30 0d 0a 2d 35 36 0d 0a 0d 0a 6f 6e 6c 79  560..-56....only
5b60: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
5b70: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
5b80: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
5b90: 61 62 65 6c 2d 31 33 30 0d 0a 53 45 4c 45 43 54  abel-130..SELECT
5ba0: 20 41 4c 4c 20 53 55 4d 28 20 41 4c 4c 20 2d 20   ALL SUM( ALL - 
5bb0: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46  col0 ) AS col2 F
5bc0: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
5bd0: 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 28 20  ERE NOT ( NOT ( 
5be0: 2d 20 2d 20 32 35 20 29 20 4e 4f 54 20 49 4e 20  - - 25 ) NOT IN 
5bf0: 28 20 63 6f 6c 32 20 2f 20 63 6f 6c 32 20 29 20  ( col2 / col2 ) 
5c00: 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 39 0d 0a 0d  )..----..-199...
5c10: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
5c20: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
5c30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
5c40: 6c 61 62 65 6c 2d 31 33 30 0d 0a 53 45 4c 45 43  label-130..SELEC
5c50: 54 20 41 4c 4c 20 53 55 4d 20 28 20 41 4c 4c 20  T ALL SUM ( ALL 
5c60: 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32  - col0 ) AS col2
5c70: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
5c80: 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20  WHERE NOT ( NOT 
5c90: 28 20 2d 20 2d 20 32 35 20 29 20 4e 4f 54 20 49  ( - - 25 ) NOT I
5ca0: 4e 20 28 20 63 6f 6c 32 20 2f 20 63 6f 6c 32 20  N ( col2 / col2 
5cb0: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 39 0d  ) )..----..-199.
5cc0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
5cd0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
5ce0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
5cf0: 63 6f 72 30 20 57 48 45 52 45 20 2d 20 28 20 2b  cor0 WHERE - ( +
5d00: 20 39 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c   91 ) IS NOT NUL
5d10: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
5d20: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
5d30: 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
5d40: 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
5d50: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5d60: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35 34 20  ..SELECT ALL 54 
5d70: 2a 20 2b 20 2d 20 39 35 20 2a 20 63 6f 6c 32 20  * + - 95 * col2 
5d80: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
5d90: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 32 36 37 30  1..----..-302670
5da0: 0d 0a 2d 33 34 38 38 34 30 0d 0a 2d 34 39 32 34  ..-348840..-4924
5db0: 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  80....query I ro
5dc0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
5dd0: 4c 20 63 6f 6c 30 20 2a 20 36 33 20 46 52 4f 4d  L col0 * 63 FROM
5de0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 32 31   tab1..----..321
5df0: 33 0d 0a 35 33 35 35 0d 0a 35 37 33 33 0d 0a 0d  3..5355..5733...
5e00: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
5e10: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
5e20: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
5e30: 20 4e 4f 54 20 28 20 63 6f 6c 30 20 29 20 3c 3e   NOT ( col0 ) <>
5e40: 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   col0..----..9 v
5e50: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
5e60: 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
5e70: 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
5e80: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
5e90: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
5ea0: 20 2d 20 28 20 36 37 20 29 20 41 53 20 63 6f 6c   - ( 67 ) AS col
5eb0: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
5ec0: 2d 0d 0a 2d 36 37 0d 0a 2d 36 37 0d 0a 2d 36 37  -..-67..-67..-67
5ed0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
5ee0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
5ef0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
5f00: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
5f10: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
5f20: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5f30: 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20  LECT - col0 * + 
5f40: 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 63 6f 6c 32  col0 * col2 col2
5f50: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
5f60: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 39 36 39  r0..----..-24969
5f70: 36 0d 0a 2d 34 32 36 32 37 35 0d 0a 2d 35 36 33  6..-426275..-563
5f80: 31 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  108....skipif po
5f90: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
5fa0: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
5fb0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
5fc0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
5fd0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
5fe0: 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28 20 2d 20  .SELECT - + ( - 
5ff0: 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20 46 52  - col0 ) col0 FR
6000: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
6010: 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39  --..-51..-85..-9
6020: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
6030: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
6040: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
6050: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
6060: 6c 61 62 65 6c 2d 31 33 38 0d 0a 53 45 4c 45 43  label-138..SELEC
6070: 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c  T ALL CAST( NULL
6080: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d   AS SIGNED ) * -
6090: 20 31 37 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b   17 + + - col1 +
60a0: 20 34 37 20 2f 20 36 31 20 2d 20 2b 20 28 20 2b   47 / 61 - + ( +
60b0: 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20   col2 ) AS col1 
60c0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
60d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
60e0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
60f0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6100: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6110: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6120: 6c 2d 31 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-138..SELECT AL
6130: 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  L CAST ( NULL AS
6140: 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 31   INTEGER ) * - 1
6150: 37 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 34  7 + + - col1 + 4
6160: 37 20 2f 20 36 31 20 2d 20 2b 20 28 20 2b 20 63  7 / 61 - + ( + c
6170: 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol2 ) AS col1 FR
6180: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
6190: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
61a0: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
61b0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
61c0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
61d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
61e0: 62 65 6c 2d 31 33 39 0d 0a 53 45 4c 45 43 54 20  bel-139..SELECT 
61f0: 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ALL + COUNT( * )
6200: 20 2a 20 37 32 20 46 52 4f 4d 20 74 61 62 31 20   * 72 FROM tab1 
6210: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
6220: 31 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  16....skipif mys
6230: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
6240: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
6250: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 39 0d 0a  sort label-139..
6260: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
6270: 4e 54 20 28 20 2a 20 29 20 2a 20 37 32 20 46 52  NT ( * ) * 72 FR
6280: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
6290: 0a 2d 2d 2d 2d 0d 0a 32 31 36 0d 0a 0d 0a 71 75  .----..216....qu
62a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
62b0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 35 20 41  ELECT ALL - 45 A
62c0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
62d0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35   cor0..----..-45
62e0: 0d 0a 2d 34 35 0d 0a 2d 34 35 0d 0a 0d 0a 71 75  ..-45..-45....qu
62f0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
6300: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
6310: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
6320: 57 48 45 52 45 20 2b 20 35 32 20 42 45 54 57 45  WHERE + 52 BETWE
6330: 45 4e 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 4e  EN ( + col0 ) AN
6340: 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  D ( NULL )..----
6350: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
6360: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
6370: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
6380: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6390: 61 62 65 6c 2d 31 34 32 0d 0a 53 45 4c 45 43 54  abel-142..SELECT
63a0: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
63b0: 32 20 57 48 45 52 45 20 2b 20 2d 20 28 20 2d 20  2 WHERE + - ( - 
63c0: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
63d0: 53 49 47 4e 45 44 20 29 20 29 20 2b 20 2b 20 2d  SIGNED ) ) + + -
63e0: 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20 2b 20   col1 BETWEEN + 
63f0: 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41 4e  col1 * + col2 AN
6400: 44 20 2b 20 36 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D + 67..----....
6410: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
6420: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
6430: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6440: 61 62 65 6c 2d 31 34 32 0d 0a 53 45 4c 45 43 54  abel-142..SELECT
6450: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
6460: 32 20 57 48 45 52 45 20 2b 20 2d 20 28 20 2d 20  2 WHERE + - ( - 
6470: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
6480: 20 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20 2b   INTEGER ) ) + +
6490: 20 2d 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20   - col1 BETWEEN 
64a0: 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20  + col1 * + col2 
64b0: 41 4e 44 20 2b 20 36 37 0d 0a 2d 2d 2d 2d 0d 0a  AND + 67..----..
64c0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
64d0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
64e0: 32 20 2b 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31  2 + col1, + col1
64f0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
6500: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 34  b1..----..-21..4
6510: 37 0d 0a 2d 35 34 0d 0a 35 0d 0a 2d 38 32 0d 0a  7..-54..5..-82..
6520: 31 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  14....skipif pos
6530: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
6540: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
6550: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
6560: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
6570: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
6580: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
6590: 2b 20 31 36 20 2a 20 63 6f 6c 32 20 2b 20 63 6f  + 16 * col2 + co
65a0: 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l2 col1 FROM tab
65b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 38 33 0d 0a 31  0..----..1683..1
65c0: 37 30 0d 0a 37 39 39 0d 0a 0d 0a 71 75 65 72 79  70..799....query
65d0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
65e0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
65f0: 20 57 48 45 52 45 20 28 20 2b 20 63 6f 6c 32 20   WHERE ( + col2 
6600: 2f 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63  / + + col1 + - c
6610: 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ol2 ) IS NOT NUL
6620: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
6630: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
6640: 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
6650: 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
6660: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6670: 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 38 37 20  ..SELECT ( + 87 
6680: 29 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ) + + col0 AS co
6690: 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
66a0: 2d 2d 0d 0a 31 33 38 0d 0a 31 37 32 0d 0a 31 37  --..138..172..17
66b0: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
66c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
66d0: 54 49 4e 43 54 20 2b 20 32 32 20 2b 20 63 6f 6c  TINCT + 22 + col
66e0: 31 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  1 + - col2 AS co
66f0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
6700: 2d 2d 0d 0a 2d 37 36 0d 0a 33 33 0d 0a 35 36 0d  --..-76..33..56.
6710: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
6720: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
6730: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
6740: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6750: 62 65 6c 2d 31 34 38 0d 0a 53 45 4c 45 43 54 20  bel-148..SELECT 
6760: 41 4c 4c 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43  ALL + col2 + - C
6770: 41 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53  AST( + col0 AS S
6780: 49 47 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c 30  IGNED ) * - col0
6790: 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   * + + col1 FROM
67a0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37   tab2..----..107
67b0: 39 33 39 0d 0a 33 31 35 34 33 32 0d 0a 33 37 36  939..315432..376
67c0: 39 33 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  933....skipif my
67d0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
67e0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
67f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 38 0d  wsort label-148.
6800: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
6810: 6c 32 20 2b 20 2d 20 43 41 53 54 20 28 20 2b 20  l2 + - CAST ( + 
6820: 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
6830: 29 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b  ) * - col0 * + +
6840: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
6850: 0a 2d 2d 2d 2d 0d 0a 31 30 37 39 33 39 0d 0a 33  .----..107939..3
6860: 31 35 34 33 32 0d 0a 33 37 36 39 33 33 0d 0a 0d  15432..376933...
6870: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6880: 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 63 6f 6c  ..SELECT ( + col
6890: 32 20 29 20 2b 20 2b 20 32 34 20 46 52 4f 4d 20  2 ) + + 24 FROM 
68a0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
68b0: 2d 2d 0d 0a 31 32 30 0d 0a 38 33 0d 0a 39 32 0d  --..120..83..92.
68c0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
68d0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
68e0: 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32 2c 20 63  INCT + + col2, c
68f0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
6900: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 35 31  r0..----..23..51
6910: 0d 0a 34 30 0d 0a 37 37 0d 0a 35 38 0d 0a 36 37  ..40..77..58..67
6920: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
6930: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
6940: 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 2b 20 63 6f  col1 + col0 + co
6950: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l2 FROM tab0 WHE
6960: 52 45 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e  RE col0 IS NOT N
6970: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a  ULL..----..-19..
6980: 31 39 35 0d 0a 37 36 0d 0a 0d 0a 71 75 65 72 79  195..76....query
6990: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
69a0: 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20  CT ALL - + col2 
69b0: 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 35  * - - col1 + + 5
69c0: 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  3 AS col0 FROM t
69d0: 61 62 32 20 57 48 45 52 45 20 38 31 20 49 53 20  ab2 WHERE 81 IS 
69e0: 4e 4f 54 20 4e 55 4c 4c 20 41 4e 44 20 28 20 4e  NOT NULL AND ( N
69f0: 55 4c 4c 20 29 20 3e 3d 20 2b 20 63 6f 6c 32 0d  ULL ) >= + col2.
6a00: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
6a10: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
6a20: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
6a30: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
6a40: 65 6c 2d 31 35 33 0d 0a 53 45 4c 45 43 54 20 44  el-153..SELECT D
6a50: 49 53 54 49 4e 43 54 20 28 20 34 34 20 29 2c 20  ISTINCT ( 44 ), 
6a60: 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  - SUM( DISTINCT 
6a70: 2b 20 31 32 20 29 20 2a 20 2d 20 38 38 20 41 53  + 12 ) * - 88 AS
6a80: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
6a90: 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 31 30 35 36 0d  .----..44..1056.
6aa0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
6ab0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
6ac0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
6ad0: 72 74 20 6c 61 62 65 6c 2d 31 35 33 0d 0a 53 45  rt label-153..SE
6ae0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
6af0: 34 34 20 29 2c 20 2d 20 53 55 4d 20 28 20 44 49  44 ), - SUM ( DI
6b00: 53 54 49 4e 43 54 20 2b 20 31 32 20 29 20 2a 20  STINCT + 12 ) * 
6b10: 2d 20 38 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 88 AS col2 FRO
6b20: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34  M tab0..----..44
6b30: 0d 0a 31 30 35 36 0d 0a 0d 0a 71 75 65 72 79 20  ..1056....query 
6b40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6b50: 54 20 2b 20 37 39 20 2d 20 63 6f 6c 30 20 46 52  T + 79 - col0 FR
6b60: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
6b70: 35 0d 0a 33 33 0d 0a 34 0d 0a 0d 0a 71 75 65 72  5..33..4....quer
6b80: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6b90: 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 31 20  ECT DISTINCT 71 
6ba0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
6bb0: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
6bc0: 63 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2d 20  col2 NOT IN ( - 
6bd0: 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 37 31  col1 )..----..71
6be0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
6bf0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
6c00: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L * FROM tab1 AS
6c10: 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
6c20: 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 3e 3d  l2 + - - col2 >=
6c30: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
6c40: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
6c50: 53 45 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d  SELECT col0 FROM
6c60: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
6c70: 2d 20 2b 20 39 32 20 2b 20 2d 20 2d 20 37 38 20  - + 92 + - - 78 
6c80: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
6c90: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
6ca0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
6cb0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
6cc0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
6cd0: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  8..SELECT ALL MA
6ce0: 58 28 20 2b 20 36 34 20 29 20 41 53 20 63 6f 6c  X( + 64 ) AS col
6cf0: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
6d00: 2d 0d 0a 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..64....skipif 
6d10: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
6d20: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
6d30: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
6d40: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  8..SELECT ALL MA
6d50: 58 20 28 20 2b 20 36 34 20 29 20 41 53 20 63 6f  X ( + 64 ) AS co
6d60: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
6d70: 2d 2d 0d 0a 36 34 0d 0a 0d 0a 71 75 65 72 79 20  --..64....query 
6d80: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
6d90: 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2b 20  CT + col2 * - + 
6da0: 63 6f 6c 32 20 2a 20 63 6f 6c 32 2c 20 34 35 20  col2 * col2, 45 
6db0: 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  * + col0 AS col1
6dc0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
6dd0: 0d 0a 2d 31 32 31 36 37 0d 0a 32 30 37 30 0d 0a  ..-12167..2070..
6de0: 2d 31 39 35 31 31 32 0d 0a 33 33 37 35 0d 0a 2d  -195112..3375..-
6df0: 36 34 30 30 30 0d 0a 32 38 38 30 0d 0a 0d 0a 6f  64000..2880....o
6e00: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
6e10: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
6e20: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6e30: 74 20 6c 61 62 65 6c 2d 31 36 30 0d 0a 53 45 4c  t label-160..SEL
6e40: 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  ECT COUNT( * ) c
6e50: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
6e60: 45 52 45 20 4e 4f 54 20 2d 20 32 36 20 49 53 20  ERE NOT - 26 IS 
6e70: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  NULL..----..3...
6e80: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
6e90: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
6ea0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
6eb0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
6ec0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
6ed0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
6ee0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
6ef0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6f00: 36 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  60..SELECT COUNT
6f10: 20 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d   ( * ) col0 FROM
6f20: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
6f30: 2d 20 32 36 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  - 26 IS NULL..--
6f40: 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
6f50: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6f60: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
6f70: 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c  1 AS col2, - col
6f80: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
6f90: 2d 0d 0a 2d 35 31 0d 0a 2d 35 31 0d 0a 2d 36 37  -..-51..-51..-67
6fa0: 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 2d 37 37 0d  ..-67..-77..-77.
6fb0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
6fc0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
6fd0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
6fe0: 20 57 48 45 52 45 20 4e 4f 54 20 37 20 2b 20 2b   WHERE NOT 7 + +
6ff0: 20 63 6f 6c 30 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d   col0 = NULL..--
7000: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
7010: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
7020: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
7030: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7040: 36 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  63..SELECT ALL -
7050: 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d   MAX( DISTINCT -
7060: 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20   col0 ) AS col1 
7070: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
7080: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70  ----..51....skip
7090: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
70a0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
70b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
70c0: 2d 31 36 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -163..SELECT ALL
70d0: 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   - MAX ( DISTINC
70e0: 54 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  T - col0 ) AS co
70f0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
7100: 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 71  0..----..51....q
7110: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
7120: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41  .SELECT + col1 A
7130: 53 20 63 6f 6c 31 2c 20 2d 20 31 20 41 53 20 63  S col1, - 1 AS c
7140: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
7150: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   cor0..----..14.
7160: 0a 2d 31 0d 0a 34 37 0d 0a 2d 31 0d 0a 35 0d 0a  .-1..47..-1..5..
7170: 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -1....query I ro
7180: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
7190: 4c 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  L - col2 FROM ta
71a0: 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  b0 cor0 WHERE NU
71b0: 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28  LL NOT BETWEEN (
71c0: 20 4e 55 4c 4c 20 29 20 41 4e 44 20 4e 55 4c 4c   NULL ) AND NULL
71d0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
71e0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
71f0: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
7200: 61 62 32 20 57 48 45 52 45 20 28 20 28 20 4e 4f  ab2 WHERE ( ( NO
7210: 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 3c 3d 20  T ( - col1 ) <= 
7220: 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  NULL ) )..----..
7230: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7240: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
7250: 20 2b 20 2b 20 32 39 20 46 52 4f 4d 20 74 61 62   + + 29 FROM tab
7260: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  0 cor0..----..-5
7270: 38 0d 0a 2d 36 38 0d 0a 31 34 0d 0a 0d 0a 71 75  8..-68..14....qu
7280: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
7290: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
72a0: 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20 46 52   - ( + col2 ) FR
72b0: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
72c0: 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a  --..59..68..96..
72d0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
72e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
72f0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
7300: 57 48 45 52 45 20 34 37 20 3c 3d 20 2b 20 63 6f  WHERE 47 <= + co
7310: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 32 31  l0..----..87..21
7320: 0d 0a 31 30 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d  ..10..97..1..99.
7330: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
7340: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
7350: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
7360: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 30 0d  wsort label-170.
7370: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
7380: 20 2a 20 29 20 2b 20 2d 20 4d 41 58 28 20 63 6f   * ) + - MAX( co
7390: 6c 30 20 29 20 2d 20 2b 20 2b 20 43 4f 55 4e 54  l0 ) - + + COUNT
73a0: 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  ( DISTINCT col1 
73b0: 29 20 2d 20 2d 20 28 20 31 39 20 29 20 2a 20 28  ) - - ( 19 ) * (
73c0: 20 34 39 20 29 20 2d 20 2b 20 4d 41 58 28 20 41   49 ) - + MAX( A
73d0: 4c 4c 20 63 6f 6c 30 20 29 20 2a 20 31 34 20 41  LL col0 ) * 14 A
73e0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
73f0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7400: 2d 35 32 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -524....skipif m
7410: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
7420: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
7430: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 30  owsort label-170
7440: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
7450: 20 28 20 2a 20 29 20 2b 20 2d 20 4d 41 58 20 28   ( * ) + - MAX (
7460: 20 63 6f 6c 30 20 29 20 2d 20 2b 20 2b 20 43 4f   col0 ) - + + CO
7470: 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 63  UNT ( DISTINCT c
7480: 6f 6c 31 20 29 20 2d 20 2d 20 28 20 31 39 20 29  ol1 ) - - ( 19 )
7490: 20 2a 20 28 20 34 39 20 29 20 2d 20 2b 20 4d 41   * ( 49 ) - + MA
74a0: 58 20 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 2a  X ( ALL col0 ) *
74b0: 20 31 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   14 AS col1 FROM
74c0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
74d0: 2d 2d 2d 0d 0a 2d 35 32 34 0d 0a 0d 0a 6f 6e 6c  ---..-524....onl
74e0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
74f0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
7500: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7510: 6c 61 62 65 6c 2d 31 37 31 0d 0a 53 45 4c 45 43  label-171..SELEC
7520: 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  T + - COUNT( * )
7530: 20 2b 20 2b 20 2d 20 4d 49 4e 28 20 35 20 29 20   + + - MIN( 5 ) 
7540: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
7550: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
7560: 0a 2d 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-8....skipif my
7570: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
7580: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
7590: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 31 0d  wsort label-171.
75a0: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e  .SELECT + - COUN
75b0: 54 20 28 20 2a 20 29 20 2b 20 2b 20 2d 20 4d 49  T ( * ) + + - MI
75c0: 4e 20 28 20 35 20 29 20 41 53 20 63 6f 6c 31 20  N ( 5 ) AS col1 
75d0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
75e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a 71  0..----..-8....q
75f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
7600: 53 45 4c 45 43 54 20 2b 20 35 31 20 2b 20 63 6f  SELECT + 51 + co
7610: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
7620: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 39 0d  cor0..----..109.
7630: 0a 37 34 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69  .74..91....onlyi
7640: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
7650: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
7660: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
7670: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 33 0d  wsort label-173.
7680: 0a 53 45 4c 45 43 54 20 33 30 20 44 49 56 20 2b  .SELECT 30 DIV +
7690: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
76a0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
76b0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 33 0d 0a  .----..0..0..3..
76c0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
76d0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
76e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
76f0: 20 6c 61 62 65 6c 2d 31 37 33 0d 0a 53 45 4c 45   label-173..SELE
7700: 43 54 20 33 30 20 2f 20 2b 20 63 6f 6c 32 20 41  CT 30 / + col2 A
7710: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
7720: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7730: 30 0d 0a 30 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  0..0..3....query
7740: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
7750: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
7760: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
7770: 52 45 20 33 30 20 4e 4f 54 20 42 45 54 57 45 45  RE 30 NOT BETWEE
7780: 4e 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 28  N + + col0 + + (
7790: 20 63 6f 6c 31 20 29 20 41 4e 44 20 4e 55 4c 4c   col1 ) AND NULL
77a0: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
77b0: 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
77c0: 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
77d0: 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
77e0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
77f0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
7800: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
7810: 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
7820: 65 6c 2d 31 37 35 0d 0a 53 45 4c 45 43 54 20 2a  el-175..SELECT *
7830: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
7840: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e  r0 WHERE NULL IN
7850: 20 28 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 43 41   ( - col1 * - CA
7860: 53 54 28 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  ST( col2 AS SIGN
7870: 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  ED ) )..----....
7880: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
7890: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
78a0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
78b0: 20 6c 61 62 65 6c 2d 31 37 35 0d 0a 53 45 4c 45   label-175..SELE
78c0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
78d0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
78e0: 4c 20 49 4e 20 28 20 2d 20 63 6f 6c 31 20 2a 20  L IN ( - col1 * 
78f0: 2d 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53  - CAST ( col2 AS
7900: 20 49 4e 54 45 47 45 52 20 29 20 29 0d 0a 2d 2d   INTEGER ) )..--
7910: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
7920: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
7930: 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
7940: 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
7950: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
7960: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 36 0d 0a 53  ort label-176..S
7970: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39  ELECT DISTINCT 9
7980: 31 20 2b 20 2d 20 43 4f 55 4e 54 28 20 43 41 53  1 + - COUNT( CAS
7990: 54 28 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 44  T( + + col1 AS D
79a0: 45 43 49 4d 41 4c 20 29 20 29 20 46 52 4f 4d 20  ECIMAL ) ) FROM 
79b0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a  tab1..----..88..
79c0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
79d0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
79e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
79f0: 20 6c 61 62 65 6c 2d 31 37 36 0d 0a 53 45 4c 45   label-176..SELE
7a00: 43 54 20 44 49 53 54 49 4e 43 54 20 39 31 20 2b  CT DISTINCT 91 +
7a10: 20 2d 20 43 4f 55 4e 54 20 28 20 43 41 53 54 20   - COUNT ( CAST 
7a20: 28 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 52 45  ( + + col1 AS RE
7a30: 41 4c 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  AL ) ) FROM tab1
7a40: 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a 0d 0a 6f 6e  ..----..88....on
7a50: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
7a60: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
7a70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7a80: 20 6c 61 62 65 6c 2d 31 37 37 0d 0a 53 45 4c 45   label-177..SELE
7a90: 43 54 20 41 4c 4c 20 39 20 2b 20 43 4f 55 4e 54  CT ALL 9 + COUNT
7aa0: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
7ab0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
7ac0: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
7ad0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7ae0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7af0: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 37 0d 0a 53  ort label-177..S
7b00: 45 4c 45 43 54 20 41 4c 4c 20 39 20 2b 20 43 4f  ELECT ALL 9 + CO
7b10: 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
7b20: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
7b30: 2d 0d 0a 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..12....onlyif 
7b40: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
7b50: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
7b60: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
7b70: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 38 0d 0a 53  ort label-178..S
7b80: 45 4c 45 43 54 20 28 20 28 20 63 6f 6c 31 20 29  ELECT ( ( col1 )
7b90: 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2b 20   ) * + - col1 + 
7ba0: 2d 20 2d 20 38 35 20 2f 20 2d 20 2d 20 43 41 53  - - 85 / - - CAS
7bb0: 54 28 20 30 20 41 53 20 53 49 47 4e 45 44 20 29  T( 0 AS SIGNED )
7bc0: 20 2d 20 2d 20 31 33 20 2f 20 28 20 2b 20 39 37   - - 13 / ( + 97
7bd0: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   ) FROM tab2 WHE
7be0: 52 45 20 2d 20 2d 20 36 38 20 49 53 20 4e 55 4c  RE - - 68 IS NUL
7bf0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
7c00: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
7c10: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
7c20: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
7c30: 73 74 67 72 65 53 51 4c 20 68 61 6e 64 6c 65 73  stgreSQL handles
7c40: 20 4e 55 4c 4c 20 69 6e 20 44 49 56 2f 30 20 62   NULL in DIV/0 b
7c50: 79 20 64 69 66 66 65 72 65 6e 74 6c 79 0d 0a 71  y differently..q
7c60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7c70: 61 62 65 6c 2d 31 37 38 0d 0a 53 45 4c 45 43 54  abel-178..SELECT
7c80: 20 28 20 28 20 63 6f 6c 31 20 29 20 29 20 2a 20   ( ( col1 ) ) * 
7c90: 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 38  + - col1 + - - 8
7ca0: 35 20 2f 20 2d 20 2d 20 43 41 53 54 20 28 20 30  5 / - - CAST ( 0
7cb0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20   AS INTEGER ) - 
7cc0: 2d 20 31 33 20 2f 20 28 20 2b 20 39 37 20 29 20  - 13 / ( + 97 ) 
7cd0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
7ce0: 2d 20 2d 20 36 38 20 49 53 20 4e 55 4c 4c 0d 0a  - - 68 IS NULL..
7cf0: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
7d00: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
7d10: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
7d20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7d30: 2d 31 37 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -179..SELECT ALL
7d40: 20 4d 41 58 28 20 2b 20 63 6f 6c 30 20 29 20 2b   MAX( + col0 ) +
7d50: 20 2b 20 37 20 46 52 4f 4d 20 74 61 62 30 0d 0a   + 7 FROM tab0..
7d60: 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 0d 0a 73 6b 69  ----..104....ski
7d70: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
7d80: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
7d90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7da0: 6c 2d 31 37 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-179..SELECT AL
7db0: 4c 20 4d 41 58 20 28 20 2b 20 63 6f 6c 30 20 29  L MAX ( + col0 )
7dc0: 20 2b 20 2b 20 37 20 46 52 4f 4d 20 74 61 62 30   + + 7 FROM tab0
7dd0: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 0d 0a 71  ..----..104....q
7de0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
7df0: 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53  SELECT + col1 AS
7e00: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
7e10: 57 48 45 52 45 20 63 6f 6c 32 20 49 4e 20 28 20  WHERE col2 IN ( 
7e20: 35 32 20 2b 20 63 6f 6c 31 2c 20 2d 20 35 20 2d  52 + col1, - 5 -
7e30: 20 2d 20 28 20 63 6f 6c 30 20 29 20 2a 20 35 30   - ( col0 ) * 50
7e40: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
7e50: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
7e60: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
7e70: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
7e80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38  rowsort label-18
7e90: 31 0d 0a 53 45 4c 45 43 54 20 2b 20 38 2c 20 2d  1..SELECT + 8, -
7ea0: 20 63 6f 6c 31 20 44 49 56 20 2d 20 33 31 20 41   col1 DIV - 31 A
7eb0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
7ec0: 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a 31 0d 0a 38 0d  ..----..8..1..8.
7ed0: 0a 32 0d 0a 38 0d 0a 32 0d 0a 0d 0a 73 6b 69 70  .2..8..2....skip
7ee0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
7ef0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
7f00: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
7f10: 6c 2d 31 38 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-181..SELECT + 
7f20: 38 2c 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 33 31  8, - col1 / - 31
7f30: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
7f40: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a 31 0d 0a  b2..----..8..1..
7f50: 38 0d 0a 32 0d 0a 38 0d 0a 32 0d 0a 0d 0a 71 75  8..2..8..2....qu
7f60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
7f70: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
7f80: 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 30   col0 + - - col0
7f90: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
7fa0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  b2..----..0....q
7fb0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
7fc0: 53 45 4c 45 43 54 20 2d 20 2d 20 34 36 20 2d 20  SELECT - - 46 - 
7fd0: 2b 20 35 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 56 AS col0 FRO
7fe0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
7ff0: 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a  ----..-10..-10..
8000: 2d 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -10....query III
8010: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8020: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
8030: 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
8040: 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2a 20 37 34   NOT - col2 * 74
8050: 20 49 4e 20 28 20 2b 20 28 20 2d 20 63 6f 6c 30   IN ( + ( - col0
8060: 20 29 20 2a 20 2b 20 31 37 2c 20 2d 20 63 6f 6c   ) * + 17, - col
8070: 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
8080: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
8090: 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
80a0: 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
80b0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
80c0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
80d0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
80e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
80f0: 62 65 6c 2d 31 38 35 0d 0a 53 45 4c 45 43 54 20  bel-185..SELECT 
8100: 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 33 39 20  + col0 + + - 39 
8110: 2d 20 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54 28  - col1 + + CAST(
8120: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
8130: 29 20 2b 20 37 37 20 41 53 20 63 6f 6c 31 20 46  ) + 77 AS col1 F
8140: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
8150: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
8160: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
8170: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
8180: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
8190: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
81a0: 2d 31 38 35 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -185..SELECT + c
81b0: 6f 6c 30 20 2b 20 2b 20 2d 20 33 39 20 2d 20 63  ol0 + + - 39 - c
81c0: 6f 6c 31 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  ol1 + + CAST ( N
81d0: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
81e0: 20 2b 20 37 37 20 41 53 20 63 6f 6c 31 20 46 52   + 77 AS col1 FR
81f0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
8200: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
8210: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
8220: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
8230: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
8240: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
8250: 55 4c 4c 20 3e 3d 20 63 6f 6c 31 20 2b 20 2b 20  ULL >= col1 + + 
8260: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
8270: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
8280: 53 45 4c 45 43 54 20 2d 20 2b 20 37 34 20 41 53  SELECT - + 74 AS
8290: 20 63 6f 6c 31 2c 20 2d 20 34 38 20 46 52 4f 4d   col1, - 48 FROM
82a0: 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 32 33   tab0 WHERE + 23
82b0: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
82c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
82d0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
82e0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
82f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 38 0d 0a  sort label-188..
8300: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
8310: 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  ( + + col0 ) AS 
8320: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
8330: 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f  HERE ( NULL ) NO
8340: 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
8350: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  ND NULL..----..N
8360: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
8370: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8380: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
8390: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 38 0d  wsort label-188.
83a0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49  .SELECT ALL + MI
83b0: 4e 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41  N ( + + col0 ) A
83c0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
83d0: 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
83e0: 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  NOT BETWEEN NULL
83f0: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
8400: 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
8410: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
8420: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
8430: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
8440: 65 6c 2d 31 38 39 0d 0a 53 45 4c 45 43 54 20 44  el-189..SELECT D
8450: 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
8460: 20 29 20 2a 20 2b 20 2d 20 34 37 20 41 53 20 63   ) * + - 47 AS c
8470: 6f 6c 32 2c 20 2b 20 33 38 20 2a 20 2d 20 2d 20  ol2, + 38 * - - 
8480: 39 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  93 FROM tab2..--
8490: 2d 2d 0d 0a 2d 31 34 31 0d 0a 33 35 33 34 0d 0a  --..-141..3534..
84a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
84b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
84c0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
84d0: 74 20 6c 61 62 65 6c 2d 31 38 39 0d 0a 53 45 4c  t label-189..SEL
84e0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
84f0: 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 34  NT ( * ) * + - 4
8500: 37 20 41 53 20 63 6f 6c 32 2c 20 2b 20 33 38 20  7 AS col2, + 38 
8510: 2a 20 2d 20 2d 20 39 33 20 46 52 4f 4d 20 74 61  * - - 93 FROM ta
8520: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31 0d 0a  b2..----..-141..
8530: 33 35 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3534....query I 
8540: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8550: 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  ALL col0 * + col
8560: 32 20 2d 20 2b 20 2d 20 39 37 20 41 53 20 63 6f  2 - + - 97 AS co
8570: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
8580: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 39 33  cor0..----..4993
8590: 0d 0a 35 31 31 32 0d 0a 36 32 38 35 0d 0a 0d 0a  ..5112..6285....
85a0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
85b0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 39 33 20  ..SELECT + - 93 
85c0: 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20  AS col0, - col0 
85d0: 2a 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20  * - col0 + col1 
85e0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
85f0: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  0 cor0..----..-9
8600: 33 0d 0a 33 30 36 0d 0a 2d 39 33 0d 0a 37 35 39  3..306..-93..759
8610: 30 0d 0a 2d 39 33 0d 0a 39 34 31 30 0d 0a 0d 0a  0..-93..9410....
8620: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
8630: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
8640: 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c  ol2 AS col1, col
8650: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
8660: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 38  or0..----..59..8
8670: 35 0d 0a 36 38 0d 0a 39 31 0d 0a 39 36 0d 0a 35  5..68..91..96..5
8680: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
8690: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
86a0: 54 49 4e 43 54 20 2b 20 33 32 20 2a 20 2b 20 2d  TINCT + 32 * + -
86b0: 20 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   ( + col1 ) FROM
86c0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
86d0: 2d 2d 2d 0d 0a 2d 31 36 33 32 0d 0a 2d 32 31 34  ---..-1632..-214
86e0: 34 0d 0a 2d 32 34 36 34 0d 0a 0d 0a 71 75 65 72  4..-2464....quer
86f0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8700: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36  ECT DISTINCT - 6
8710: 33 20 2a 20 2b 20 2b 20 38 20 46 52 4f 4d 20 74  3 * + + 8 FROM t
8720: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
8730: 2d 0d 0a 2d 35 30 34 0d 0a 0d 0a 71 75 65 72 79  -..-504....query
8740: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
8750: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
8760: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
8770: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
8780: 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
8790: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
87a0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
87b0: 43 54 20 44 49 53 54 49 4e 43 54 20 31 30 20 41  CT DISTINCT 10 A
87c0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
87d0: 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  , tab1 AS cor0..
87e0: 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 71 75 65 72  ----..10....quer
87f0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8800: 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b  ECT - col2 * - +
8810: 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 28 20 2b 20   col1 + - - ( + 
8820: 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
8830: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 35 39 20   WHERE NOT - 59 
8840: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
8850: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
8860: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
8870: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
8880: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8890: 6c 61 62 65 6c 2d 31 39 38 0d 0a 53 45 4c 45 43  label-198..SELEC
88a0: 54 20 2b 20 2d 20 63 6f 6c 31 20 44 49 56 20 2b  T + - col1 DIV +
88b0: 20 2b 20 34 35 20 46 52 4f 4d 20 74 61 62 30 20   + 45 FROM tab0 
88c0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
88d0: 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  1..0..0....skipi
88e0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
88f0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
8900: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8910: 31 39 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  198..SELECT + - 
8920: 63 6f 6c 31 20 2f 20 2b 20 2b 20 34 35 20 46 52  col1 / + + 45 FR
8930: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8940: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d  .----..-1..0..0.
8950: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
8960: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33  rt..SELECT ALL 3
8970: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
8980: 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
8990: 20 29 20 3c 3e 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d   ) <> col2..----
89a0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
89b0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
89c0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
89d0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
89e0: 6c 61 62 65 6c 2d 32 30 30 0d 0a 53 45 4c 45 43  label-200..SELEC
89f0: 54 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 30  T + CAST( + col0
8a00: 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
8a10: 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 46 52 4f  col1, - col2 FRO
8a20: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
8a30: 2d 2d 2d 2d 0d 0a 31 35 0d 0a 2d 34 37 0d 0a 38  ----..15..-47..8
8a40: 37 0d 0a 2d 31 30 0d 0a 39 37 0d 0a 2d 39 39 0d  7..-10..97..-99.
8a50: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
8a60: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
8a70: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
8a80: 72 74 20 6c 61 62 65 6c 2d 32 30 30 0d 0a 53 45  rt label-200..SE
8a90: 4c 45 43 54 20 2b 20 43 41 53 54 20 28 20 2b 20  LECT + CAST ( + 
8aa0: 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
8ab0: 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  ) AS col1, - col
8ac0: 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
8ad0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 2d  or0..----..15..-
8ae0: 34 37 0d 0a 38 37 0d 0a 2d 31 30 0d 0a 39 37 0d  47..87..-10..97.
8af0: 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-99....query II
8b00: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8b10: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
8b20: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
8b30: 48 45 52 45 20 4e 55 4c 4c 20 3e 20 2b 20 63 6f  HERE NULL > + co
8b40: 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 0d 0a 2d  l0 + + - col1..-
8b50: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
8b60: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
8b70: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
8b80: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
8b90: 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d 0a 53 45  rt label-202..SE
8ba0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
8bb0: 36 30 20 63 6f 6c 32 2c 20 43 41 53 54 28 20 4e  60 col2, CAST( N
8bc0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
8bd0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
8be0: 0a 36 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  .60..NULL....ski
8bf0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8c00: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
8c10: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
8c20: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
8c30: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
8c40: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
8c50: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
8c60: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d  wsort label-202.
8c70: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8c80: 20 2b 20 36 30 20 63 6f 6c 32 2c 20 43 41 53 54   + 60 col2, CAST
8c90: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
8ca0: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  ER ) FROM tab1..
8cb0: 2d 2d 2d 2d 0d 0a 36 30 0d 0a 4e 55 4c 4c 0d 0a  ----..60..NULL..
8cc0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
8cd0: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 36 2c  rt..SELECT + 16,
8ce0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
8cf0: 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 34 36 0d 0a 31  .----..16..46..1
8d00: 36 0d 0a 36 34 0d 0a 31 36 0d 0a 37 35 0d 0a 0d  6..64..16..75...
8d10: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
8d20: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
8d30: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
8d40: 6f 72 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a 53  ort label-204..S
8d50: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28  ELECT ALL + SUM(
8d60: 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63   + + col1 ) AS c
8d70: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
8d80: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35   cor0..----..195
8d90: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8da0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8db0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8dc0: 72 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a 53 45  rt label-204..SE
8dd0: 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28  LECT ALL + SUM (
8de0: 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63   + + col1 ) AS c
8df0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
8e00: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35   cor0..----..195
8e10: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
8e20: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
8e30: 54 49 4e 43 54 20 63 6f 6c 31 20 2b 20 2b 20 63  TINCT col1 + + c
8e40: 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c  ol0 AS col1, col
8e50: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
8e60: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
8e70: 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b  LL NOT BETWEEN +
8e80: 20 63 6f 6c 31 20 41 4e 44 20 63 6f 6c 32 20 2f   col1 AND col2 /
8e90: 20 2d 20 37 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   - 77..----....o
8ea0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
8eb0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
8ec0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8ed0: 74 20 6c 61 62 65 6c 2d 32 30 36 0d 0a 53 45 4c  t label-206..SEL
8ee0: 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
8ef0: 20 2a 20 29 20 2b 20 2d 20 2d 20 34 38 20 41 53   * ) + - - 48 AS
8f00: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
8f10: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
8f20: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
8f30: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8f40: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
8f50: 6f 72 74 20 6c 61 62 65 6c 2d 32 30 36 0d 0a 53  ort label-206..S
8f60: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
8f70: 54 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20 34 38  T ( * ) + - - 48
8f80: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
8f90: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
8fa0: 0d 0a 34 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..45....query I 
8fb0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8fc0: 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20 35 20 2b  ALL col2 * - 5 +
8fd0: 20 2b 20 36 31 20 2d 20 2b 20 31 39 20 41 53 20   + 61 - + 19 AS 
8fe0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
8ff0: 2d 2d 2d 2d 0d 0a 2d 32 35 33 0d 0a 2d 32 39 38  ----..-253..-298
9000: 0d 0a 2d 34 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-438....onlyif
9010: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
9020: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
9030: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
9040: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 38 0d 0a  sort label-208..
9050: 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c  SELECT CAST( NUL
9060: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
9070: 2d 20 63 6f 6c 31 20 2b 20 2d 20 34 36 20 2f 20  - col1 + - 46 / 
9080: 2b 20 2b 20 37 33 20 41 53 20 63 6f 6c 31 20 46  + + 73 AS col1 F
9090: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
90a0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
90b0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
90c0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
90d0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
90e0: 72 74 20 6c 61 62 65 6c 2d 32 30 38 0d 0a 53 45  rt label-208..SE
90f0: 4c 45 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  LECT CAST ( NULL
9100: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
9110: 2d 20 63 6f 6c 31 20 2b 20 2d 20 34 36 20 2f 20  - col1 + - 46 / 
9120: 2b 20 2b 20 37 33 20 41 53 20 63 6f 6c 31 20 46  + + 73 AS col1 F
9130: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
9140: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
9150: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
9160: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39 31  ort..SELECT + 91
9170: 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f   * - col1 + - co
9180: 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
9190: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 38  tab2..----..-468
91a0: 37 0d 0a 2d 36 31 37 32 0d 0a 2d 37 30 37 31 0d  7..-6172..-7071.
91b0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
91c0: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
91d0: 32 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 2d 20 35  2 + col0 - - - 5
91e0: 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  8 FROM tab1..---
91f0: 2d 0d 0a 31 30 31 0d 0a 38 36 0d 0a 38 39 0d 0a  -..101..86..89..
9200: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
9210: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
9220: 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
9230: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
9240: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
9250: 61 62 65 6c 2d 32 31 31 0d 0a 53 45 4c 45 43 54  abel-211..SELECT
9260: 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ALL + COUNT( * 
9270: 29 20 44 49 56 20 2b 20 31 39 20 2b 20 2d 20 31  ) DIV + 19 + - 1
9280: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
9290: 2d 0d 0a 2d 31 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..-11....skipif
92a0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
92b0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
92c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
92d0: 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  11..SELECT ALL +
92e0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b   COUNT ( * ) / +
92f0: 20 31 39 20 2b 20 2d 20 31 31 20 46 52 4f 4d 20   19 + - 11 FROM 
9300: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d  tab0..----..-11.
9310: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9320: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
9330: 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 2a  ol0 + + + col1 *
9340: 20 2d 20 34 36 20 2b 20 63 6f 6c 32 20 2a 20 2b   - 46 + col2 * +
9350: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
9360: 0a 2d 2d 2d 2d 0d 0a 2d 33 30 30 36 0d 0a 2d 39  .----..-3006..-9
9370: 0d 0a 39 36 35 34 0d 0a 0d 0a 71 75 65 72 79 20  ..9654....query 
9380: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9390: 54 20 2d 20 34 39 20 2a 20 2b 20 63 6f 6c 30 20  T - 49 * + col0 
93a0: 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + - col2 FROM ta
93b0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 37 37 0d  b2..----..-2277.
93c0: 0a 2d 33 31 37 36 0d 0a 2d 33 37 33 33 0d 0a 0d  .-3176..-3733...
93d0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
93e0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
93f0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
9400: 20 2d 20 37 39 20 2a 20 2b 20 63 6f 6c 30 20 49   - 79 * + col0 I
9410: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
9420: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
9430: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
9440: 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 35 32 20 2a   - col2 * - 52 *
9450: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
9460: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
9470: 0a 2d 2d 2d 2d 0d 0a 31 31 34 38 36 38 0d 0a 35  .----..114868..5
9480: 30 39 36 35 32 0d 0a 35 32 30 30 0d 0a 0d 0a 71  09652..5200....q
9490: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
94a0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
94b0: 2b 20 2d 20 63 6f 6c 30 20 2d 20 2b 20 2d 20 32  + - col0 - + - 2
94c0: 37 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  7 FROM tab0 cor0
94d0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 2d 37 30  ..----..-60..-70
94e0: 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..12....query II
94f0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9500: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
9510: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20  0 WHERE NOT - - 
9520: 63 6f 6c 30 20 3d 20 2b 20 37 31 0d 0a 2d 2d 2d  col0 = + 71..---
9530: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
9540: 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
9550: 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
9560: 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
9570: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
9580: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
9590: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
95a0: 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  r0 WHERE + col1 
95b0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
95c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
95d0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 35 20  ..SELECT ALL 35 
95e0: 2a 20 2b 20 39 20 41 53 20 63 6f 6c 32 20 46 52  * + 9 AS col2 FR
95f0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
9600: 0a 2d 2d 2d 2d 0d 0a 33 31 35 0d 0a 33 31 35 0d  .----..315..315.
9610: 0a 33 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .315....onlyif m
9620: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
9630: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
9640: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
9650: 2d 32 32 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  -220..SELECT DIS
9660: 54 49 4e 43 54 20 2d 20 2b 20 53 55 4d 28 20 41  TINCT - + SUM( A
9670: 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20 29 20 2a 20  LL - + col2 ) * 
9680: 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2d  COUNT( * ) + + -
9690: 20 39 38 20 2a 20 2d 20 2b 20 37 32 20 46 52 4f   98 * - + 72 FRO
96a0: 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
96b0: 2d 0d 0a 37 37 32 35 0d 0a 0d 0a 73 6b 69 70 69  -..7725....skipi
96c0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
96d0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
96e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
96f0: 32 32 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  220..SELECT DIST
9700: 49 4e 43 54 20 2d 20 2b 20 53 55 4d 20 28 20 41  INCT - + SUM ( A
9710: 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20 29 20 2a 20  LL - + col2 ) * 
9720: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
9730: 2d 20 39 38 20 2a 20 2d 20 2b 20 37 32 20 46 52  - 98 * - + 72 FR
9740: 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
9750: 2d 2d 0d 0a 37 37 32 35 0d 0a 0d 0a 71 75 65 72  --..7725....quer
9760: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
9770: 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63  ECT col0 * - - c
9780: 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
9790: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
97a0: 2d 2d 2d 0d 0a 32 32 35 0d 0a 37 35 36 39 0d 0a  ---..225..7569..
97b0: 39 34 30 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9409....onlyif m
97c0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
97d0: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
97e0: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
97f0: 6f 72 74 20 6c 61 62 65 6c 2d 32 32 32 0d 0a 53  ort label-222..S
9800: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54  ELECT ALL + CAST
9810: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
9820: 20 29 2c 20 2b 20 32 20 41 53 20 63 6f 6c 32 20   ), + 2 AS col2 
9830: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
9840: 0a 4e 55 4c 4c 0d 0a 32 0d 0a 4e 55 4c 4c 0d 0a  .NULL..2..NULL..
9850: 32 0d 0a 4e 55 4c 4c 0d 0a 32 0d 0a 0d 0a 73 6b  2..NULL..2....sk
9860: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
9870: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
9880: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
9890: 62 65 6c 2d 32 32 32 0d 0a 53 45 4c 45 43 54 20  bel-222..SELECT 
98a0: 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ALL + CAST ( NUL
98b0: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 2c 20  L AS INTEGER ), 
98c0: 2b 20 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  + 2 AS col2 FROM
98d0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
98e0: 4c 0d 0a 32 0d 0a 4e 55 4c 4c 0d 0a 32 0d 0a 4e  L..2..NULL..2..N
98f0: 55 4c 4c 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  ULL..2....onlyif
9900: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
9910: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
9920: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
9930: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 33 0d 0a  sort label-223..
9940: 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2d  SELECT - CAST( -
9950: 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45   - col0 AS SIGNE
9960: 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
9970: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   tab0..----..-15
9980: 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b  ..-87..-97....sk
9990: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
99a0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
99b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
99c0: 65 6c 2d 32 32 33 0d 0a 53 45 4c 45 43 54 20 2d  el-223..SELECT -
99d0: 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c 30   CAST ( - - col0
99e0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
99f0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
9a00: 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d  .----..-15..-87.
9a10: 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-97....query II
9a20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9a30: 20 2b 20 31 31 2c 20 2d 20 63 6f 6c 30 20 41 53   + 11, - col0 AS
9a40: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
9a50: 0a 2d 2d 2d 2d 0d 0a 31 31 0d 0a 2d 35 31 0d 0a  .----..11..-51..
9a60: 31 31 0d 0a 2d 38 35 0d 0a 31 31 0d 0a 2d 39 31  11..-85..11..-91
9a70: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
9a80: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
9a90: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
9aa0: 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
9ab0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9ac0: 74 20 6c 61 62 65 6c 2d 32 32 35 0d 0a 53 45 4c  t label-225..SEL
9ad0: 45 43 54 20 33 30 20 2a 20 4d 41 58 28 20 43 41  ECT 30 * MAX( CA
9ae0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
9af0: 4d 41 4c 20 29 20 29 20 63 6f 6c 31 20 46 52 4f  MAL ) ) col1 FRO
9b00: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
9b10: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
9b20: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
9b30: 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
9b40: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
9b50: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
9b60: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
9b70: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
9b80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
9b90: 62 65 6c 2d 32 32 35 0d 0a 53 45 4c 45 43 54 20  bel-225..SELECT 
9ba0: 33 30 20 2a 20 4d 41 58 20 28 20 43 41 53 54 20  30 * MAX ( CAST 
9bb0: 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
9bc0: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
9bd0: 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  2..----..NULL...
9be0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
9bf0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
9c00: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
9c10: 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 31 38  WHERE NOT ( - 18
9c20: 20 2d 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e   - + col2 ) IS N
9c30: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
9c40: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
9c50: 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
9c60: 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
9c70: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
9c80: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
9c90: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
9ca0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 37  owsort label-227
9cb0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
9cc0: 54 20 33 38 20 2a 20 2b 20 2b 20 39 30 2c 20 34  T 38 * + + 90, 4
9cd0: 39 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a  9 * - + COUNT( *
9ce0: 20 29 20 2a 20 2d 20 28 20 2b 20 2b 20 35 30 20   ) * - ( + + 50 
9cf0: 29 20 2b 20 2b 20 31 38 20 41 53 20 63 6f 6c 30  ) + + 18 AS col0
9d00: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
9d10: 0d 0a 33 34 32 30 0d 0a 37 33 36 38 0d 0a 0d 0a  ..3420..7368....
9d20: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9d30: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
9d40: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
9d50: 6c 61 62 65 6c 2d 32 32 37 0d 0a 53 45 4c 45 43  label-227..SELEC
9d60: 54 20 44 49 53 54 49 4e 43 54 20 33 38 20 2a 20  T DISTINCT 38 * 
9d70: 2b 20 2b 20 39 30 2c 20 34 39 20 2a 20 2d 20 2b  + + 90, 49 * - +
9d80: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
9d90: 20 28 20 2b 20 2b 20 35 30 20 29 20 2b 20 2b 20   ( + + 50 ) + + 
9da0: 31 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  18 AS col0 FROM 
9db0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 34 32 30  tab2..----..3420
9dc0: 0d 0a 37 33 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..7368....onlyif
9dd0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
9de0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
9df0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9e00: 65 6c 2d 32 32 38 0d 0a 53 45 4c 45 43 54 20 39  el-228..SELECT 9
9e10: 20 2a 20 2d 20 4d 49 4e 28 20 2b 20 63 6f 6c 32   * - MIN( + col2
9e20: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
9e30: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 37  tab2..----..-207
9e40: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
9e50: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
9e60: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
9e70: 72 74 20 6c 61 62 65 6c 2d 32 32 38 0d 0a 53 45  rt label-228..SE
9e80: 4c 45 43 54 20 39 20 2a 20 2d 20 4d 49 4e 20 28  LECT 9 * - MIN (
9e90: 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   + col2 ) AS col
9ea0: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
9eb0: 2d 0d 0a 2d 32 30 37 0d 0a 0d 0a 6f 6e 6c 79 69  -..-207....onlyi
9ec0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
9ed0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
9ee0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
9ef0: 61 62 65 6c 2d 32 32 39 0d 0a 53 45 4c 45 43 54  abel-229..SELECT
9f00: 20 2b 20 31 20 41 53 20 63 6f 6c 32 2c 20 53 55   + 1 AS col2, SU
9f10: 4d 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63  M( + col0 ) AS c
9f20: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
9f30: 2d 2d 2d 0d 0a 31 0d 0a 32 32 37 0d 0a 0d 0a 73  ---..1..227....s
9f40: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
9f50: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
9f60: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
9f70: 61 62 65 6c 2d 32 32 39 0d 0a 53 45 4c 45 43 54  abel-229..SELECT
9f80: 20 2b 20 31 20 41 53 20 63 6f 6c 32 2c 20 53 55   + 1 AS col2, SU
9f90: 4d 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  M ( + col0 ) AS 
9fa0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
9fb0: 2d 2d 2d 2d 0d 0a 31 0d 0a 32 32 37 0d 0a 0d 0a  ----..1..227....
9fc0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
9fd0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
9fe0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
9ff0: 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
a000: 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 41 4e 44  BETWEEN col0 AND
a010: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
a020: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
a030: 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
a040: 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
a050: 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  d....query I row
a060: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
a070: 20 2b 20 28 20 37 30 20 29 20 2a 20 63 6f 6c 31   + ( 70 ) * col1
a080: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
a090: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 32 39 30 0d 0a  b1..----..3290..
a0a0: 33 35 30 0d 0a 39 38 30 0d 0a 0d 0a 71 75 65 72  350..980....quer
a0b0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
a0c0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
a0d0: 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
a0e0: 20 3e 3d 20 2d 20 39 34 0d 0a 2d 2d 2d 2d 0d 0a   >= - 94..----..
a0f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
a100: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
a110: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
a120: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 33 0d 0a  sort label-233..
a130: 53 45 4c 45 43 54 20 53 55 4d 28 20 41 4c 4c 20  SELECT SUM( ALL 
a140: 28 20 28 20 2d 20 36 31 20 29 20 29 20 29 20 46  ( ( - 61 ) ) ) F
a150: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
a160: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 33 0d 0a 0d 0a  ..----..-183....
a170: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a180: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a190: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a1a0: 61 62 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54  abel-233..SELECT
a1b0: 20 53 55 4d 20 28 20 41 4c 4c 20 28 20 28 20 2d   SUM ( ALL ( ( -
a1c0: 20 36 31 20 29 20 29 20 29 20 46 52 4f 4d 20 74   61 ) ) ) FROM t
a1d0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
a1e0: 2d 0d 0a 2d 31 38 33 0d 0a 0d 0a 71 75 65 72 79  -..-183....query
a1f0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
a200: 45 43 54 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32  ECT col2, - col2
a210: 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * - col2 FROM t
a220: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
a230: 2d 0d 0a 35 39 0d 0a 33 34 38 31 0d 0a 36 38 0d  -..59..3481..68.
a240: 0a 34 36 32 34 0d 0a 39 36 0d 0a 39 32 31 36 0d  .4624..96..9216.
a250: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
a260: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
a270: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
a280: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
a290: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
a2a0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
a2b0: 45 43 54 20 2d 20 2d 20 28 20 2b 20 2d 20 31 39  ECT - - ( + - 19
a2c0: 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
a2d0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
a2e0: 0a 2d 31 39 0d 0a 2d 31 39 0d 0a 2d 31 39 0d 0a  .-19..-19..-19..
a2f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
a300: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
a310: 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
a320: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
a330: 62 65 6c 2d 32 33 36 0d 0a 53 45 4c 45 43 54 20  bel-236..SELECT 
a340: 41 4c 4c 20 63 6f 6c 31 20 2f 20 63 6f 6c 31 20  ALL col1 / col1 
a350: 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
a360: 53 20 44 45 43 49 4d 41 4c 20 29 20 46 52 4f 4d  S DECIMAL ) FROM
a370: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
a380: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
a390: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
a3a0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
a3b0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
a3c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33  rowsort label-23
a3d0: 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  6..SELECT ALL co
a3e0: 6c 31 20 2f 20 63 6f 6c 31 20 2b 20 2d 20 43 41  l1 / col1 + - CA
a3f0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
a400: 4c 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L ) FROM tab0 AS
a410: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
a420: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
a430: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
a440: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
a450: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
a460: 48 45 52 45 20 2d 20 63 6f 6c 32 20 2a 20 2d 20  HERE - col2 * - 
a470: 31 32 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 28  12 BETWEEN - + (
a480: 20 2b 20 2b 20 34 33 20 29 20 41 4e 44 20 2d 20   + + 43 ) AND - 
a490: 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
a4a0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
a4b0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
a4c0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
a4d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
a4e0: 2d 32 33 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -238..SELECT DIS
a4f0: 54 49 4e 43 54 20 2d 20 32 31 20 44 49 56 20 63  TINCT - 21 DIV c
a500: 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 63 6f 6c  ol0 + - col0 col
a510: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
a520: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 0d 0a  or0..----..-16..
a530: 2d 38 37 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70  -87..-97....skip
a540: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
a550: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
a560: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
a570: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
a580: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
a590: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
a5a0: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
a5b0: 6f 72 74 20 6c 61 62 65 6c 2d 32 33 38 0d 0a 53  ort label-238..S
a5c0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
a5d0: 20 32 31 20 2f 20 63 6f 6c 30 20 2b 20 2d 20 63   21 / col0 + - c
a5e0: 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol0 col1 FROM ta
a5f0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
a600: 0d 0a 2d 31 36 0d 0a 2d 38 37 0d 0a 2d 39 37 0d  ..-16..-87..-97.
a610: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
a620: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
a630: 6c 30 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  l0 + col2 AS col
a640: 32 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  2, + col2 AS col
a650: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
a660: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a  or0..----..104..
a670: 34 30 0d 0a 31 33 33 0d 0a 35 38 0d 0a 36 39 0d  40..133..58..69.
a680: 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .23....query I r
a690: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
a6a0: 20 2d 20 28 20 28 20 2b 20 2d 20 33 31 20 29 20   - ( ( + - 31 ) 
a6b0: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
a6c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a 33  or0..----..31..3
a6d0: 31 0d 0a 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..31....onlyif 
a6e0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
a6f0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
a700: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
a710: 6c 2d 32 34 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-241..SELECT - 
a720: 2b 20 43 4f 55 4e 54 28 20 2d 20 31 39 20 29 20  + COUNT( - 19 ) 
a730: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
a740: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
a750: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
a760: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
a770: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
a780: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
a790: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
a7a0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
a7b0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
a7c0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
a7d0: 6c 2d 32 34 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-241..SELECT - 
a7e0: 2b 20 43 4f 55 4e 54 20 28 20 2d 20 31 39 20 29  + COUNT ( - 19 )
a7f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
a800: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
a810: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
a820: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
a830: 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2b 20 2d   col1 * col1 + -
a840: 20 2d 20 31 31 20 46 52 4f 4d 20 74 61 62 30 20   - 11 FROM tab0 
a850: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
a860: 34 33 30 0d 0a 2d 36 35 35 30 0d 0a 31 30 0d 0a  430..-6550..10..
a870: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
a880: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 32 2c  rt..SELECT + 12,
a890: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
a8a0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
a8b0: 32 0d 0a 34 36 0d 0a 31 32 0d 0a 36 34 0d 0a 31  2..46..12..64..1
a8c0: 32 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  2..75....onlyif 
a8d0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
a8e0: 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
a8f0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
a900: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
a910: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 34 0d  wsort label-244.
a920: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 36  .SELECT ALL + 16
a930: 20 2b 20 2b 20 35 34 20 44 49 56 20 2d 20 43 4f   + + 54 DIV - CO
a940: 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 4d 41 58  UNT( * ) + - MAX
a950: 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  ( + col1 ) FROM 
a960: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d  tab1..----..-49.
a970: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
a980: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
a990: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a9a0: 74 20 6c 61 62 65 6c 2d 32 34 34 0d 0a 53 45 4c  t label-244..SEL
a9b0: 45 43 54 20 41 4c 4c 20 2b 20 31 36 20 2b 20 2b  ECT ALL + 16 + +
a9c0: 20 35 34 20 2f 20 2d 20 43 4f 55 4e 54 20 28 20   54 / - COUNT ( 
a9d0: 2a 20 29 20 2b 20 2d 20 4d 41 58 20 28 20 2b 20  * ) + - MAX ( + 
a9e0: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31  col1 ) FROM tab1
a9f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 0d 0a 6f  ..----..-49....o
aa00: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
aa10: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
aa20: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
aa30: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
aa40: 32 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  245..SELECT ALL 
aa50: 2d 20 63 6f 6c 30 20 44 49 56 20 2d 20 63 6f 6c  - col0 DIV - col
aa60: 31 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  1 - - col2 AS co
aa70: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
aa80: 2d 2d 0d 0a 31 34 0d 0a 31 39 36 0d 0a 34 37 0d  --..14..196..47.
aa90: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
aaa0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
aab0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
aac0: 74 20 6c 61 62 65 6c 2d 32 34 35 0d 0a 53 45 4c  t label-245..SEL
aad0: 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2f  ECT ALL - col0 /
aae0: 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 32   - col1 - - col2
aaf0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
ab00: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 31 39  b0..----..14..19
ab10: 36 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49  6..47....query I
ab20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ab30: 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 35 34 20 46   - col0 - - 54 F
ab40: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
ab50: 2d 33 33 0d 0a 2d 34 33 0d 0a 33 39 0d 0a 0d 0a  -33..-43..39....
ab60: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
ab70: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
ab80: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
ab90: 48 45 52 45 20 2b 20 2d 20 33 30 20 3c 20 28 20  HERE + - 30 < ( 
aba0: 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 29 0d  - col0 + col0 ).
abb0: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
abc0: 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
abd0: 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
abe0: 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
abf0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
ac00: 53 45 4c 45 43 54 20 2b 20 2b 20 39 32 20 2b 20  SELECT + + 92 + 
ac10: 28 20 2b 20 38 36 20 29 20 46 52 4f 4d 20 74 61  ( + 86 ) FROM ta
ac20: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b0 cor0..----..1
ac30: 37 38 0d 0a 31 37 38 0d 0a 31 37 38 0d 0a 0d 0a  78..178..178....
ac40: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ac50: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ac60: 20 2d 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 30 20   - - ( - - col0 
ac70: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
ac80: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
ac90: 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d  -..15..87..97...
aca0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
acb0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
acc0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
acd0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
ace0: 30 20 2a 20 32 38 20 2a 20 2b 20 63 6f 6c 30 20  0 * 28 * + col0 
acf0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
ad00: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
ad10: 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
ad20: 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
ad30: 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  a49....query III
ad40: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ad50: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
ad60: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
ad70: 4e 55 4c 4c 20 3e 20 2d 20 63 6f 6c 31 20 2b 20  NULL > - col1 + 
ad80: 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
ad90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ada0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
adb0: 20 33 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63   3 * - col1 AS c
adc0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
add0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34   cor0..----..-24
ade0: 33 0d 0a 2d 33 0d 0a 2d 36 33 0d 0a 0d 0a 6f 6e  3..-3..-63....on
adf0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
ae00: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
ae10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ae20: 20 6c 61 62 65 6c 2d 32 35 33 0d 0a 53 45 4c 45   label-253..SELE
ae30: 43 54 20 41 4c 4c 20 2d 20 2b 20 4d 49 4e 28 20  CT ALL - + MIN( 
ae40: 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32  - col2 ) AS col2
ae50: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
ae60: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a  r0..----..96....
ae70: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
ae80: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
ae90: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
aea0: 61 62 65 6c 2d 32 35 33 0d 0a 53 45 4c 45 43 54  abel-253..SELECT
aeb0: 20 41 4c 4c 20 2d 20 2b 20 4d 49 4e 20 28 20 2d   ALL - + MIN ( -
aec0: 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
aed0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
aee0: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71  0..----..96....q
aef0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
af00: 53 45 4c 45 43 54 20 2b 20 2b 20 35 39 20 2a 20  SELECT + + 59 * 
af10: 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 41 53  col0 + + col1 AS
af20: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
af30: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
af40: 31 35 34 0d 0a 35 37 32 34 0d 0a 39 36 36 0d 0a  154..5724..966..
af50: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
af60: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
af70: 4e 43 54 20 2d 20 2d 20 28 20 63 6f 6c 30 20 29  NCT - - ( col0 )
af80: 2c 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  , col0 AS col0 F
af90: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
afa0: 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 31 35 0d 0a  ..----..15..15..
afb0: 38 37 0d 0a 38 37 0d 0a 39 37 0d 0a 39 37 0d 0a  87..87..97..97..
afc0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
afd0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
afe0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
aff0: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 63   WHERE NOT - - c
b000: 6f 6c 31 20 2a 20 2b 20 2b 20 35 20 3e 20 4e 55  ol1 * + + 5 > NU
b010: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
b020: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
b030: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
b040: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
b050: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 37  owsort label-257
b060: 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28 20 2b  ..SELECT - + ( +
b070: 20 32 37 20 29 20 2b 20 43 41 53 54 28 20 4e 55   27 ) + CAST( NU
b080: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
b090: 20 2d 20 2b 20 35 39 20 41 53 20 63 6f 6c 30 20   - + 59 AS col0 
b0a0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
b0b0: 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 63 6f 6c 30  NOT NULL <= col0
b0c0: 20 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   * col0..----...
b0d0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
b0e0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
b0f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b100: 6c 61 62 65 6c 2d 32 35 37 0d 0a 53 45 4c 45 43  label-257..SELEC
b110: 54 20 2d 20 2b 20 28 20 2b 20 32 37 20 29 20 2b  T - + ( + 27 ) +
b120: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
b130: 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 2b 20  INTEGER ) * - + 
b140: 35 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  59 AS col0 FROM 
b150: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
b160: 55 4c 4c 20 3c 3d 20 63 6f 6c 30 20 2a 20 63 6f  ULL <= col0 * co
b170: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l0..----....only
b180: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
b190: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
b1a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b1b0: 61 62 65 6c 2d 32 35 38 0d 0a 53 45 4c 45 43 54  abel-258..SELECT
b1c0: 20 2d 20 39 30 20 2a 20 2b 20 2d 20 43 4f 55 4e   - 90 * + - COUN
b1d0: 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
b1e0: 0d 0a 2d 2d 2d 2d 0d 0a 32 37 30 0d 0a 0d 0a 73  ..----..270....s
b1f0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
b200: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
b210: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
b220: 62 65 6c 2d 32 35 38 0d 0a 53 45 4c 45 43 54 20  bel-258..SELECT 
b230: 2d 20 39 30 20 2a 20 2b 20 2d 20 43 4f 55 4e 54  - 90 * + - COUNT
b240: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
b250: 0d 0a 2d 2d 2d 2d 0d 0a 32 37 30 0d 0a 0d 0a 71  ..----..270....q
b260: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
b270: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 63  SELECT ALL + ( c
b280: 6f 6c 32 20 29 20 2a 20 2d 20 63 6f 6c 31 20 41  ol2 ) * - col1 A
b290: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
b2a0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a 2d 33  ..----..-210..-3
b2b0: 38 30 37 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72  807..-99....quer
b2c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
b2d0: 45 43 54 20 41 4c 4c 20 2b 20 38 33 20 2a 20 2b  ECT ALL + 83 * +
b2e0: 20 33 39 20 2a 20 2b 20 38 34 20 2a 20 2b 20 63   39 * + 84 * + c
b2f0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
b300: 2d 2d 2d 0d 0a 32 32 30 32 34 35 34 38 0d 0a 32  ---..22024548..2
b310: 37 31 39 30 38 0d 0a 35 37 31 30 30 36 38 0d 0a  71908..5710068..
b320: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b330: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
b340: 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63   + + + col2 AS c
b350: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
b360: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
b370: 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0..0....query I 
b380: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
b390: 28 20 2d 20 2b 20 28 20 2b 20 34 36 20 29 20 29  ( - + ( + 46 ) )
b3a0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
b3b0: 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
b3c0: 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
b3d0: 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
b3e0: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 34 39  es hashing to 49
b3f0: 31 61 64 31 66 62 37 39 66 65 63 30 62 35 37 31  1ad1fb79fec0b571
b400: 35 65 61 35 34 39 34 39 64 31 61 61 32 64 0d 0a  5ea54949d1aa2d..
b410: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b420: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 31 37  t..SELECT - - 17
b430: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
b440: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
b450: 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b0 AS cor1..----
b460: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
b470: 6e 67 20 74 6f 20 34 33 32 39 38 65 34 33 33 36  ng to 43298e4336
b480: 35 66 63 63 62 35 31 34 36 65 61 33 32 30 30 33  5fccb5146ea32003
b490: 37 35 33 63 39 32 0d 0a 0d 0a 71 75 65 72 79 20  753c92....query 
b4a0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
b4b0: 43 54 20 37 33 2c 20 36 33 20 41 53 20 63 6f 6c  CT 73, 63 AS col
b4c0: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
b4d0: 2d 0d 0a 37 33 0d 0a 36 33 0d 0a 37 33 0d 0a 36  -..73..63..73..6
b4e0: 33 0d 0a 37 33 0d 0a 36 33 0d 0a 0d 0a 71 75 65  3..73..63....que
b4f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
b500: 4c 45 43 54 20 31 36 20 2a 20 2d 20 63 6f 6c 30  LECT 16 * - col0
b510: 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63   * - + col1 AS c
b520: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
b530: 2d 2d 2d 0d 0a 31 35 35 32 0d 0a 31 39 34 34 30  ---..1552..19440
b540: 0d 0a 32 39 32 33 32 0d 0a 0d 0a 71 75 65 72 79  ..29232....query
b550: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
b560: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20  CT DISTINCT - - 
b570: 35 38 20 2d 20 2d 20 2b 20 63 6f 6c 30 20 46 52  58 - - + col0 FR
b580: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
b590: 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 32 32 0d  .----..104..122.
b5a0: 0a 31 33 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .133....onlyif m
b5b0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
b5c0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
b5d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
b5e0: 2d 32 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -267..SELECT DIS
b5f0: 54 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28  TINCT - - COUNT(
b600: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
b610: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
b620: 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
b630: 2f 20 2d 20 2d 20 33 37 20 2a 20 2b 20 63 6f 6c  / - - 37 * + col
b640: 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
b650: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
b660: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b670: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b680: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b690: 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  67..SELECT DISTI
b6a0: 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20  NCT - - COUNT ( 
b6b0: 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
b6c0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
b6d0: 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2f  ERE NOT + col1 /
b6e0: 20 2d 20 2d 20 33 37 20 2a 20 2b 20 63 6f 6c 31   - - 37 * + col1
b6f0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
b700: 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  --..0....query I
b710: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b720: 20 2d 20 39 38 20 2d 20 2d 20 63 6f 6c 31 20 41   - 98 - - col1 A
b730: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
b740: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
b750: 2d 32 31 0d 0a 2d 33 31 0d 0a 2d 34 37 0d 0a 0d  -21..-31..-47...
b760: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
b770: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
b780: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
b790: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
b7a0: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
b7b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
b7c0: 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32 20 2d  T ALL - - col2 -
b7d0: 20 2d 20 2d 20 31 37 20 63 6f 6c 31 20 46 52 4f   - - 17 col1 FRO
b7e0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
b7f0: 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 31 0d 0a 36 0d  ----..23..41..6.
b800: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
b810: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
b820: 2b 20 34 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f  + 40 AS col0, co
b830: 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
b840: 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20  tab1 cor0 WHERE 
b850: 4e 4f 54 20 2b 20 28 20 2d 20 31 38 20 29 20 4e  NOT + ( - 18 ) N
b860: 4f 54 20 49 4e 20 28 20 63 6f 6c 30 20 2a 20 2b  OT IN ( col0 * +
b870: 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
b880: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b890: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
b8a0: 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 41 53   ( - - col0 ) AS
b8b0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
b8c0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
b8d0: 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 73 6b 69  5..87..97....ski
b8e0: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
b8f0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
b900: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
b910: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
b920: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
b930: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
b940: 4c 20 2d 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  L - - ( + col0 )
b950: 20 2a 20 2d 20 37 30 20 2a 20 2d 20 63 6f 6c 32   * - 70 * - col2
b960: 20 2b 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f   + col0 col2 FRO
b970: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
b980: 2d 0d 0a 31 37 39 32 36 34 0d 0a 33 30 34 35 37  -..179264..30457
b990: 35 0d 0a 37 34 31 30 36 0d 0a 0d 0a 71 75 65 72  5..74106....quer
b9a0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
b9b0: 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c  ECT - col0 + col
b9c0: 30 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f  0 * + + col2 FRO
b9d0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39  M tab0..----..69
b9e0: 30 0d 0a 37 38 33 0d 0a 39 35 30 36 0d 0a 0d 0a  0..783..9506....
b9f0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
ba00: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
ba10: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
ba20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ba30: 2d 32 37 34 0d 0a 53 45 4c 45 43 54 20 28 20 63  -274..SELECT ( c
ba40: 6f 6c 31 20 29 20 2b 20 2d 20 63 6f 6c 32 20 63  ol1 ) + - col2 c
ba50: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
ba60: 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 2d 20 43 41  ERE NULL <> - CA
ba70: 53 54 28 20 39 36 20 41 53 20 53 49 47 4e 45 44  ST( 96 AS SIGNED
ba80: 20 29 20 2a 20 2b 20 33 31 20 2a 20 63 6f 6c 30   ) * + 31 * col0
ba90: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
baa0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
bab0: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
bac0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
bad0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
bae0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
baf0: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
bb00: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
bb10: 74 20 6c 61 62 65 6c 2d 32 37 34 0d 0a 53 45 4c  t label-274..SEL
bb20: 45 43 54 20 28 20 63 6f 6c 31 20 29 20 2b 20 2d  ECT ( col1 ) + -
bb30: 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20   col2 col2 FROM 
bb40: 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab1 WHERE NULL 
bb50: 3c 3e 20 2d 20 43 41 53 54 20 28 20 39 36 20 41  <> - CAST ( 96 A
bb60: 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20  S INTEGER ) * + 
bb70: 33 31 20 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  31 * col0..----.
bb80: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
bb90: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
bba0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
bbb0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 35 0d  wsort label-275.
bbc0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
bbd0: 55 4e 54 28 20 2b 20 33 20 29 20 46 52 4f 4d 20  UNT( + 3 ) FROM 
bbe0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  tab1..----..-3..
bbf0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
bc00: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
bc10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
bc20: 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45 4c 45   label-275..SELE
bc30: 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
bc40: 20 2b 20 33 20 29 20 46 52 4f 4d 20 74 61 62 31   + 3 ) FROM tab1
bc50: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
bc60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
bc70: 45 4c 45 43 54 20 41 4c 4c 20 34 38 20 2a 20 2d  ELECT ALL 48 * -
bc80: 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 46   col1 + - col2 F
bc90: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
bca0: 2d 31 30 31 38 0d 0a 2d 31 34 37 0d 0a 2d 33 39  -1018..-147..-39
bcb0: 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  35....onlyif mys
bcc0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
bcd0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
bce0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
bcf0: 20 6c 61 62 65 6c 2d 32 37 37 0d 0a 53 45 4c 45   label-277..SELE
bd00: 43 54 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53  CT CAST( col2 AS
bd10: 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f   SIGNED ) + + co
bd20: 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
bd30: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 38 0d 0a 32 30  0..----..198..20
bd40: 0d 0a 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..94....skipif m
bd50: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
bd60: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
bd70: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
bd80: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
bd90: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
bda0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
bdb0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
bdc0: 6c 61 62 65 6c 2d 32 37 37 0d 0a 53 45 4c 45 43  label-277..SELEC
bdd0: 54 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53  T CAST ( col2 AS
bde0: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63   INTEGER ) + + c
bdf0: 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol2 col2 FROM ta
be00: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 38 0d 0a 32  b0..----..198..2
be10: 30 0d 0a 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49  0..94....query I
be20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
be30: 20 2b 20 63 6f 6c 31 20 2b 20 38 30 20 2a 20 2d   + col1 + 80 * -
be40: 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 33 32 20 46   col0 + - - 32 F
be50: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
be60: 2d 34 30 33 34 0d 0a 2d 36 37 36 33 0d 0a 2d 37  -4034..-6763..-7
be70: 32 30 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  201....query I r
be80: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
be90: 49 53 54 49 4e 43 54 20 2b 20 2b 20 33 38 20 41  ISTINCT + + 38 A
bea0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
beb0: 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
bec0: 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  L ) NOT BETWEEN 
bed0: 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 31 20 2a 20  NULL AND col1 * 
bee0: 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  - + col1..----..
bef0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
bf00: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
bf10: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20  OM tab0 WHERE - 
bf20: 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 39 37 20  - col0 + - - 97 
bf30: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
bf40: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
bf50: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
bf60: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
bf70: 20 63 6f 6c 32 20 2a 20 2b 20 37 39 20 3c 20 4e   col2 * + 79 < N
bf80: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
bf90: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
bfa0: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
bfb0: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
bfc0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
bfd0: 32 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 38 38  2..SELECT ( + 88
bfe0: 20 29 20 44 49 56 20 63 6f 6c 30 20 2a 20 2b 20   ) DIV col0 * + 
bff0: 34 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  40 FROM tab0..--
c000: 2d 2d 0d 0a 30 0d 0a 32 30 30 0d 0a 34 30 0d 0a  --..0..200..40..
c010: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
c020: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
c030: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c040: 20 6c 61 62 65 6c 2d 32 38 32 0d 0a 53 45 4c 45   label-282..SELE
c050: 43 54 20 28 20 2b 20 38 38 20 29 20 2f 20 63 6f  CT ( + 88 ) / co
c060: 6c 30 20 2a 20 2b 20 34 30 20 46 52 4f 4d 20 74  l0 * + 40 FROM t
c070: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 30  ab0..----..0..20
c080: 30 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..40....onlyif 
c090: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
c0a0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
c0b0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c0c0: 6f 72 74 20 6c 61 62 65 6c 2d 32 38 33 0d 0a 53  ort label-283..S
c0d0: 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 2b 20  ELECT + CAST( + 
c0e0: 37 34 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  74 AS SIGNED ) F
c0f0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
c100: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
c110: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
c120: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
c130: 20 74 6f 20 32 63 63 66 38 65 66 33 66 34 37 37   to 2ccf8ef3f477
c140: 65 31 61 31 61 33 65 33 30 63 38 62 38 31 35 34  e1a1a3e30c8b8154
c150: 66 66 33 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ff31....skipif m
c160: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
c170: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
c180: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 33  owsort label-283
c190: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
c1a0: 28 20 2b 20 37 34 20 41 53 20 49 4e 54 45 47 45  ( + 74 AS INTEGE
c1b0: 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  R ) FROM tab1 AS
c1c0: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
c1d0: 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d   tab1 AS cor1..-
c1e0: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
c1f0: 73 68 69 6e 67 20 74 6f 20 32 63 63 66 38 65 66  shing to 2ccf8ef
c200: 33 66 34 37 37 65 31 61 31 61 33 65 33 30 63 38  3f477e1a1a3e30c8
c210: 62 38 31 35 34 66 66 33 31 0d 0a 0d 0a 6f 6e 6c  b8154ff31....onl
c220: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
c230: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
c240: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
c250: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
c260: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c270: 32 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  284..SELECT ALL 
c280: 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 2d 20 43  - MAX( ALL + - C
c290: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
c2a0: 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20  NED ) ) AS col1 
c2b0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
c2c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
c2d0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
c2e0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
c2f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
c300: 6c 61 62 65 6c 2d 32 38 34 0d 0a 53 45 4c 45 43  label-284..SELEC
c310: 54 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20 41 4c  T ALL - MAX ( AL
c320: 4c 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  L + - CAST ( NUL
c330: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
c340: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
c350: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
c360: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
c370: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c380: 54 20 63 6f 6c 30 20 2a 20 38 33 20 41 53 20 63  T col0 * 83 AS c
c390: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
c3a0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
c3b0: 2d 20 28 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29  - ( + ( + col1 )
c3c0: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
c3d0: 0d 0a 34 32 33 33 0d 0a 37 30 35 35 0d 0a 37 35  ..4233..7055..75
c3e0: 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  53....onlyif mys
c3f0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
c400: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
c410: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c420: 32 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  286..SELECT ALL 
c430: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
c440: 63 6f 6c 32 2c 20 2b 20 43 4f 55 4e 54 28 20 2a  col2, + COUNT( *
c450: 20 29 20 2d 20 2b 20 34 38 20 41 53 20 63 6f 6c   ) - + 48 AS col
c460: 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  2 FROM tab2 cor0
c470: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 34 35 0d  ..----..-3..-45.
c480: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
c490: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
c4a0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
c4b0: 72 74 20 6c 61 62 65 6c 2d 32 38 36 0d 0a 53 45  rt label-286..SE
c4c0: 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
c4d0: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20   ( * ) AS col2, 
c4e0: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20  + COUNT ( * ) - 
c4f0: 2b 20 34 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 48 AS col2 FRO
c500: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
c510: 2d 0d 0a 2d 33 0d 0a 2d 34 35 0d 0a 0d 0a 73 6b  -..-3..-45....sk
c520: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
c530: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
c540: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
c550: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
c560: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
c570: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39  owsort..SELECT 9
c580: 30 20 2b 20 2b 20 63 6f 6c 30 20 63 6f 6c 32 20  0 + + col0 col2 
c590: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
c5a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 36 0d 0a 31 35  0..----..136..15
c5b0: 34 0d 0a 31 36 35 0d 0a 0d 0a 71 75 65 72 79 20  4..165....query 
c5c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c5d0: 54 20 2b 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 32  T + - ( + + col2
c5e0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
c5f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  cor0..----..-10.
c600: 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c  .-47..-99....onl
c610: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
c620: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
c630: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
c640: 6c 61 62 65 6c 2d 32 38 39 0d 0a 53 45 4c 45 43  label-289..SELEC
c650: 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2d  T ALL + COUNT( -
c660: 20 36 38 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   68 ) FROM tab0.
c670: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
c680: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
c690: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
c6a0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c6b0: 2d 32 38 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -289..SELECT ALL
c6c0: 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 36 38 20   + COUNT ( - 68 
c6d0: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
c6e0: 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..3....query I 
c6f0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c700: 41 4c 4c 20 2b 20 31 31 20 2a 20 2b 20 63 6f 6c  ALL + 11 * + col
c710: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
c720: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 36 31 0d 0a  ab2..----..561..
c730: 37 33 37 0d 0a 38 34 37 0d 0a 0d 0a 71 75 65 72  737..847....quer
c740: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
c750: 45 43 54 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29  ECT + ( + col1 )
c760: 20 2a 20 39 30 20 46 52 4f 4d 20 74 61 62 32 0d   * 90 FROM tab2.
c770: 0a 2d 2d 2d 2d 0d 0a 34 35 39 30 0d 0a 36 30 33  .----..4590..603
c780: 30 0d 0a 36 39 33 30 0d 0a 0d 0a 71 75 65 72 79  0..6930....query
c790: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c7a0: 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 39 34  CT - col0 * + 94
c7b0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
c7c0: 0d 0a 2d 34 33 32 34 0d 0a 2d 36 30 31 36 0d 0a  ..-4324..-6016..
c7d0: 2d 37 30 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -7050....onlyif 
c7e0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
c7f0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
c800: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
c810: 6c 2d 32 39 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-293..SELECT DI
c820: 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
c830: 29 20 2b 20 2d 20 2d 20 35 38 20 46 52 4f 4d 20  ) + - - 58 FROM 
c840: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 31 0d 0a  tab1..----..61..
c850: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
c860: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
c870: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c880: 20 6c 61 62 65 6c 2d 32 39 33 0d 0a 53 45 4c 45   label-293..SELE
c890: 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
c8a0: 54 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20 35 38  T ( * ) + - - 58
c8b0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
c8c0: 0d 0a 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..61....query I 
c8d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c8e0: 44 49 53 54 49 4e 43 54 20 2d 20 37 37 20 2b 20  DISTINCT - 77 + 
c8f0: 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  + col0 FROM tab0
c900: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c910: 2d 36 32 0d 0a 31 30 0d 0a 32 30 0d 0a 0d 0a 71  -62..10..20....q
c920: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
c930: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 34  SELECT ALL ( + 4
c940: 37 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  7 ) AS col2 FROM
c950: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d   tab1..----..47.
c960: 0a 34 37 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79  .47..47....query
c970: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c980: 43 54 20 2b 20 63 6f 6c 31 20 2b 20 37 38 20 46  CT + col1 + 78 F
c990: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
c9a0: 31 32 35 0d 0a 38 33 0d 0a 39 32 0d 0a 0d 0a 6f  125..83..92....o
c9b0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
c9c0: 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
c9d0: 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
c9e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c9f0: 2d 32 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -297..SELECT DIS
ca00: 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e 55  TINCT + CAST( NU
ca10: 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
ca20: 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  * + col0 AS col2
ca30: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
ca40: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
ca50: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ca60: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
ca70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ca80: 20 6c 61 62 65 6c 2d 32 39 37 0d 0a 53 45 4c 45   label-297..SELE
ca90: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41  CT DISTINCT + CA
caa0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
cab0: 4c 20 29 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20  L ) * + col0 AS 
cac0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
cad0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
cae0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
caf0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 34  wsort..SELECT 64
cb00: 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d 20   * - col1 * - - 
cb10: 63 6f 6c 31 20 2b 20 2b 20 2d 20 39 20 41 53 20  col1 + + - 9 AS 
cb20: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
cb30: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
cb40: 32 35 35 33 0d 0a 2d 31 34 31 33 38 35 0d 0a 2d  2553..-141385..-
cb50: 31 36 30 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  1609....skipif p
cb60: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
cb70: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
cb80: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
cb90: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
cba0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
cbb0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
cbc0: 2c 20 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  , 1 col1 FROM ta
cbd0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
cbe0: 0d 0a 35 39 0d 0a 31 0d 0a 36 38 0d 0a 31 0d 0a  ..59..1..68..1..
cbf0: 39 36 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  96..1....query I
cc00: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
cc10: 20 2d 20 37 37 20 2a 20 2d 20 2b 20 63 6f 6c 30   - 77 * - + col0
cc20: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
cc30: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
cc40: 0d 0a 33 35 34 32 0d 0a 34 39 32 38 0d 0a 35 37  ..3542..4928..57
cc50: 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
cc60: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
cc70: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
cc80: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
cc90: 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  01..SELECT DISTI
cca0: 4e 43 54 20 2d 20 2d 20 4d 49 4e 28 20 2d 20 63  NCT - - MIN( - c
ccb0: 6f 6c 30 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28  ol0 ) * + COUNT(
ccc0: 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
ccd0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
cce0: 2d 2d 2d 2d 0d 0a 2d 32 37 33 0d 0a 0d 0a 73 6b  ----..-273....sk
ccf0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
cd00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
cd10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
cd20: 65 6c 2d 33 30 31 0d 0a 53 45 4c 45 43 54 20 44  el-301..SELECT D
cd30: 49 53 54 49 4e 43 54 20 2d 20 2d 20 4d 49 4e 20  ISTINCT - - MIN 
cd40: 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20 43  ( - col0 ) * + C
cd50: 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
cd60: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
cd70: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 33  cor0..----..-273
cd80: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
cd90: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
cda0: 20 2a 20 2d 20 34 35 20 46 52 4f 4d 20 74 61 62   * - 45 FROM tab
cdb0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
cdc0: 0a 2d 32 30 37 30 0d 0a 2d 32 38 38 30 0d 0a 2d  .-2070..-2880..-
cdd0: 33 33 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3375....onlyif m
cde0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
cdf0: 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
ce00: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
ce10: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
ce20: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 33 0d 0a  sort label-303..
ce30: 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 38 38 20  SELECT - ( - 88 
ce40: 29 20 44 49 56 20 2b 20 2d 20 53 55 4d 28 20 44  ) DIV + - SUM( D
ce50: 49 53 54 49 4e 43 54 20 2b 20 2b 20 34 30 20 29  ISTINCT + + 40 )
ce60: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
ce70: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
ce80: 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-2....skipif m
ce90: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
cea0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
ceb0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 33  owsort label-303
cec0: 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 38  ..SELECT - ( - 8
ced0: 38 20 29 20 2f 20 2b 20 2d 20 53 55 4d 20 28 20  8 ) / + - SUM ( 
cee0: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 34 30 20  DISTINCT + + 40 
cef0: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
cf00: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
cf10: 2d 0d 0a 2d 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-2....query I
cf20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
cf30: 20 41 4c 4c 20 35 37 20 2a 20 2b 20 2b 20 63 6f   ALL 57 * + + co
cf40: 6c 31 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l1 * col1 AS col
cf50: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
cf60: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 31 33 37  or0..----..25137
cf70: 0d 0a 33 37 33 39 37 37 0d 0a 35 37 0d 0a 0d 0a  ..373977..57....
cf80: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
cf90: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
cfa0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
cfb0: 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 28  HERE NOT ( NOT (
cfc0: 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 20 29 20   NULL IS NULL ) 
cfd0: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
cfe0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
cff0: 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
d000: 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
d010: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
d020: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
d030: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
d040: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
d050: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
d060: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d070: 54 20 41 4c 4c 20 2d 20 31 31 20 2b 20 2b 20 63  T ALL - 11 + + c
d080: 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol2 col1 FROM ta
d090: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 32 39  b2..----..12..29
d0a0: 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..47....query II
d0b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d0c0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
d0d0: 45 52 45 20 4e 55 4c 4c 20 3e 20 33 35 0d 0a 2d  ERE NULL > 35..-
d0e0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
d0f0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
d100: 4c 4c 20 28 20 28 20 2d 20 2d 20 38 34 20 29 20  LL ( ( - - 84 ) 
d110: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
d120: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 38  ab2..----..84..8
d130: 34 0d 0a 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  4..84....onlyif 
d140: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
d150: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
d160: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
d170: 65 6c 2d 33 30 39 0d 0a 53 45 4c 45 43 54 20 2b  el-309..SELECT +
d180: 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
d190: 6f 6c 31 2c 20 35 35 20 46 52 4f 4d 20 74 61 62  ol1, 55 FROM tab
d1a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 35 35 0d 0a  0..----..3..55..
d1b0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
d1c0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
d1d0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
d1e0: 74 20 6c 61 62 65 6c 2d 33 30 39 0d 0a 53 45 4c  t label-309..SEL
d1f0: 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ECT + COUNT ( * 
d200: 29 20 41 53 20 63 6f 6c 31 2c 20 35 35 20 46 52  ) AS col1, 55 FR
d210: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
d220: 0d 0a 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..55....query II
d230: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
d240: 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 30 2c 20 63   ALL + + col0, c
d250: 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
d260: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
d270: 2d 2d 2d 0d 0a 31 35 0d 0a 34 37 0d 0a 38 37 0d  ---..15..47..87.
d280: 0a 31 30 0d 0a 39 37 0d 0a 39 39 0d 0a 0d 0a 71  .10..97..99....q
d290: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
d2a0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20  .SELECT ALL - ( 
d2b0: 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  - col0 ) AS col0
d2c0: 2c 20 2b 20 34 31 20 46 52 4f 4d 20 74 61 62 32  , + 41 FROM tab2
d2d0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
d2e0: 34 36 0d 0a 34 31 0d 0a 36 34 0d 0a 34 31 0d 0a  46..41..64..41..
d2f0: 37 35 0d 0a 34 31 0d 0a 0d 0a 71 75 65 72 79 20  75..41....query 
d300: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d310: 54 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  T - col1 FROM ta
d320: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
d330: 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3c 3d   NOT ( NULL ) <=
d340: 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col0..----...
d350: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d360: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
d370: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
d380: 6f 72 74 20 6c 61 62 65 6c 2d 33 31 33 0d 0a 53  ort label-313..S
d390: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 4d 41  ELECT ALL - - MA
d3a0: 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20  X( ALL - col2 ) 
d3b0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
d3c0: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 49 53  HERE NOT col1 IS
d3d0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
d3e0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
d3f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
d400: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
d410: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31  rowsort label-31
d420: 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
d430: 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 63 6f  - MAX ( ALL - co
d440: 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63  l2 ) FROM tab1 c
d450: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
d460: 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
d470: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
d480: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
d490: 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 46  ELECT + + col2 F
d4a0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
d4b0: 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20   WHERE NOT col0 
d4c0: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
d4d0: 20 2d 20 2d 20 32 36 0d 0a 2d 2d 2d 2d 0d 0a 35   - - 26..----..5
d4e0: 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c  9..68..96....onl
d4f0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
d500: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
d510: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d520: 6c 61 62 65 6c 2d 33 31 35 0d 0a 53 45 4c 45 43  label-315..SELEC
d530: 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 43  T COUNT( * ) * C
d540: 4f 55 4e 54 28 20 2d 20 63 6f 6c 30 20 29 20 2b  OUNT( - col0 ) +
d550: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
d560: 2d 20 2b 20 28 20 2d 20 2b 20 34 32 20 29 20 2a  - + ( - + 42 ) *
d570: 20 2b 20 2d 20 38 38 20 2a 20 53 55 4d 28 20 41   + - 88 * SUM( A
d580: 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2b 20  LL - col0 ) + + 
d590: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
d5a0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
d5b0: 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2f 20  RE NOT + col2 / 
d5c0: 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 3c 3d 20 36  col2 * col1 <= 6
d5d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
d5e0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
d5f0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
d600: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d610: 6c 61 62 65 6c 2d 33 31 35 0d 0a 53 45 4c 45 43  label-315..SELEC
d620: 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  T COUNT ( * ) * 
d630: 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20 29  COUNT ( - col0 )
d640: 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
d650: 20 2b 20 2d 20 2b 20 28 20 2d 20 2b 20 34 32 20   + - + ( - + 42 
d660: 29 20 2a 20 2b 20 2d 20 38 38 20 2a 20 53 55 4d  ) * + - 88 * SUM
d670: 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20   ( ALL - col0 ) 
d680: 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
d690: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
d6a0: 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  1 WHERE NOT + co
d6b0: 6c 32 20 2f 20 63 6f 6c 32 20 2a 20 63 6f 6c 31  l2 / col2 * col1
d6c0: 20 3c 3d 20 36 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55   <= 60..----..NU
d6d0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
d6e0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20  wsort..SELECT ( 
d6f0: 2b 20 2b 20 34 31 20 29 20 41 53 20 63 6f 6c 32  + + 41 ) AS col2
d700: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
d710: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
d720: 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b0 AS cor1..----
d730: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
d740: 6e 67 20 74 6f 20 35 62 31 38 39 38 36 62 62 32  ng to 5b18986bb2
d750: 39 34 34 31 32 62 33 64 39 66 30 37 62 37 65 36  94412b3d9f07b7e6
d760: 66 63 38 32 31 65 0d 0a 0d 0a 6f 6e 6c 79 69 66  fc821e....onlyif
d770: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d780: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d790: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d7a0: 65 6c 2d 33 31 37 0d 0a 53 45 4c 45 43 54 20 41  el-317..SELECT A
d7b0: 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  LL COUNT( * ) + 
d7c0: 2d 20 31 34 20 46 52 4f 4d 20 74 61 62 31 2c 20  - 14 FROM tab1, 
d7d0: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
d7e0: 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-5....skipif my
d7f0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
d800: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
d810: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 37 0d  wsort label-317.
d820: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
d830: 54 20 28 20 2a 20 29 20 2b 20 2d 20 31 34 20 46  T ( * ) + - 14 F
d840: 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 30 20 63  ROM tab1, tab0 c
d850: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d  or0..----..-5...
d860: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d870: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
d880: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
d890: 6f 72 74 20 6c 61 62 65 6c 2d 33 31 38 0d 0a 53  ort label-318..S
d8a0: 45 4c 45 43 54 20 2b 20 37 31 20 2a 20 35 34 20  ELECT + 71 * 54 
d8b0: 2b 20 2b 20 33 32 20 2a 20 2b 20 2b 20 32 30 20  + + 32 * + + 20 
d8c0: 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  * COUNT( * ) col
d8d0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
d8e0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 37 35 34 0d  or0..----..5754.
d8f0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
d900: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
d910: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
d920: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
d930: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
d940: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
d950: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
d960: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d970: 2d 33 31 38 0d 0a 53 45 4c 45 43 54 20 2b 20 37  -318..SELECT + 7
d980: 31 20 2a 20 35 34 20 2b 20 2b 20 33 32 20 2a 20  1 * 54 + + 32 * 
d990: 2b 20 2b 20 32 30 20 2a 20 43 4f 55 4e 54 20 28  + + 20 * COUNT (
d9a0: 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74   * ) col1 FROM t
d9b0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
d9c0: 2d 0d 0a 35 37 35 34 0d 0a 0d 0a 71 75 65 72 79  -..5754....query
d9d0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
d9e0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
d9f0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
da00: 4f 54 20 28 20 63 6f 6c 32 20 29 20 3e 20 2d 20  OT ( col2 ) > - 
da10: 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col1..----....on
da20: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
da30: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
da40: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
da50: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
da60: 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  20..SELECT ALL +
da70: 20 63 6f 6c 31 20 2f 20 43 41 53 54 28 20 4e 55   col1 / CAST( NU
da80: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
da90: 20 2b 20 2d 20 38 20 41 53 20 63 6f 6c 30 20 46   + - 8 AS col0 F
daa0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
dab0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
dac0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
dad0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
dae0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
daf0: 72 74 20 6c 61 62 65 6c 2d 33 32 30 0d 0a 53 45  rt label-320..SE
db00: 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  LECT ALL + col1 
db10: 2f 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  / CAST ( NULL AS
db20: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 2d   INTEGER ) + + -
db30: 20 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   8 AS col0 FROM 
db40: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
db50: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
db60: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
db70: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
db80: 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c   tab1 WHERE NULL
db90: 20 4e 4f 54 20 49 4e 20 28 20 2d 20 2b 20 38 20   NOT IN ( - + 8 
dba0: 2a 20 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 20  * - col0 / col0 
dbb0: 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63  * - - col0 + - c
dbc0: 6f 6c 32 2c 20 63 6f 6c 32 20 2a 20 2b 20 2d 20  ol2, col2 * + - 
dbd0: 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
dbe0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
dbf0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
dc00: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 36 39 20 2a   + col2 + - 69 *
dc10: 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
dc20: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 31 32 0d 0a  1..----..-4012..
dc30: 2d 34 36 32 34 0d 0a 2d 36 35 32 38 0d 0a 0d 0a  -4624..-6528....
dc40: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
dc50: 0a 53 45 4c 45 43 54 20 32 32 20 2b 20 28 20 2b  .SELECT 22 + ( +
dc60: 20 63 6f 6c 30 20 29 20 2a 20 2d 20 36 30 20 46   col0 ) * - 60 F
dc70: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
dc80: 2d 33 30 33 38 0d 0a 2d 35 30 37 38 0d 0a 2d 35  -3038..-5078..-5
dc90: 34 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  438....query II 
dca0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
dcb0: 41 4c 4c 20 2d 20 36 20 2a 20 2d 20 63 6f 6c 32  ALL - 6 * - col2
dcc0: 20 2b 20 2b 20 63 6f 6c 30 2c 20 63 6f 6c 30 20   + + col0, col0 
dcd0: 2d 20 2b 20 38 20 41 53 20 63 6f 6c 32 20 46 52  - + 8 AS col2 FR
dce0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
dcf0: 34 37 0d 0a 37 39 0d 0a 32 39 37 0d 0a 37 0d 0a  47..79..297..7..
dd00: 36 39 31 0d 0a 38 39 0d 0a 0d 0a 6f 6e 6c 79 69  691..89....onlyi
dd10: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
dd20: 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
dd30: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
dd40: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
dd50: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
dd60: 35 0d 0a 53 45 4c 45 43 54 20 32 31 20 44 49 56  5..SELECT 21 DIV
dd70: 20 2b 20 2d 20 28 20 2d 20 32 39 20 29 20 2a 20   + - ( - 29 ) * 
dd80: 28 20 2d 20 53 55 4d 28 20 63 6f 6c 31 20 29 20  ( - SUM( col1 ) 
dd90: 29 20 2b 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b  ) + - MAX( ALL +
dda0: 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
ddb0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a  ab1..----..5....
ddc0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
ddd0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
dde0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
ddf0: 61 62 65 6c 2d 33 32 35 0d 0a 53 45 4c 45 43 54  abel-325..SELECT
de00: 20 32 31 20 2f 20 2b 20 2d 20 28 20 2d 20 32 39   21 / + - ( - 29
de10: 20 29 20 2a 20 28 20 2d 20 53 55 4d 20 28 20 63   ) * ( - SUM ( c
de20: 6f 6c 31 20 29 20 29 20 2b 20 2d 20 4d 41 58 20  ol1 ) ) + - MAX 
de30: 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 29  ( ALL + - col1 )
de40: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
de50: 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..5....query I r
de60: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
de70: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
de80: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20  OM tab1 WHERE + 
de90: 31 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  13 IS NULL..----
dea0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
deb0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
dec0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
ded0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
dee0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
def0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
df00: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
df10: 20 38 38 20 2b 20 28 20 2d 20 33 20 29 20 41 53   88 + ( - 3 ) AS
df20: 20 63 6f 6c 30 2c 20 38 32 20 63 6f 6c 32 20 46   col0, 82 col2 F
df30: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
df40: 38 35 0d 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20  85..82....query 
df50: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
df60: 54 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 2a  T ( - - col1 ) *
df70: 20 2d 20 39 33 20 2b 20 36 33 20 41 53 20 63 6f   - 93 + 63 AS co
df80: 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
df90: 2d 2d 0d 0a 2d 34 36 38 30 0d 0a 2d 36 31 36 38  --..-4680..-6168
dfa0: 0d 0a 2d 37 30 39 38 0d 0a 0d 0a 6f 6e 6c 79 69  ..-7098....onlyi
dfb0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
dfc0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
dfd0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
dfe0: 61 62 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43 54  abel-329..SELECT
dff0: 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 38 34   DISTINCT - - 84
e000: 20 41 53 20 63 6f 6c 31 2c 20 2b 20 28 20 2d 20   AS col1, + ( - 
e010: 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52 4f  COUNT( * ) ) FRO
e020: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
e030: 2d 2d 2d 2d 0d 0a 38 34 0d 0a 2d 33 0d 0a 0d 0a  ----..84..-3....
e040: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
e050: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
e060: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
e070: 6c 61 62 65 6c 2d 33 32 39 0d 0a 53 45 4c 45 43  label-329..SELEC
e080: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 38  T DISTINCT - - 8
e090: 34 20 41 53 20 63 6f 6c 31 2c 20 2b 20 28 20 2d  4 AS col1, + ( -
e0a0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 46   COUNT ( * ) ) F
e0b0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
e0c0: 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 2d 33 0d 0a  ..----..84..-3..
e0d0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
e0e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
e0f0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
e100: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
e110: 2b 20 63 6f 6c 32 20 3c 20 2d 20 2b 20 63 6f 6c  + col2 < - + col
e120: 32 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  2 + col2..----..
e130: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
e140: 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
e150: 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
e160: 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
e170: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
e180: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
e190: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
e1a0: 2d 33 33 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -331..SELECT DIS
e1b0: 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 2b 20 2b  TINCT - MAX( + +
e1c0: 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20   col0 ) AS col2 
e1d0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
e1e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a  0..----..-75....
e1f0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
e200: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
e210: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
e220: 61 62 65 6c 2d 33 33 31 0d 0a 53 45 4c 45 43 54  abel-331..SELECT
e230: 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20   DISTINCT - MAX 
e240: 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  ( + + col0 ) AS 
e250: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
e260: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
e270: 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
e280: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
e290: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
e2a0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
e2b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e2c0: 74 20 6c 61 62 65 6c 2d 33 33 32 0d 0a 53 45 4c  t label-332..SEL
e2d0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  ECT DISTINCT - -
e2e0: 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 43 41 53 54   MIN( ALL + CAST
e2f0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
e300: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   ) ) FROM tab1 A
e310: 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
e320: 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d  N tab2 cor1..---
e330: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
e340: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
e350: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
e360: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
e370: 33 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  332..SELECT DIST
e380: 49 4e 43 54 20 2d 20 2d 20 4d 49 4e 20 28 20 41  INCT - - MIN ( A
e390: 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  LL + CAST ( NULL
e3a0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
e3b0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
e3c0: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
e3d0: 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  2 cor1..----..NU
e3e0: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  LL....skipif pos
e3f0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
e400: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
e410: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
e420: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
e430: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
e440: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
e450: 63 6f 6c 30 20 2b 20 2d 20 33 20 63 6f 6c 32 20  col0 + - 3 col2 
e460: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
e470: 0a 31 32 0d 0a 38 34 0d 0a 39 34 0d 0a 0d 0a 6f  .12..84..94....o
e480: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
e490: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
e4a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e4b0: 74 20 6c 61 62 65 6c 2d 33 33 34 0d 0a 53 45 4c  t label-334..SEL
e4c0: 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
e4d0: 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   - - COUNT( * ) 
e4e0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
e4f0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
e500: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
e510: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
e520: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
e530: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 34 0d 0a  sort label-334..
e540: 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
e550: 20 2a 20 29 20 2d 20 2d 20 43 4f 55 4e 54 20 28   * ) - - COUNT (
e560: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
e570: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
e580: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
e590: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
e5a0: 43 54 20 44 49 53 54 49 4e 43 54 20 36 30 20 2d  CT DISTINCT 60 -
e5b0: 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 35 39   - + col0 + - 59
e5c0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
e5d0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
e5e0: 0d 0a 35 32 0d 0a 38 36 0d 0a 39 32 0d 0a 0d 0a  ..52..86..92....
e5f0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
e600: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
e610: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
e620: 72 74 20 6c 61 62 65 6c 2d 33 33 36 0d 0a 53 45  rt label-336..SE
e630: 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
e640: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
e650: 48 45 52 45 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  HERE col1 * + co
e660: 6c 31 20 2a 20 2d 20 39 37 20 4e 4f 54 20 42 45  l1 * - 97 NOT BE
e670: 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 37  TWEEN NULL AND 7
e680: 39 20 2d 20 38 36 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  9 - 86..----..0.
e690: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
e6a0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
e6b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e6c0: 74 20 6c 61 62 65 6c 2d 33 33 36 0d 0a 53 45 4c  t label-336..SEL
e6d0: 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
e6e0: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
e6f0: 48 45 52 45 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  HERE col1 * + co
e700: 6c 31 20 2a 20 2d 20 39 37 20 4e 4f 54 20 42 45  l1 * - 97 NOT BE
e710: 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 37  TWEEN NULL AND 7
e720: 39 20 2d 20 38 36 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  9 - 86..----..0.
e730: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
e740: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
e750: 4e 43 54 20 2b 20 28 20 34 20 29 20 2d 20 63 6f  NCT + ( 4 ) - co
e760: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
e770: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 0d  cor0..----..-43.
e780: 0a 2d 36 0d 0a 2d 39 35 0d 0a 0d 0a 71 75 65 72  .-6..-95....quer
e790: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
e7a0: 45 43 54 20 41 4c 4c 20 2d 20 2d 20 36 39 20 2a  ECT ALL - - 69 *
e7b0: 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 34 20 46 52   + col1 * - 4 FR
e7c0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
e7d0: 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33 35 36 0d 0a 2d  .----..-22356..-
e7e0: 32 37 36 0d 0a 2d 35 37 39 36 0d 0a 0d 0a 71 75  276..-5796....qu
e7f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e800: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
e810: 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 31   + col2 - - col1
e820: 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63   + + - col2 AS c
e830: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
e840: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d  r0..----..1..21.
e850: 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .81....query III
e860: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e870: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
e880: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
e890: 4f 54 20 2b 20 63 6f 6c 30 20 49 4e 20 28 20 2b  OT + col0 IN ( +
e8a0: 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   col2 )..----..9
e8b0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
e8c0: 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
e8d0: 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
e8e0: 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  a49....query I r
e8f0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
e900: 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20  LL + col1 * + + 
e910: 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
e920: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
e930: 2d 2d 2d 2d 0d 0a 32 36 30 31 0d 0a 34 34 38 39  ----..2601..4489
e940: 0d 0a 35 39 32 39 0d 0a 0d 0a 71 75 65 72 79 20  ..5929....query 
e950: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
e960: 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20  T col0 * + col2 
e970: 2a 20 36 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  * 62 AS col0 FRO
e980: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 30  M tab1..----..30
e990: 33 35 35 32 0d 0a 33 31 30 39 33 30 0d 0a 33 38  3552..310930..38
e9a0: 33 36 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3656....onlyif m
e9b0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
e9c0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
e9d0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
e9e0: 72 74 20 6c 61 62 65 6c 2d 33 34 33 0d 0a 53 45  rt label-343..SE
e9f0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
ea00: 6c 30 20 44 49 56 20 2d 20 2d 20 32 20 46 52 4f  l0 DIV - - 2 FRO
ea10: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab1..----..25
ea20: 0d 0a 34 32 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70  ..42..45....skip
ea30: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
ea40: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
ea50: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ea60: 2d 33 34 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -343..SELECT DIS
ea70: 54 49 4e 43 54 20 63 6f 6c 30 20 2f 20 2d 20 2d  TINCT col0 / - -
ea80: 20 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   2 FROM tab1..--
ea90: 2d 2d 0d 0a 32 35 0d 0a 34 32 0d 0a 34 35 0d 0a  --..25..42..45..
eaa0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
eab0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
eac0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
ead0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
eae0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
eaf0: 61 62 65 6c 2d 33 34 34 0d 0a 53 45 4c 45 43 54  abel-344..SELECT
eb00: 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20 44   DISTINCT MAX( D
eb10: 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54  ISTINCT + - CAST
eb20: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
eb30: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   ) ) FROM tab2..
eb40: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
eb50: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
eb60: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
eb70: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
eb80: 65 6c 2d 33 34 34 0d 0a 53 45 4c 45 43 54 20 44  el-344..SELECT D
eb90: 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20 44 49  ISTINCT MAX ( DI
eba0: 53 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54 20  STINCT + - CAST 
ebb0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
ebc0: 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  R ) ) FROM tab2.
ebd0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
ebe0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
ebf0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
ec00: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
ec10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ec20: 33 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  345..SELECT ALL 
ec30: 2b 20 63 6f 6c 31 20 44 49 56 20 2b 20 28 20 2b  + col1 DIV + ( +
ec40: 20 39 36 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   96 ) FROM tab0.
ec50: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
ec60: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ec70: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
ec80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ec90: 20 6c 61 62 65 6c 2d 33 34 35 0d 0a 53 45 4c 45   label-345..SELE
eca0: 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2f 20  CT ALL + col1 / 
ecb0: 2b 20 28 20 2b 20 39 36 20 29 20 46 52 4f 4d 20  + ( + 96 ) FROM 
ecc0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab0..----..0..0
ecd0: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
ece0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
ecf0: 20 39 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52   91 ) AS col1 FR
ed00: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab2..----..9
ed10: 31 0d 0a 39 31 0d 0a 39 31 0d 0a 0d 0a 71 75 65  1..91..91....que
ed20: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
ed30: 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20 32 34  LECT col1 * + 24
ed40: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
ed50: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32 34 0d 0a  b2..----..1224..
ed60: 31 36 30 38 0d 0a 31 38 34 38 0d 0a 0d 0a 71 75  1608..1848....qu
ed70: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
ed80: 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 37 36  ELECT ALL ( + 76
ed90: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
eda0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 36 0d 0a  tab1..----..76..
edb0: 37 36 0d 0a 37 36 0d 0a 0d 0a 71 75 65 72 79 20  76..76....query 
edc0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
edd0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
ede0: 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 28 20  WHERE NOT ( - ( 
edf0: 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 2b 20 63  - col1 ) + - + c
ee00: 6f 6c 31 20 3c 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  ol1 < NULL )..--
ee10: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
ee20: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
ee30: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
ee40: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
ee50: 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53  50..SELECT ALL S
ee60: 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 33  UM( DISTINCT + 3
ee70: 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  0 ) FROM tab0 co
ee80: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a  r0..----..30....
ee90: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
eea0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
eeb0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
eec0: 61 62 65 6c 2d 33 35 30 0d 0a 53 45 4c 45 43 54  abel-350..SELECT
eed0: 20 41 4c 4c 20 53 55 4d 20 28 20 44 49 53 54 49   ALL SUM ( DISTI
eee0: 4e 43 54 20 2b 20 33 30 20 29 20 46 52 4f 4d 20  NCT + 30 ) FROM 
eef0: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
ef00: 0a 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .30....onlyif my
ef10: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
ef20: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
ef30: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
ef40: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ef50: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53  ort label-351..S
ef60: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
ef70: 41 53 54 28 20 43 4f 55 4e 54 28 20 2d 20 63 6f  AST( COUNT( - co
ef80: 6c 30 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  l0 ) AS SIGNED )
ef90: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
efa0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
efb0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
efc0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
efd0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
efe0: 62 65 6c 2d 33 35 31 0d 0a 53 45 4c 45 43 54 20  bel-351..SELECT 
eff0: 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20  DISTINCT CAST ( 
f000: 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20 29  COUNT ( - col0 )
f010: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
f020: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
f030: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
f040: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
f050: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
f060: 6f 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 28 20 2b  ol0 * col2 * ( +
f070: 20 63 6f 6c 31 20 29 20 2b 20 2d 20 2b 20 28 20   col1 ) + - + ( 
f080: 2d 20 2b 20 35 20 29 20 46 52 4f 4d 20 74 61 62  - + 5 ) FROM tab
f090: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 32 36 35 0d  0..----..-18265.
f0a0: 0a 2d 35 37 31 30 30 0d 0a 2d 39 35 39 38 0d 0a  .-57100..-9598..
f0b0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
f0c0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
f0d0: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
f0e0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
f0f0: 4e 4f 54 20 2b 20 2d 20 63 6f 6c 32 20 49 53 20  NOT + - col2 IS 
f100: 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
f110: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
f120: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
f130: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
f140: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f150: 2d 33 35 34 0d 0a 53 45 4c 45 43 54 20 2d 20 38  -354..SELECT - 8
f160: 20 2b 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b 20   + + col1 DIV + 
f170: 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  col0 * - col1 * 
f180: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
f190: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
f1a0: 2d 38 0d 0a 2d 38 0d 0a 2d 38 0d 0a 0d 0a 73 6b  -8..-8..-8....sk
f1b0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
f1c0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
f1d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
f1e0: 65 6c 2d 33 35 34 0d 0a 53 45 4c 45 43 54 20 2d  el-354..SELECT -
f1f0: 20 38 20 2b 20 2b 20 63 6f 6c 31 20 2f 20 2b 20   8 + + col1 / + 
f200: 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  col0 * - col1 * 
f210: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
f220: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
f230: 2d 38 0d 0a 2d 38 0d 0a 2d 38 0d 0a 0d 0a 6f 6e  -8..-8..-8....on
f240: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
f250: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
f260: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
f270: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f280: 35 35 0d 0a 53 45 4c 45 43 54 20 2b 20 31 32 20  55..SELECT + 12 
f290: 2b 20 2b 20 2d 20 43 41 53 54 28 20 2d 20 63 6f  + + - CAST( - co
f2a0: 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  l0 AS SIGNED ) A
f2b0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
f2c0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
f2d0: 31 30 39 0d 0a 32 37 0d 0a 39 39 0d 0a 0d 0a 73  109..27..99....s
f2e0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
f2f0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
f300: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f310: 62 65 6c 2d 33 35 35 0d 0a 53 45 4c 45 43 54 20  bel-355..SELECT 
f320: 2b 20 31 32 20 2b 20 2b 20 2d 20 43 41 53 54 20  + 12 + + - CAST 
f330: 28 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  ( - col0 AS INTE
f340: 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52  GER ) AS col1 FR
f350: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
f360: 0a 2d 2d 2d 2d 0d 0a 31 30 39 0d 0a 32 37 0d 0a  .----..109..27..
f370: 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  99....onlyif mys
f380: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
f390: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
f3a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f3b0: 35 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  56..SELECT COUNT
f3c0: 28 20 2a 20 29 20 2b 20 34 35 20 46 52 4f 4d 20  ( * ) + 45 FROM 
f3d0: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
f3e0: 0a 34 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .48....skipif my
f3f0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
f400: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
f410: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 36 0d  wsort label-356.
f420: 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
f430: 2a 20 29 20 2b 20 34 35 20 46 52 4f 4d 20 74 61  * ) + 45 FROM ta
f440: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  b0 cor0..----..4
f450: 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
f460: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
f470: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
f480: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35  rowsort label-35
f490: 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55  7..SELECT ALL SU
f4a0: 4d 28 20 63 6f 6c 31 20 29 20 2b 20 2b 20 30 20  M( col1 ) + + 0 
f4b0: 2b 20 2d 20 39 34 20 46 52 4f 4d 20 74 61 62 30  + - 94 FROM tab0
f4c0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
f4d0: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
f4e0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f4f0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f500: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 37 0d 0a 53  ort label-357..S
f510: 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28 20  ELECT ALL SUM ( 
f520: 63 6f 6c 31 20 29 20 2b 20 2b 20 30 20 2b 20 2d  col1 ) + + 0 + -
f530: 20 39 34 20 46 52 4f 4d 20 74 61 62 30 20 41 53   94 FROM tab0 AS
f540: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   cor0..----..9..
f550: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
f560: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
f570: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
f580: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 38 0d 0a  sort label-358..
f590: 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
f5a0: 29 20 2a 20 2d 20 4d 49 4e 28 20 44 49 53 54 49  ) * - MIN( DISTI
f5b0: 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46  NCT + + col1 ) F
f5c0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
f5d0: 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
f5e0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f5f0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
f600: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 38 0d 0a  sort label-358..
f610: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
f620: 20 29 20 2a 20 2d 20 4d 49 4e 20 28 20 44 49 53   ) * - MIN ( DIS
f630: 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20 29  TINCT + + col1 )
f640: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
f650: 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-3....onlyif m
f660: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
f670: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
f680: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f690: 2d 33 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -359..SELECT ALL
f6a0: 20 33 39 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a   39 + - COUNT( *
f6b0: 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
f6c0: 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..36....skipif
f6d0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
f6e0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
f6f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f700: 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33  59..SELECT ALL 3
f710: 39 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  9 + - COUNT ( * 
f720: 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
f730: 2d 0d 0a 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -..36....query I
f740: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f750: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a   DISTINCT col2 *
f760: 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32   - + col2 + col2
f770: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
f780: 0d 0a 2d 33 34 32 32 0d 0a 2d 34 35 35 36 0d 0a  ..-3422..-4556..
f790: 2d 39 31 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -9120....onlyif 
f7a0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
f7b0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
f7c0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f7d0: 6c 2d 33 36 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-361..SELECT - 
f7e0: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
f7f0: 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
f800: 3c 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  < + col1..----..
f810: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
f820: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f830: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f840: 6f 72 74 20 6c 61 62 65 6c 2d 33 36 31 0d 0a 53  ort label-361..S
f850: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
f860: 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48  * ) FROM tab0 WH
f870: 45 52 45 20 4e 55 4c 4c 20 3c 20 2b 20 63 6f 6c  ERE NULL < + col
f880: 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  1..----..0....on
f890: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
f8a0: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
f8b0: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
f8c0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
f8d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f8e0: 2d 33 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -362..SELECT ALL
f8f0: 20 2b 20 2b 20 4d 41 58 28 20 2d 20 39 32 20 29   + + MAX( - 92 )
f900: 20 2b 20 2b 20 39 38 20 2b 20 2b 20 2d 20 39 20   + + 98 + + - 9 
f910: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
f920: 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 43  NULL BETWEEN + C
f930: 41 53 54 28 20 35 37 20 41 53 20 53 49 47 4e 45  AST( 57 AS SIGNE
f940: 44 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  D ) AND NULL..--
f950: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
f960: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
f970: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
f980: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f990: 2d 33 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -362..SELECT ALL
f9a0: 20 2b 20 2b 20 4d 41 58 20 28 20 2d 20 39 32 20   + + MAX ( - 92 
f9b0: 29 20 2b 20 2b 20 39 38 20 2b 20 2b 20 2d 20 39  ) + + 98 + + - 9
f9c0: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
f9d0: 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20   NULL BETWEEN + 
f9e0: 43 41 53 54 20 28 20 35 37 20 41 53 20 49 4e 54  CAST ( 57 AS INT
f9f0: 45 47 45 52 20 29 20 41 4e 44 20 4e 55 4c 4c 0d  EGER ) AND NULL.
fa00: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
fa10: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
fa20: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
fa30: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
fa40: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
fa50: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
fa60: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
fa70: 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
fa80: 2a 20 34 36 20 2a 20 63 6f 6c 30 20 63 6f 6c 31  * 46 * col0 col1
fa90: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
faa0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 34 33 30  r0..----..-32430
fab0: 0d 0a 2d 34 30 30 32 30 0d 0a 2d 34 34 31 37 33  ..-40020..-44173
fac0: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
fad0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
fae0: 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2a  TINCT - - col1 *
faf0: 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 38 33   + + col1 * + 83
fb00: 20 2d 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   - + - col2 FROM
fb10: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
fb20: 2d 2d 2d 0d 0a 31 38 32 0d 0a 33 36 36 31 33 0d  ---..182..36613.
fb30: 0a 35 34 34 36 31 30 0d 0a 0d 0a 6f 6e 6c 79 69  .544610....onlyi
fb40: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
fb50: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
fb60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
fb70: 62 65 6c 2d 33 36 35 0d 0a 53 45 4c 45 43 54 20  bel-365..SELECT 
fb80: 2b 20 2b 20 38 36 20 2a 20 2b 20 4d 49 4e 28 20  + + 86 * + MIN( 
fb90: 44 49 53 54 49 4e 43 54 20 2d 20 37 31 20 29 20  DISTINCT - 71 ) 
fba0: 2b 20 33 39 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 39 AS col1 FRO
fbb0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
fbc0: 2d 2d 2d 2d 0d 0a 2d 36 30 36 37 0d 0a 0d 0a 73  ----..-6067....s
fbd0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
fbe0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
fbf0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
fc00: 62 65 6c 2d 33 36 35 0d 0a 53 45 4c 45 43 54 20  bel-365..SELECT 
fc10: 2b 20 2b 20 38 36 20 2a 20 2b 20 4d 49 4e 20 28  + + 86 * + MIN (
fc20: 20 44 49 53 54 49 4e 43 54 20 2d 20 37 31 20 29   DISTINCT - 71 )
fc30: 20 2b 20 33 39 20 41 53 20 63 6f 6c 31 20 46 52   + 39 AS col1 FR
fc40: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
fc50: 0a 2d 2d 2d 2d 0d 0a 2d 36 30 36 37 0d 0a 0d 0a  .----..-6067....
fc60: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
fc70: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 38 33 20  ..SELECT + + 83 
fc80: 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  + + col2 AS col1
fc90: 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  , + col0 FROM ta
fca0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
fcb0: 0d 0a 31 30 36 0d 0a 34 36 0d 0a 31 32 33 0d 0a  ..106..46..123..
fcc0: 36 34 0d 0a 31 34 31 0d 0a 37 35 0d 0a 0d 0a 71  64..141..75....q
fcd0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
fce0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
fcf0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
fd00: 45 52 45 20 63 6f 6c 32 20 2a 20 35 37 20 3e 3d  ERE col2 * 57 >=
fd10: 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d   ( + + col0 )..-
fd20: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
fd30: 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
fd40: 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
fd50: 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c  537fb43b7....onl
fd60: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
fd70: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
fd80: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
fd90: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
fda0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
fdb0: 33 36 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  368..SELECT DIST
fdc0: 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  INCT + COUNT( * 
fdd0: 29 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ) + CAST( NULL A
fde0: 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
fdf0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
fe00: 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
fe10: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor1..----..NULL
fe20: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
fe30: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
fe40: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
fe50: 72 74 20 6c 61 62 65 6c 2d 33 36 38 0d 0a 53 45  rt label-368..SE
fe60: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
fe70: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43 41  COUNT ( * ) + CA
fe80: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
fe90: 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31  EGER ) FROM tab1
fea0: 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
feb0: 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
fec0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
fed0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
fee0: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 37 39 20 46  .SELECT + - 79 F
fef0: 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20 63 6f  ROM ( tab1 AS co
ff00: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
ff10: 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d  b0 AS cor1 )..--
ff20: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
ff30: 68 69 6e 67 20 74 6f 20 31 62 37 62 30 62 33 34  hing to 1b7b0b34
ff40: 66 65 33 34 33 31 66 62 34 30 39 37 31 39 36 32  fe3431fb40971962
ff50: 34 64 31 32 37 39 31 66 0d 0a 0d 0a 6f 6e 6c 79  4d12791f....only
ff60: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
ff70: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
ff80: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
ff90: 61 62 65 6c 2d 33 37 30 0d 0a 53 45 4c 45 43 54  abel-370..SELECT
ffa0: 20 44 49 53 54 49 4e 43 54 20 2d 20 34 37 20 2b   DISTINCT - 47 +
ffb0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
ffc0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
ffd0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d  cor0..----..-50.
ffe0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
fff0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10000 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10010 74 20 6c 61 62 65 6c 2d 33 37 30 0d 0a 53 45 4c  t label-370..SEL
10020 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 34  ECT DISTINCT - 4
10030 37 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  7 + - COUNT ( * 
10040 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
10050 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
10060 2d 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -50....query I r
10070 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
10080 20 2d 20 31 32 20 41 53 20 63 6f 6c 31 20 46 52   - 12 AS col1 FR
10090 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
100a0 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 31 32 0d 0a 31  .----..12..12..1
100b0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
100c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
100d0 54 49 4e 43 54 20 2d 20 38 20 2a 20 2b 20 36 35  TINCT - 8 * + 65
100e0 20 2a 20 35 36 20 46 52 4f 4d 20 74 61 62 32 20   * 56 FROM tab2 
100f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
10100 32 39 31 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  29120....onlyif 
10110 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
10120 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
10130 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10140 6c 2d 33 37 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-373..SELECT DI
10150 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
10160 2a 20 29 20 2a 20 2d 20 2d 20 39 38 20 41 53 20  * ) * - - 98 AS 
10170 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
10180 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
10190 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  94....skipif mys
101a0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
101b0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
101c0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 33 0d 0a  sort label-373..
101d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
101e0 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
101f0 2d 20 2d 20 39 38 20 41 53 20 63 6f 6c 32 20 46  - - 98 AS col2 F
10200 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
10210 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 34 0d 0a 0d 0a  ..----..-294....
10220 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
10230 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32  .SELECT + + col2
10240 20 2a 20 35 37 20 41 53 20 63 6f 6c 31 20 46 52   * 57 AS col1 FR
10250 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
10260 2d 2d 0d 0a 31 33 31 31 0d 0a 32 32 38 30 0d 0a  --..1311..2280..
10270 33 33 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3306....query I 
10280 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10290 2b 20 2b 20 28 20 63 6f 6c 30 20 29 20 2a 20 2b  + + ( col0 ) * +
102a0 20 63 6f 6c 32 20 2a 20 34 33 20 46 52 4f 4d 20   col2 * 43 FROM 
102b0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63  tab2 WHERE NOT c
102c0 6f 6c 32 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol2 < NULL..----
102d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
102e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 33  ort..SELECT + 73
102f0 20 2a 20 28 20 2b 20 2d 20 33 33 20 29 20 41 53   * ( + - 33 ) AS
10300 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
10310 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
10320 32 34 30 39 0d 0a 2d 32 34 30 39 0d 0a 2d 32 34  2409..-2409..-24
10330 30 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  09....onlyif mys
10340 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
10350 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
10360 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10370 20 6c 61 62 65 6c 2d 33 37 37 0d 0a 53 45 4c 45   label-377..SELE
10380 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20  CT DISTINCT ( + 
10390 63 6f 6c 31 20 29 20 44 49 56 20 2d 20 2d 20 33  col1 ) DIV - - 3
103a0 37 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f  7 + - + col0 FRO
103b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
103c0 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 38 37 0d 0a  ----..-13..-87..
103d0 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -97....skipif my
103e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
103f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
10400 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 37 0d  wsort label-377.
10410 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
10420 20 28 20 2b 20 63 6f 6c 31 20 29 20 2f 20 2d 20   ( + col1 ) / - 
10430 2d 20 33 37 20 2b 20 2d 20 2b 20 63 6f 6c 30 20  - 37 + - + col0 
10440 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
10450 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 38  0..----..-13..-8
10460 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-97....onlyif
10470 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
10480 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
10490 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
104a0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
104b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 38  owsort label-378
104c0 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 2b  ..SELECT + - ( +
104d0 20 28 20 2b 20 43 41 53 54 28 20 2b 20 43 4f 55   ( + CAST( + COU
104e0 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e 45  NT( * ) AS SIGNE
104f0 44 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62  D ) ) ) FROM tab
10500 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
10510 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
10520 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
10530 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
10540 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 38 0d  wsort label-378.
10550 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 2b 20  .SELECT + - ( + 
10560 28 20 2b 20 43 41 53 54 20 28 20 2b 20 43 4f 55  ( + CAST ( + COU
10570 4e 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45  NT ( * ) AS INTE
10580 47 45 52 20 29 20 29 20 29 20 46 52 4f 4d 20 74  GER ) ) ) FROM t
10590 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
105a0 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-3....onlyif 
105b0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
105c0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
105d0 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
105e0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
105f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
10600 62 65 6c 2d 33 37 39 0d 0a 53 45 4c 45 43 54 20  bel-379..SELECT 
10610 41 4c 4c 20 2d 20 63 6f 6c 32 20 44 49 56 20 2d  ALL - col2 DIV -
10620 20 28 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c   ( + CAST( - col
10630 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  0 AS SIGNED ) ) 
10640 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
10650 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
10660 0d 0a 2d 31 38 0d 0a 2d 38 37 0d 0a 2d 39 38 0d  ..-18..-87..-98.
10670 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10680 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10690 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
106a0 74 20 6c 61 62 65 6c 2d 33 37 39 0d 0a 53 45 4c  t label-379..SEL
106b0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2f  ECT ALL - col2 /
106c0 20 2d 20 28 20 2b 20 43 41 53 54 20 28 20 2d 20   - ( + CAST ( - 
106d0 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
106e0 29 20 29 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  ) ) + - col0 FRO
106f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
10700 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 2d 38 37 0d 0a  ----..-18..-87..
10710 2d 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -98....query I r
10720 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
10730 20 38 35 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20   85 * - col2 AS 
10740 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
10750 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
10760 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55   NULL BETWEEN NU
10770 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 32 0d 0a 2d  LL AND + col2..-
10780 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
10790 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
107a0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
107b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
107c0 74 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45 4c  t label-381..SEL
107d0 45 43 54 20 63 6f 6c 31 20 44 49 56 20 37 33 20  ECT col1 DIV 73 
107e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
107f0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31  0..----..0..0..1
10800 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
10810 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
10820 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
10830 72 74 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45  rt label-381..SE
10840 4c 45 43 54 20 63 6f 6c 31 20 2f 20 37 33 20 46  LECT col1 / 73 F
10850 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
10860 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d  ..----..0..0..1.
10870 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
10880 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
10890 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
108a0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
108b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
108c0 20 6c 61 62 65 6c 2d 33 38 32 0d 0a 53 45 4c 45   label-382..SELE
108d0 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20 53 55 4d  CT ALL - ( + SUM
108e0 28 20 41 4c 4c 20 2b 20 36 35 20 29 20 29 20 44  ( ALL + 65 ) ) D
108f0 49 56 20 2d 20 4d 49 4e 28 20 2b 20 63 6f 6c 30  IV - MIN( + col0
10900 20 29 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41   ), COUNT( * ) A
10910 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
10920 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
10930 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  3..3....skipif m
10940 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
10950 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
10960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
10970 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
10980 28 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20  ( + SUM ( ALL + 
10990 36 35 20 29 20 29 20 2f 20 2d 20 4d 49 4e 20 28  65 ) ) / - MIN (
109a0 20 2b 20 63 6f 6c 30 20 29 2c 20 43 4f 55 4e 54   + col0 ), COUNT
109b0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
109c0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
109d0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a  ..----..3..3....
109e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
109f0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b  .SELECT - col2 +
10a00 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
10a10 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
10a20 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
10a30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
10a40 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
10a50 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
10a60 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
10a70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10a80 2d 33 38 34 0d 0a 53 45 4c 45 43 54 20 2b 20 31  -384..SELECT + 1
10a90 37 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  7 * - COUNT( * )
10aa0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
10ab0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d  r0..----..-51...
10ac0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10ad0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
10ae0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10af0 6c 61 62 65 6c 2d 33 38 34 0d 0a 53 45 4c 45 43  label-384..SELEC
10b00 54 20 2b 20 31 37 20 2a 20 2d 20 43 4f 55 4e 54  T + 17 * - COUNT
10b10 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32   ( * ) FROM tab2
10b20 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
10b30 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  -51....skipif po
10b40 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
10b50 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
10b60 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
10b70 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
10b80 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
10b90 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20  ..SELECT col1 + 
10ba0 63 6f 6c 31 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  col1 col0, + col
10bb0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
10bc0 2d 0d 0a 31 30 32 0d 0a 35 31 0d 0a 31 33 34 0d  -..102..51..134.
10bd0 0a 36 37 0d 0a 31 35 34 0d 0a 37 37 0d 0a 0d 0a  .67..154..77....
10be0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
10bf0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a  .SELECT + col0 *
10c00 20 34 32 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20   42 + - col1 AS 
10c10 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
10c20 2d 2d 2d 2d 0d 0a 33 36 33 33 0d 0a 34 30 37 33  ----..3633..4073
10c30 0d 0a 35 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..549....query I
10c40 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
10c50 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
10c60 48 45 52 45 20 2d 20 2d 20 33 32 20 2a 20 2b 20  HERE - - 32 * + 
10c70 2b 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c  + col2 * - - col
10c80 31 20 2a 20 2b 20 32 32 20 42 45 54 57 45 45 4e  1 * + 22 BETWEEN
10c90 20 63 6f 6c 30 20 41 4e 44 20 2b 20 2b 20 31 20   col0 AND + + 1 
10ca0 2b 20 2b 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  + + + col2..----
10cb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
10cc0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
10cd0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
10ce0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
10cf0 61 62 65 6c 2d 33 38 38 0d 0a 53 45 4c 45 43 54  abel-388..SELECT
10d00 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30   DISTINCT + col0
10d10 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f   * + col2 + - co
10d20 6c 31 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20  l1 - - col1 + + 
10d30 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
10d40 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46  GNED ) AS col1 F
10d50 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
10d60 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
10d70 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
10d80 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
10d90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 38  owsort label-388
10da0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
10db0 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  T + col0 * + col
10dc0 32 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 63  2 + - col1 - - c
10dd0 6f 6c 31 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  ol1 + + CAST ( N
10de0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
10df0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
10e00 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
10e10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10e20 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20  t..SELECT ALL ( 
10e30 2d 20 32 30 20 29 20 2a 20 2b 20 63 6f 6c 30 20  - 20 ) * + col0 
10e40 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
10e50 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
10e60 2d 31 36 31 35 0d 0a 2d 31 37 32 39 0d 0a 2d 39  -1615..-1729..-9
10e70 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  69....onlyif mys
10e80 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
10e90 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
10ea0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10eb0 20 6c 61 62 65 6c 2d 33 39 30 0d 0a 53 45 4c 45   label-390..SELE
10ec0 43 54 20 36 33 20 2b 20 63 6f 6c 32 20 2a 20 2d  CT 63 + col2 * -
10ed0 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54   - col2 * - CAST
10ee0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
10ef0 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
10f00 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
10f10 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
10f20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
10f30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
10f40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 30  owsort label-390
10f50 0d 0a 53 45 4c 45 43 54 20 36 33 20 2b 20 63 6f  ..SELECT 63 + co
10f60 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a 20  l2 * - - col2 * 
10f70 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
10f80 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
10f90 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
10fa0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
10fb0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
10fc0 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
10fd0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
10fe0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
10ff0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
11000 65 6c 2d 33 39 31 0d 0a 53 45 4c 45 43 54 20 44  el-391..SELECT D
11010 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55  ISTINCT CAST( NU
11020 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d  LL AS SIGNED ) -
11030 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
11040 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
11050 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
11060 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11070 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11080 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11090 6c 61 62 65 6c 2d 33 39 31 0d 0a 53 45 4c 45 43  label-391..SELEC
110a0 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20  T DISTINCT CAST 
110b0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
110c0 52 20 29 20 2d 20 2b 20 2d 20 43 4f 55 4e 54 20  R ) - + - COUNT 
110d0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
110e0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
110f0 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
11100 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
11110 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
11120 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11130 74 20 6c 61 62 65 6c 2d 33 39 32 0d 0a 53 45 4c  t label-392..SEL
11140 45 43 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 32  ECT CAST( - col2
11150 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
11160 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 63  M tab0 WHERE + c
11170 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
11180 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d  .----..-10..-47.
11190 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-99....skipif m
111a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
111b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
111c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 32  owsort label-392
111d0 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20  ..SELECT CAST ( 
111e0 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  - col2 AS INTEGE
111f0 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48  R ) FROM tab0 WH
11200 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f  ERE + col2 IS NO
11210 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  T NULL..----..-1
11220 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 71  0..-47..-99....q
11230 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
11240 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20  SELECT + col1 + 
11250 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 31 30 20  - col1 * - + 10 
11260 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
11270 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  0 cor0..----..11
11280 0d 0a 32 33 31 0d 0a 38 39 31 0d 0a 0d 0a 71 75  ..231..891....qu
11290 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
112a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
112b0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
112c0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
112d0 20 34 33 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2d   43 * + + col2 -
112e0 20 2d 20 63 6f 6c 32 20 3c 20 31 36 0d 0a 2d 2d   - col2 < 16..--
112f0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
11300 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
11310 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  col0 * + col1 + 
11320 32 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  28 AS col2 FROM 
11330 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
11340 2d 2d 0d 0a 31 32 34 33 0d 0a 31 32 35 0d 0a 31  --..1243..125..1
11350 38 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  855....query I r
11360 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
11370 4c 4c 20 2d 20 28 20 2b 20 33 20 29 20 46 52 4f  LL - ( + 3 ) FRO
11380 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  M tab0 AS cor0 C
11390 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
113a0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
113b0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
113c0 6f 20 39 35 62 36 62 39 62 34 61 61 65 35 63 63  o 95b6b9b4aae5cc
113d0 32 64 39 35 34 35 64 62 39 66 38 39 34 30 62 32  2d9545db9f8940b2
113e0 64 63 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  dc....query I ro
113f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
11400 4c 20 63 6f 6c 30 20 2b 20 2b 20 36 35 20 2a 20  L col0 + + 65 * 
11410 63 6f 6c 32 20 2b 20 2d 20 32 31 20 2b 20 2d 20  col2 + - 21 + - 
11420 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
11430 2d 2d 2d 2d 0d 0a 33 30 30 32 0d 0a 36 34 31 32  ----..3002..6412
11440 0d 0a 37 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..706....query I
11450 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
11460 20 44 49 53 54 49 4e 43 54 20 30 20 41 53 20 63   DISTINCT 0 AS c
11470 6f 6c 31 20 46 52 4f 4d 20 28 20 74 61 62 32 20  ol1 FROM ( tab2 
11480 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
11490 49 4e 20 74 61 62 31 20 63 6f 72 31 20 29 0d 0a  IN tab1 cor1 )..
114a0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
114b0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
114c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
114d0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
114e0 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20  0 WHERE ( NOT ( 
114f0 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 20 29  col2 ) IS NULL )
11500 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
11510 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
11520 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
11530 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
11540 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11550 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11560 20 39 36 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2b   96 * - col0 + +
11570 20 2d 20 39 35 20 2a 20 2d 20 2d 20 63 6f 6c 30   - 95 * - - col0
11580 20 2b 20 2b 20 2d 20 38 34 20 2a 20 63 6f 6c 32   + + - 84 * col2
11590 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
115a0 0a 2d 2d 2d 2d 0d 0a 2d 31 37 38 30 35 0d 0a 2d  .----..-17805..-
115b0 32 31 31 39 31 0d 0a 2d 32 33 30 39 33 0d 0a 0d  21191..-23093...
115c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
115d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
115e0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
115f0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 31 0d 0a  sort label-401..
11600 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
11610 2a 20 29 20 2f 20 53 55 4d 28 20 41 4c 4c 20 2b  * ) / SUM( ALL +
11620 20 31 35 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b   15 ) AS col2, +
11630 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
11640 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
11650 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
11660 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c  ( NULL ) IS NULL
11670 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 30 0d  ..----..NULL..0.
11680 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11690 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
116a0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
116b0 72 74 20 6c 61 62 65 6c 2d 34 30 31 0d 0a 53 45  rt label-401..SE
116c0 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LECT + COUNT ( *
116d0 20 29 20 2f 20 53 55 4d 20 28 20 41 4c 4c 20 2b   ) / SUM ( ALL +
116e0 20 31 35 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b   15 ) AS col2, +
116f0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
11700 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
11710 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
11720 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c   ( NULL ) IS NUL
11730 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 30  L..----..NULL..0
11740 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
11750 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
11760 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L * FROM tab1 AS
11770 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
11780 39 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  9 NOT BETWEEN NU
11790 4c 4c 20 41 4e 44 20 2d 20 38 31 0d 0a 2d 2d 2d  LL AND - 81..---
117a0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
117b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
117c0 54 49 4e 43 54 20 2b 20 36 32 20 2a 20 2b 20 31  TINCT + 62 * + 1
117d0 31 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d  1 + + - col1 * -
117e0 20 35 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53   52 FROM tab0 AS
117f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 37   cor0..----..177
11800 34 0d 0a 34 38 39 34 0d 0a 37 33 34 0d 0a 0d 0a  4..4894..734....
11810 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
11820 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
11830 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
11840 72 74 20 6c 61 62 65 6c 2d 34 30 34 0d 0a 53 45  rt label-404..SE
11850 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
11860 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col2 ) col2 FROM
11870 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
11880 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11890 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
118a0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
118b0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
118c0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
118d0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
118e0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
118f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11900 34 30 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  404..SELECT ALL 
11910 43 4f 55 4e 54 20 28 20 63 6f 6c 32 20 29 20 63  COUNT ( col2 ) c
11920 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
11930 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
11940 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
11950 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
11960 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
11970 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
11980 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
11990 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 39 20 63  ort..SELECT 59 c
119a0 6f 6c 31 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ol1, col1 FROM t
119b0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 31  ab0..----..59..1
119c0 0d 0a 35 39 0d 0a 32 31 0d 0a 35 39 0d 0a 38 31  ..59..21..59..81
119d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
119e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
119f0 2d 20 34 35 20 2a 20 34 37 20 46 52 4f 4d 20 74  - 45 * 47 FROM t
11a00 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 31 35  ab0..----..-2115
11a10 0d 0a 2d 32 31 31 35 0d 0a 2d 32 31 31 35 0d 0a  ..-2115..-2115..
11a20 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
11a30 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
11a40 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
11a50 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
11a60 6c 61 62 65 6c 2d 34 30 37 0d 0a 53 45 4c 45 43  label-407..SELEC
11a70 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
11a80 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
11a90 57 45 45 4e 20 28 20 2d 20 63 6f 6c 30 20 2b 20  WEEN ( - col0 + 
11aa0 2d 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  - - col0 * - col
11ab0 30 20 29 20 41 4e 44 20 63 6f 6c 30 20 2a 20 63  0 ) AND col0 * c
11ac0 6f 6c 32 20 2f 20 2b 20 2d 20 28 20 2d 20 43 41  ol2 / + - ( - CA
11ad0 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
11ae0 4d 41 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  MAL ) )..----...
11af0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11b00 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11b10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
11b20 74 20 6c 61 62 65 6c 2d 34 30 37 0d 0a 53 45 4c  t label-407..SEL
11b30 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
11b40 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42  WHERE NOT NULL B
11b50 45 54 57 45 45 4e 20 28 20 2d 20 63 6f 6c 30 20  ETWEEN ( - col0 
11b60 2b 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63  + - - col0 * - c
11b70 6f 6c 30 20 29 20 41 4e 44 20 63 6f 6c 30 20 2a  ol0 ) AND col0 *
11b80 20 63 6f 6c 32 20 2f 20 2b 20 2d 20 28 20 2d 20   col2 / + - ( - 
11b90 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
11ba0 45 41 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  EAL ) )..----...
11bb0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
11bc0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
11bd0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
11be0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
11bf0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11c00 62 65 6c 2d 34 30 38 0d 0a 53 45 4c 45 43 54 20  bel-408..SELECT 
11c10 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 28 20 44  ALL + + COUNT( D
11c20 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20  ISTINCT + CAST( 
11c30 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
11c40 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
11c50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor0..----..0...
11c60 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11c70 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11c80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11c90 6c 61 62 65 6c 2d 34 30 38 0d 0a 53 45 4c 45 43  label-408..SELEC
11ca0 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 20  T ALL + + COUNT 
11cb0 28 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  ( DISTINCT + CAS
11cc0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
11cd0 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62  GER ) ) FROM tab
11ce0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
11cf0 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .0....query I ro
11d00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
11d10 2b 20 28 20 2b 20 34 35 20 29 20 41 53 20 63 6f  + ( + 45 ) AS co
11d20 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
11d30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a  cor0..----..45..
11d40 34 35 0d 0a 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  45..45....onlyif
11d50 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
11d60 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
11d70 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
11d80 62 65 6c 2d 34 31 30 0d 0a 53 45 4c 45 43 54 20  bel-410..SELECT 
11d90 2b 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 2b 20  + COUNT( * ), + 
11da0 32 30 20 2b 20 2b 20 39 34 20 63 6f 6c 30 20 46  20 + + 94 col0 F
11db0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
11dc0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 31 31 34 0d 0a  ..----..3..114..
11dd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11de0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11df0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
11e00 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
11e10 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
11e20 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
11e30 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
11e40 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
11e50 2d 34 31 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -410..SELECT + C
11e60 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2b 20 32 30  OUNT ( * ), + 20
11e70 20 2b 20 2b 20 39 34 20 63 6f 6c 30 20 46 52 4f   + + 94 col0 FRO
11e80 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
11e90 2d 2d 2d 2d 0d 0a 33 0d 0a 31 31 34 0d 0a 0d 0a  ----..3..114....
11ea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11eb0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11ec0 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
11ed0 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
11ee0 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 2b 20 2d  E NOT + col0 + -
11ef0 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 3e   col2 + + col1 >
11f00 3d 20 2d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  = - - col0..----
11f10 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 71  ..14..47..5....q
11f20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
11f30 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 63 6f  SELECT col1 + co
11f40 6c 32 20 2b 20 37 38 20 46 52 4f 4d 20 74 61 62  l2 + 78 FROM tab
11f50 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 32 0d 0a 31 38  1..----..142..18
11f60 38 0d 0a 31 39 33 0d 0a 0d 0a 71 75 65 72 79 20  8..193....query 
11f70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
11f80 43 54 20 2b 20 37 36 20 2b 20 2d 20 2b 20 63 6f  CT + 76 + - + co
11f90 6c 32 20 2a 20 2d 20 38 35 2c 20 2b 20 39 33 20  l2 * - 85, + 93 
11fa0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
11fb0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
11fc0 32 37 20 2b 20 2d 20 39 30 20 2a 20 2d 20 63 6f  27 + - 90 * - co
11fd0 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
11fe0 2d 2d 2d 2d 0d 0a 34 30 37 31 0d 0a 39 33 0d 0a  ----..4071..93..
11ff0 38 34 39 31 0d 0a 39 33 0d 0a 39 32 36 0d 0a 39  8491..93..926..9
12000 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
12010 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
12020 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
12030 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
12040 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12050 74 20 6c 61 62 65 6c 2d 34 31 34 0d 0a 53 45 4c  t label-414..SEL
12060 45 43 54 20 2b 20 2d 20 39 20 44 49 56 20 43 4f  ECT + - 9 DIV CO
12070 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55  UNT( * ) + + COU
12080 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
12090 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
120a0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  0..----..0....sk
120b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
120c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
120d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
120e0 65 6c 2d 34 31 34 0d 0a 53 45 4c 45 43 54 20 2b  el-414..SELECT +
120f0 20 2d 20 39 20 2f 20 43 4f 55 4e 54 20 28 20 2a   - 9 / COUNT ( *
12100 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) + + COUNT ( *
12110 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
12120 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
12130 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
12140 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
12150 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
12160 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
12170 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
12180 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12190 74 0d 0a 53 45 4c 45 43 54 20 28 20 63 6f 6c 31  t..SELECT ( col1
121a0 20 29 20 2a 20 63 6f 6c 30 20 63 6f 6c 30 20 46   ) * col0 col0 F
121b0 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
121c0 2d 2d 2d 0d 0a 32 33 34 36 0d 0a 34 39 32 38 0d  ---..2346..4928.
121d0 0a 35 30 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .5025....query I
121e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
121f0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
12200 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
12210 55 4c 4c 20 29 20 3c 20 2b 20 63 6f 6c 31 20 2a  ULL ) < + col1 *
12220 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col0..----...
12230 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
12240 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
12250 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
12260 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12270 6c 2d 34 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-417..SELECT - 
12280 2b 20 43 41 53 54 28 20 2d 20 32 20 41 53 20 53  + CAST( - 2 AS S
12290 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20  IGNED ) AS col1 
122a0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
122b0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 0d 0a 32  0..----..2..2..2
122c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
122d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
122e0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
122f0 72 74 20 6c 61 62 65 6c 2d 34 31 37 0d 0a 53 45  rt label-417..SE
12300 4c 45 43 54 20 2d 20 2b 20 43 41 53 54 20 28 20  LECT - + CAST ( 
12310 2d 20 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  - 2 AS INTEGER )
12320 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
12330 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
12340 0d 0a 32 0d 0a 32 0d 0a 32 0d 0a 0d 0a 71 75 65  ..2..2..2....que
12350 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
12360 4c 45 43 54 20 2d 20 63 6f 6c 30 20 41 53 20 63  LECT - col0 AS c
12370 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
12380 45 52 45 20 2d 20 32 30 20 3c 3e 20 4e 55 4c 4c  ERE - 20 <> NULL
12390 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
123a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
123b0 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 37 20 41  T + col2 * - 7 A
123c0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
123d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 33 0d 0a 2d 34  ..----..-413..-4
123e0 37 36 0d 0a 2d 36 37 32 0d 0a 0d 0a 71 75 65 72  76..-672....quer
123f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
12400 45 43 54 20 44 49 53 54 49 4e 43 54 20 33 31 20  ECT DISTINCT 31 
12410 2b 20 2b 20 36 30 20 2b 20 2d 20 2d 20 63 6f 6c  + + 60 + - - col
12420 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
12430 2d 0d 0a 31 30 31 0d 0a 31 33 38 0d 0a 31 39 30  -..101..138..190
12440 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
12450 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
12460 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
12470 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20  b0 WHERE - col2 
12480 3c 20 38 32 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d  < 82 + col0..---
12490 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
124a0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
124b0 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
124c0 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69  7fb43b7....onlyi
124d0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
124e0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
124f0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
12500 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
12510 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  2..SELECT ALL * 
12520 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
12530 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20  + col0 * + col1 
12540 2b 20 2d 20 39 31 20 2b 20 2b 20 43 41 53 54 28  + - 91 + + CAST(
12550 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
12560 29 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b  ) * + col0 + - +
12570 20 33 37 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a   37 * + - col0 *
12580 20 2d 20 2d 20 33 32 20 49 53 20 4e 55 4c 4c 0d   - - 32 IS NULL.
12590 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
125a0 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
125b0 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
125c0 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73  feb962d0a49....s
125d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
125e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
125f0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
12600 6c 61 62 65 6c 2d 34 32 32 0d 0a 53 45 4c 45 43  label-422..SELEC
12610 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
12620 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 2a  2 WHERE + col0 *
12630 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 39 31 20 2b   + col1 + - 91 +
12640 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
12650 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20  S INTEGER ) * + 
12660 63 6f 6c 30 20 2b 20 2d 20 2b 20 33 37 20 2a 20  col0 + - + 37 * 
12670 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 33  + - col0 * - - 3
12680 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
12690 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
126a0 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
126b0 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
126c0 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
126d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
126e0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b   DISTINCT col2 +
126f0 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
12700 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
12710 2d 0d 0a 2d 31 31 0d 0a 2d 33 34 0d 0a 39 38 0d  -..-11..-34..98.
12720 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
12730 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
12740 4e 43 54 20 34 36 20 2a 20 2d 20 63 6f 6c 31 20  NCT 46 * - col1 
12750 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + - col2 FROM ta
12760 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 36 39 0d  b2..----..-2369.
12770 0a 2d 33 31 34 30 0d 0a 2d 33 35 38 32 0d 0a 0d  .-3140..-3582...
12780 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
12790 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
127a0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
127b0 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
127c0 20 29 20 3c 3d 20 2b 20 63 6f 6c 30 20 2b 20 2b   ) <= + col0 + +
127d0 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 0d 0a   - col2 * col2..
127e0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
127f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12800 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2a 20 63 6f  col1 * col1 * co
12810 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
12820 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 37 31  tab2..----..2371
12830 36 30 0d 0a 32 36 30 33 36 32 0d 0a 35 39 38 32  60..260362..5982
12840 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
12850 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
12860 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
12870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
12880 37 0d 0a 53 45 4c 45 43 54 20 32 31 20 2a 20 2b  7..SELECT 21 * +
12890 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f   - COUNT( * ) co
128a0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
128b0 2d 2d 0d 0a 2d 36 33 0d 0a 0d 0a 73 6b 69 70 69  --..-63....skipi
128c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
128d0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
128e0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
128f0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
12900 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
12910 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
12920 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
12930 72 74 20 6c 61 62 65 6c 2d 34 32 37 0d 0a 53 45  rt label-427..SE
12940 4c 45 43 54 20 32 31 20 2a 20 2b 20 2d 20 43 4f  LECT 21 * + - CO
12950 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30 20 46  UNT ( * ) col0 F
12960 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
12970 2d 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -63....query I r
12980 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
12990 20 28 20 2b 20 34 30 20 29 20 46 52 4f 4d 20 74   ( + 40 ) FROM t
129a0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
129b0 2d 0d 0a 2d 34 30 0d 0a 2d 34 30 0d 0a 2d 34 30  -..-40..-40..-40
129c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
129d0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
129e0 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
129f0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
12a00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12a10 20 6c 61 62 65 6c 2d 34 32 39 0d 0a 53 45 4c 45   label-429..SELE
12a20 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
12a30 44 49 56 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  DIV COUNT( * ) c
12a40 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
12a50 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   cor0..----..-1.
12a60 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
12a70 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
12a80 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
12a90 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
12aa0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
12ab0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
12ac0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
12ad0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12ae0 2d 34 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -429..SELECT - C
12af0 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 43 4f 55  OUNT ( * ) / COU
12b00 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30 20 46 52  NT ( * ) col0 FR
12b10 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
12b20 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65  .----..-1....que
12b30 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
12b40 45 4c 45 43 54 20 2d 20 2b 20 38 37 2c 20 2b 20  ELECT - + 87, + 
12b50 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
12b60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a  or0..----..-87..
12b70 31 34 0d 0a 2d 38 37 0d 0a 34 37 0d 0a 2d 38 37  14..-87..47..-87
12b80 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..5....onlyif my
12b90 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
12ba0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
12bb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12bc0 34 33 31 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41  431..SELECT + MA
12bd0 58 28 20 2b 20 31 32 20 29 20 46 52 4f 4d 20 74  X( + 12 ) FROM t
12be0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
12bf0 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..12....skipif 
12c00 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
12c10 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
12c20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
12c30 31 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20  1..SELECT + MAX 
12c40 28 20 2b 20 31 32 20 29 20 46 52 4f 4d 20 74 61  ( + 12 ) FROM ta
12c50 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
12c60 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..12....query II
12c70 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12c80 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
12c90 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
12ca0 35 38 20 42 45 54 57 45 45 4e 20 2d 20 32 38 20  58 BETWEEN - 28 
12cb0 41 4e 44 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d  AND + - col2..--
12cc0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
12cd0 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
12ce0 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
12cf0 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72  962d0a49....quer
12d00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
12d10 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d  ECT - col0 * + -
12d20 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
12d30 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab1..----..4
12d40 38 39 36 0d 0a 35 30 31 35 0d 0a 36 31 38 38 0d  896..5015..6188.
12d50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12d60 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
12d70 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
12d80 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
12d90 61 62 65 6c 2d 34 33 34 0d 0a 53 45 4c 45 43 54  abel-434..SELECT
12da0 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
12db0 20 53 49 47 4e 45 44 20 29 20 2f 20 63 6f 6c 31   SIGNED ) / col1
12dc0 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20   * - + col0 + + 
12dd0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
12de0 47 4e 45 44 20 29 2c 20 36 36 20 2a 20 2b 20 43  GNED ), 66 * + C
12df0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
12e00 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52  NED ) AS col0 FR
12e10 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
12e20 54 20 2d 20 2b 20 39 33 20 49 53 20 4e 4f 54 20  T - + 93 IS NOT 
12e30 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
12e40 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
12e50 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
12e60 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
12e70 62 65 6c 2d 34 33 34 0d 0a 53 45 4c 45 43 54 20  bel-434..SELECT 
12e80 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
12e90 20 49 4e 54 45 47 45 52 20 29 20 2f 20 63 6f 6c   INTEGER ) / col
12ea0 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b  1 * - + col0 + +
12eb0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
12ec0 49 4e 54 45 47 45 52 20 29 2c 20 36 36 20 2a 20  INTEGER ), 66 * 
12ed0 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
12ee0 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
12ef0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
12f00 52 45 20 4e 4f 54 20 2d 20 2b 20 39 33 20 49 53  RE NOT - + 93 IS
12f10 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
12f20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12f30 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
12f40 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
12f50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 35 0d  wsort label-435.
12f60 0a 53 45 4c 45 43 54 20 2b 20 35 35 20 2a 20 2d  .SELECT + 55 * -
12f70 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
12f80 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   tab2..----..-16
12f90 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
12fa0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12fb0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
12fc0 6f 72 74 20 6c 61 62 65 6c 2d 34 33 35 0d 0a 53  ort label-435..S
12fd0 45 4c 45 43 54 20 2b 20 35 35 20 2a 20 2d 20 43  ELECT + 55 * - C
12fe0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
12ff0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 35  tab2..----..-165
13000 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
13010 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 37 20 2b  ort..SELECT 57 +
13020 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
13030 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
13040 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
13050 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d  NULL..----..138.
13060 0a 35 38 0d 0a 37 38 0d 0a 0d 0a 6f 6e 6c 79 69  .58..78....onlyi
13070 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
13080 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
13090 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
130a0 62 65 6c 2d 34 33 37 0d 0a 53 45 4c 45 43 54 20  bel-437..SELECT 
130b0 2b 20 53 55 4d 28 20 2d 20 2d 20 63 6f 6c 31 20  + SUM( - - col1 
130c0 29 20 2b 20 33 35 20 63 6f 6c 32 20 46 52 4f 4d  ) + 35 col2 FROM
130d0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
130e0 2d 2d 2d 0d 0a 32 33 30 0d 0a 0d 0a 73 6b 69 70  ---..230....skip
130f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
13100 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
13110 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
13120 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
13130 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
13140 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
13150 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
13160 6f 72 74 20 6c 61 62 65 6c 2d 34 33 37 0d 0a 53  ort label-437..S
13170 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20 2d 20  ELECT + SUM ( - 
13180 2d 20 63 6f 6c 31 20 29 20 2b 20 33 35 20 63 6f  - col1 ) + 35 co
13190 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
131a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 30 0d  cor0..----..230.
131b0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
131c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
131d0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
131e0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
131f0 20 63 6f 6c 32 20 2a 20 2b 20 33 20 49 53 20 4e   col2 * + 3 IS N
13200 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
13210 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
13220 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
13230 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
13240 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
13250 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
13260 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
13270 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d 20  CT ALL col1 * - 
13280 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  col1 * - col1 * 
13290 2b 20 2d 20 63 6f 6c 32 2c 20 2b 20 28 20 2b 20  + - col2, + ( + 
132a0 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col2 ) col2 FROM
132b0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
132c0 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
132d0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
132e0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
132f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
13300 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20  OM tab2 WHERE - 
13310 28 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f  ( + col2 ) IS NO
13320 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
13330 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
13340 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
13350 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
13360 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
13370 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
13380 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
13390 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
133a0 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  41..SELECT ALL -
133b0 20 4d 49 4e 28 20 2d 20 2d 20 33 33 20 29 20 41   MIN( - - 33 ) A
133c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
133d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 0d 0a 0d 0a 73  ..----..-33....s
133e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
133f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
13400 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
13410 62 65 6c 2d 34 34 31 0d 0a 53 45 4c 45 43 54 20  bel-441..SELECT 
13420 41 4c 4c 20 2d 20 4d 49 4e 20 28 20 2d 20 2d 20  ALL - MIN ( - - 
13430 33 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  33 ) AS col2 FRO
13440 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab2..----..-3
13450 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
13460 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
13470 20 28 20 2d 20 31 31 20 29 20 2a 20 63 6f 6c 32   ( - 11 ) * col2
13480 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   + col1 AS col2 
13490 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
134a0 2d 2d 2d 2d 0d 0a 2d 31 30 38 38 0d 0a 2d 34 33  ----..-1088..-43
134b0 36 0d 0a 2d 38 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  6..-89....onlyif
134c0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
134d0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
134e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
134f0 65 6c 2d 34 34 33 0d 0a 53 45 4c 45 43 54 20 2b  el-443..SELECT +
13500 20 36 34 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a   64 * - COUNT( *
13510 20 29 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) - + COUNT( * 
13520 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
13530 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 0d  or0..----..-195.
13540 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
13550 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
13560 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13570 74 20 6c 61 62 65 6c 2d 34 34 33 0d 0a 53 45 4c  t label-443..SEL
13580 45 43 54 20 2b 20 36 34 20 2a 20 2d 20 43 4f 55  ECT + 64 * - COU
13590 4e 54 20 28 20 2a 20 29 20 2d 20 2b 20 43 4f 55  NT ( * ) - + COU
135a0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
135b0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
135c0 0d 0a 2d 31 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-195....onlyif
135d0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
135e0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
135f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13600 65 6c 2d 34 34 34 0d 0a 53 45 4c 45 43 54 20 41  el-444..SELECT A
13610 4c 4c 20 2b 20 2b 20 32 20 2a 20 2b 20 43 4f 55  LL + + 2 * + COU
13620 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
13630 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d  0 cor0..----..6.
13640 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
13650 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
13660 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13670 74 20 6c 61 62 65 6c 2d 34 34 34 0d 0a 53 45 4c  t label-444..SEL
13680 45 43 54 20 41 4c 4c 20 2b 20 2b 20 32 20 2a 20  ECT ALL + + 2 * 
13690 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
136a0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
136b0 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49  --..6....query I
136c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
136d0 20 2d 20 2d 20 63 6f 6c 31 20 2d 20 36 33 20 2b   - - col1 - 63 +
136e0 20 2b 20 2d 20 32 31 20 41 53 20 63 6f 6c 31 20   + - 21 AS col1 
136f0 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
13700 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 36 33 0d 0a 2d  ----..-3..-63..-
13710 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  83....query I ro
13720 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
13730 4c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  L col1 AS col1 F
13740 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
13750 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
13760 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c  EEN col1 AND NUL
13770 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
13780 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13790 43 54 20 2b 20 2b 20 28 20 31 33 20 29 20 2b 20  CT + + ( 13 ) + 
137a0 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  - - col2 FROM ta
137b0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
137c0 0d 0a 31 31 32 0d 0a 32 33 0d 0a 36 30 0d 0a 0d  ..112..23..60...
137d0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
137e0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
137f0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
13800 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
13810 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
13820 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
13830 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63  T + col1 + - - c
13840 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 63  ol2 * + - col0 c
13850 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
13860 2d 2d 2d 0d 0a 2d 34 38 38 32 0d 0a 2d 35 30 31  ---..-4882..-501
13870 30 0d 0a 2d 36 31 34 31 0d 0a 0d 0a 71 75 65 72  0..-6141....quer
13880 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
13890 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
138a0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 2c 20 2b  col0 * + col0, +
138b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
138c0 0a 2d 2d 2d 2d 0d 0a 32 32 35 0d 0a 34 37 0d 0a  .----..225..47..
138d0 37 35 36 39 0d 0a 31 30 0d 0a 39 34 30 39 0d 0a  7569..10..9409..
138e0 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  99....query I ro
138f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 36  wsort..SELECT 46
13900 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
13910 62 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  b1 WHERE ( NULL 
13920 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
13930 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
13940 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
13950 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
13960 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13970 2d 34 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -451..SELECT ALL
13980 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
13990 20 32 20 29 20 2b 20 2b 20 35 32 20 2a 20 2b 20   2 ) + + 52 * + 
139a0 43 4f 55 4e 54 28 20 2a 20 29 2c 20 2b 20 38 33  COUNT( * ), + 83
139b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
139c0 0a 2d 2d 2d 2d 0d 0a 31 35 34 0d 0a 38 33 0d 0a  .----..154..83..
139d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
139e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
139f0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
13a00 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
13a10 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
13a20 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
13a30 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
13a40 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13a50 2d 34 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -451..SELECT ALL
13a60 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20   MIN ( DISTINCT 
13a70 2d 20 32 20 29 20 2b 20 2b 20 35 32 20 2a 20 2b  - 2 ) + + 52 * +
13a80 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2b 20   COUNT ( * ), + 
13a90 38 33 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  83 col0 FROM tab
13aa0 31 0d 0a 2d 2d 2d 2d 0d 0a 31 35 34 0d 0a 38 33  1..----..154..83
13ab0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13ac0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
13ad0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
13ae0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
13af0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13b00 20 6c 61 62 65 6c 2d 34 35 32 0d 0a 53 45 4c 45   label-452..SELE
13b10 43 54 20 2d 20 2b 20 4d 41 58 28 20 2b 20 63 6f  CT - + MAX( + co
13b20 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l0 ) AS col0 FRO
13b30 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 37  M tab2 WHERE - 7
13b40 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 37 37 20   NOT BETWEEN 77 
13b50 41 4e 44 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 30  AND + ( + + col0
13b60 20 29 20 2f 20 43 41 53 54 28 20 4e 55 4c 4c 20   ) / CAST( NULL 
13b70 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d  AS SIGNED )..---
13b80 2d 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  -..-75....skipif
13b90 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
13ba0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
13bb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13bc0 35 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d  52..SELECT - + M
13bd0 41 58 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53  AX ( + col0 ) AS
13be0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
13bf0 57 48 45 52 45 20 2d 20 37 20 4e 4f 54 20 42 45  WHERE - 7 NOT BE
13c00 54 57 45 45 4e 20 37 37 20 41 4e 44 20 2b 20 28  TWEEN 77 AND + (
13c10 20 2b 20 2b 20 63 6f 6c 30 20 29 20 2f 20 43 41   + + col0 ) / CA
13c20 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
13c30 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  EGER )..----..-7
13c40 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
13c50 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
13c60 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
13c70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
13c80 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  3..SELECT COUNT(
13c90 20 2a 20 29 20 2b 20 2d 20 53 55 4d 28 20 41 4c   * ) + - SUM( AL
13ca0 4c 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  L col2 ) FROM ta
13cb0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 33 0d 0a  b0..----..-153..
13cc0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13cd0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13ce0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13cf0 20 6c 61 62 65 6c 2d 34 35 33 0d 0a 53 45 4c 45   label-453..SELE
13d00 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b  CT COUNT ( * ) +
13d10 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c   - SUM ( ALL col
13d20 32 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  2 ) FROM tab0..-
13d30 2d 2d 2d 0d 0a 2d 31 35 33 0d 0a 0d 0a 6f 6e 6c  ---..-153....onl
13d40 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
13d50 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
13d60 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
13d70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
13d80 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
13d90 63 6f 6c 30 20 2d 20 2d 20 30 20 44 49 56 20 2d  col0 - - 0 DIV -
13da0 20 2d 20 37 34 20 2b 20 2d 20 36 38 20 2a 20 2d   - 74 + - 68 * -
13db0 20 2b 20 38 30 20 41 53 20 63 6f 6c 31 20 46 52   + 80 AS col1 FR
13dc0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab0..----..5
13dd0 34 35 35 0d 0a 35 35 32 37 0d 0a 35 35 33 37 0d  455..5527..5537.
13de0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
13df0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
13e00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
13e10 74 20 6c 61 62 65 6c 2d 34 35 34 0d 0a 53 45 4c  t label-454..SEL
13e20 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2d  ECT ALL + col0 -
13e30 20 2d 20 30 20 2f 20 2d 20 2d 20 37 34 20 2b 20   - 0 / - - 74 + 
13e40 2d 20 36 38 20 2a 20 2d 20 2b 20 38 30 20 41 53  - 68 * - + 80 AS
13e50 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
13e60 0a 2d 2d 2d 2d 0d 0a 35 34 35 35 0d 0a 35 35 32  .----..5455..552
13e70 37 0d 0a 35 35 33 37 0d 0a 0d 0a 71 75 65 72 79  7..5537....query
13e80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13e90 43 54 20 41 4c 4c 20 2d 20 38 33 20 2b 20 63 6f  CT ALL - 83 + co
13ea0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
13eb0 2d 2d 0d 0a 2d 32 0d 0a 2d 36 32 0d 0a 2d 38 32  --..-2..-62..-82
13ec0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13ed0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
13ee0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
13ef0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 36  owsort label-456
13f00 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 2d 20  ..SELECT MAX( - 
13f10 63 6f 6c 32 20 29 20 2a 20 2b 20 43 4f 55 4e 54  col2 ) * + COUNT
13f20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
13f30 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  cor0 WHERE + col
13f40 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  0 IS NULL..----.
13f50 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
13f60 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13f70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
13f80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
13f90 36 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20  6..SELECT MAX ( 
13fa0 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20 43 4f 55  - col2 ) * + COU
13fb0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
13fc0 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  b2 cor0 WHERE + 
13fd0 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col0 IS NULL..--
13fe0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
13ff0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14000 45 43 54 20 2d 20 2d 20 36 36 20 41 53 20 63 6f  ECT - - 66 AS co
14010 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
14020 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
14030 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab2 AS cor1..--
14040 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
14050 68 69 6e 67 20 74 6f 20 32 39 37 39 34 39 31 35  hing to 29794915
14060 62 35 38 35 65 65 61 38 34 38 61 64 36 37 30 30  b585eea848ad6700
14070 37 35 34 35 32 63 38 38 0d 0a 0d 0a 6f 6e 6c 79  75452c88....only
14080 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
14090 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
140a0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
140b0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
140c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
140d0 35 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  58..SELECT DISTI
140e0 4e 43 54 20 34 32 20 44 49 56 20 2d 20 43 4f 55  NCT 42 DIV - COU
140f0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
14100 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
14110 0a 2d 31 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-14....skipif m
14120 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
14130 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
14140 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 38  owsort label-458
14150 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
14160 54 20 34 32 20 2f 20 2d 20 43 4f 55 4e 54 20 28  T 42 / - COUNT (
14170 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
14180 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
14190 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
141a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33  sort..SELECT - 3
141b0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
141c0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
141d0 20 41 53 20 63 6f 72 31 20 57 48 45 52 45 20 4e   AS cor1 WHERE N
141e0 55 4c 4c 20 3c 3d 20 31 35 0d 0a 2d 2d 2d 2d 0d  ULL <= 15..----.
141f0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
14200 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
14210 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
14220 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
14230 63 6f 6c 30 20 2b 20 2d 20 34 36 20 3c 20 32 32  col0 + - 46 < 22
14240 20 2b 20 2b 20 38 31 0d 0a 2d 2d 2d 2d 0d 0a 39   + + 81..----..9
14250 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
14260 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
14270 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
14280 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
14290 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
142a0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
142b0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
142c0 2d 34 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -461..SELECT DIS
142d0 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e 54 28  TINCT + - COUNT(
142e0 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20   * ) AS col1, - 
142f0 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
14300 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
14310 0a 2d 33 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  .-3..-3....skipi
14320 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
14330 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
14340 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
14350 2d 34 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -461..SELECT DIS
14360 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20  TINCT + - COUNT 
14370 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d  ( * ) AS col1, -
14380 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
14390 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
143a0 2d 0d 0a 2d 33 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  -..-3..-3....que
143b0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
143c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
143d0 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c   - col1 AS col2,
143e0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
143f0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
14400 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 31 0d 0a  0..----..-1..1..
14410 2d 32 31 0d 0a 32 31 0d 0a 2d 38 31 0d 0a 38 31  -21..21..-81..81
14420 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
14430 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
14440 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
14450 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
14460 20 2d 20 31 34 20 2a 20 63 6f 6c 32 20 2a 20 63   - 14 * col2 * c
14470 6f 6c 31 20 2b 20 63 6f 6c 31 20 3d 20 2d 20 2d  ol1 + col1 = - -
14480 20 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   5..----....quer
14490 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
144a0 4c 45 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c  LECT col2 AS col
144b0 30 2c 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31  0, col2 * - col1
144c0 20 2a 20 2d 20 38 35 20 41 53 20 63 6f 6c 31 20   * - 85 AS col1 
144d0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
144e0 0a 31 30 0d 0a 31 37 38 35 30 0d 0a 34 37 0d 0a  .10..17850..47..
144f0 33 32 33 35 39 35 0d 0a 39 39 0d 0a 38 34 31 35  323595..99..8415
14500 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
14510 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
14520 2b 20 34 30 20 29 20 41 53 20 63 6f 6c 32 20 46  + 40 ) AS col2 F
14530 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
14540 34 30 0d 0a 34 30 0d 0a 34 30 0d 0a 0d 0a 6f 6e  40..40..40....on
14550 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
14560 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
14570 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
14580 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14590 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  66..SELECT ALL +
145a0 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 32   col1 + - - col2
145b0 20 44 49 56 20 2d 20 63 6f 6c 30 20 41 53 20 63   DIV - col0 AS c
145c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
145d0 2d 2d 2d 0d 0a 31 33 0d 0a 34 37 0d 0a 35 0d 0a  ---..13..47..5..
145e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
145f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14600 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14610 20 6c 61 62 65 6c 2d 34 36 36 0d 0a 53 45 4c 45   label-466..SELE
14620 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20  CT ALL + col1 + 
14630 2d 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c  - - col2 / - col
14640 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
14650 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 34  ab1..----..13..4
14660 37 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  7..5....query II
14670 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14680 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
14690 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20  0 WHERE NOT + ( 
146a0 2d 20 2b 20 38 30 20 29 20 49 53 20 4e 4f 54 20  - + 80 ) IS NOT 
146b0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
146c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
146d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
146e0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
146f0 74 20 6c 61 62 65 6c 2d 34 36 38 0d 0a 53 45 4c  t label-468..SEL
14700 45 43 54 20 2b 20 4d 41 58 28 20 44 49 53 54 49  ECT + MAX( DISTI
14710 4e 43 54 20 2b 20 63 6f 6c 30 20 29 2c 20 36 37  NCT + col0 ), 67
14720 20 2b 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e   + + SUM( DISTIN
14730 43 54 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63  CT - col0 ) AS c
14740 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
14750 2d 2d 2d 0d 0a 39 37 0d 0a 2d 31 33 32 0d 0a 0d  ---..97..-132...
14760 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14770 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14780 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
14790 20 6c 61 62 65 6c 2d 34 36 38 0d 0a 53 45 4c 45   label-468..SELE
147a0 43 54 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49  CT + MAX ( DISTI
147b0 4e 43 54 20 2b 20 63 6f 6c 30 20 29 2c 20 36 37  NCT + col0 ), 67
147c0 20 2b 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49   + + SUM ( DISTI
147d0 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  NCT - col0 ) AS 
147e0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
147f0 2d 2d 2d 2d 0d 0a 39 37 0d 0a 2d 31 33 32 0d 0a  ----..97..-132..
14800 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
14810 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
14820 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
14830 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 39 31 20   WHERE NOT - 91 
14840 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
14850 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
14860 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
14870 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
14880 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  a49....skipif po
14890 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
148a0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
148b0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
148c0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
148d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
148e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
148f0 54 20 33 35 2c 20 2b 20 37 34 20 63 6f 6c 30 20  T 35, + 74 col0 
14900 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
14910 0a 33 35 0d 0a 37 34 0d 0a 0d 0a 71 75 65 72 79  .35..74....query
14920 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
14930 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36 33  CT DISTINCT - 63
14940 20 2a 20 31 36 20 41 53 20 63 6f 6c 32 20 46 52   * 16 AS col2 FR
14950 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
14960 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 38 0d 0a 0d 0a  .----..-1008....
14970 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
14980 0a 53 45 4c 45 43 54 20 2d 20 28 20 63 6f 6c 31  .SELECT - ( col1
14990 20 29 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63   ) + + col2 AS c
149a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
149b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
149c0 0d 0a 2d 33 34 0d 0a 39 38 0d 0a 0d 0a 71 75 65  ..-34..98....que
149d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
149e0 4c 45 43 54 20 2d 20 32 32 20 2f 20 2b 20 63 6f  LECT - 22 / + co
149f0 6c 31 20 2b 20 38 38 20 46 52 4f 4d 20 74 61 62  l1 + 88 FROM tab
14a00 30 20 57 48 45 52 45 20 34 39 20 49 53 20 4e 55  0 WHERE 49 IS NU
14a10 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
14a20 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14a30 45 43 54 20 41 4c 4c 20 2d 20 2b 20 37 31 20 2b  ECT ALL - + 71 +
14a40 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
14a50 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
14a60 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a 2d 34 0d 0a  .----..-20..-4..
14a70 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
14a80 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
14a90 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
14aa0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14ab0 6c 61 62 65 6c 2d 34 37 35 0d 0a 53 45 4c 45 43  label-475..SELEC
14ac0 54 20 2d 20 33 38 20 44 49 56 20 2d 20 2d 20 63  T - 38 DIV - - c
14ad0 6f 6c 32 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ol2 + col0 AS co
14ae0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
14af0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  cor0..----..15..
14b00 38 34 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66  84..97....skipif
14b10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
14b20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
14b30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14b40 37 35 0d 0a 53 45 4c 45 43 54 20 2d 20 33 38 20  75..SELECT - 38 
14b50 2f 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c  / - - col2 + col
14b60 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
14b70 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
14b80 2d 0d 0a 31 35 0d 0a 38 34 0d 0a 39 37 0d 0a 0d  -..15..84..97...
14b90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14ba0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
14bb0 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 2d 20 2b  ol1 * - col0 - +
14bc0 20 39 31 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 46   91 * + - col0 F
14bd0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
14be0 0d 0a 2d 2d 2d 2d 0d 0a 31 35 30 0d 0a 36 30 39  ..----..150..609
14bf0 30 0d 0a 38 37 33 30 0d 0a 0d 0a 71 75 65 72 79  0..8730....query
14c00 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
14c10 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
14c20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
14c30 48 45 52 45 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  HERE - col2 + - 
14c40 39 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  97 IS NOT NULL..
14c50 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
14c60 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
14c70 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
14c80 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
14c90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14ca0 45 4c 45 43 54 20 2d 20 32 36 20 2a 20 63 6f 6c  ELECT - 26 * col
14cb0 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20  1 * - + col0 AS 
14cc0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
14cd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35  S cor0..----..25
14ce0 32 32 0d 0a 33 31 35 39 30 0d 0a 34 37 35 30 32  22..31590..47502
14cf0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
14d00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 37  ort..SELECT + 87
14d10 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63   * + + col1 AS c
14d20 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
14d30 2d 2d 2d 0d 0a 34 34 33 37 0d 0a 35 38 32 39 0d  ---..4437..5829.
14d40 0a 36 36 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  .6699....query I
14d50 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14d60 20 2d 20 28 20 63 6f 6c 30 20 29 20 2a 20 2d 20   - ( col0 ) * - 
14d70 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 30 20  + col0 - + col0 
14d80 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
14d90 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 37 34  0..----..210..74
14da0 38 32 0d 0a 39 33 31 32 0d 0a 0d 0a 71 75 65 72  82..9312....quer
14db0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
14dc0 45 43 54 20 41 4c 4c 20 2b 20 32 20 2b 20 2b 20  ECT ALL + 2 + + 
14dd0 2b 20 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  + ( col2 ) FROM 
14de0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d  tab0..----..101.
14df0 0a 31 32 0d 0a 34 39 0d 0a 0d 0a 71 75 65 72 79  .12..49....query
14e00 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
14e10 43 54 20 44 49 53 54 49 4e 43 54 20 35 31 20 2b  CT DISTINCT 51 +
14e20 20 2b 20 32 37 20 46 52 4f 4d 20 74 61 62 32 0d   + 27 FROM tab2.
14e30 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 0d 0a 71 75 65  .----..78....que
14e40 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
14e50 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
14e60 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
14e70 45 20 2d 20 2b 20 34 31 20 2d 20 35 33 20 49 53  E - + 41 - 53 IS
14e80 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
14e90 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
14ea0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
14eb0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
14ec0 72 74 20 6c 61 62 65 6c 2d 34 38 34 0d 0a 53 45  rt label-484..SE
14ed0 4c 45 43 54 20 2b 20 31 30 20 41 53 20 63 6f 6c  LECT + 10 AS col
14ee0 30 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  0, COUNT( * ) AS
14ef0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
14f00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
14f10 30 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..3....skipif m
14f20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
14f30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
14f40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38  rowsort label-48
14f50 34 0d 0a 53 45 4c 45 43 54 20 2b 20 31 30 20 41  4..SELECT + 10 A
14f60 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20 28 20  S col0, COUNT ( 
14f70 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
14f80 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
14f90 2d 2d 2d 0d 0a 31 30 0d 0a 33 0d 0a 0d 0a 6f 6e  ---..10..3....on
14fa0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
14fb0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
14fc0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
14fd0 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72  ED type: DIV for
14fe0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
14ff0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
15000 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 35 0d 0a  sort label-485..
15010 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
15020 2d 20 43 41 53 54 28 20 53 55 4d 28 20 2d 20 63  - CAST( SUM( - c
15030 6f 6c 32 20 29 20 41 53 20 53 49 47 4e 45 44 20  ol2 ) AS SIGNED 
15040 29 20 44 49 56 20 2d 20 43 4f 55 4e 54 28 20 2a  ) DIV - COUNT( *
15050 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
15060 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
15070 2d 2d 0d 0a 2d 34 30 0d 0a 0d 0a 73 6b 69 70 69  --..-40....skipi
15080 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
15090 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
150a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
150b0 34 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  485..SELECT DIST
150c0 49 4e 43 54 20 2d 20 43 41 53 54 20 28 20 53 55  INCT - CAST ( SU
150d0 4d 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20  M ( - col2 ) AS 
150e0 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20 43 4f  INTEGER ) / - CO
150f0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
15100 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
15110 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 0d 0a  or0..----..-40..
15120 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15130 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
15140 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
15150 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
15160 61 62 65 6c 2d 34 38 36 0d 0a 53 45 4c 45 43 54  abel-486..SELECT
15170 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
15180 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
15190 4f 54 20 4e 55 4c 4c 20 3c 20 2b 20 43 41 53 54  OT NULL < + CAST
151a0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
151b0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
151c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
151d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
151e0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
151f0 65 6c 2d 34 38 36 0d 0a 53 45 4c 45 43 54 20 41  el-486..SELECT A
15200 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
15210 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
15220 20 4e 55 4c 4c 20 3c 20 2b 20 43 41 53 54 20 28   NULL < + CAST (
15230 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
15240 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
15250 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
15260 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c  LECT col1 AS col
15270 31 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1, + col1 FROM t
15280 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
15290 2d 0d 0a 31 34 0d 0a 31 34 0d 0a 34 37 0d 0a 34  -..14..14..47..4
152a0 37 0d 0a 35 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79  7..5..5....query
152b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
152c0 43 54 20 41 4c 4c 20 2d 20 37 30 20 2b 20 2b 20  CT ALL - 70 + + 
152d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
152e0 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 31 37 0d 0a 32  ----..-55..17..2
152f0 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
15300 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
15310 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
15320 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38  rowsort label-48
15330 39 0d 0a 53 45 4c 45 43 54 20 53 55 4d 28 20 63  9..SELECT SUM( c
15340 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol1 ) FROM tab2 
15350 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
15360 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
15370 0d 0a 31 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..195....skipif 
15380 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15390 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
153a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38  rowsort label-48
153b0 39 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20  9..SELECT SUM ( 
153c0 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
153d0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
153e0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
153f0 2d 0d 0a 31 39 35 0d 0a 0d 0a 73 6b 69 70 69 66  -..195....skipif
15400 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
15410 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
15420 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
15430 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
15440 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
15450 72 74 0d 0a 53 45 4c 45 43 54 20 34 30 20 63 6f  rt..SELECT 40 co
15460 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
15470 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
15480 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
15490 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
154a0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
154b0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
154c0 57 48 45 52 45 20 28 20 32 20 2a 20 2b 20 63 6f  WHERE ( 2 * + co
154d0 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  l2 ) IS NULL..--
154e0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
154f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15500 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
15510 57 48 45 52 45 20 2d 20 37 32 20 3d 20 2b 20 37  WHERE - 72 = + 7
15520 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
15530 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15540 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
15550 31 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  1 - + col1 AS co
15560 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
15570 52 45 20 28 20 2b 20 63 6f 6c 32 20 29 20 3e 20  RE ( + col2 ) > 
15580 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
15590 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
155a0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 38 20 2a  ELECT ALL - 38 *
155b0 20 2d 20 35 33 20 2d 20 2d 20 63 6f 6c 32 20 41   - 53 - - col2 A
155c0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
155d0 0d 0a 2d 2d 2d 2d 0d 0a 32 30 33 37 0d 0a 32 30  ..----..2037..20
155e0 35 34 0d 0a 32 30 37 32 0d 0a 0d 0a 6f 6e 6c 79  54..2072....only
155f0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
15600 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
15610 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
15620 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 35  owsort label-495
15630 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20  ..SELECT col2 * 
15640 37 31 20 2b 20 63 6f 6c 30 20 44 49 56 20 2b 20  71 + col0 DIV + 
15650 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
15660 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 36  M tab2..----..16
15670 33 34 0d 0a 32 38 34 31 0d 0a 34 31 31 39 0d 0a  34..2841..4119..
15680 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
15690 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
156a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
156b0 20 6c 61 62 65 6c 2d 34 39 35 0d 0a 53 45 4c 45   label-495..SELE
156c0 43 54 20 63 6f 6c 32 20 2a 20 37 31 20 2b 20 63  CT col2 * 71 + c
156d0 6f 6c 30 20 2f 20 2b 20 63 6f 6c 30 20 41 53 20  ol0 / + col0 AS 
156e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
156f0 2d 2d 2d 2d 0d 0a 31 36 33 34 0d 0a 32 38 34 31  ----..1634..2841
15700 0d 0a 34 31 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..4119....onlyif
15710 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
15720 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
15730 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15740 65 6c 2d 34 39 36 0d 0a 53 45 4c 45 43 54 20 31  el-496..SELECT 1
15750 32 20 2b 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c  2 + + COUNT( ALL
15760 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20 43 4f   + col1 ) * + CO
15770 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
15780 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a  b2..----..21....
15790 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
157a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
157b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
157c0 61 62 65 6c 2d 34 39 36 0d 0a 53 45 4c 45 43 54  abel-496..SELECT
157d0 20 31 32 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20   12 + + COUNT ( 
157e0 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b  ALL + col1 ) * +
157f0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
15800 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31  M tab2..----..21
15810 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
15820 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
15830 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
15840 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 2d   WHERE NULL >= -
15850 20 37 36 20 2b 20 2d 20 35 36 0d 0a 2d 2d 2d 2d   76 + - 56..----
15860 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
15870 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
15880 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
15890 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63  b0 WHERE NOT ( c
158a0 6f 6c 31 20 29 20 3c 20 2b 20 63 6f 6c 30 0d 0a  ol1 ) < + col0..
158b0 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 34 37  ----..15..81..47
158c0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
158d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
158e0 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63  INCT - col2 AS c
158f0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
15900 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
15910 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
15920 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
15930 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
15940 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20  OM tab1 WHERE ( 
15950 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45  NULL ) NOT BETWE
15960 45 4e 20 28 20 2b 20 34 30 20 29 20 41 4e 44 20  EN ( + 40 ) AND 
15970 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
15980 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
15990 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
159a0 61 62 31 20 57 48 45 52 45 20 35 39 20 2f 20 63  ab1 WHERE 59 / c
159b0 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ol2 NOT BETWEEN 
159c0 2d 20 36 39 20 2b 20 63 6f 6c 32 20 2a 20 63 6f  - 69 + col2 * co
159d0 6c 32 20 41 4e 44 20 2d 20 28 20 2b 20 63 6f 6c  l2 AND - ( + col
159e0 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
159f0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
15a00 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
15a10 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
15a20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15a30 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
15a40 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
15a50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 32 0d  wsort label-502.
15a60 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
15a70 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
15a80 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
15a90 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57   NULL ) NOT BETW
15aa0 45 45 4e 20 34 20 41 4e 44 20 4e 55 4c 4c 0d 0a  EEN 4 AND NULL..
15ab0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
15ac0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
15ad0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
15ae0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15af0 35 30 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  502..SELECT COUN
15b00 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
15b10 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
15b20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  NOT ( NULL ) NOT
15b30 20 42 45 54 57 45 45 4e 20 34 20 41 4e 44 20 4e   BETWEEN 4 AND N
15b40 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
15b50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
15b60 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
15b70 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
15b80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15b90 2d 35 30 33 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -503..SELECT col
15ba0 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
15bb0 45 20 4e 4f 54 20 28 20 31 36 20 2a 20 2b 20 63  E NOT ( 16 * + c
15bc0 6f 6c 31 20 29 20 4e 4f 54 20 42 45 54 57 45 45  ol1 ) NOT BETWEE
15bd0 4e 20 2b 20 35 20 2b 20 2d 20 43 41 53 54 28 20  N + 5 + - CAST( 
15be0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
15bf0 20 41 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d   AND - col0..---
15c00 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
15c10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
15c20 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
15c30 6f 72 74 20 6c 61 62 65 6c 2d 35 30 33 0d 0a 53  ort label-503..S
15c40 45 4c 45 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20  ELECT col2 FROM 
15c50 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28  tab2 WHERE NOT (
15c60 20 31 36 20 2a 20 2b 20 63 6f 6c 31 20 29 20 4e   16 * + col1 ) N
15c70 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 35 20 2b  OT BETWEEN + 5 +
15c80 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
15c90 53 20 49 4e 54 45 47 45 52 20 29 20 41 4e 44 20  S INTEGER ) AND 
15ca0 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col0..----....
15cb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15cc0 0a 53 45 4c 45 43 54 20 2b 20 33 36 20 2a 20 32  .SELECT + 36 * 2
15cd0 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  3 FROM tab2..---
15ce0 2d 0d 0a 38 32 38 0d 0a 38 32 38 0d 0a 38 32 38  -..828..828..828
15cf0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
15d00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
15d10 6c 30 20 2a 20 2d 20 28 20 31 38 20 29 20 46 52  l0 * - ( 18 ) FR
15d20 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
15d30 31 35 32 0d 0a 31 33 35 30 0d 0a 38 32 38 0d 0a  152..1350..828..
15d40 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15d50 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
15d60 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
15d70 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 36 0d 0a  sort label-506..
15d80 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 41 4c  SELECT - SUM( AL
15d90 4c 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2b 20 43  L + col0 ) * + C
15da0 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 35 34  OUNT( * ) + - 54
15db0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
15dc0 62 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  b1 WHERE ( NULL 
15dd0 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
15de0 0a 2d 37 33 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-735....skipif 
15df0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15e00 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
15e10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30  rowsort label-50
15e20 36 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20  6..SELECT - SUM 
15e30 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 2a  ( ALL + col0 ) *
15e40 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   + COUNT ( * ) +
15e50 20 2d 20 35 34 20 41 53 20 63 6f 6c 32 20 46 52   - 54 AS col2 FR
15e60 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20  OM tab1 WHERE ( 
15e70 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  NULL ) IS NULL..
15e80 2d 2d 2d 2d 0d 0a 2d 37 33 35 0d 0a 0d 0a 6f 6e  ----..-735....on
15e90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
15ea0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
15eb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15ec0 20 6c 61 62 65 6c 2d 35 30 37 0d 0a 53 45 4c 45   label-507..SELE
15ed0 43 54 20 37 37 20 2a 20 2d 20 53 55 4d 28 20 2d  CT 77 * - SUM( -
15ee0 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
15ef0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
15f00 0a 31 32 30 31 32 0d 0a 0d 0a 73 6b 69 70 69 66  .12012....skipif
15f10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15f20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
15f30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
15f40 30 37 0d 0a 53 45 4c 45 43 54 20 37 37 20 2a 20  07..SELECT 77 * 
15f50 2d 20 53 55 4d 20 28 20 2d 20 63 6f 6c 32 20 29  - SUM ( - col2 )
15f60 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
15f70 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 31 32 0d  b0..----..12012.
15f80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15f90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
15fa0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
15fb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d  wsort label-508.
15fc0 0a 53 45 4c 45 43 54 20 31 34 20 2a 20 43 4f 55  .SELECT 14 * COU
15fd0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
15fe0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
15ff0 0a 34 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .42....skipif my
16000 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
16010 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
16020 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d  wsort label-508.
16030 0a 53 45 4c 45 43 54 20 31 34 20 2a 20 43 4f 55  .SELECT 14 * COU
16040 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
16050 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
16060 0d 0a 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..42....onlyif m
16070 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
16080 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
16090 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
160a0 6f 72 74 20 6c 61 62 65 6c 2d 35 30 39 0d 0a 53  ort label-509..S
160b0 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20 43 41 53  ELECT col0 / CAS
160c0 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
160d0 41 4c 20 29 20 2b 20 2b 20 63 6f 6c 30 20 46 52  AL ) + + col0 FR
160e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
160f0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
16100 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
16110 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16120 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16130 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16140 35 30 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  509..SELECT col0
16150 20 2f 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   / CAST ( NULL A
16160 53 20 52 45 41 4c 20 29 20 2b 20 2b 20 63 6f 6c  S REAL ) + + col
16170 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
16180 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
16190 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
161a0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
161b0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
161c0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
161d0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
161e0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
161f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16200 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2b 20  + col2 * col2 + 
16210 2d 20 28 20 2b 20 33 39 20 29 20 63 6f 6c 31 20  - ( + 39 ) col1 
16220 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
16230 2d 2d 2d 2d 0d 0a 33 34 34 32 0d 0a 34 35 38 35  ----..3442..4585
16240 0d 0a 39 31 37 37 0d 0a 0d 0a 71 75 65 72 79 20  ..9177....query 
16250 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16260 54 20 41 4c 4c 20 37 33 20 41 53 20 63 6f 6c 32  T ALL 73 AS col2
16270 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
16280 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
16290 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
162a0 2d 2d 2d 0d 0a 37 33 0d 0a 37 33 0d 0a 37 33 0d  ---..73..73..73.
162b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
162c0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 32 20  rt..SELECT + 72 
162d0 2b 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20  + - col0 * col1 
162e0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
162f0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
16300 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c  NULL BETWEEN NUL
16310 4c 20 41 4e 44 20 35 30 0d 0a 2d 2d 2d 2d 0d 0a  L AND 50..----..
16320 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16330 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 63 6f  t..SELECT ( - co
16340 6c 32 20 29 20 2b 20 2b 20 35 35 20 41 53 20 63  l2 ) + + 55 AS c
16350 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
16360 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   cor0..----..-13
16370 0d 0a 2d 34 0d 0a 2d 34 31 0d 0a 0d 0a 6f 6e 6c  ..-4..-41....onl
16380 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
16390 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
163a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
163b0 6c 61 62 65 6c 2d 35 31 34 0d 0a 53 45 4c 45 43  label-514..SELEC
163c0 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 44 49 53  T ALL COUNT( DIS
163d0 54 49 4e 43 54 20 38 37 20 29 20 46 52 4f 4d 20  TINCT 87 ) FROM 
163e0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
163f0 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..1....skipif 
16400 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
16410 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
16420 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
16430 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  4..SELECT ALL CO
16440 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 38  UNT ( DISTINCT 8
16450 37 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  7 ) FROM tab0 AS
16460 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   cor0..----..1..
16470 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16480 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
16490 28 20 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 31 20  ( col0 ) + col1 
164a0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
164b0 0a 31 30 38 0d 0a 39 36 0d 0a 39 38 0d 0a 0d 0a  .108..96..98....
164c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
164d0 0a 53 45 4c 45 43 54 20 2b 20 28 20 36 20 29 20  .SELECT + ( 6 ) 
164e0 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  - + col1 FROM ta
164f0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d  b0..----..-15..-
16500 37 35 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49  75..5....query I
16510 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16520 20 2d 20 63 6f 6c 31 20 2d 20 38 30 20 2a 20 63   - col1 - 80 * c
16530 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
16540 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31   tab2..----..-41
16550 33 31 0d 0a 2d 35 34 32 37 0d 0a 2d 36 32 33 37  31..-5427..-6237
16560 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
16570 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
16580 49 4e 43 54 20 38 37 20 2a 20 34 30 20 2d 20 35  INCT 87 * 40 - 5
16590 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
165a0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 34 32 37 0d  ab1..----..3427.
165b0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
165c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
165d0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
165e0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
165f0 4e 4f 54 20 2b 20 63 6f 6c 30 20 2f 20 38 34 20  NOT + col0 / 84 
16600 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d  IN ( - col2 )..-
16610 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
16620 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
16630 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
16640 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c  537fb43b7....onl
16650 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
16660 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
16670 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16680 6c 61 62 65 6c 2d 35 32 30 0d 0a 53 45 4c 45 43  label-520..SELEC
16690 54 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c  T - MIN( ALL col
166a0 32 20 29 20 2d 20 33 37 20 41 53 20 63 6f 6c 30  2 ) - 37 AS col0
166b0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
166c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 0d  r0..----..-60...
166d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
166e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
166f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16700 6c 61 62 65 6c 2d 35 32 30 0d 0a 53 45 4c 45 43  label-520..SELEC
16710 54 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 63 6f  T - MIN ( ALL co
16720 6c 32 20 29 20 2d 20 33 37 20 41 53 20 63 6f 6c  l2 ) - 37 AS col
16730 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
16740 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a  or0..----..-60..
16750 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16760 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
16770 6c 32 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l2 - col1 AS col
16780 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
16790 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d 33 34  ..----..-11..-34
167a0 0d 0a 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..98....skipif p
167b0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
167c0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
167d0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
167e0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
167f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16800 0d 0a 53 45 4c 45 43 54 20 2b 20 34 20 2b 20 2b  ..SELECT + 4 + +
16810 20 39 36 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   96 col1 FROM ta
16820 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
16830 0d 0a 31 30 30 0d 0a 31 30 30 0d 0a 31 30 30 0d  ..100..100..100.
16840 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
16850 72 74 0d 0a 53 45 4c 45 43 54 20 33 36 20 2b 20  rt..SELECT 36 + 
16860 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
16870 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
16880 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e  HERE NULL NOT IN
16890 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   ( col1 )..----.
168a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
168b0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
168c0 4e 43 54 20 2b 20 2d 20 34 20 2d 20 2d 20 63 6f  NCT + - 4 - - co
168d0 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
168e0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
168f0 2d 2d 0d 0a 34 37 0d 0a 36 33 0d 0a 37 33 0d 0a  --..47..63..73..
16900 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
16910 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
16920 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
16930 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 35 0d 0a  sort label-525..
16940 53 45 4c 45 43 54 20 53 55 4d 28 20 2d 20 63 6f  SELECT SUM( - co
16950 6c 31 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20  l1 ) * COUNT( * 
16960 29 20 2b 20 36 32 20 46 52 4f 4d 20 74 61 62 32  ) + 62 FROM tab2
16970 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
16980 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 49 53 20   col0 + col0 IS 
16990 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
169a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
169b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
169c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
169d0 72 74 20 6c 61 62 65 6c 2d 35 32 35 0d 0a 53 45  rt label-525..SE
169e0 4c 45 43 54 20 53 55 4d 20 28 20 2d 20 63 6f 6c  LECT SUM ( - col
169f0 31 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20  1 ) * COUNT ( * 
16a00 29 20 2b 20 36 32 20 46 52 4f 4d 20 74 61 62 32  ) + 62 FROM tab2
16a10 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
16a20 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 49 53 20   col0 + col0 IS 
16a30 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
16a40 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
16a50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
16a60 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
16a70 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
16a80 31 20 2d 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  1 - + col2 IS NU
16a90 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
16aa0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
16ab0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
16ac0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
16ad0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 37  owsort label-527
16ae0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20  ..SELECT col2 * 
16af0 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54 28 20 2d  col1 + + CAST( -
16b00 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
16b10 29 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  ) * - col2 AS co
16b20 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
16b30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 30  cor0..----..1080
16b40 0d 0a 34 35 31 32 0d 0a 39 37 30 32 0d 0a 0d 0a  ..4512..9702....
16b50 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16b60 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
16b70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16b80 61 62 65 6c 2d 35 32 37 0d 0a 53 45 4c 45 43 54  abel-527..SELECT
16b90 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b 20 2b   col2 * col1 + +
16ba0 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41   CAST ( - col0 A
16bb0 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20  S INTEGER ) * - 
16bc0 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
16bd0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
16be0 2d 2d 2d 2d 0d 0a 31 30 38 30 0d 0a 34 35 31 32  ----..1080..4512
16bf0 0d 0a 39 37 30 32 0d 0a 0d 0a 71 75 65 72 79 20  ..9702....query 
16c00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16c10 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
16c20 2f 20 31 39 20 41 53 20 63 6f 6c 31 20 46 52 4f  / 19 AS col1 FRO
16c30 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
16c40 48 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 32 20  HERE NOT ( col2 
16c50 2f 20 2b 20 38 35 20 29 20 49 53 20 4e 4f 54 20  / + 85 ) IS NOT 
16c60 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
16c70 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
16c80 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
16c90 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
16ca0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
16cb0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
16cc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
16cd0 4c 4c 20 2b 20 32 39 20 63 6f 6c 30 20 46 52 4f  LL + 29 col0 FRO
16ce0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 39  M tab2..----..29
16cf0 0d 0a 32 39 0d 0a 32 39 0d 0a 0d 0a 71 75 65 72  ..29..29....quer
16d00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16d10 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 32 31 20  ECT + col1 * 21 
16d20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
16d30 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 30 31 0d 0a 32  0..----..1701..2
16d40 31 0d 0a 34 34 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  1..441....onlyif
16d50 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
16d60 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
16d70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
16d80 65 6c 2d 35 33 31 0d 0a 53 45 4c 45 43 54 20 41  el-531..SELECT A
16d90 4c 4c 20 4d 41 58 28 20 41 4c 4c 20 2d 20 2d 20  LL MAX( ALL - - 
16da0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
16db0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16dc0 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  91....skipif mys
16dd0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
16de0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
16df0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 31 0d 0a  sort label-531..
16e00 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 20 28  SELECT ALL MAX (
16e10 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20 29 20   ALL - - col0 ) 
16e20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
16e30 31 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 71  1..----..91....q
16e40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
16e50 53 45 4c 45 43 54 20 32 37 20 2a 20 2b 20 2b 20  SELECT 27 * + + 
16e60 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
16e70 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 35  M tab1..----..15
16e80 39 33 0d 0a 31 38 33 36 0d 0a 32 35 39 32 0d 0a  93..1836..2592..
16e90 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
16ea0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
16eb0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
16ec0 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2f 20 2d  E NOT + col1 / -
16ed0 20 28 20 36 35 20 29 20 2b 20 2b 20 28 20 63 6f   ( 65 ) + + ( co
16ee0 6c 30 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d  l0 ) <> NULL..--
16ef0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
16f00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
16f10 53 54 49 4e 43 54 20 28 20 2d 20 63 6f 6c 32 20  STINCT ( - col2 
16f20 29 20 2a 20 2b 20 31 37 20 46 52 4f 4d 20 74 61  ) * + 17 FROM ta
16f30 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 31 0d 0a  b2..----..-391..
16f40 2d 36 38 30 0d 0a 2d 39 38 36 0d 0a 0d 0a 6f 6e  -680..-986....on
16f50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
16f60 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
16f70 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
16f80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
16f90 33 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  35..SELECT col1 
16fa0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
16fb0 4e 4f 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 32  NOT + col0 + - 2
16fc0 38 20 2a 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 49  8 * - col0 NOT I
16fd0 4e 20 28 20 43 41 53 54 28 20 2d 20 63 6f 6c 30  N ( CAST( - col0
16fe0 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 0d 0a   AS SIGNED ) )..
16ff0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
17000 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17010 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
17020 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 35  owsort label-535
17030 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 46 52  ..SELECT col1 FR
17040 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
17050 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 32 38 20  T + col0 + - 28 
17060 2a 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20  * - col0 NOT IN 
17070 28 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20  ( CAST ( - col0 
17080 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 0d 0a  AS INTEGER ) )..
17090 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
170a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
170b0 41 4c 4c 20 2d 20 34 30 20 2a 20 2d 20 63 6f 6c  ALL - 40 * - col
170c0 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
170d0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34 30 0d  ab1..----..2040.
170e0 0a 33 34 30 30 0d 0a 33 36 34 30 0d 0a 0d 0a 71  .3400..3640....q
170f0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
17100 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
17110 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
17120 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
17130 4f 54 20 4e 55 4c 4c 20 41 4e 44 20 4e 4f 54 20  OT NULL AND NOT 
17140 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  - col1 IS NOT NU
17150 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
17160 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17170 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
17180 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
17190 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 2a  or0 WHERE col1 *
171a0 20 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 3d 20 4e   col0 + col2 = N
171b0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
171c0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
171d0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
171e0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
171f0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
17200 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17210 35 33 39 0d 0a 53 45 4c 45 43 54 20 2d 20 39 30  539..SELECT - 90
17220 20 44 49 56 20 2d 20 43 4f 55 4e 54 28 20 2a 20   DIV - COUNT( * 
17230 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
17240 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab1 cor0 CROSS J
17250 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31  OIN tab0 AS cor1
17260 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b  ..----..10....sk
17270 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17280 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17290 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
172a0 65 6c 2d 35 33 39 0d 0a 53 45 4c 45 43 54 20 2d  el-539..SELECT -
172b0 20 39 30 20 2f 20 2d 20 43 4f 55 4e 54 20 28 20   90 / - COUNT ( 
172c0 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
172d0 20 74 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53   tab1 cor0 CROSS
172e0 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
172f0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a  r1..----..10....
17300 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
17310 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
17320 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
17330 2d 20 35 30 20 2f 20 63 6f 6c 32 20 42 45 54 57  - 50 / col2 BETW
17340 45 45 4e 20 2d 20 63 6f 6c 30 20 41 4e 44 20 28  EEN - col0 AND (
17350 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   - col0 )..----.
17360 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
17370 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
17380 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
17390 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  d0a49....skipif 
173a0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
173b0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
173c0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
173d0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
173e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
173f0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 37 20 2a  t..SELECT + 67 *
17400 20 2b 20 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f   + col2 col1 FRO
17410 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35  M tab2..----..15
17420 34 31 0d 0a 32 36 38 30 0d 0a 33 38 38 36 0d 0a  41..2680..3886..
17430 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
17440 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
17450 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
17460 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17470 65 6c 2d 35 34 32 0d 0a 53 45 4c 45 43 54 20 44  el-542..SELECT D
17480 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55  ISTINCT CAST( NU
17490 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
174a0 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   - + col0 * + co
174b0 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
174c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
174d0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
174e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
174f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
17500 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
17510 2d 35 34 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -542..SELECT DIS
17520 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c  TINCT CAST ( NUL
17530 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
17540 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   - + col0 * + co
17550 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
17560 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
17570 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
17580 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
17590 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
175a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
175b0 45 52 45 20 38 31 20 2a 20 32 20 2b 20 2d 20 28  ERE 81 * 2 + - (
175c0 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 29   col1 + + col1 )
175d0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
175e0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
175f0 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
17600 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
17610 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
17620 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17630 45 43 54 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29  ECT - ( - col0 )
17640 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
17650 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
17660 6f 6c 30 20 2a 20 2d 20 2b 20 31 37 20 49 53 20  ol0 * - + 17 IS 
17670 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
17680 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17690 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 31 20 2b  t..SELECT - 61 +
176a0 20 38 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   8 FROM tab2 cor
176b0 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30  0 WHERE NOT col0
176c0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
176d0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
176e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
176f0 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 2a 20  + col2 + col2 * 
17700 2b 20 39 34 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  + 94 + col2 FROM
17710 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
17720 2d 2d 2d 0d 0a 32 32 30 38 0d 0a 33 38 34 30 0d  ---..2208..3840.
17730 0a 35 35 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .5568....query I
17740 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17750 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f   - col1 + - - co
17760 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
17770 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
17780 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  --..0..0..0....o
17790 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
177a0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
177b0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
177c0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
177d0 6c 2d 35 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-548..SELECT AL
177e0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
177f0 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 43 41   cor0 WHERE + CA
17800 53 54 28 20 2d 20 63 6f 6c 32 20 41 53 20 53 49  ST( - col2 AS SI
17810 47 4e 45 44 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  GNED ) IS NULL..
17820 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
17830 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17840 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
17850 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17860 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  48..SELECT ALL *
17870 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
17880 72 30 20 57 48 45 52 45 20 2b 20 43 41 53 54 20  r0 WHERE + CAST 
17890 28 20 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45  ( - col2 AS INTE
178a0 47 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  GER ) IS NULL..-
178b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
178c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
178d0 4c 4c 20 2b 20 35 35 20 2a 20 63 6f 6c 30 20 2b  LL + 55 * col0 +
178e0 20 2b 20 63 6f 6c 31 20 2b 20 35 20 46 52 4f 4d   + col1 + 5 FROM
178f0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
17900 0d 0a 32 35 38 36 0d 0a 33 36 30 32 0d 0a 34 31  ..2586..3602..41
17910 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  97....query I ro
17920 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
17930 53 54 49 4e 43 54 20 2b 20 37 32 20 2a 20 2d 20  STINCT + 72 * - 
17940 63 6f 6c 31 20 2b 20 2d 20 2b 20 33 33 20 2a 20  col1 + - + 33 * 
17950 2b 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 20  + + col1 * col0 
17960 2b 20 34 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  + 41 FROM tab1..
17970 2d 2d 2d 2d 0d 0a 2d 31 34 33 34 34 0d 0a 2d 31  ----..-14344..-1
17980 34 34 34 38 34 0d 0a 2d 32 34 35 32 39 0d 0a 0d  44484..-24529...
17990 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
179a0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
179b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
179c0 6f 72 74 20 6c 61 62 65 6c 2d 35 35 31 0d 0a 53  ort label-551..S
179d0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
179e0 54 28 20 2a 20 29 20 2b 20 33 30 20 46 52 4f 4d  T( * ) + 30 FROM
179f0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d   tab0..----..33.
17a00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
17a10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
17a20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17a30 74 20 6c 61 62 65 6c 2d 35 35 31 0d 0a 53 45 4c  t label-551..SEL
17a40 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20  ECT ALL + COUNT 
17a50 28 20 2a 20 29 20 2b 20 33 30 20 46 52 4f 4d 20  ( * ) + 30 FROM 
17a60 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a  tab0..----..33..
17a70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
17a80 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
17a90 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
17aa0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 32 0d  wsort label-552.
17ab0 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 43 4f  .SELECT - ( - CO
17ac0 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f  UNT( * ) ) AS co
17ad0 6c 32 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  l2, COUNT( * ) A
17ae0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
17af0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a  ..----..3..3....
17b00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
17b10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
17b20 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
17b30 6c 61 62 65 6c 2d 35 35 32 0d 0a 53 45 4c 45 43  label-552..SELEC
17b40 54 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28 20  T - ( - COUNT ( 
17b50 2a 20 29 20 29 20 41 53 20 63 6f 6c 32 2c 20 43  * ) ) AS col2, C
17b60 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
17b70 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
17b80 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72  --..3..3....quer
17b90 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17ba0 45 43 54 20 44 49 53 54 49 4e 43 54 20 36 20 2a  ECT DISTINCT 6 *
17bb0 20 2d 20 35 31 20 46 52 4f 4d 20 74 61 62 30 0d   - 51 FROM tab0.
17bc0 0a 2d 2d 2d 2d 0d 0a 2d 33 30 36 0d 0a 0d 0a 71  .----..-306....q
17bd0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
17be0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
17bf0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
17c00 45 52 45 20 2d 20 31 39 20 3c 3e 20 28 20 63 6f  ERE - 19 <> ( co
17c10 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 63 6f  l0 * col0 + + co
17c20 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  l2 )..----..9 va
17c30 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
17c40 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
17c50 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
17c60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
17c70 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
17c80 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
17c90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 35  owsort label-555
17ca0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
17cb0 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
17cc0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
17cd0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
17ce0 0a 2d 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-6....skipif my
17cf0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
17d00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
17d10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 35 0d  wsort label-555.
17d20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
17d30 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   - COUNT ( * ) +
17d40 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
17d50 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
17d60 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-6....query I 
17d70 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17d80 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52  - col1 + col2 FR
17d90 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 33 39  OM tab2 WHERE 39
17da0 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20   * + - col0 + + 
17db0 28 20 39 34 20 29 20 3c 3d 20 63 6f 6c 32 0d 0a  ( 94 ) <= col2..
17dc0 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 2d 33 37 0d 0a  ----..-28..-37..
17dd0 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -9....query I ro
17de0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
17df0 4c 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63  L - col0 + - - c
17e00 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
17e10 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   tab2..----..-17
17e20 0d 0a 2d 32 33 0d 0a 2d 32 34 0d 0a 0d 0a 71 75  ..-23..-24....qu
17e30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
17e40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
17e50 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20 63 6f   ( + col2 ) + co
17e60 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
17e70 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
17e80 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
17e90 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
17ea0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
17eb0 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c  LECT ALL - - col
17ec0 30 20 2b 20 2b 20 32 30 20 46 52 4f 4d 20 74 61  0 + + 20 FROM ta
17ed0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
17ee0 0d 0a 31 30 35 0d 0a 31 31 31 0d 0a 37 31 0d 0a  ..105..111..71..
17ef0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17f00 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
17f10 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  8 FROM tab1 AS c
17f20 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
17f30 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  l0 * - + col2 + 
17f40 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  - col2 IS NOT NU
17f50 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
17f60 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
17f70 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
17f80 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
17f90 28 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3e  ( NOT ( NULL ) >
17fa0 20 36 37 20 2a 20 2b 20 63 6f 6c 32 20 29 0d 0a   67 * + col2 )..
17fb0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
17fc0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17fd0 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20 63  DISTINCT - ( - c
17fe0 6f 6c 30 20 29 20 2d 20 31 33 20 41 53 20 63 6f  ol0 ) - 13 AS co
17ff0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
18000 2d 2d 0d 0a 33 33 0d 0a 35 31 0d 0a 36 32 0d 0a  --..33..51..62..
18010 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
18020 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
18030 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
18040 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 33 0d 0a  sort label-563..
18050 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 41 4c  SELECT - MIN( AL
18060 4c 20 2d 20 2d 20 37 31 20 29 20 46 52 4f 4d 20  L - - 71 ) FROM 
18070 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
18080 2d 2d 0d 0a 2d 37 31 0d 0a 0d 0a 73 6b 69 70 69  --..-71....skipi
18090 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
180a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
180b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
180c0 35 36 33 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49  563..SELECT - MI
180d0 4e 20 28 20 41 4c 4c 20 2d 20 2d 20 37 31 20 29  N ( ALL - - 71 )
180e0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
180f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 31 0d 0a 0d  r0..----..-71...
18100 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
18110 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
18120 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
18130 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 34 0d 0a  sort label-564..
18140 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
18150 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 36 20 2a  ) AS col1, - 6 *
18160 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   - SUM( DISTINCT
18170 20 2b 20 39 37 20 29 20 2a 20 2d 20 43 4f 55 4e   + 97 ) * - COUN
18180 54 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d  T( * ) col0 FROM
18190 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
181a0 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  ERE col2 IS NOT 
181b0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d  NULL..----..3..-
181c0 31 37 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1746....skipif m
181d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
181e0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
181f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
18200 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
18210 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
18220 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
18230 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
18240 20 6c 61 62 65 6c 2d 35 36 34 0d 0a 53 45 4c 45   label-564..SELE
18250 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41  CT COUNT ( * ) A
18260 53 20 63 6f 6c 31 2c 20 2d 20 36 20 2a 20 2d 20  S col1, - 6 * - 
18270 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2b  SUM ( DISTINCT +
18280 20 39 37 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20   97 ) * - COUNT 
18290 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  ( * ) col0 FROM 
182a0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
182b0 52 45 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e  RE col2 IS NOT N
182c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 31  ULL..----..3..-1
182d0 37 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  746....skipif po
182e0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
182f0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
18300 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
18310 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
18320 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
18330 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
18340 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20   col2 col0 FROM 
18350 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
18360 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  NOT NULL NOT BET
18370 57 45 45 4e 20 2b 20 63 6f 6c 30 20 41 4e 44 20  WEEN + col0 AND 
18380 2d 20 35 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  - 58..----....on
18390 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
183a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
183b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
183c0 20 6c 61 62 65 6c 2d 35 36 36 0d 0a 53 45 4c 45   label-566..SELE
183d0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
183e0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  + + COUNT( * ) *
183f0 20 4d 41 58 28 20 41 4c 4c 20 2d 20 32 37 20 29   MAX( ALL - 27 )
18400 20 2d 20 2b 20 38 33 20 2a 20 36 38 20 46 52 4f   - + 83 * 68 FRO
18410 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
18420 2d 2d 2d 2d 0d 0a 2d 35 38 38 37 0d 0a 0d 0a 73  ----..-5887....s
18430 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
18440 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
18450 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18460 62 65 6c 2d 35 36 36 0d 0a 53 45 4c 45 43 54 20  bel-566..SELECT 
18470 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20  COUNT ( * ) * + 
18480 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
18490 4d 41 58 20 28 20 41 4c 4c 20 2d 20 32 37 20 29  MAX ( ALL - 27 )
184a0 20 2d 20 2b 20 38 33 20 2a 20 36 38 20 46 52 4f   - + 83 * 68 FRO
184b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
184c0 2d 2d 2d 2d 0d 0a 2d 35 38 38 37 0d 0a 0d 0a 71  ----..-5887....q
184d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
184e0 53 45 4c 45 43 54 20 36 30 20 2a 20 2d 20 2d 20  SELECT 60 * - - 
184f0 34 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  41 AS col2 FROM 
18500 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
18510 2d 2d 0d 0a 32 34 36 30 0d 0a 32 34 36 30 0d 0a  --..2460..2460..
18520 32 34 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  2460....onlyif m
18530 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
18540 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
18550 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
18560 2d 35 36 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -568..SELECT DIS
18570 54 49 4e 43 54 20 2b 20 39 36 20 2a 20 43 4f 55  TINCT + 96 * COU
18580 4e 54 28 20 2a 20 29 20 2f 20 2b 20 4d 41 58 28  NT( * ) / + MAX(
18590 20 63 6f 6c 30 20 29 20 2a 20 43 4f 55 4e 54 28   col0 ) * COUNT(
185a0 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
185b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
185c0 48 45 52 45 20 4e 4f 54 20 2d 20 33 34 20 49 53  HERE NOT - 34 IS
185d0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
185e0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
185f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
18600 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
18610 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36  rowsort label-56
18620 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
18630 43 54 20 2b 20 39 36 20 2a 20 43 4f 55 4e 54 20  CT + 96 * COUNT 
18640 28 20 2a 20 29 20 2f 20 2b 20 4d 41 58 20 28 20  ( * ) / + MAX ( 
18650 63 6f 6c 30 20 29 20 2a 20 43 4f 55 4e 54 20 28  col0 ) * COUNT (
18660 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
18670 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
18680 48 45 52 45 20 4e 4f 54 20 2d 20 33 34 20 49 53  HERE NOT - 34 IS
18690 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
186a0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
186b0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
186c0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
186d0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
186e0 54 20 4e 55 4c 4c 20 49 4e 20 28 20 2b 20 2b 20  T NULL IN ( + + 
186f0 63 6f 6c 32 2c 20 2d 20 38 32 20 2b 20 2b 20 2d  col2, - 82 + + -
18700 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col1 )..----...
18710 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
18720 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
18730 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
18740 20 28 20 2d 20 63 6f 6c 32 20 29 20 3d 20 28 20   ( - col2 ) = ( 
18750 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
18760 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
18770 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
18780 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
18790 72 74 20 6c 61 62 65 6c 2d 35 37 31 0d 0a 53 45  rt label-571..SE
187a0 4c 45 43 54 20 28 20 2b 20 43 4f 55 4e 54 28 20  LECT ( + COUNT( 
187b0 2b 20 37 30 20 29 20 29 20 46 52 4f 4d 20 74 61  + 70 ) ) FROM ta
187c0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  b1..----..3....s
187d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
187e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
187f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18800 62 65 6c 2d 35 37 31 0d 0a 53 45 4c 45 43 54 20  bel-571..SELECT 
18810 28 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20 37 30  ( + COUNT ( + 70
18820 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   ) ) FROM tab1..
18830 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  ----..3....onlyi
18840 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
18850 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
18860 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18870 62 65 6c 2d 35 37 32 0d 0a 53 45 4c 45 43 54 20  bel-572..SELECT 
18880 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 63 6f 6c  ALL - COUNT( col
18890 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  2 ) AS col1 FROM
188a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
188b0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ---..-3....skipi
188c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
188d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
188e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
188f0 35 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  572..SELECT ALL 
18900 2d 20 43 4f 55 4e 54 20 28 20 63 6f 6c 32 20 29  - COUNT ( col2 )
18910 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
18920 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
18930 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-3....onlyif m
18940 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
18950 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
18960 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
18970 72 74 20 6c 61 62 65 6c 2d 35 37 33 0d 0a 53 45  rt label-573..SE
18980 4c 45 43 54 20 2b 20 2d 20 43 41 53 54 28 20 2b  LECT + - CAST( +
18990 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53   ( + - col0 ) AS
189a0 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
189b0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
189c0 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d  -..51..85..91...
189d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
189e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
189f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
18a00 6c 61 62 65 6c 2d 35 37 33 0d 0a 53 45 4c 45 43  label-573..SELEC
18a10 54 20 2b 20 2d 20 43 41 53 54 20 28 20 2b 20 28  T + - CAST ( + (
18a20 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 49   + - col0 ) AS I
18a30 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
18a40 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
18a50 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a  ..51..85..91....
18a60 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
18a70 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
18a80 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
18a90 6f 72 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53  ort label-574..S
18aa0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
18ab0 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 2b 20 38   COUNT( * ), + 8
18ac0 36 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  6 + + COUNT( * )
18ad0 20 2b 20 39 37 20 41 53 20 63 6f 6c 32 20 46 52   + 97 AS col2 FR
18ae0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
18af0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 31 38 36 0d 0a  .----..-3..186..
18b00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
18b10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
18b20 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
18b30 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53 45 4c  t label-574..SEL
18b40 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
18b50 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2b 20 38 36  OUNT ( * ), + 86
18b60 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   + + COUNT ( * )
18b70 20 2b 20 39 37 20 41 53 20 63 6f 6c 32 20 46 52   + 97 AS col2 FR
18b80 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
18b90 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 31 38 36 0d 0a  .----..-3..186..
18ba0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
18bb0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
18bc0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
18bd0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 35 0d 0a  sort label-575..
18be0 53 45 4c 45 43 54 20 2b 20 2b 20 35 39 20 2a 20  SELECT + + 59 * 
18bf0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
18c00 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
18c10 2d 2d 2d 0d 0a 31 37 37 0d 0a 0d 0a 73 6b 69 70  ---..177....skip
18c20 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
18c30 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
18c40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
18c50 2d 35 37 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -575..SELECT + +
18c60 20 35 39 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 20   59 * + + COUNT 
18c70 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
18c80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 37 0d  cor0..----..177.
18c90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
18ca0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
18cb0 20 37 39 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d   79 * - col0 * -
18cc0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
18cd0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
18ce0 0a 2d 2d 2d 2d 0d 0a 32 30 35 34 37 39 0d 0a 35  .----..205479..5
18cf0 37 30 37 37 35 0d 0a 36 35 34 31 39 39 0d 0a 0d  70775..654199...
18d00 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
18d10 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
18d20 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c  M tab2 WHERE col
18d30 32 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  2 BETWEEN NULL A
18d40 4e 44 20 2b 20 38 38 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND + 88..----...
18d50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18d60 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20  ..SELECT col0 + 
18d70 2d 20 31 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 16 AS col0 FRO
18d80 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 30  M tab2..----..30
18d90 0d 0a 34 38 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72  ..48..59....quer
18da0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18db0 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d  ECT - col0 + - -
18dc0 20 32 39 20 2b 20 2d 20 2b 20 31 33 20 2b 20 2b   29 + - + 13 + +
18dd0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
18de0 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 31 36 0d 0a 31  .----..16..16..1
18df0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
18e00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
18e10 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
18e20 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45 45   col0 NOT BETWEE
18e30 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c  N NULL AND + col
18e40 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  0..----....onlyi
18e50 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
18e60 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
18e70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18e80 62 65 6c 2d 35 38 31 0d 0a 53 45 4c 45 43 54 20  bel-581..SELECT 
18e90 44 49 53 54 49 4e 43 54 20 33 20 2b 20 2d 20 43  DISTINCT 3 + - C
18ea0 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
18eb0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ab1..----..0....
18ec0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
18ed0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
18ee0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18ef0 61 62 65 6c 2d 35 38 31 0d 0a 53 45 4c 45 43 54  abel-581..SELECT
18f00 20 44 49 53 54 49 4e 43 54 20 33 20 2b 20 2d 20   DISTINCT 3 + - 
18f10 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
18f20 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab1..----..0..
18f30 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
18f40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
18f50 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20  OM tab1 WHERE + 
18f60 2b 20 32 31 20 4e 4f 54 20 42 45 54 57 45 45 4e  + 21 NOT BETWEEN
18f70 20 63 6f 6c 32 20 2b 20 32 34 20 2d 20 63 6f 6c   col2 + 24 - col
18f80 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  1 AND NULL..----
18f90 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
18fa0 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
18fb0 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
18fc0 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
18fd0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
18fe0 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  T - col2 * + col
18ff0 30 20 2b 20 2b 20 28 20 2b 20 39 30 20 29 20 2b  0 + + ( + 90 ) +
19000 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 41   + col1 * col1 A
19010 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
19020 20 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c 30 20   WHERE + + col0 
19030 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
19040 2d 0d 0a 31 36 33 33 0d 0a 32 32 39 0d 0a 33 34  -..1633..229..34
19050 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  59....query II r
19060 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
19070 49 53 54 49 4e 43 54 20 2d 20 38 34 20 2f 20 2b  ISTINCT - 84 / +
19080 20 32 31 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c   21 AS col2, col
19090 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
190a0 45 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29  E + - ( + col1 )
190b0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
190c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
190d0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 36 20 2b  t..SELECT - 36 +
190e0 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 2b   + col1 + col0 +
190f0 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d 20   + - col1 + + - 
19100 31 38 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63  18 * - col0 AS c
19110 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
19120 2d 2d 2d 0d 0a 31 31 38 30 0d 0a 31 33 38 39 0d  ---..1180..1389.
19130 0a 38 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .838....query I 
19140 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19150 2b 20 36 20 2b 20 33 38 20 46 52 4f 4d 20 74 61  + 6 + 38 FROM ta
19160 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
19170 0d 0a 34 34 0d 0a 34 34 0d 0a 34 34 0d 0a 0d 0a  ..44..44..44....
19180 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
19190 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a  .SELECT - col1 *
191a0 20 2d 20 33 33 20 46 52 4f 4d 20 74 61 62 30 20   - 33 FROM tab0 
191b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
191c0 36 37 33 0d 0a 33 33 0d 0a 36 39 33 0d 0a 0d 0a  673..33..693....
191d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
191e0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
191f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19200 72 74 20 6c 61 62 65 6c 2d 35 38 38 0d 0a 53 45  rt label-588..SE
19210 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
19220 28 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  ( + col0 ) FROM 
19230 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
19240 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
19250 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19260 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
19270 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 38 0d  wsort label-588.
19280 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
19290 55 4e 54 20 28 20 2b 20 63 6f 6c 30 20 29 20 46  UNT ( + col0 ) F
192a0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
192b0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
192c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
192d0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
192e0 6c 31 20 2b 20 2b 20 34 36 20 2a 20 2b 20 33 31  l1 + + 46 * + 31
192f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
19300 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 33 31 0d 0a  r0..----..1431..
19310 31 34 34 30 0d 0a 31 34 37 33 0d 0a 0d 0a 71 75  1440..1473....qu
19320 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19330 45 4c 45 43 54 20 41 4c 4c 20 38 31 20 46 52 4f  ELECT ALL 81 FRO
19340 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f 53  M tab0 cor0 CROS
19350 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
19360 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
19370 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
19380 61 38 65 61 33 30 63 36 38 30 33 61 65 64 64 63  a8ea30c6803aeddc
19390 35 66 63 61 35 62 35 38 32 31 64 38 32 36 37 0d  5fca5b5821d8267.
193a0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
193b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
193c0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
193d0 32 20 57 48 45 52 45 20 2d 20 2d 20 39 30 20 2a  2 WHERE - - 90 *
193e0 20 2d 20 33 30 20 2f 20 2b 20 31 37 20 42 45 54   - 30 / + 17 BET
193f0 57 45 45 4e 20 28 20 2b 20 32 32 20 29 20 41 4e  WEEN ( + 22 ) AN
19400 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  D ( NULL )..----
19410 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
19420 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
19430 2b 20 63 6f 6c 32 20 2d 20 2d 20 2b 20 63 6f 6c  + col2 - - + col
19440 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
19450 2d 0d 0a 31 39 38 0d 0a 32 30 0d 0a 39 34 0d 0a  -..198..20..94..
19460 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19470 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
19480 43 54 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20  CT + ( - col1 ) 
19490 2a 20 2d 20 39 34 20 2d 20 63 6f 6c 31 20 46 52  * - 94 - col1 FR
194a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
194b0 0a 2d 2d 2d 2d 0d 0a 31 39 35 33 0d 0a 37 35 33  .----..1953..753
194c0 33 0d 0a 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  3..93....onlyif 
194d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
194e0 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
194f0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
19500 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
19510 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 34 0d  wsort label-594.
19520 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
19530 58 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  X( + CAST( NULL 
19540 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 46 52  AS SIGNED ) ) FR
19550 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
19560 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
19570 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19580 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
19590 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 34 0d  wsort label-594.
195a0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
195b0 58 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  X ( + CAST ( NUL
195c0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
195d0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
195e0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
195f0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
19600 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
19610 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19620 65 6c 2d 35 39 35 0d 0a 53 45 4c 45 43 54 20 4d  el-595..SELECT M
19630 49 4e 28 20 2b 20 63 6f 6c 31 20 29 20 2a 20 37  IN( + col1 ) * 7
19640 37 20 2a 20 2b 20 2d 20 4d 41 58 28 20 44 49 53  7 * + - MAX( DIS
19650 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 32 20 29  TINCT + - col2 )
19660 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
19670 0a 2d 2d 2d 2d 0d 0a 37 37 30 0d 0a 0d 0a 73 6b  .----..770....sk
19680 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19690 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
196a0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
196b0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
196c0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
196d0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
196e0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
196f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 35 0d  wsort label-595.
19700 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 2b 20  .SELECT MIN ( + 
19710 63 6f 6c 31 20 29 20 2a 20 37 37 20 2a 20 2b 20  col1 ) * 77 * + 
19720 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  - MAX ( DISTINCT
19730 20 2b 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c 32   + - col2 ) col2
19740 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
19750 0d 0a 37 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..770....onlyif 
19760 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
19770 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
19780 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
19790 6f 72 74 20 6c 61 62 65 6c 2d 35 39 36 0d 0a 53  ort label-596..S
197a0 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44 49 56  ELECT + col0 DIV
197b0 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
197c0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
197d0 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b  -..1..1..1....sk
197e0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
197f0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19800 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19810 65 6c 2d 35 39 36 0d 0a 53 45 4c 45 43 54 20 2b  el-596..SELECT +
19820 20 63 6f 6c 30 20 2f 20 2b 20 2b 20 63 6f 6c 30   col0 / + + col0
19830 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
19840 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a  b0..----..1..1..
19850 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
19860 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
19870 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
19880 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32  1 WHERE NOT col2
19890 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
198a0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
198b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
198c0 38 35 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  85 FROM tab0 AS 
198d0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
198e0 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
198f0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
19900 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
19910 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
19920 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
19930 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
19940 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
19950 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
19960 20 2a 20 2d 20 32 32 20 63 6f 6c 32 20 46 52 4f   * - 22 col2 FRO
19970 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
19980 37 38 32 0d 0a 2d 32 32 0d 0a 2d 34 36 32 0d 0a  782..-22..-462..
19990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
199a0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
199b0 43 54 20 2d 20 63 6f 6c 31 20 2a 20 36 34 20 46  CT - col1 * 64 F
199c0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
199d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 30 38 0d 0a 2d  ..----..-3008..-
199e0 33 32 30 0d 0a 2d 38 39 36 0d 0a 0d 0a 6f 6e 6c  320..-896....onl
199f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
19a00 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
19a10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19a20 6c 61 62 65 6c 2d 36 30 31 0d 0a 53 45 4c 45 43  label-601..SELEC
19a30 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 2d 20 2b  T ALL + MIN( - +
19a40 20 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52 4f   col1 ) col0 FRO
19a50 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
19a60 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
19a70 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
19a80 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-81....skipif m
19a90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
19aa0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
19ab0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
19ac0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
19ad0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
19ae0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
19af0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19b00 6c 61 62 65 6c 2d 36 30 31 0d 0a 53 45 4c 45 43  label-601..SELEC
19b10 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2d 20  T ALL + MIN ( - 
19b20 2b 20 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52  + col1 ) col0 FR
19b30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
19b40 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
19b50 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
19b60 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-81....query I
19b70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
19b80 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  CT DISTINCT + + 
19b90 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20  col2 AS col1, - 
19ba0 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2d 20  col0 AS col1, - 
19bb0 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  + col0 FROM tab0
19bc0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
19bd0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
19be0 20 74 6f 20 64 36 35 31 37 37 61 32 66 65 65 31   to d65177a2fee1
19bf0 66 34 62 31 36 62 38 61 63 35 63 66 30 61 36 35  f4b16b8ac5cf0a65
19c00 30 65 62 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0eb1....query I 
19c10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19c20 2d 20 2b 20 34 39 20 2a 20 2d 20 63 6f 6c 30 20  - + 49 * - col0 
19c30 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
19c40 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
19c50 0a 32 32 35 34 0d 0a 33 31 33 36 0d 0a 33 36 37  .2254..3136..367
19c60 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
19c70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
19c80 20 2b 20 2d 20 32 33 20 41 53 20 63 6f 6c 31 20   + - 23 AS col1 
19c90 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
19ca0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 32  0..----..-23..-2
19cb0 33 0d 0a 2d 32 33 0d 0a 0d 0a 71 75 65 72 79 20  3..-23....query 
19cc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19cd0 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2b 20 2b  T ALL col2 + + +
19ce0 20 38 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   82 AS col1 FROM
19cf0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
19d00 2d 2d 2d 0d 0a 31 34 31 0d 0a 31 35 30 0d 0a 31  ---..141..150..1
19d10 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  78....onlyif mys
19d20 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
19d30 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
19d40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19d50 20 6c 61 62 65 6c 2d 36 30 36 0d 0a 53 45 4c 45   label-606..SELE
19d60 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  CT DISTINCT + + 
19d70 38 30 20 2a 20 2b 20 2b 20 43 41 53 54 28 20 4e  80 * + + CAST( N
19d80 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
19d90 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
19da0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
19db0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
19dc0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
19dd0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
19de0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30  rowsort label-60
19df0 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
19e00 43 54 20 2b 20 2b 20 38 30 20 2a 20 2b 20 2b 20  CT + + 80 * + + 
19e10 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
19e20 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
19e30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
19e40 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
19e50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19e60 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
19e70 20 2a 20 2b 20 38 34 20 41 53 20 63 6f 6c 30 20   * + 84 AS col0 
19e80 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
19e90 0a 2d 31 32 36 30 0d 0a 2d 37 33 30 38 0d 0a 2d  .-1260..-7308..-
19ea0 38 31 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  8148....query II
19eb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19ec0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
19ed0 30 20 57 48 45 52 45 20 2d 20 35 36 20 49 53 20  0 WHERE - 56 IS 
19ee0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
19ef0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19f00 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
19f10 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2a   col1 * + col2 *
19f20 20 2d 20 31 20 2b 20 63 6f 6c 32 20 41 53 20 63   - 1 + col2 AS c
19f30 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
19f40 2d 2d 2d 0d 0a 2d 31 31 35 30 0d 0a 2d 33 30 34  ---..-1150..-304
19f50 30 0d 0a 2d 33 38 32 38 0d 0a 0d 0a 71 75 65 72  0..-3828....quer
19f60 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
19f70 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31  ECT DISTINCT - 1
19f80 39 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20  9 + col2 + col0 
19f90 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * - col0 FROM ta
19fa0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 37 0d 0a  b0..----..-197..
19fb0 2d 37 35 37 38 0d 0a 2d 39 33 32 39 0d 0a 0d 0a  -7578..-9329....
19fc0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
19fd0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
19fe0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19ff0 72 74 20 6c 61 62 65 6c 2d 36 31 31 0d 0a 53 45  rt label-611..SE
1a000 4c 45 43 54 20 2d 20 28 20 2d 20 2b 20 53 55 4d  LECT - ( - + SUM
1a010 28 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20  ( col2 ) ) FROM 
1a020 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d  tab0..----..156.
1a030 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1a040 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1a050 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a060 74 20 6c 61 62 65 6c 2d 36 31 31 0d 0a 53 45 4c  t label-611..SEL
1a070 45 43 54 20 2d 20 28 20 2d 20 2b 20 53 55 4d 20  ECT - ( - + SUM 
1a080 28 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20  ( col2 ) ) FROM 
1a090 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d  tab0..----..156.
1a0a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a0b0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1a0c0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1a0d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 32 0d  wsort label-612.
1a0e0 0a 53 45 4c 45 43 54 20 2d 20 39 31 20 2a 20 4d  .SELECT - 91 * M
1a0f0 49 4e 28 20 2d 20 2d 20 38 38 20 29 20 46 52 4f  IN( - - 88 ) FRO
1a100 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 2b  M tab1 WHERE - +
1a110 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
1a120 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
1a130 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1a140 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1a150 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1a160 6c 2d 36 31 32 0d 0a 53 45 4c 45 43 54 20 2d 20  l-612..SELECT - 
1a170 39 31 20 2a 20 4d 49 4e 20 28 20 2d 20 2d 20 38  91 * MIN ( - - 8
1a180 38 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  8 ) FROM tab1 WH
1a190 45 52 45 20 2d 20 2b 20 63 6f 6c 32 20 49 53 20  ERE - + col2 IS 
1a1a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
1a1b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1a1c0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1a1d0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1a1e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 33  owsort label-613
1a1f0 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20  ..SELECT - SUM( 
1a200 41 4c 4c 20 63 6f 6c 31 20 29 20 2d 20 2d 20 34  ALL col1 ) - - 4
1a210 39 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  9 + - COUNT( * )
1a220 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   * COUNT( * ) AS
1a230 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
1a240 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a 0d 0a 73 6b  .----..-63....sk
1a250 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1a260 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1a270 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1a280 65 6c 2d 36 31 33 0d 0a 53 45 4c 45 43 54 20 2d  el-613..SELECT -
1a290 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 31 20   SUM ( ALL col1 
1a2a0 29 20 2d 20 2d 20 34 39 20 2b 20 2d 20 43 4f 55  ) - - 49 + - COU
1a2b0 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54  NT ( * ) * COUNT
1a2c0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
1a2d0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1a2e0 2d 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -63....query III
1a2f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a300 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1a310 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
1a320 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 2d  NULL BETWEEN + -
1a330 20 63 6f 6c 32 20 41 4e 44 20 28 20 2d 20 2b 20   col2 AND ( - + 
1a340 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
1a350 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1a360 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1a370 20 2b 20 39 36 20 46 52 4f 4d 20 74 61 62 30 20   + 96 FROM tab0 
1a380 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  AS cor0 WHERE co
1a390 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
1a3a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1a3b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
1a3c0 6c 30 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 30 20  l0 + ( - + col0 
1a3d0 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  ) FROM tab0 cor0
1a3e0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34 0d 0a 2d 31  ..----..-174..-1
1a3f0 39 34 0d 0a 2d 33 30 0d 0a 0d 0a 71 75 65 72 79  94..-30....query
1a400 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1a410 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2d 20  CT ALL + col2 - 
1a420 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  - + col0 * - col
1a430 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
1a440 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1a450 2d 0d 0a 2d 34 38 30 30 0d 0a 2d 34 39 35 36 0d  -..-4800..-4956.
1a460 0a 2d 36 31 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-6120....onlyif
1a470 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1a480 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1a490 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1a4a0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 38 0d 0a  sort label-618..
1a4b0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63  SELECT ALL + - c
1a4c0 6f 6c 31 20 2a 20 2b 20 43 41 53 54 28 20 2d 20  ol1 * + CAST( - 
1a4d0 2d 20 33 36 20 41 53 20 53 49 47 4e 45 44 20 29  - 36 AS SIGNED )
1a4e0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
1a4f0 0a 2d 2d 2d 2d 0d 0a 2d 32 39 31 36 0d 0a 2d 33  .----..-2916..-3
1a500 36 0d 0a 2d 37 35 36 0d 0a 0d 0a 73 6b 69 70 69  6..-756....skipi
1a510 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1a520 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1a530 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a540 36 31 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  618..SELECT ALL 
1a550 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 43 41 53  + - col1 * + CAS
1a560 54 20 28 20 2d 20 2d 20 33 36 20 41 53 20 49 4e  T ( - - 36 AS IN
1a570 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
1a580 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  0 cor0..----..-2
1a590 39 31 36 0d 0a 2d 33 36 0d 0a 2d 37 35 36 0d 0a  916..-36..-756..
1a5a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a5b0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
1a5c0 20 2d 20 31 34 20 41 53 20 63 6f 6c 31 20 46 52   - 14 AS col1 FR
1a5d0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
1a5e0 37 0d 0a 37 31 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c  7..71..77....onl
1a5f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1a600 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1a610 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a620 6c 61 62 65 6c 2d 36 32 30 0d 0a 53 45 4c 45 43  label-620..SELEC
1a630 54 20 41 4c 4c 20 2b 20 28 20 2b 20 2b 20 4d 49  T ALL + ( + + MI
1a640 4e 28 20 33 32 20 29 20 29 20 46 52 4f 4d 20 74  N( 32 ) ) FROM t
1a650 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
1a660 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
1a670 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a 0d  or1..----..32...
1a680 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1a690 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1a6a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a6b0 6c 61 62 65 6c 2d 36 32 30 0d 0a 53 45 4c 45 43  label-620..SELEC
1a6c0 54 20 41 4c 4c 20 2b 20 28 20 2b 20 2b 20 4d 49  T ALL + ( + + MI
1a6d0 4e 20 28 20 33 32 20 29 20 29 20 46 52 4f 4d 20  N ( 32 ) ) FROM 
1a6e0 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
1a6f0 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
1a700 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a  cor1..----..32..
1a710 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1a720 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63  rt..SELECT + - c
1a730 6f 6c 31 2c 20 2d 20 38 39 20 41 53 20 63 6f 6c  ol1, - 89 AS col
1a740 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
1a750 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 38 39  ..----..-14..-89
1a760 0d 0a 2d 34 37 0d 0a 2d 38 39 0d 0a 2d 35 0d 0a  ..-47..-89..-5..
1a770 2d 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -89....query I r
1a780 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1a790 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20 2d  ISTINCT col1 * -
1a7a0 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2b   col0 * - col2 +
1a7b0 20 2d 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 32 20   - + ( - - col2 
1a7c0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1a7d0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
1a7e0 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  E NULL IS NOT NU
1a7f0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
1a800 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1a810 45 43 54 20 41 4c 4c 20 2b 20 2b 20 28 20 2d 20  ECT ALL + + ( - 
1a820 63 6f 6c 30 20 29 20 2a 20 63 6f 6c 32 20 2a 20  col0 ) * col2 * 
1a830 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
1a840 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
1a850 30 35 37 35 0d 0a 2d 37 35 36 39 30 0d 0a 2d 39  0575..-75690..-9
1a860 33 31 34 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  31491....onlyif 
1a870 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1a880 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1a890 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1a8a0 6f 72 74 20 6c 61 62 65 6c 2d 36 32 34 0d 0a 53  ort label-624..S
1a8b0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 35 20 44 49  ELECT ALL + 5 DI
1a8c0 56 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  V + col1 AS col1
1a8d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1a8e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
1a8f0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
1a900 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1a910 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1a920 6f 72 74 20 6c 61 62 65 6c 2d 36 32 34 0d 0a 53  ort label-624..S
1a930 45 4c 45 43 54 20 41 4c 4c 20 2b 20 35 20 2f 20  ELECT ALL + 5 / 
1a940 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  + col1 AS col1 F
1a950 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1a960 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d  ..----..0..0..1.
1a970 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a980 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
1a990 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
1a9a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1a9b0 61 62 65 6c 2d 36 32 35 0d 0a 53 45 4c 45 43 54  abel-625..SELECT
1a9c0 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
1a9d0 41 53 20 44 45 43 49 4d 41 4c 20 29 20 63 6f 6c  AS DECIMAL ) col
1a9e0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
1a9f0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
1aa00 4e 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 2d  NULL ) BETWEEN -
1aa10 20 33 34 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d   34 AND NULL..--
1aa20 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
1aa30 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1aa40 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
1aa50 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1aa60 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1aa70 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1aa80 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1aa90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1aaa0 62 65 6c 2d 36 32 35 0d 0a 53 45 4c 45 43 54 20  bel-625..SELECT 
1aab0 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
1aac0 41 53 20 52 45 41 4c 20 29 20 63 6f 6c 32 20 46  AS REAL ) col2 F
1aad0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1aae0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
1aaf0 4c 20 29 20 42 45 54 57 45 45 4e 20 2d 20 33 34  L ) BETWEEN - 34
1ab00 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
1ab10 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1ab20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
1ab30 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
1ab40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1ab50 62 65 6c 2d 36 32 36 0d 0a 53 45 4c 45 43 54 20  bel-626..SELECT 
1ab60 41 4c 4c 20 2b 20 37 36 20 44 49 56 20 2d 20 63  ALL + 76 DIV - c
1ab70 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 46  ol2 + - + col2 F
1ab80 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1ab90 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a 2d 34 38  ..----..-17..-48
1aba0 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-99....skipif 
1abb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1abc0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1abd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1abe0 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
1abf0 37 36 20 2f 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  76 / - col2 + - 
1ac00 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
1ac10 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1ac20 2d 31 37 0d 0a 2d 34 38 0d 0a 2d 39 39 0d 0a 0d  -17..-48..-99...
1ac30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ac40 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
1ac50 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
1ac60 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1ac70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1ac80 62 65 6c 2d 36 32 37 0d 0a 53 45 4c 45 43 54 20  bel-627..SELECT 
1ac90 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c  ALL - COUNT( ALL
1aca0 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
1acb0 20 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d   SIGNED ) ) FROM
1acc0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
1acd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1ace0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1acf0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ad00 20 6c 61 62 65 6c 2d 36 32 37 0d 0a 53 45 4c 45   label-627..SELE
1ad10 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
1ad20 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e 55   ALL + CAST ( NU
1ad30 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
1ad40 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
1ad50 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..0....onlyif m
1ad60 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1ad70 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1ad80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1ad90 2d 36 32 38 0d 0a 53 45 4c 45 43 54 20 2d 20 33  -628..SELECT - 3
1ada0 33 20 2a 20 2d 20 2d 20 4d 49 4e 28 20 2b 20 33  3 * - - MIN( + 3
1adb0 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
1adc0 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69  --..-99....skipi
1add0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ade0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1adf0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ae00 36 32 38 0d 0a 53 45 4c 45 43 54 20 2d 20 33 33  628..SELECT - 33
1ae10 20 2a 20 2d 20 2d 20 4d 49 4e 20 28 20 2b 20 33   * - - MIN ( + 3
1ae20 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
1ae30 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79  --..-99....query
1ae40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1ae50 43 54 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 31 31  CT col2 + - - 11
1ae60 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   * col0 AS col1 
1ae70 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1ae80 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 36 36 0d 0a 32  0..----..1166..2
1ae90 31 32 0d 0a 39 36 37 0d 0a 0d 0a 71 75 65 72 79  12..967....query
1aea0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1aeb0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
1aec0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1aed0 4f 54 20 2b 20 63 6f 6c 31 20 2b 20 39 39 20 2a  OT + col1 + 99 *
1aee0 20 38 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   89 IS NULL..---
1aef0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1af00 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
1af10 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
1af20 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69  7fb43b7....onlyi
1af30 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1af40 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1af50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1af60 62 65 6c 2d 36 33 31 0d 0a 53 45 4c 45 43 54 20  bel-631..SELECT 
1af70 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 43  DISTINCT + ( - C
1af80 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63  OUNT( * ) ) AS c
1af90 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol2 FROM tab2 co
1afa0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
1afb0 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
1afc0 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-9....skipif m
1afd0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1afe0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1aff0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 31  owsort label-631
1b000 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1b010 54 20 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28 20  T + ( - COUNT ( 
1b020 2a 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52  * ) ) AS col2 FR
1b030 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f  OM tab2 cor0 CRO
1b040 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
1b050 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  cor1..----..-9..
1b060 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b070 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
1b080 20 2b 20 35 36 20 41 53 20 63 6f 6c 31 20 46 52   + 56 AS col1 FR
1b090 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
1b0a0 32 38 38 0d 0a 32 32 34 30 0d 0a 33 32 34 38 0d  288..2240..3248.
1b0b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1b0c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1b0d0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1b0e0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1b0f0 61 62 65 6c 2d 36 33 33 0d 0a 53 45 4c 45 43 54  abel-633..SELECT
1b100 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 28 20   col0 * - CAST( 
1b110 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
1b120 20 63 6f 6c 32 2c 20 2b 20 34 32 20 46 52 4f 4d   col2, + 42 FROM
1b130 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1b140 2d 2d 2d 0d 0a 2d 32 31 31 36 0d 0a 34 32 0d 0a  ---..-2116..42..
1b150 2d 34 30 39 36 0d 0a 34 32 0d 0a 2d 35 36 32 35  -4096..42..-5625
1b160 0d 0a 34 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..42....skipif m
1b170 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1b180 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
1b190 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1b1a0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1b1b0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1b1c0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1b1d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1b1e0 20 6c 61 62 65 6c 2d 36 33 33 0d 0a 53 45 4c 45   label-633..SELE
1b1f0 43 54 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54  CT col0 * - CAST
1b200 20 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   ( col0 AS INTEG
1b210 45 52 20 29 20 63 6f 6c 32 2c 20 2b 20 34 32 20  ER ) col2, + 42 
1b220 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1b230 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 31 36 0d 0a  0..----..-2116..
1b240 34 32 0d 0a 2d 34 30 39 36 0d 0a 34 32 0d 0a 2d  42..-4096..42..-
1b250 35 36 32 35 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72  5625..42....quer
1b260 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1b270 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 31  ECT - col1 * - 1
1b280 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  5 AS col0 FROM t
1b290 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1b2a0 2d 0d 0a 31 32 31 35 0d 0a 31 35 0d 0a 33 31 35  -..1215..15..315
1b2b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1b2c0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1b2d0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1b2e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 35  owsort label-635
1b2f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
1b300 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
1b310 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1b320 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  0 WHERE NOT col1
1b330 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1b340 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1b350 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1b360 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1b370 6f 72 74 20 6c 61 62 65 6c 2d 36 33 35 0d 0a 53  ort label-635..S
1b380 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
1b390 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
1b3a0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1b3b0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 49  WHERE NOT col1 I
1b3c0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S NULL..----..3.
1b3d0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1b3e0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1b3f0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1b400 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 36 0d  wsort label-636.
1b410 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b420 20 2d 20 2d 20 32 20 2a 20 2b 20 43 4f 55 4e 54   - - 2 * + COUNT
1b430 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
1b440 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  AS cor0..----..6
1b450 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1b460 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1b470 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1b480 72 74 20 6c 61 62 65 6c 2d 36 33 36 0d 0a 53 45  rt label-636..SE
1b490 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1b4a0 2d 20 32 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20  - 2 * + COUNT ( 
1b4b0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
1b4c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a   cor0..----..6..
1b4d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1b4e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1b4f0 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
1b500 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1b510 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1b520 61 62 65 6c 2d 36 33 37 0d 0a 53 45 4c 45 43 54  abel-637..SELECT
1b530 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   + COUNT( * ) + 
1b540 31 35 20 44 49 56 20 2d 20 2d 20 43 4f 55 4e 54  15 DIV - - COUNT
1b550 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
1b560 0a 2d 2d 2d 2d 0d 0a 38 0d 0a 0d 0a 73 6b 69 70  .----..8....skip
1b570 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1b580 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1b590 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b5a0 2d 36 33 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -637..SELECT + C
1b5b0 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 31 35 20  OUNT ( * ) + 15 
1b5c0 2f 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  / - - COUNT ( * 
1b5d0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
1b5e0 2d 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..8....onlyif m
1b5f0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1b600 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1b610 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b620 2d 36 33 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -638..SELECT COU
1b630 4e 54 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e  NT( * ) + + COUN
1b640 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  T( DISTINCT + co
1b650 6c 30 20 29 20 2a 20 2d 20 2d 20 31 31 20 2b 20  l0 ) * - - 11 + 
1b660 2d 20 38 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74  - 82 col1 FROM t
1b670 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  ab0..----..-46..
1b680 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1b690 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1b6a0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1b6b0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1b6c0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1b6d0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1b6e0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1b6f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b700 36 33 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  638..SELECT COUN
1b710 54 20 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e  T ( * ) + + COUN
1b720 54 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  T ( DISTINCT + c
1b730 6f 6c 30 20 29 20 2a 20 2d 20 2d 20 31 31 20 2b  ol0 ) * - - 11 +
1b740 20 2d 20 38 32 20 63 6f 6c 31 20 46 52 4f 4d 20   - 82 col1 FROM 
1b750 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d  tab0..----..-46.
1b760 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1b770 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1b780 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1b790 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b7a0 62 65 6c 2d 36 33 39 0d 0a 53 45 4c 45 43 54 20  bel-639..SELECT 
1b7b0 41 4c 4c 20 32 33 20 2b 20 2b 20 2b 20 41 56 47  ALL 23 + + + AVG
1b7c0 20 28 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e   ( ALL - CAST( N
1b7d0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1b7e0 29 20 2a 20 2b 20 32 34 20 41 53 20 63 6f 6c 31  ) * + 24 AS col1
1b7f0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1b800 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1b810 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1b820 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1b830 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1b840 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32  39..SELECT ALL 2
1b850 33 20 2b 20 2b 20 2b 20 41 56 47 20 28 20 41 4c  3 + + + AVG ( AL
1b860 4c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  L - CAST ( NULL 
1b870 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a  AS INTEGER ) ) *
1b880 20 2b 20 32 34 20 41 53 20 63 6f 6c 31 20 46 52   + 24 AS col1 FR
1b890 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
1b8a0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
1b8b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1b8c0 4c 4c 20 63 6f 6c 32 20 2d 20 63 6f 6c 32 20 2b  LL col2 - col2 +
1b8d0 20 2b 20 2d 20 38 39 20 2a 20 2d 20 38 36 20 46   + - 89 * - 86 F
1b8e0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1b8f0 37 36 35 34 0d 0a 37 36 35 34 0d 0a 37 36 35 34  7654..7654..7654
1b900 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1b910 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1b920 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
1b930 45 52 45 20 2d 20 28 20 2b 20 32 39 20 29 20 2a  ERE - ( + 29 ) *
1b940 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   + col0 IS NOT N
1b950 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
1b960 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
1b970 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
1b980 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
1b990 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1b9a0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35  rt..SELECT ALL 5
1b9b0 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
1b9c0 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  ab1 WHERE - col0
1b9d0 20 49 4e 20 28 20 2d 20 28 20 2d 20 36 33 20 29   IN ( - ( - 63 )
1b9e0 20 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   * col1 )..----.
1b9f0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1ba00 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1ba10 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1ba20 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1ba30 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1ba40 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
1ba50 4c 45 43 54 20 2d 20 28 20 2b 20 63 6f 6c 31 20  LECT - ( + col1 
1ba60 29 2c 20 2b 20 33 20 2b 20 2b 20 2d 20 39 38 20  ), + 3 + + - 98 
1ba70 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
1ba80 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 39 35 0d 0a 2d  ----..-1..-95..-
1ba90 32 31 0d 0a 2d 39 35 0d 0a 2d 38 31 0d 0a 2d 39  21..-95..-81..-9
1baa0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
1bab0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1bac0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1bad0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34  rowsort label-64
1bae0 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  4..SELECT ALL - 
1baf0 43 4f 55 4e 54 28 20 2b 20 38 36 20 29 20 2a 20  COUNT( + 86 ) * 
1bb00 38 32 20 2a 20 2d 20 2b 20 33 20 46 52 4f 4d 20  82 * - + 3 FROM 
1bb10 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1bb20 2d 2d 0d 0a 37 33 38 0d 0a 0d 0a 73 6b 69 70 69  --..738....skipi
1bb30 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1bb40 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1bb50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1bb60 36 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  644..SELECT ALL 
1bb70 2d 20 43 4f 55 4e 54 20 28 20 2b 20 38 36 20 29  - COUNT ( + 86 )
1bb80 20 2a 20 38 32 20 2a 20 2d 20 2b 20 33 20 46 52   * 82 * - + 3 FR
1bb90 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1bba0 0a 2d 2d 2d 2d 0d 0a 37 33 38 0d 0a 0d 0a 6f 6e  .----..738....on
1bbb0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1bbc0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1bbd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bbe0 20 6c 61 62 65 6c 2d 36 34 35 0d 0a 53 45 4c 45   label-645..SELE
1bbf0 43 54 20 2b 20 4d 41 58 28 20 35 33 20 29 20 63  CT + MAX( 53 ) c
1bc00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
1bc10 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
1bc20 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e   = NULL..----..N
1bc30 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1bc40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1bc50 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
1bc60 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1bc70 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1bc80 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1bc90 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1bca0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1bcb0 61 62 65 6c 2d 36 34 35 0d 0a 53 45 4c 45 43 54  abel-645..SELECT
1bcc0 20 2b 20 4d 41 58 20 28 20 35 33 20 29 20 63 6f   + MAX ( 53 ) co
1bcd0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1bce0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
1bcf0 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  = NULL..----..NU
1bd00 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
1bd10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1bd20 31 30 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 46 52  10 * - + col2 FR
1bd30 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
1bd40 30 30 0d 0a 34 37 30 0d 0a 39 39 30 0d 0a 0d 0a  00..470..990....
1bd50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
1bd60 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1bd70 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1bd80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1bd90 2d 36 34 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -647..SELECT DIS
1bda0 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20 32  TINCT + col2 * 2
1bdb0 20 44 49 56 20 2b 20 63 6f 6c 32 20 41 53 20 63   DIV + col2 AS c
1bdc0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol2 FROM tab1 co
1bdd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 0d 0a 73  r0..----..2....s
1bde0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1bdf0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1be00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1be10 62 65 6c 2d 36 34 37 0d 0a 53 45 4c 45 43 54 20  bel-647..SELECT 
1be20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
1be30 2a 20 32 20 2f 20 2b 20 63 6f 6c 32 20 41 53 20  * 2 / + col2 AS 
1be40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
1be50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 0d 0a  or0..----..2....
1be60 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1be70 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1be80 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
1be90 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63  S cor0 WHERE - c
1bea0 6f 6c 30 20 2f 20 2b 20 63 6f 6c 32 20 2f 20 2b  ol0 / + col2 / +
1beb0 20 32 33 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   23 > NULL..----
1bec0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1bed0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1bee0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1bef0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1bf00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bf10 20 6c 61 62 65 6c 2d 36 34 39 0d 0a 53 45 4c 45   label-649..SELE
1bf20 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
1bf30 28 20 2d 20 32 20 41 53 20 53 49 47 4e 45 44 20  ( - 2 AS SIGNED 
1bf40 29 20 2a 20 35 20 2b 20 2d 20 4d 41 58 28 20 41  ) * 5 + - MAX( A
1bf50 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d  LL - col1 ) FROM
1bf60 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1bf70 45 52 45 20 2b 20 36 36 20 49 4e 20 28 20 2b 20  ERE + 66 IN ( + 
1bf80 28 20 2b 20 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d  ( + col2 ) )..--
1bf90 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
1bfa0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1bfb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1bfc0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1bfd0 2d 36 34 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -649..SELECT DIS
1bfe0 54 49 4e 43 54 20 43 41 53 54 20 28 20 2d 20 32  TINCT CAST ( - 2
1bff0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
1c000 35 20 2b 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  5 + - MAX ( ALL 
1c010 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
1c020 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1c030 20 2b 20 36 36 20 49 4e 20 28 20 2b 20 28 20 2b   + 66 IN ( + ( +
1c040 20 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   col2 ) )..----.
1c050 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
1c060 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c070 20 41 4c 4c 20 2b 20 39 35 20 2a 20 2b 20 2b 20   ALL + 95 * + + 
1c080 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
1c090 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 33  M tab2..----..43
1c0a0 37 30 0d 0a 36 30 38 30 0d 0a 37 31 32 35 0d 0a  70..6080..7125..
1c0b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1c0c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1c0d0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1c0e0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 31 0d 0a  sort label-651..
1c0f0 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20  SELECT - COUNT( 
1c100 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * ) col0 FROM ta
1c110 62 30 2c 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  b0, tab1 cor0..-
1c120 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69  ---..-9....skipi
1c130 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1c140 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
1c150 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1c160 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1c170 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1c180 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1c190 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
1c1a0 72 74 20 6c 61 62 65 6c 2d 36 35 31 0d 0a 53 45  rt label-651..SE
1c1b0 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
1c1c0 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
1c1d0 30 2c 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  0, tab1 cor0..--
1c1e0 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20  --..-9....query 
1c1f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c200 54 20 2b 20 39 20 2b 20 63 6f 6c 30 20 46 52 4f  T + 9 + col0 FRO
1c210 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
1c220 20 28 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e   ( NULL IS NOT N
1c230 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d  ULL )..----..55.
1c240 0a 37 33 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79  .73..84....query
1c250 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1c260 43 54 20 41 4c 4c 20 31 34 20 2a 20 63 6f 6c 31  CT ALL 14 * col1
1c270 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1c280 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a 36  b1..----..196..6
1c290 35 38 0d 0a 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  58..70....onlyif
1c2a0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1c2b0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1c2c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1c2d0 65 6c 2d 36 35 34 0d 0a 53 45 4c 45 43 54 20 2d  el-654..SELECT -
1c2e0 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
1c2f0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1c300 2d 20 28 20 2d 20 2b 20 28 20 2d 20 37 20 29 20  - ( - + ( - 7 ) 
1c310 29 20 2b 20 2d 20 63 6f 6c 31 20 42 45 54 57 45  ) + - col1 BETWE
1c320 45 4e 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 31  EN col1 / - col1
1c330 20 41 4e 44 20 37 38 0d 0a 2d 2d 2d 2d 0d 0a 2d   AND 78..----..-
1c340 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1c350 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1c360 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1c370 6f 72 74 20 6c 61 62 65 6c 2d 36 35 34 0d 0a 53  ort label-654..S
1c380 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
1c390 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
1c3a0 45 52 45 20 4e 4f 54 20 2d 20 28 20 2d 20 2b 20  ERE NOT - ( - + 
1c3b0 28 20 2d 20 37 20 29 20 29 20 2b 20 2d 20 63 6f  ( - 7 ) ) + - co
1c3c0 6c 31 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20  l1 BETWEEN col1 
1c3d0 2f 20 2d 20 63 6f 6c 31 20 41 4e 44 20 37 38 0d  / - col1 AND 78.
1c3e0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  .----..-3....que
1c3f0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1c400 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1c410 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1c420 20 4e 4f 54 20 63 6f 6c 30 20 2f 20 2b 20 39 34   NOT col0 / + 94
1c430 20 4e 4f 54 20 49 4e 20 28 20 2d 20 2b 20 63 6f   NOT IN ( - + co
1c440 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 31 2c 20 37  l1 * + + col1, 7
1c450 31 2c 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  1, + + col2 + + 
1c460 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col2 )..----....
1c470 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1c480 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1c490 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2b 20 63   col0 + col0 + c
1c4a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
1c4b0 2d 2d 2d 0d 0a 31 31 36 0d 0a 31 37 35 0d 0a 32  ---..116..175..2
1c4c0 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  29....query I ro
1c4d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1c4e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
1c4f0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
1c500 4c 20 3e 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  L >= ( NULL )..-
1c510 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1c520 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1c530 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1c540 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c550 74 20 6c 61 62 65 6c 2d 36 35 38 0d 0a 53 45 4c  t label-658..SEL
1c560 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  ECT + col2 * col
1c570 31 20 2b 20 2b 20 39 38 20 2b 20 2b 20 43 41 53  1 + + 98 + + CAS
1c580 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1c590 44 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  D ) col1 FROM ta
1c5a0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  b0 cor0 WHERE - 
1c5b0 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e  col1 NOT BETWEEN
1c5c0 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
1c5d0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
1c5e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1c5f0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
1c600 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1c610 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1c620 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1c630 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1c640 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c650 6c 61 62 65 6c 2d 36 35 38 0d 0a 53 45 4c 45 43  label-658..SELEC
1c660 54 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20  T + col2 * col1 
1c670 2b 20 2b 20 39 38 20 2b 20 2b 20 43 41 53 54 20  + + 98 + + CAST 
1c680 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1c690 52 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  R ) col1 FROM ta
1c6a0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  b0 cor0 WHERE - 
1c6b0 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e  col1 NOT BETWEEN
1c6c0 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
1c6d0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
1c6e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1c6f0 44 49 53 54 49 4e 43 54 20 33 20 2d 20 32 35 20  DISTINCT 3 - 25 
1c700 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  + + col1 FROM ta
1c710 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1c720 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 35 39 0d 0a 0d  ..-1..-21..59...
1c730 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1c740 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1c750 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1c760 6f 72 74 20 6c 61 62 65 6c 2d 36 36 30 0d 0a 53  ort label-660..S
1c770 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2d  ELECT - COUNT( -
1c780 20 31 36 20 29 20 41 53 20 63 6f 6c 32 20 46 52   16 ) AS col2 FR
1c790 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1c7a0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
1c7b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c7c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1c7d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c7e0 6c 2d 36 36 30 0d 0a 53 45 4c 45 43 54 20 2d 20  l-660..SELECT - 
1c7f0 43 4f 55 4e 54 20 28 20 2d 20 31 36 20 29 20 41  COUNT ( - 16 ) A
1c800 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1c810 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1c820 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -3....query I ro
1c830 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1c840 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2a 20 2b 20  col1 * col2 * + 
1c850 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
1c860 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
1c870 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  L BETWEEN NULL A
1c880 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  ND ( NULL )..---
1c890 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
1c8a0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1c8b0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1c8c0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1c8d0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1c8e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1c8f0 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 28 20 63  ELECT col1 + ( c
1c900 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  ol1 ) col0 FROM 
1c910 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1c920 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e  RE ( NULL ) IS N
1c930 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a  ULL..----..162..
1c940 32 0d 0a 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  2..42....onlyif 
1c950 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1c960 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
1c970 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1c980 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1c990 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 33 0d  wsort label-663.
1c9a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1c9b0 20 2b 20 2b 20 38 30 20 2b 20 2d 20 43 41 53 54   + + 80 + - CAST
1c9c0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1c9d0 20 29 20 2a 20 2d 20 4d 49 4e 28 20 41 4c 4c 20   ) * - MIN( ALL 
1c9e0 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
1c9f0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1ca00 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1ca10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ca20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ca30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ca40 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  63..SELECT DISTI
1ca50 4e 43 54 20 2b 20 2b 20 38 30 20 2b 20 2d 20 43  NCT + + 80 + - C
1ca60 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1ca70 54 45 47 45 52 20 29 20 2a 20 2d 20 4d 49 4e 20  TEGER ) * - MIN 
1ca80 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 46  ( ALL - col1 ) F
1ca90 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1caa0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
1cab0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1cac0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30  .SELECT ALL col0
1cad0 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20   + + ( - col1 ) 
1cae0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1caf0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 35  2..----..-13..-5
1cb00 0d 0a 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..8....query I r
1cb10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
1cb20 6f 6c 31 20 2d 20 34 38 20 41 53 20 63 6f 6c 31  ol1 - 48 AS col1
1cb30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1cb40 0d 0a 31 39 0d 0a 32 39 0d 0a 33 0d 0a 0d 0a 71  ..19..29..3....q
1cb50 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1cb60 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1cb70 74 61 62 31 20 57 48 45 52 45 20 2d 20 2b 20 31  tab1 WHERE - + 1
1cb80 30 20 3e 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d  0 >= + col1..---
1cb90 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
1cba0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1cbb0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1cbc0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1cbd0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1cbe0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
1cbf0 53 45 4c 45 43 54 20 63 6f 6c 30 20 2d 20 2d 20  SELECT col0 - - 
1cc00 2d 20 63 6f 6c 32 20 2a 20 2b 20 32 32 20 41 53  - col2 * + 22 AS
1cc10 20 63 6f 6c 31 2c 20 38 36 20 63 6f 6c 32 20 46   col1, 86 col2 F
1cc20 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1cc30 2d 31 32 30 31 0d 0a 38 36 0d 0a 2d 34 36 30 0d  -1201..86..-460.
1cc40 0a 38 36 0d 0a 2d 38 31 36 0d 0a 38 36 0d 0a 0d  .86..-816..86...
1cc50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1cc60 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20  ..SELECT col0 + 
1cc70 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  + - col0 AS col1
1cc80 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1cc90 20 2d 20 2b 20 63 6f 6c 32 20 3e 20 4e 55 4c 4c   - + col2 > NULL
1cca0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1ccb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ccc0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
1ccd0 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
1cce0 45 20 28 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d  E ( - + col1 * -
1ccf0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 29   col2 + - col1 )
1cd00 20 49 4e 20 28 20 2b 20 36 36 20 2b 20 2b 20 28   IN ( + 66 + + (
1cd10 20 2d 20 63 6f 6c 31 20 29 20 29 0d 0a 2d 2d 2d   - col1 ) )..---
1cd20 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
1cd30 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1cd40 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1cd50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1cd60 6c 61 62 65 6c 2d 36 37 30 0d 0a 53 45 4c 45 43  label-670..SELEC
1cd70 54 20 44 49 53 54 49 4e 43 54 20 38 20 2d 20 2b  T DISTINCT 8 - +
1cd80 20 38 32 20 44 49 56 20 63 6f 6c 30 20 2a 20 2b   82 DIV col0 * +
1cd90 20 28 20 36 31 20 29 20 46 52 4f 4d 20 74 61 62   ( 61 ) FROM tab
1cda0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 0d 0a 0d 0a  2..----..-53....
1cdb0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1cdc0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1cdd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1cde0 61 62 65 6c 2d 36 37 30 0d 0a 53 45 4c 45 43 54  abel-670..SELECT
1cdf0 20 44 49 53 54 49 4e 43 54 20 38 20 2d 20 2b 20   DISTINCT 8 - + 
1ce00 38 32 20 2f 20 63 6f 6c 30 20 2a 20 2b 20 28 20  82 / col0 * + ( 
1ce10 36 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  61 ) FROM tab2..
1ce20 2d 2d 2d 2d 0d 0a 2d 35 33 0d 0a 0d 0a 6f 6e 6c  ----..-53....onl
1ce30 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1ce40 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1ce50 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
1ce60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ce70 37 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  71..SELECT DISTI
1ce80 4e 43 54 20 43 41 53 54 28 20 2d 20 2b 20 38 38  NCT CAST( - + 88
1ce90 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63   AS SIGNED ) * c
1cea0 6f 6c 30 20 2b 20 2b 20 35 34 20 2a 20 63 6f 6c  ol0 + + 54 * col
1ceb0 31 20 41 53 20 63 6f 6c 30 2c 20 34 34 20 41 53  1 AS col0, 44 AS
1cec0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1ced0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1cee0 31 32 39 34 0d 0a 34 34 0d 0a 2d 31 34 37 34 0d  1294..44..-1474.
1cef0 0a 34 34 0d 0a 2d 32 39 38 32 0d 0a 34 34 0d 0a  .44..-2982..44..
1cf00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1cf10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1cf20 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1cf30 74 20 6c 61 62 65 6c 2d 36 37 31 0d 0a 53 45 4c  t label-671..SEL
1cf40 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
1cf50 54 20 28 20 2d 20 2b 20 38 38 20 41 53 20 49 4e  T ( - + 88 AS IN
1cf60 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 30 20 2b  TEGER ) * col0 +
1cf70 20 2b 20 35 34 20 2a 20 63 6f 6c 31 20 41 53 20   + 54 * col1 AS 
1cf80 63 6f 6c 30 2c 20 34 34 20 41 53 20 63 6f 6c 30  col0, 44 AS col0
1cf90 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1cfa0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 34 0d  r0..----..-1294.
1cfb0 0a 34 34 0d 0a 2d 31 34 37 34 0d 0a 34 34 0d 0a  .44..-1474..44..
1cfc0 2d 32 39 38 32 0d 0a 34 34 0d 0a 0d 0a 71 75 65  -2982..44....que
1cfd0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1cfe0 45 4c 45 43 54 20 2b 20 28 20 34 39 20 29 20 2a  ELECT + ( 49 ) *
1cff0 20 31 34 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63   14 AS col0, - c
1d000 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
1d010 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1d020 2d 2d 2d 0d 0a 36 38 36 0d 0a 2d 31 34 0d 0a 36  ---..686..-14..6
1d030 38 36 0d 0a 2d 34 37 0d 0a 36 38 36 0d 0a 2d 35  86..-47..686..-5
1d040 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
1d050 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1d060 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1d070 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1d080 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1d090 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1d0a0 4c 45 43 54 20 2b 20 28 20 2b 20 2b 20 37 35 20  LECT + ( + + 75 
1d0b0 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  ) col2 FROM tab2
1d0c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1d0d0 37 35 0d 0a 37 35 0d 0a 37 35 0d 0a 0d 0a 73 6b  75..75..75....sk
1d0e0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1d0f0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1d100 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1d110 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1d120 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1d130 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1d140 49 53 54 49 4e 43 54 20 2b 20 2d 20 31 33 20 63  ISTINCT + - 13 c
1d150 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
1d160 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   cor0..----..-13
1d170 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
1d180 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1d190 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  TINCT col0 AS co
1d1a0 6c 30 2c 20 2d 20 31 38 20 2d 20 2d 20 2b 20 32  l0, - 18 - - + 2
1d1b0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
1d1c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 32  ab1..----..51..2
1d1d0 0d 0a 38 35 0d 0a 32 0d 0a 39 31 0d 0a 32 0d 0a  ..85..2..91..2..
1d1e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d1f0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 34 20 41  t..SELECT + 64 A
1d200 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1d210 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
1d220 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
1d230 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1d240 20 68 61 73 68 69 6e 67 20 74 6f 20 36 30 61 62   hashing to 60ab
1d250 30 34 30 65 39 33 31 63 35 63 38 35 64 62 37 62  040e931c5c85db7b
1d260 61 31 39 33 36 34 65 61 63 63 38 65 0d 0a 0d 0a  a19364eacc8e....
1d270 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1d280 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1d290 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1d2a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1d2b0 2d 36 37 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -677..SELECT DIS
1d2c0 54 49 4e 43 54 20 2b 20 2b 20 43 41 53 54 28 20  TINCT + + CAST( 
1d2d0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1d2e0 20 2b 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 63 6f   + + col0 / - co
1d2f0 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a 20  l0 + - - col1 * 
1d300 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 33  + + col1 * - - 3
1d310 36 20 2f 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63  6 / - col1 + + c
1d320 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
1d330 45 52 45 20 28 20 2d 20 63 6f 6c 30 20 3c 3e 20  ERE ( - col0 <> 
1d340 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col2 )..----..
1d350 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
1d360 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1d370 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1d380 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 37  owsort label-677
1d390 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d3a0 54 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  T + + CAST ( NUL
1d3b0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
1d3c0 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 30   + col0 / - col0
1d3d0 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   + - - col1 * + 
1d3e0 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 33 36 20  + col1 * - - 36 
1d3f0 2f 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  / - col1 + + col
1d400 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  2 FROM tab0 WHER
1d410 45 20 28 20 2d 20 63 6f 6c 30 20 3c 3e 20 2b 20  E ( - col0 <> + 
1d420 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  col2 )..----..NU
1d430 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
1d440 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1d450 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1d460 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d470 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  78..SELECT DISTI
1d480 4e 43 54 20 2b 20 28 20 43 4f 55 4e 54 28 20 2a  NCT + ( COUNT( *
1d490 20 29 20 29 20 2a 20 2b 20 38 38 20 46 52 4f 4d   ) ) * + 88 FROM
1d4a0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1d4b0 2d 2d 2d 0d 0a 32 36 34 0d 0a 0d 0a 73 6b 69 70  ---..264....skip
1d4c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1d4d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1d4e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1d4f0 2d 36 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -678..SELECT DIS
1d500 54 49 4e 43 54 20 2b 20 28 20 43 4f 55 4e 54 20  TINCT + ( COUNT 
1d510 28 20 2a 20 29 20 29 20 2a 20 2b 20 38 38 20 46  ( * ) ) * + 88 F
1d520 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1d530 0d 0a 2d 2d 2d 2d 0d 0a 32 36 34 0d 0a 0d 0a 73  ..----..264....s
1d540 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1d550 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1d560 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1d570 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1d580 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
1d590 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1d5a0 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 2b 20 2b 20   col1, col1 + + 
1d5b0 2b 20 63 6f 6c 32 20 2b 20 2d 20 37 38 20 2a 20  + col2 + - 78 * 
1d5c0 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col1 col1 FROM t
1d5d0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1d5e0 2d 0d 0a 31 34 0d 0a 2d 39 38 32 0d 0a 34 37 0d  -..14..-982..47.
1d5f0 0a 2d 33 35 35 31 0d 0a 35 0d 0a 2d 33 32 36 0d  .-3551..5..-326.
1d600 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1d610 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1d620 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
1d630 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1d640 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d650 6c 61 62 65 6c 2d 36 38 30 0d 0a 53 45 4c 45 43  label-680..SELEC
1d660 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
1d670 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20 43 4f  NT( * ) DIV + CO
1d680 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UNT( DISTINCT - 
1d690 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46  col0 ) AS col2 F
1d6a0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1d6b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b  ..----..-1....sk
1d6c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1d6d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1d6e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d6f0 65 6c 2d 36 38 30 0d 0a 53 45 4c 45 43 54 20 44  el-680..SELECT D
1d700 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20  ISTINCT - COUNT 
1d710 28 20 2a 20 29 20 2f 20 2b 20 43 4f 55 4e 54 20  ( * ) / + COUNT 
1d720 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
1d730 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
1d740 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1d750 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69  ---..-1....onlyi
1d760 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1d770 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1d780 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1d790 62 65 6c 2d 36 38 31 0d 0a 53 45 4c 45 43 54 20  bel-681..SELECT 
1d7a0 53 55 4d 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c  SUM( ALL + - col
1d7b0 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  2 ) FROM tab0 AS
1d7c0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1d7d0 28 20 4e 55 4c 4c 20 29 20 49 4e 20 28 20 31 37  ( NULL ) IN ( 17
1d7e0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a   )..----..NULL..
1d7f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1d800 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1d810 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d820 20 6c 61 62 65 6c 2d 36 38 31 0d 0a 53 45 4c 45   label-681..SELE
1d830 43 54 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 2d  CT SUM ( ALL + -
1d840 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
1d850 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1d860 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20  NOT ( NULL ) IN 
1d870 28 20 31 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  ( 17 )..----..NU
1d880 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  LL....query II r
1d890 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1d8a0 20 2b 20 31 32 2c 20 63 6f 6c 30 20 46 52 4f 4d   + 12, col0 FROM
1d8b0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1d8c0 2d 2d 2d 0d 0a 31 32 0d 0a 35 31 0d 0a 31 32 0d  ---..12..51..12.
1d8d0 0a 38 35 0d 0a 31 32 0d 0a 39 31 0d 0a 0d 0a 71  .85..12..91....q
1d8e0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1d8f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1d900 20 35 39 2c 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   59, + col2 FROM
1d910 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1d920 2d 2d 2d 0d 0a 35 39 0d 0a 31 30 0d 0a 35 39 0d  ---..59..10..59.
1d930 0a 34 37 0d 0a 35 39 0d 0a 39 39 0d 0a 0d 0a 6f  .47..59..99....o
1d940 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1d950 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1d960 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1d970 72 74 20 6c 61 62 65 6c 2d 36 38 34 0d 0a 53 45  rt label-684..SE
1d980 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1d990 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
1d9a0 6c 31 2c 20 2d 20 39 20 41 53 20 63 6f 6c 31 20  l1, - 9 AS col1 
1d9b0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1d9c0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 39 0d 0a  0..----..3..-9..
1d9d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1d9e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1d9f0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1da00 74 20 6c 61 62 65 6c 2d 36 38 34 0d 0a 53 45 4c  t label-684..SEL
1da10 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
1da20 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
1da30 6c 31 2c 20 2d 20 39 20 41 53 20 63 6f 6c 31 20  l1, - 9 AS col1 
1da40 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1da50 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 39 0d 0a  0..----..3..-9..
1da60 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
1da70 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1da80 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1da90 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1daa0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1dab0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1dac0 43 54 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 32 20  CT + ( + + col2 
1dad0 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  ) col2 FROM tab1
1dae0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1daf0 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e  59..68..96....on
1db00 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1db10 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1db20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1db30 20 6c 61 62 65 6c 2d 36 38 36 0d 0a 53 45 4c 45   label-686..SELE
1db40 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 20  CT DISTINCT - 8 
1db50 2a 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  * - - COUNT( * )
1db60 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1db70 0d 0a 2d 32 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-24....skipif 
1db80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1db90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1dba0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1dbb0 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
1dbc0 43 54 20 2d 20 38 20 2a 20 2d 20 2d 20 43 4f 55  CT - 8 * - - COU
1dbd0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
1dbe0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 0d  b0..----..-24...
1dbf0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1dc00 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1dc10 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f  NED type: DIV fo
1dc20 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1dc30 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1dc40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 37 0d  wsort label-687.
1dc50 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
1dc60 28 20 39 37 20 41 53 20 53 49 47 4e 45 44 20 29  ( 97 AS SIGNED )
1dc70 20 44 49 56 20 63 6f 6c 32 20 2b 20 2d 20 63 6f   DIV col2 + - co
1dc80 6c 32 20 44 49 56 20 2b 20 63 6f 6c 31 20 2b 20  l2 DIV + col1 + 
1dc90 39 31 20 2a 20 2b 20 2b 20 32 37 20 41 53 20 63  91 * + + 27 AS c
1dca0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
1dcb0 2d 2d 2d 0d 0a 32 34 35 38 0d 0a 32 34 35 39 0d  ---..2458..2459.
1dcc0 0a 32 34 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .2461....skipif 
1dcd0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1dce0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1dcf0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1dd00 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  7..SELECT ALL CA
1dd10 53 54 20 28 20 39 37 20 41 53 20 49 4e 54 45 47  ST ( 97 AS INTEG
1dd20 45 52 20 29 20 2f 20 63 6f 6c 32 20 2b 20 2d 20  ER ) / col2 + - 
1dd30 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31 20 2b 20  col2 / + col1 + 
1dd40 39 31 20 2a 20 2b 20 2b 20 32 37 20 41 53 20 63  91 * + + 27 AS c
1dd50 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
1dd60 2d 2d 2d 0d 0a 32 34 35 38 0d 0a 32 34 35 39 0d  ---..2458..2459.
1dd70 0a 32 34 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .2461....onlyif 
1dd80 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1dd90 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1dda0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1ddb0 6c 2d 36 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-688..SELECT + 
1ddc0 35 39 20 2b 20 2b 20 43 4f 55 4e 54 28 20 63 6f  59 + + COUNT( co
1ddd0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  l2 ) FROM tab2..
1dde0 2d 2d 2d 2d 0d 0a 36 32 0d 0a 0d 0a 73 6b 69 70  ----..62....skip
1ddf0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1de00 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1de10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1de20 2d 36 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20 35  -688..SELECT + 5
1de30 39 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 63 6f  9 + + COUNT ( co
1de40 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  l2 ) FROM tab2..
1de50 2d 2d 2d 2d 0d 0a 36 32 0d 0a 0d 0a 71 75 65 72  ----..62....quer
1de60 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1de70 45 43 54 20 63 6f 6c 30 20 2b 20 2d 20 28 20 2d  ECT col0 + - ( -
1de80 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20   col0 ) AS col2 
1de90 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1dea0 0a 31 37 34 0d 0a 31 39 34 0d 0a 33 30 0d 0a 0d  .174..194..30...
1deb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1dec0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1ded0 54 20 63 6f 6c 31 20 2b 20 2d 20 28 20 2d 20 34  T col1 + - ( - 4
1dee0 35 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  5 ) FROM tab0..-
1def0 2d 2d 2d 0d 0a 31 32 36 0d 0a 34 36 0d 0a 36 36  ---..126..46..66
1df00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1df10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1df20 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
1df30 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1df40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1df50 20 6c 61 62 65 6c 2d 36 39 31 0d 0a 53 45 4c 45   label-691..SELE
1df60 43 54 20 2b 20 2d 20 36 33 20 44 49 56 20 2d 20  CT + - 63 DIV - 
1df70 28 20 2d 20 39 31 20 29 20 2b 20 2b 20 2b 20 43  ( - 91 ) + + + C
1df80 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
1df90 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
1dfa0 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
1dfb0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  or1..----..9....
1dfc0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1dfd0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1dfe0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1dff0 61 62 65 6c 2d 36 39 31 0d 0a 53 45 4c 45 43 54  abel-691..SELECT
1e000 20 2b 20 2d 20 36 33 20 2f 20 2d 20 28 20 2d 20   + - 63 / - ( - 
1e010 39 31 20 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54  91 ) + + + COUNT
1e020 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
1e030 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
1e040 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31  OIN tab0 AS cor1
1e050 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69  ..----..9....ski
1e060 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1e070 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1e080 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1e090 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1e0a0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
1e0b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1e0c0 53 54 49 4e 43 54 20 2d 20 31 32 20 2b 20 2d 20  STINCT - 12 + - 
1e0d0 2b 20 63 6f 6c 32 20 2a 20 34 34 20 63 6f 6c 31  + col2 * 44 col1
1e0e0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1e0f0 0d 0a 2d 32 36 30 38 0d 0a 2d 33 30 30 34 0d 0a  ..-2608..-3004..
1e100 2d 34 32 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -4236....query I
1e110 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1e120 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
1e130 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20  b1 WHERE NULL > 
1e140 2d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  - - col2..----..
1e150 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e160 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
1e170 6c 30 20 2b 20 2d 20 31 35 20 46 52 4f 4d 20 74  l0 + - 15 FROM t
1e180 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 37  ab1..----..36..7
1e190 30 0d 0a 37 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..76....onlyif 
1e1a0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1e1b0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1e1c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1e1d0 6f 72 74 20 6c 61 62 65 6c 2d 36 39 35 0d 0a 53  ort label-695..S
1e1e0 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2d  ELECT - + col1 -
1e1f0 20 2d 20 43 41 53 54 28 20 2d 20 32 38 20 41 53   - CAST( - 28 AS
1e200 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
1e210 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1e220 2d 0d 0a 2d 31 30 35 0d 0a 2d 37 39 0d 0a 2d 39  -..-105..-79..-9
1e230 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
1e240 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1e250 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1e260 6f 72 74 20 6c 61 62 65 6c 2d 36 39 35 0d 0a 53  ort label-695..S
1e270 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2d  ELECT - + col1 -
1e280 20 2d 20 43 41 53 54 20 28 20 2d 20 32 38 20 41   - CAST ( - 28 A
1e290 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
1e2a0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1e2b0 2d 2d 2d 0d 0a 2d 31 30 35 0d 0a 2d 37 39 0d 0a  ---..-105..-79..
1e2c0 2d 39 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -95....query III
1e2d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1e2e0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
1e2f0 63 6f 72 30 20 57 48 45 52 45 20 2b 20 32 37 20  cor0 WHERE + 27 
1e300 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
1e310 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e320 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 37 36 20  ..SELECT - + 76 
1e330 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 31  * - - col1 + + 1
1e340 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  3 FROM tab1 AS c
1e350 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 31  or0..----..-1051
1e360 0d 0a 2d 33 35 35 39 0d 0a 2d 33 36 37 0d 0a 0d  ..-3559..-367...
1e370 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e380 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1e390 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1e3a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e3b0 6c 2d 36 39 38 0d 0a 53 45 4c 45 43 54 20 43 41  l-698..SELECT CA
1e3c0 53 54 28 20 2b 20 63 6f 6c 31 20 41 53 20 53 49  ST( + col1 AS SI
1e3d0 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 32 20  GNED ) + + col2 
1e3e0 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
1e3f0 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 31 35 0d 0a  ----..110..115..
1e400 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  64....skipif mys
1e410 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1e420 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1e430 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 38 0d 0a  sort label-698..
1e440 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 2b 20  SELECT CAST ( + 
1e450 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
1e460 29 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  ) + + col2 FROM 
1e470 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
1e480 0a 31 31 30 0d 0a 31 31 35 0d 0a 36 34 0d 0a 0d  .110..115..64...
1e490 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e4a0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1e4b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1e4c0 6f 72 74 20 6c 61 62 65 6c 2d 36 39 39 0d 0a 53  ort label-699..S
1e4d0 45 4c 45 43 54 20 33 30 20 2b 20 43 4f 55 4e 54  ELECT 30 + COUNT
1e4e0 28 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  ( - col2 ) FROM 
1e4f0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a  tab1..----..33..
1e500 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1e510 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1e520 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e530 20 6c 61 62 65 6c 2d 36 39 39 0d 0a 53 45 4c 45   label-699..SELE
1e540 43 54 20 33 30 20 2b 20 43 4f 55 4e 54 20 28 20  CT 30 + COUNT ( 
1e550 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  - col2 ) FROM ta
1e560 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a  b1..----..33....
1e570 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1e580 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b  .SELECT col1 + +
1e590 20 32 34 20 2d 20 2b 20 39 36 20 41 53 20 63 6f   24 - + 96 AS co
1e5a0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
1e5b0 2d 2d 0d 0a 2d 32 31 0d 0a 2d 35 0d 0a 35 0d 0a  --..-21..-5..5..
1e5c0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1e5d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1e5e0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1e5f0 45 20 4e 4f 54 20 35 38 20 42 45 54 57 45 45 4e  E NOT 58 BETWEEN
1e600 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
1e610 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
1e620 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
1e630 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1e640 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
1e650 6f 72 74 20 6c 61 62 65 6c 2d 37 30 32 0d 0a 53  ort label-702..S
1e660 45 4c 45 43 54 20 41 4c 4c 20 2d 20 37 35 20 2b  ELECT ALL - 75 +
1e670 20 2b 20 2d 20 31 32 20 41 53 20 63 6f 6c 30 2c   + - 12 AS col0,
1e680 20 33 34 20 44 49 56 20 2b 20 31 32 20 46 52 4f   34 DIV + 12 FRO
1e690 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  M tab2..----..-8
1e6a0 37 0d 0a 32 0d 0a 2d 38 37 0d 0a 32 0d 0a 2d 38  7..2..-87..2..-8
1e6b0 37 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  7..2....skipif m
1e6c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1e6d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
1e6e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30  rowsort label-70
1e6f0 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
1e700 37 35 20 2b 20 2b 20 2d 20 31 32 20 41 53 20 63  75 + + - 12 AS c
1e710 6f 6c 30 2c 20 33 34 20 2f 20 2b 20 31 32 20 46  ol0, 34 / + 12 F
1e720 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1e730 2d 38 37 0d 0a 32 0d 0a 2d 38 37 0d 0a 32 0d 0a  -87..2..-87..2..
1e740 2d 38 37 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79 20  -87..2....query 
1e750 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1e760 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 28 20 2b  T - col0 * + ( +
1e770 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
1e780 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 39 36 0d 0a  1..----..-4896..
1e790 2d 35 30 31 35 0d 0a 2d 36 31 38 38 0d 0a 0d 0a  -5015..-6188....
1e7a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1e7b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 32  .SELECT ALL - 82
1e7c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1e7d0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
1e7e0 38 32 0d 0a 2d 38 32 0d 0a 2d 38 32 0d 0a 0d 0a  82..-82..-82....
1e7f0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1e800 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1e810 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1e820 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1e830 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1e840 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1e850 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
1e860 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20   + + ( - col2 ) 
1e870 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1e880 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1e890 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 28 20   NULL BETWEEN ( 
1e8a0 4e 55 4c 4c 20 29 20 41 4e 44 20 35 30 0d 0a 2d  NULL ) AND 50..-
1e8b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
1e8c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1e8d0 20 2b 20 35 33 20 46 52 4f 4d 20 74 61 62 31 20   + 53 FROM tab1 
1e8e0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1e8f0 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab1 AS cor1..--
1e900 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1e910 68 69 6e 67 20 74 6f 20 66 65 64 65 36 30 33 33  hing to fede6033
1e920 64 65 65 33 34 36 64 62 64 32 37 32 30 38 35 63  dee346dbd272085c
1e930 30 35 37 32 34 66 64 61 0d 0a 0d 0a 73 6b 69 70  05724fda....skip
1e940 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1e950 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1e960 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1e970 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1e980 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1e990 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1e9a0 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20 63 6f 6c  TINCT col0 * col
1e9b0 32 20 2a 20 39 32 20 63 6f 6c 30 20 46 52 4f 4d  2 * 92 col0 FROM
1e9c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1e9d0 2d 2d 2d 0d 0a 32 33 35 35 32 30 0d 0a 34 30 30  ---..235520..400
1e9e0 32 30 30 0d 0a 39 37 33 33 36 0d 0a 0d 0a 71 75  200..97336....qu
1e9f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1ea00 45 4c 45 43 54 20 41 4c 4c 20 35 37 20 2b 20 2b  ELECT ALL 57 + +
1ea10 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   - col0 AS col0 
1ea20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1ea30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 2d 33  0..----..-28..-3
1ea40 34 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4..6....onlyif m
1ea50 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1ea60 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1ea70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1ea80 72 74 20 6c 61 62 65 6c 2d 37 30 39 0d 0a 53 45  rt label-709..SE
1ea90 4c 45 43 54 20 41 4c 4c 20 2d 20 36 39 20 2a 20  LECT ALL - 69 * 
1eaa0 2b 20 28 20 2d 20 2d 20 43 41 53 54 28 20 4e 55  + ( - - CAST( NU
1eab0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
1eac0 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31   * - col2 * col1
1ead0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1eae0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
1eaf0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
1eb00 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1eb10 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1eb20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1eb30 65 6c 2d 37 30 39 0d 0a 53 45 4c 45 43 54 20 41  el-709..SELECT A
1eb40 4c 4c 20 2d 20 36 39 20 2a 20 2b 20 28 20 2d 20  LL - 69 * + ( - 
1eb50 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
1eb60 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2d   INTEGER ) ) * -
1eb70 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 41 53 20   col2 * col1 AS 
1eb80 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
1eb90 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1eba0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
1ebb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ebc0 54 20 28 20 2b 20 35 30 20 29 20 46 52 4f 4d 20  T ( + 50 ) FROM 
1ebd0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a  tab2..----..50..
1ebe0 35 30 0d 0a 35 30 0d 0a 0d 0a 71 75 65 72 79 20  50..50....query 
1ebf0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ec00 54 20 36 30 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  T 60 * + + col1 
1ec10 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1ec20 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 30 0d 0a 34  0..----..1260..4
1ec30 38 36 30 0d 0a 36 30 0d 0a 0d 0a 6f 6e 6c 79 69  860..60....onlyi
1ec40 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
1ec50 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1ec60 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1ec70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 32 0d  wsort label-712.
1ec80 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 36 20 44  .SELECT ALL 36 D
1ec90 49 56 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63  IV - + col2 AS c
1eca0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
1ecb0 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
1ecc0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ecd0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ece0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ecf0 61 62 65 6c 2d 37 31 32 0d 0a 53 45 4c 45 43 54  abel-712..SELECT
1ed00 20 41 4c 4c 20 33 36 20 2f 20 2d 20 2b 20 63 6f   ALL 36 / - + co
1ed10 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
1ed20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab1..----..0..0
1ed30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
1ed40 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1ed50 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1ed60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ed70 37 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  713..SELECT ALL 
1ed80 2b 20 34 37 20 2b 20 2b 20 2d 20 53 55 4d 28 20  + 47 + + - SUM( 
1ed90 41 4c 4c 20 2d 20 2d 20 33 36 20 29 20 41 53 20  ALL - - 36 ) AS 
1eda0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
1edb0 2d 2d 2d 2d 0d 0a 2d 36 31 0d 0a 0d 0a 73 6b 69  ----..-61....ski
1edc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1edd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1ede0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1edf0 6c 2d 37 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-713..SELECT AL
1ee00 4c 20 2b 20 34 37 20 2b 20 2b 20 2d 20 53 55 4d  L + 47 + + - SUM
1ee10 20 28 20 41 4c 4c 20 2d 20 2d 20 33 36 20 29 20   ( ALL - - 36 ) 
1ee20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1ee30 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 31 0d 0a 0d 0a  2..----..-61....
1ee40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ee50 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ee60 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 32   col0 + + - col2
1ee70 20 2a 20 2b 20 37 39 20 41 53 20 63 6f 6c 32 20   * + 79 AS col2 
1ee80 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1ee90 0a 2d 34 35 37 36 0d 0a 2d 35 32 38 31 0d 0a 2d  .-4576..-5281..-
1eea0 37 35 33 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  7533....query I 
1eeb0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1eec0 41 4c 4c 20 28 20 2b 20 2b 20 33 36 20 29 20 2a  ALL ( + + 36 ) *
1eed0 20 2d 20 2d 20 37 31 20 41 53 20 63 6f 6c 31 20   - - 71 AS col1 
1eee0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1eef0 0a 32 35 35 36 0d 0a 32 35 35 36 0d 0a 32 35 35  .2556..2556..255
1ef00 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
1ef10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1ef20 20 38 20 2b 20 2d 20 34 31 20 2b 20 2b 20 2d 20   8 + - 41 + + - 
1ef30 37 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  78 AS col0 FROM 
1ef40 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
1ef50 0a 2d 31 31 31 0d 0a 2d 31 31 31 0d 0a 2d 31 31  .-111..-111..-11
1ef60 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
1ef70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1ef80 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d  TINCT - col2 * -
1ef90 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 37 33 20 2b   + col2 + - 73 +
1efa0 20 2b 20 33 33 20 2a 20 38 32 20 2a 20 38 36 20   + 33 * 82 * 86 
1efb0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1efc0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 33 31 37 32 0d  0..----..233172.
1efd0 0a 32 33 34 32 34 33 0d 0a 32 33 36 30 30 37 0d  .234243..236007.
1efe0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1eff0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1f000 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1f010 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1f020 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1f030 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1f040 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 63  ECT ALL + col0 c
1f050 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
1f060 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1f070 2b 20 33 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 31 IS NULL..--
1f080 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a  --..15..87..97..
1f090 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f0a0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1f0b0 43 54 20 63 6f 6c 31 20 2b 20 2d 20 39 30 20 2a  CT col1 + - 90 *
1f0c0 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - - col0 FROM t
1f0d0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1f0e0 2d 0d 0a 2d 34 35 37 36 0d 0a 2d 37 36 34 35 0d  -..-4576..-7645.
1f0f0 0a 2d 38 31 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-8143....onlyif
1f100 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1f110 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1f120 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1f130 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 30 0d 0a  sort label-720..
1f140 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20  SELECT - col0 + 
1f150 43 41 53 54 28 20 2b 20 2b 20 37 20 41 53 20 53  CAST( + + 7 AS S
1f160 49 47 4e 45 44 20 29 20 63 6f 6c 30 20 46 52 4f  IGNED ) col0 FRO
1f170 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab1..----..-4
1f180 34 0d 0a 2d 37 38 0d 0a 2d 38 34 0d 0a 0d 0a 73  4..-78..-84....s
1f190 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1f1a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
1f1b0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1f1c0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1f1d0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1f1e0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1f1f0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1f200 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 30  owsort label-720
1f210 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
1f220 2b 20 43 41 53 54 20 28 20 2b 20 2b 20 37 20 41  + CAST ( + + 7 A
1f230 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 30  S INTEGER ) col0
1f240 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1f250 0d 0a 2d 34 34 0d 0a 2d 37 38 0d 0a 2d 38 34 0d  ..-44..-78..-84.
1f260 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1f270 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1f280 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1f290 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f2a0 62 65 6c 2d 37 32 31 0d 0a 53 45 4c 45 43 54 20  bel-721..SELECT 
1f2b0 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28  DISTINCT - CAST(
1f2c0 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
1f2d0 29 20 2b 20 2b 20 34 38 20 46 52 4f 4d 20 74 61  ) + + 48 FROM ta
1f2e0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33  b1..----..-3..-3
1f2f0 37 0d 0a 2d 34 33 0d 0a 0d 0a 73 6b 69 70 69 66  7..-43....skipif
1f300 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1f310 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1f320 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1f330 32 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  21..SELECT DISTI
1f340 4e 43 54 20 2d 20 43 41 53 54 20 28 20 63 6f 6c  NCT - CAST ( col
1f350 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  0 AS INTEGER ) +
1f360 20 2b 20 34 38 20 46 52 4f 4d 20 74 61 62 31 0d   + 48 FROM tab1.
1f370 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 37 0d 0a  .----..-3..-37..
1f380 2d 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -43....onlyif my
1f390 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1f3a0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1f3b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1f3c0 37 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  722..SELECT ALL 
1f3d0 2d 20 2d 20 53 55 4d 28 20 2d 20 35 37 20 29 20  - - SUM( - 57 ) 
1f3e0 2a 20 2b 20 2b 20 53 55 4d 28 20 2d 20 2d 20 35  * + + SUM( - - 5
1f3f0 35 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  5 ) AS col1 FROM
1f400 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
1f410 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f  OSS JOIN tab2 co
1f420 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 33 39 33  r1..----..-25393
1f430 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
1f440 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1f450 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1f460 6f 72 74 20 6c 61 62 65 6c 2d 37 32 32 0d 0a 53  ort label-722..S
1f470 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 53 55  ELECT ALL - - SU
1f480 4d 20 28 20 2d 20 35 37 20 29 20 2a 20 2b 20 2b  M ( - 57 ) * + +
1f490 20 53 55 4d 20 28 20 2d 20 2d 20 35 35 20 29 20   SUM ( - - 55 ) 
1f4a0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1f4b0 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
1f4c0 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a  JOIN tab2 cor1..
1f4d0 2d 2d 2d 2d 0d 0a 2d 32 35 33 39 33 35 0d 0a 0d  ----..-253935...
1f4e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1f4f0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1f500 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
1f510 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
1f520 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f530 62 65 6c 2d 37 32 33 0d 0a 53 45 4c 45 43 54 20  bel-723..SELECT 
1f540 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
1f550 28 20 2a 20 29 20 44 49 56 20 2b 20 43 4f 55 4e  ( * ) DIV + COUN
1f560 54 28 20 2a 20 29 20 2b 20 2d 20 4d 49 4e 28 20  T( * ) + - MIN( 
1f570 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 36 34 20  DISTINCT - - 64 
1f580 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1f590 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a  ab2..----..-63..
1f5a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1f5b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1f5c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f5d0 20 6c 61 62 65 6c 2d 37 32 33 0d 0a 53 45 4c 45   label-723..SELE
1f5e0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
1f5f0 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 43 4f  UNT ( * ) / + CO
1f600 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 4d 49  UNT ( * ) + - MI
1f610 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  N ( DISTINCT - -
1f620 20 36 34 20 29 20 41 53 20 63 6f 6c 30 20 46 52   64 ) AS col0 FR
1f630 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1f640 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  63....query I ro
1f650 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 20  wsort..SELECT 9 
1f660 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
1f670 48 45 52 45 20 2d 20 31 39 20 49 53 20 4e 4f 54  HERE - 19 IS NOT
1f680 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   NULL..----..9..
1f690 39 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  9..9....query I 
1f6a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1f6b0 41 4c 4c 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c  ALL col2 - + col
1f6c0 30 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  0 * + col0 FROM 
1f6d0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1f6e0 2d 2d 0d 0a 2d 31 37 38 0d 0a 2d 37 35 35 39 0d  --..-178..-7559.
1f6f0 0a 2d 39 33 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-9310....onlyif
1f700 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1f710 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1f720 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f730 65 6c 2d 37 32 36 0d 0a 53 45 4c 45 43 54 20 2b  el-726..SELECT +
1f740 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
1f750 2d 20 33 35 20 63 6f 6c 32 20 46 52 4f 4d 20 74  - 35 col2 FROM t
1f760 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1f770 2d 0d 0a 31 30 35 0d 0a 0d 0a 73 6b 69 70 69 66  -..105....skipif
1f780 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1f790 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
1f7a0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1f7b0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1f7c0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1f7d0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1f7e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f7f0 74 20 6c 61 62 65 6c 2d 37 32 36 0d 0a 53 45 4c  t label-726..SEL
1f800 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  ECT + - COUNT ( 
1f810 2a 20 29 20 2a 20 2d 20 33 35 20 63 6f 6c 32 20  * ) * - 35 col2 
1f820 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1f830 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a 0d 0a  0..----..105....
1f840 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1f850 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1f860 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1f870 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f880 2d 37 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -727..SELECT + C
1f890 41 53 54 28 20 2d 20 2d 20 33 33 20 41 53 20 53  AST( - - 33 AS S
1f8a0 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c 31 20 2d  IGNED ) * col1 -
1f8b0 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 28 20 2d 20   + col1 + + ( - 
1f8c0 2b 20 43 41 53 54 28 20 2b 20 28 20 2b 20 63 6f  + CAST( + ( + co
1f8d0 6c 32 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  l2 ) AS SIGNED )
1f8e0 20 29 20 2b 20 33 35 20 2b 20 2b 20 2d 20 63 6f   ) + 35 + + - co
1f8f0 6c 31 20 2a 20 63 6f 6c 30 20 2a 20 39 36 20 2a  l1 * col0 * 96 *
1f900 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
1f910 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1f920 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 35 34 36 31 37  0..----..1754617
1f930 0d 0a 35 34 38 34 36 36 30 0d 0a 39 32 31 38 35  ..5484660..92185
1f940 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
1f950 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1f960 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1f970 6f 72 74 20 6c 61 62 65 6c 2d 37 32 37 0d 0a 53  ort label-727..S
1f980 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28 20 2d  ELECT + CAST ( -
1f990 20 2d 20 33 33 20 41 53 20 49 4e 54 45 47 45 52   - 33 AS INTEGER
1f9a0 20 29 20 2a 20 63 6f 6c 31 20 2d 20 2b 20 63 6f   ) * col1 - + co
1f9b0 6c 31 20 2b 20 2b 20 28 20 2d 20 2b 20 43 41 53  l1 + + ( - + CAS
1f9c0 54 20 28 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29  T ( + ( + col2 )
1f9d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
1f9e0 2b 20 33 35 20 2b 20 2b 20 2d 20 63 6f 6c 31 20  + 35 + + - col1 
1f9f0 2a 20 63 6f 6c 30 20 2a 20 39 36 20 2a 20 2d 20  * col0 * 96 * - 
1fa00 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
1fa10 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1fa20 2d 2d 2d 2d 0d 0a 31 37 35 34 36 31 37 0d 0a 35  ----..1754617..5
1fa30 34 38 34 36 36 30 0d 0a 39 32 31 38 35 36 0d 0a  484660..921856..
1fa40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1fa50 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  t..SELECT + + co
1fa60 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 41 53  l0 * + - col0 AS
1fa70 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1fa80 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
1fa90 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  2 NOT BETWEEN + 
1faa0 63 6f 6c 31 20 41 4e 44 20 2b 20 28 20 63 6f 6c  col1 AND + ( col
1fab0 31 20 29 20 2a 20 2b 20 35 39 0d 0a 2d 2d 2d 2d  1 ) * + 59..----
1fac0 0d 0a 2d 32 31 31 36 0d 0a 2d 34 30 39 36 0d 0a  ..-2116..-4096..
1fad0 2d 35 36 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -5625....query I
1fae0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1faf0 20 44 49 53 54 49 4e 43 54 20 2b 20 35 35 20 2d   DISTINCT + 55 -
1fb00 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   - col0 AS col2 
1fb10 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1fb20 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 31 31  0..----..101..11
1fb30 39 0d 0a 31 33 30 0d 0a 0d 0a 71 75 65 72 79 20  9..130....query 
1fb40 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1fb50 54 20 2b 20 2d 20 38 36 20 2d 20 2d 20 32 34 20  T + - 86 - - 24 
1fb60 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1fb70 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1fb80 0a 2d 36 32 0d 0a 2d 36 32 0d 0a 2d 36 32 0d 0a  .-62..-62..-62..
1fb90 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1fba0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1fbb0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
1fbc0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
1fbd0 36 20 3c 3d 20 31 37 0d 0a 2d 2d 2d 2d 0d 0a 0d  6 <= 17..----...
1fbe0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1fbf0 0d 0a 53 45 4c 45 43 54 20 35 31 20 2d 20 2d 20  ..SELECT 51 - - 
1fc00 2d 20 32 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 26 AS col0 FRO
1fc10 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab2..----..25
1fc20 0d 0a 32 35 0d 0a 32 35 0d 0a 0d 0a 6f 6e 6c 79  ..25..25....only
1fc30 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1fc40 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1fc50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1fc60 61 62 65 6c 2d 37 33 33 0d 0a 53 45 4c 45 43 54  abel-733..SELECT
1fc70 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d   MAX( DISTINCT -
1fc80 20 2b 20 37 34 20 29 20 41 53 20 63 6f 6c 32 20   + 74 ) AS col2 
1fc90 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1fca0 0a 2d 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-74....skipif m
1fcb0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1fcc0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1fcd0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 33  owsort label-733
1fce0 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 44  ..SELECT MAX ( D
1fcf0 49 53 54 49 4e 43 54 20 2d 20 2b 20 37 34 20 29  ISTINCT - + 74 )
1fd00 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1fd10 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d  b0..----..-74...
1fd20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1fd30 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1fd40 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1fd50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1fd60 6c 2d 37 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-734..SELECT AL
1fd70 4c 20 2b 20 2b 20 63 6f 6c 32 20 44 49 56 20 2d  L + + col2 DIV -
1fd80 20 34 37 20 46 52 4f 4d 20 74 61 62 32 20 57 48   47 FROM tab2 WH
1fd90 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 32  ERE NOT - + col2
1fda0 20 2a 20 2b 20 28 20 2d 20 35 32 20 29 20 2b 20   * + ( - 52 ) + 
1fdb0 2d 20 39 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  - 92 IS NULL..--
1fdc0 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a  --..-1..0..0....
1fdd0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1fde0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1fdf0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1fe00 61 62 65 6c 2d 37 33 34 0d 0a 53 45 4c 45 43 54  abel-734..SELECT
1fe10 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 2f 20   ALL + + col2 / 
1fe20 2d 20 34 37 20 46 52 4f 4d 20 74 61 62 32 20 57  - 47 FROM tab2 W
1fe30 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c  HERE NOT - + col
1fe40 32 20 2a 20 2b 20 28 20 2d 20 35 32 20 29 20 2b  2 * + ( - 52 ) +
1fe50 20 2d 20 39 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   - 92 IS NULL..-
1fe60 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d  ---..-1..0..0...
1fe70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1fe80 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1fe90 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
1fea0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 35 0d 0a  sort label-735..
1feb0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1fec0 39 35 20 41 53 20 63 6f 6c 32 2c 20 4d 49 4e 28  95 AS col2, MIN(
1fed0 20 36 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   60 ) FROM tab1.
1fee0 0a 2d 2d 2d 2d 0d 0a 39 35 0d 0a 36 30 0d 0a 0d  .----..95..60...
1fef0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1ff00 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1ff10 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1ff20 20 6c 61 62 65 6c 2d 37 33 35 0d 0a 53 45 4c 45   label-735..SELE
1ff30 43 54 20 44 49 53 54 49 4e 43 54 20 39 35 20 41  CT DISTINCT 95 A
1ff40 53 20 63 6f 6c 32 2c 20 4d 49 4e 20 28 20 36 30  S col2, MIN ( 60
1ff50 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
1ff60 2d 2d 0d 0a 39 35 0d 0a 36 30 0d 0a 0d 0a 6f 6e  --..95..60....on
1ff70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1ff80 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1ff90 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1ffa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1ffb0 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  36..SELECT DISTI
1ffc0 4e 43 54 20 2d 20 34 36 20 44 49 56 20 2d 20 2d  NCT - 46 DIV - -
1ffd0 20 38 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   84 AS col0 FROM
1ffe0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
1fff0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20000 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20010 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20020 20 6c 61 62 65 6c 2d 37 33 36 0d 0a 53 45 4c 45   label-736..SELE
20030 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 34 36  CT DISTINCT - 46
20040 20 2f 20 2d 20 2d 20 38 34 20 41 53 20 63 6f 6c   / - - 84 AS col
20050 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
20060 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..0....onlyif m
20070 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
20080 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
20090 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
200a0 6c 2d 37 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-737..SELECT AL
200b0 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  L COUNT( * ) AS 
200c0 63 6f 6c 32 2c 20 2b 20 39 39 20 46 52 4f 4d 20  col2, + 99 FROM 
200d0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 39  tab1..----..3..9
200e0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
200f0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20100 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
20110 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 37 0d 0a  sort label-737..
20120 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
20130 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20   ( * ) AS col2, 
20140 2b 20 39 39 20 46 52 4f 4d 20 74 61 62 31 0d 0a  + 99 FROM tab1..
20150 2d 2d 2d 2d 0d 0a 33 0d 0a 39 39 0d 0a 0d 0a 6f  ----..3..99....o
20160 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
20170 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
20180 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20190 74 20 6c 61 62 65 6c 2d 37 33 38 0d 0a 53 45 4c  t label-738..SEL
201a0 45 43 54 20 2d 20 4d 41 58 28 20 37 34 20 29 20  ECT - MAX( 74 ) 
201b0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
201c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a  0..----..-74....
201d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
201e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
201f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20200 61 62 65 6c 2d 37 33 38 0d 0a 53 45 4c 45 43 54  abel-738..SELECT
20210 20 2d 20 4d 41 58 20 28 20 37 34 20 29 20 46 52   - MAX ( 74 ) FR
20220 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
20230 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 71 75  .----..-74....qu
20240 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
20250 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
20260 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
20270 52 45 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28  RE col0 NOT IN (
20280 20 2d 20 63 6f 6c 30 20 2b 20 38 35 20 29 0d 0a   - col0 + 85 )..
20290 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
202a0 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
202b0 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
202c0 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e  e537fb43b7....on
202d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
202e0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
202f0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
20300 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20310 37 34 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  740..SELECT ALL 
20320 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20  + col2 AS col1, 
20330 2d 20 63 6f 6c 32 20 44 49 56 20 2d 20 2b 20 63  - col2 DIV - + c
20340 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
20350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   cor0..----..59.
20360 0a 31 31 0d 0a 36 38 0d 0a 31 0d 0a 39 36 0d 0a  .11..68..1..96..
20370 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
20380 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20390 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
203a0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 30 0d 0a  sort label-740..
203b0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
203c0 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  2 AS col1, - col
203d0 32 20 2f 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f  2 / - + col1 FRO
203e0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
203f0 2d 2d 2d 2d 0d 0a 35 39 0d 0a 31 31 0d 0a 36 38  ----..59..11..68
20400 0d 0a 31 0d 0a 39 36 0d 0a 36 0d 0a 0d 0a 6f 6e  ..1..96..6....on
20410 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
20420 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
20430 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
20440 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20450 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  41..SELECT ALL +
20460 20 28 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c   ( - + CAST( NUL
20470 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
20480 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
20490 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
204a0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
204b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
204c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
204d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
204e0 6c 2d 37 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-741..SELECT AL
204f0 4c 20 2b 20 28 20 2d 20 2b 20 43 41 53 54 20 28  L + ( - + CAST (
20500 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
20510 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   ) ) FROM tab1 A
20520 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
20530 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
20540 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20550 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
20560 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  CT + col2 FROM t
20570 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
20580 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  col0 * + - col2 
20590 2b 20 2d 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f  + - + col0 IS NO
205a0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
205b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
205c0 0a 53 45 4c 45 43 54 20 2b 20 34 34 20 41 53 20  .SELECT + 44 AS 
205d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
205e0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
205f0 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a  N tab2 AS cor1..
20600 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
20610 61 73 68 69 6e 67 20 74 6f 20 61 62 32 62 63 32  ashing to ab2bc2
20620 62 39 66 38 62 61 61 33 30 30 64 66 37 37 35 35  b9f8baa300df7755
20630 65 35 39 38 30 61 33 31 39 64 0d 0a 0d 0a 71 75  e5980a319d....qu
20640 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
20650 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
20660 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
20670 45 20 4e 4f 54 20 33 38 20 2b 20 2d 20 63 6f 6c  E NOT 38 + - col
20680 31 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 28  1 + + col2 * + (
20690 20 2b 20 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c   + col1 ) IS NUL
206a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
206b0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
206c0 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
206d0 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
206e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
206f0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
20700 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
20710 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
20720 62 65 6c 2d 37 34 35 0d 0a 53 45 4c 45 43 54 20  bel-745..SELECT 
20730 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
20740 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
20750 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 31 20  col0 + - + col1 
20760 3c 3d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  <= CAST( NULL AS
20770 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d   SIGNED )..----.
20780 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
20790 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
207a0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
207b0 6f 72 74 20 6c 61 62 65 6c 2d 37 34 35 0d 0a 53  ort label-745..S
207c0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
207d0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
207e0 4e 4f 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b  NOT + col0 + - +
207f0 20 63 6f 6c 31 20 3c 3d 20 43 41 53 54 20 28 20   col1 <= CAST ( 
20800 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
20810 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
20820 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
20830 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
20840 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
20850 52 45 20 4e 4f 54 20 2b 20 37 37 20 2a 20 34 32  RE NOT + 77 * 42
20860 20 2f 20 2d 20 32 39 20 49 53 20 4e 55 4c 4c 0d   / - 29 IS NULL.
20870 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
20880 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
20890 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
208a0 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
208b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
208c0 53 45 4c 45 43 54 20 2d 20 39 32 20 46 52 4f 4d  SELECT - 92 FROM
208d0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
208e0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
208f0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55  WEEN NULL AND NU
20900 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
20910 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
20920 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
20930 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
20940 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
20950 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
20960 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
20970 20 2b 20 28 20 2d 20 34 34 20 29 20 63 6f 6c 31   + ( - 44 ) col1
20980 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
20990 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 2d  r0..----..-44..-
209a0 34 34 0d 0a 2d 34 34 0d 0a 0d 0a 71 75 65 72 79  44..-44....query
209b0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
209c0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
209d0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
209e0 20 2d 20 63 6f 6c 30 20 29 20 42 45 54 57 45 45   - col0 ) BETWEE
209f0 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d  N NULL AND NULL.
20a00 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
20a10 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
20a20 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
20a30 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
20a40 6c 2d 37 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-750..SELECT AL
20a50 4c 20 2b 20 2b 20 28 20 43 4f 55 4e 54 28 20 2b  L + + ( COUNT( +
20a60 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
20a70 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
20a80 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
20a90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
20aa0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
20ab0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20ac0 61 62 65 6c 2d 37 35 30 0d 0a 53 45 4c 45 43 54  abel-750..SELECT
20ad0 20 41 4c 4c 20 2b 20 2b 20 28 20 43 4f 55 4e 54   ALL + + ( COUNT
20ae0 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 20 41 53   ( + col0 ) ) AS
20af0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
20b00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
20b10 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
20b20 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
20b30 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
20b40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 31  owsort label-751
20b50 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d  ..SELECT ALL - M
20b60 49 4e 28 20 2d 20 36 33 20 29 20 2b 20 2d 20 39  IN( - 63 ) + - 9
20b70 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
20b80 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a  ab1..----..-31..
20b90 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20ba0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20bb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20bc0 20 6c 61 62 65 6c 2d 37 35 31 0d 0a 53 45 4c 45   label-751..SELE
20bd0 43 54 20 41 4c 4c 20 2d 20 4d 49 4e 20 28 20 2d  CT ALL - MIN ( -
20be0 20 36 33 20 29 20 2b 20 2d 20 39 34 20 41 53 20   63 ) + - 94 AS 
20bf0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
20c00 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 0d 0a 6f 6e 6c  ----..-31....onl
20c10 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
20c20 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
20c30 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
20c40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35  rowsort label-75
20c50 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  2..SELECT + CAST
20c60 28 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  ( col2 AS SIGNED
20c70 20 29 20 2b 20 2d 20 43 41 53 54 28 20 2d 20 63   ) + - CAST( - c
20c80 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
20c90 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
20ca0 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 33  2..----..104..13
20cb0 33 0d 0a 36 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  3..69....skipif 
20cc0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
20cd0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
20ce0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35  rowsort label-75
20cf0 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  2..SELECT + CAST
20d00 20 28 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47   ( col2 AS INTEG
20d10 45 52 20 29 20 2b 20 2d 20 43 41 53 54 20 28 20  ER ) + - CAST ( 
20d20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  - col0 AS INTEGE
20d30 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
20d40 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34   tab2..----..104
20d50 0d 0a 31 33 33 0d 0a 36 39 0d 0a 0d 0a 71 75 65  ..133..69....que
20d60 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
20d70 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
20d80 62 30 20 57 48 45 52 45 20 2b 20 2d 20 28 20 2d  b0 WHERE + - ( -
20d90 20 33 34 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c   34 ) IS NOT NUL
20da0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
20db0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
20dc0 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
20dd0 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
20de0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20df0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
20e00 54 20 2d 20 39 33 20 2a 20 2d 20 38 35 20 2b 20  T - 93 * - 85 + 
20e10 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20  - col0 * - col0 
20e20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
20e30 0a 31 30 30 32 31 0d 0a 31 32 30 30 31 0d 0a 31  .10021..12001..1
20e40 33 35 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3530....query I 
20e50 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
20e60 2b 20 63 6f 6c 32 20 2b 20 2d 20 37 20 41 53 20  + col2 + - 7 AS 
20e70 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
20e80 2d 2d 2d 2d 0d 0a 33 0d 0a 34 30 0d 0a 39 32 0d  ----..3..40..92.
20e90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
20ea0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
20eb0 20 31 33 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f   13 + + col0 FRO
20ec0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 33  M tab2..----..33
20ed0 0d 0a 35 31 0d 0a 36 32 0d 0a 0d 0a 6f 6e 6c 79  ..51..62....only
20ee0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
20ef0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
20f00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20f10 61 62 65 6c 2d 37 35 37 0d 0a 53 45 4c 45 43 54  abel-757..SELECT
20f20 20 44 49 53 54 49 4e 43 54 20 2d 20 36 33 20 2b   DISTINCT - 63 +
20f30 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
20f40 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
20f50 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 73 6b  .----..-66....sk
20f60 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
20f70 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
20f80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20f90 65 6c 2d 37 35 37 0d 0a 53 45 4c 45 43 54 20 44  el-757..SELECT D
20fa0 49 53 54 49 4e 43 54 20 2d 20 36 33 20 2b 20 2d  ISTINCT - 63 + -
20fb0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
20fc0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
20fd0 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 6f 6e 6c  ----..-66....onl
20fe0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
20ff0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
21000 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
21010 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21020 37 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  758..SELECT ALL 
21030 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
21040 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 2a 20 2b  E NOT + col0 * +
21050 20 2b 20 63 6f 6c 31 20 3c 3e 20 2d 20 43 41 53   + col1 <> - CAS
21060 54 28 20 2b 20 34 38 20 41 53 20 53 49 47 4e 45  T( + 48 AS SIGNE
21070 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  D )..----....ski
21080 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
21090 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
210a0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
210b0 62 65 6c 2d 37 35 38 0d 0a 53 45 4c 45 43 54 20  bel-758..SELECT 
210c0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
210d0 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30  WHERE NOT + col0
210e0 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 3c 3e 20 2d   * + + col1 <> -
210f0 20 43 41 53 54 20 28 20 2b 20 34 38 20 41 53 20   CAST ( + 48 AS 
21100 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d  INTEGER )..----.
21110 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
21120 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63  rt..SELECT + - c
21130 6f 6c 32 20 2a 20 28 20 2b 20 32 36 20 29 20 2a  ol2 * ( + 26 ) *
21140 20 2b 20 38 33 20 2b 20 2d 20 2b 20 37 37 20 41   + 83 + - + 77 A
21150 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
21160 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   cor0..----..-12
21170 35 32 34 31 0d 0a 2d 34 39 37 31 31 0d 0a 2d 38  5241..-49711..-8
21180 36 33 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  6397....onlyif m
21190 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
211a0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
211b0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
211c0 72 74 20 6c 61 62 65 6c 2d 37 36 30 0d 0a 53 45  rt label-760..SE
211d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
211e0 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2a 20  col2 * + col0 * 
211f0 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 36 33 20  - col0 + - + 63 
21200 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 31 35 20  + - col1 + - 15 
21210 44 49 56 20 2d 20 63 6f 6c 30 20 2a 20 39 33 20  DIV - col0 * 93 
21220 2a 20 36 31 20 2a 20 2d 20 2b 20 32 35 20 2b 20  * 61 * - + 25 + 
21230 2d 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 63  - + col0 - - + c
21240 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
21250 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34   cor0..----..-24
21260 39 37 37 33 0d 0a 2d 34 32 36 33 34 33 0d 0a 2d  9773..-426343..-
21270 35 36 33 32 31 38 0d 0a 0d 0a 73 6b 69 70 69 66  563218....skipif
21280 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21290 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
212a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
212b0 36 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  60..SELECT DISTI
212c0 4e 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63  NCT + col2 * + c
212d0 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d  ol0 * - col0 + -
212e0 20 2b 20 36 33 20 2b 20 2d 20 63 6f 6c 31 20 2b   + 63 + - col1 +
212f0 20 2d 20 31 35 20 2f 20 2d 20 63 6f 6c 30 20 2a   - 15 / - col0 *
21300 20 39 33 20 2a 20 36 31 20 2a 20 2d 20 2b 20 32   93 * 61 * - + 2
21310 35 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2d 20 2d  5 + - + col0 - -
21320 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
21330 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
21340 0a 2d 32 34 39 37 37 33 0d 0a 2d 34 32 36 33 34  .-249773..-42634
21350 33 0d 0a 2d 35 36 33 32 31 38 0d 0a 0d 0a 71 75  3..-563218....qu
21360 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
21370 45 4c 45 43 54 20 41 4c 4c 20 39 39 20 2a 20 2b  ELECT ALL 99 * +
21380 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f   + col2 * + + co
21390 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53  l0 * - - col2 AS
213a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
213b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
213c0 39 32 39 32 36 31 35 0d 0a 34 31 36 35 37 36 31  9292615..4165761
213d0 36 0d 0a 34 36 35 33 31 35 38 34 0d 0a 0d 0a 71  6..46531584....q
213e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
213f0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20  SELECT col1 * + 
21400 28 20 2d 20 2b 20 38 34 20 29 20 2a 20 2b 20 2d  ( - + 84 ) * + -
21410 20 33 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   30 AS col0 FROM
21420 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34   tab0..----..204
21430 31 32 30 0d 0a 32 35 32 30 0d 0a 35 32 39 32 30  120..2520..52920
21440 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21450 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
21460 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
21470 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21480 61 62 65 6c 2d 37 36 33 0d 0a 53 45 4c 45 43 54  abel-763..SELECT
21490 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
214a0 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 2b 20   SIGNED ) * - + 
214b0 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 41 53  col2 + - col2 AS
214c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
214d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
214e0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
214f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
21500 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
21510 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21520 61 62 65 6c 2d 37 36 33 0d 0a 53 45 4c 45 43 54  abel-763..SELECT
21530 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
21540 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20  S INTEGER ) * - 
21550 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  + col2 + - col2 
21560 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
21570 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  0 cor0..----..NU
21580 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
21590 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
215a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
215b0 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 33 20 2a  + col0 + + + 3 *
215c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
215d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
215e0 36 32 0d 0a 32 39 35 0d 0a 33 33 39 0d 0a 0d 0a  62..295..339....
215f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
21600 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
21610 33 37 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 39 34  37 * col0 + - 94
21620 20 2b 20 2d 20 38 36 20 2a 20 63 6f 6c 31 20 2b   + - 86 * col1 +
21630 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 63   col1 AS col2, c
21640 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 2d  ol1 + - + col2 -
21650 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c   + col0 AS col1,
21660 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
21670 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
21680 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
21690 68 61 73 68 69 6e 67 20 74 6f 20 36 61 65 63 33  hashing to 6aec3
216a0 34 39 38 34 32 64 30 30 66 39 65 34 35 31 62 63  49842d00f9e451bc
216b0 62 35 64 62 39 65 62 64 36 63 66 0d 0a 0d 0a 71  b5db9ebd6cf....q
216c0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
216d0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
216e0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
216f0 52 45 20 2d 20 32 31 20 2a 20 2d 20 37 35 20 3c  RE - 21 * - 75 <
21700 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
21710 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
21720 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
21730 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 46   col0 * - col2 F
21740 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21750 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
21760 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
21770 37 30 35 0d 0a 2d 38 37 30 0d 0a 2d 39 36 30 33  705..-870..-9603
21780 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21790 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
217a0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
217b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 38  owsort label-768
217c0 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
217d0 2a 20 29 20 2b 20 2b 20 28 20 2d 20 36 36 20 29  * ) + + ( - 66 )
217e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
217f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a 0d  r0..----..-63...
21800 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
21810 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
21820 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
21830 6c 61 62 65 6c 2d 37 36 38 0d 0a 53 45 4c 45 43  label-768..SELEC
21840 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  T COUNT ( * ) + 
21850 2b 20 28 20 2d 20 36 36 20 29 20 46 52 4f 4d 20  + ( - 66 ) FROM 
21860 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
21870 2d 2d 0d 0a 2d 36 33 0d 0a 0d 0a 73 6b 69 70 69  --..-63....skipi
21880 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
21890 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
218a0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
218b0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
218c0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
218d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
218e0 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  INCT + - col1 * 
218f0 2b 20 28 20 38 35 20 29 20 63 6f 6c 30 20 46 52  + ( 85 ) col0 FR
21900 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
21910 0a 2d 2d 2d 2d 0d 0a 2d 34 33 33 35 0d 0a 2d 35  .----..-4335..-5
21920 36 39 35 0d 0a 2d 36 35 34 35 0d 0a 0d 0a 6f 6e  695..-6545....on
21930 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
21940 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
21950 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21960 20 6c 61 62 65 6c 2d 37 37 30 0d 0a 53 45 4c 45   label-770..SELE
21970 43 54 20 41 4c 4c 20 2b 20 4d 41 58 28 20 33 30  CT ALL + MAX( 30
21980 20 29 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20   ) - COUNT( ALL 
21990 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  + + col0 ) AS co
219a0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
219b0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 73  0..----..27....s
219c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
219d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
219e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
219f0 62 65 6c 2d 37 37 30 0d 0a 53 45 4c 45 43 54 20  bel-770..SELECT 
21a00 41 4c 4c 20 2b 20 4d 41 58 20 28 20 33 30 20 29  ALL + MAX ( 30 )
21a10 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b   - COUNT ( ALL +
21a20 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
21a30 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
21a40 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 71 75  ..----..27....qu
21a50 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
21a60 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
21a70 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
21a80 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31  WHERE NOT - col1
21a90 20 2a 20 2b 20 32 20 2b 20 2d 20 2d 20 63 6f 6c   * + 2 + - - col
21aa0 32 20 2a 20 63 6f 6c 31 20 2b 20 34 33 20 2b 20  2 * col1 + 43 + 
21ab0 2d 20 63 6f 6c 30 20 3d 20 2d 20 2b 20 28 20 63  - col0 = - + ( c
21ac0 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  ol1 )..----..9 v
21ad0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
21ae0 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
21af0 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
21b00 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
21b10 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
21b20 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
21b30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
21b40 6c 61 62 65 6c 2d 37 37 32 0d 0a 53 45 4c 45 43  label-772..SELEC
21b50 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 44 49 56  T ALL + col1 DIV
21b60 20 2d 20 2d 20 36 33 20 46 52 4f 4d 20 74 61 62   - - 63 FROM tab
21b70 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
21b80 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
21b90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21ba0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21bb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21bc0 2d 37 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -772..SELECT ALL
21bd0 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 36 33   + col1 / - - 63
21be0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
21bf0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
21c00 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
21c10 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
21c20 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
21c30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21c40 37 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  73..SELECT DISTI
21c50 4e 43 54 20 2d 20 37 30 20 41 53 20 63 6f 6c 32  NCT - 70 AS col2
21c60 2c 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 63  , + MIN( ALL - c
21c70 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol0 ) FROM tab0 
21c80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
21c90 37 30 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69  70..-97....skipi
21ca0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
21cb0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
21cc0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
21cd0 2d 37 37 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -773..SELECT DIS
21ce0 54 49 4e 43 54 20 2d 20 37 30 20 41 53 20 63 6f  TINCT - 70 AS co
21cf0 6c 32 2c 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20  l2, + MIN ( ALL 
21d00 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
21d10 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
21d20 0d 0a 2d 37 30 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b  ..-70..-97....sk
21d30 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
21d40 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
21d50 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
21d60 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
21d70 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 49  lumns..query III
21d80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
21d90 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53   + ( + col0 ) AS
21da0 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 2b 20 63 6f   col0, col2 + co
21db0 6c 31 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 2d 20  l1 col0, col0 - 
21dc0 2b 20 2d 20 63 6f 6c 31 20 2d 20 28 20 38 34 20  + - col1 - ( 84 
21dd0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
21de0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
21df0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
21e00 69 6e 67 20 74 6f 20 31 34 33 65 38 63 36 37 36  ing to 143e8c676
21e10 36 33 32 30 62 63 31 39 35 62 62 33 66 63 38 31  6320bc195bb3fc81
21e20 66 32 33 62 34 66 37 0d 0a 0d 0a 71 75 65 72 79  f23b4f7....query
21e30 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21e40 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20  CT col1 AS col0 
21e50 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
21e60 4e 4f 54 20 28 20 2b 20 34 38 20 2a 20 2b 20 35  NOT ( + 48 * + 5
21e70 33 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 29 20 49  3 + - - col2 ) I
21e80 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S NULL..----..51
21e90 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c 79  ..67..77....only
21ea0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
21eb0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
21ec0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
21ed0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 36  owsort label-776
21ee0 0d 0a 53 45 4c 45 43 54 20 2b 20 35 39 20 44 49  ..SELECT + 59 DI
21ef0 56 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  V - col0 FROM ta
21f00 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d  b2..----..-1..0.
21f10 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
21f20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
21f30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
21f40 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 36 0d 0a  sort label-776..
21f50 53 45 4c 45 43 54 20 2b 20 35 39 20 2f 20 2d 20  SELECT + 59 / - 
21f60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
21f70 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a  ----..-1..0..0..
21f80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21f90 74 0d 0a 53 45 4c 45 43 54 20 2b 20 35 37 20 2a  t..SELECT + 57 *
21fa0 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32   - col1 * + col2
21fb0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
21fc0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 38 31 35  b1..----..-16815
21fd0 0d 0a 2d 31 38 32 31 37 32 0d 0a 2d 37 36 36 30  ..-182172..-7660
21fe0 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
21ff0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
22000 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
22010 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22020 6c 61 62 65 6c 2d 37 37 38 0d 0a 53 45 4c 45 43  label-778..SELEC
22030 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  T DISTINCT + CAS
22040 54 28 20 37 34 20 41 53 20 53 49 47 4e 45 44 20  T( 74 AS SIGNED 
22050 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  ) FROM tab2 cor0
22060 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 73 6b  ..----..74....sk
22070 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
22080 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
22090 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
220a0 65 6c 2d 37 37 38 0d 0a 53 45 4c 45 43 54 20 44  el-778..SELECT D
220b0 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28  ISTINCT + CAST (
220c0 20 37 34 20 41 53 20 49 4e 54 45 47 45 52 20 29   74 AS INTEGER )
220d0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
220e0 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 71 75 65  .----..74....que
220f0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
22100 45 4c 45 43 54 20 2d 20 32 37 20 41 53 20 63 6f  ELECT - 27 AS co
22110 6c 32 2c 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  l2, - col2 AS co
22120 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
22130 2d 2d 0d 0a 2d 32 37 0d 0a 2d 32 33 0d 0a 2d 32  --..-27..-23..-2
22140 37 0d 0a 2d 34 30 0d 0a 2d 32 37 0d 0a 2d 35 38  7..-40..-27..-58
22150 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
22160 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
22170 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
22180 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
22190 20 42 45 54 57 45 45 4e 20 2d 20 28 20 2d 20 37   BETWEEN - ( - 7
221a0 32 20 29 20 2b 20 2d 20 35 33 20 41 4e 44 20 2d  2 ) + - 53 AND -
221b0 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 2a   col1 * - col2 *
221c0 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20 2b   + col0 * col1 +
221d0 20 2d 20 37 37 20 2a 20 2d 20 63 6f 6c 31 20 2a   - 77 * - col1 *
221e0 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d   + - col2..----.
221f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
22200 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
22210 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
22220 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 31 0d  wsort label-781.
22230 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
22240 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20   * ) + + COUNT( 
22250 2a 20 29 20 2b 20 2b 20 32 36 20 2b 20 2b 20 2d  * ) + + 26 + + -
22260 20 35 30 20 2a 20 37 30 20 41 53 20 63 6f 6c 32   50 * 70 AS col2
22270 20 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 31   FROM tab0, tab1
22280 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22290 2d 33 34 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -3474....skipif 
222a0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
222b0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
222c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38  rowsort label-78
222d0 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  1..SELECT - COUN
222e0 54 20 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e  T ( * ) + + COUN
222f0 54 20 28 20 2a 20 29 20 2b 20 2b 20 32 36 20 2b  T ( * ) + + 26 +
22300 20 2b 20 2d 20 35 30 20 2a 20 37 30 20 41 53 20   + - 50 * 70 AS 
22310 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 2c 20  col2 FROM tab0, 
22320 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
22330 2d 2d 0d 0a 2d 33 34 37 34 0d 0a 0d 0a 71 75 65  --..-3474....que
22340 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
22350 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
22360 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
22370 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45  HERE NULL BETWEE
22380 4e 20 63 6f 6c 30 20 41 4e 44 20 28 20 4e 55 4c  N col0 AND ( NUL
22390 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
223a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
223b0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
223c0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
223d0 20 2d 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20   - ( + - col0 ) 
223e0 3c 3d 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  <= - + col1 * co
223f0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
22400 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
22410 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32  ECT ALL - - col2
22420 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
22430 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
22440 20 4e 4f 54 20 63 6f 6c 30 20 49 53 20 4e 4f 54   NOT col0 IS NOT
22450 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
22460 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
22470 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
22480 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
22490 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
224a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
224b0 6c 2d 37 38 35 0d 0a 53 45 4c 45 43 54 20 28 20  l-785..SELECT ( 
224c0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 2b  + COUNT( * ) ) +
224d0 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   - + CAST( NULL 
224e0 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
224f0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
22500 45 52 45 20 4e 55 4c 4c 20 3e 20 4e 55 4c 4c 0d  ERE NULL > NULL.
22510 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
22520 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
22530 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
22540 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22550 62 65 6c 2d 37 38 35 0d 0a 53 45 4c 45 43 54 20  bel-785..SELECT 
22560 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
22570 29 20 2b 20 2d 20 2b 20 43 41 53 54 20 28 20 4e  ) + - + CAST ( N
22580 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
22590 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
225a0 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20  r0 WHERE NULL > 
225b0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
225c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
225d0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
225e0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
225f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 36  owsort label-786
22600 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22610 54 20 2d 20 2d 20 4d 49 4e 28 20 28 20 2b 20 28  T - - MIN( ( + (
22620 20 63 6f 6c 30 20 29 20 29 20 29 20 41 53 20 63   col0 ) ) ) AS c
22630 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
22640 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   cor0..----..46.
22650 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22660 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22670 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22680 74 20 6c 61 62 65 6c 2d 37 38 36 0d 0a 53 45 4c  t label-786..SEL
22690 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  ECT DISTINCT - -
226a0 20 4d 49 4e 20 28 20 28 20 2b 20 28 20 63 6f 6c   MIN ( ( + ( col
226b0 30 20 29 20 29 20 29 20 41 53 20 63 6f 6c 30 20  0 ) ) ) AS col0 
226c0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
226d0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 71  0..----..46....q
226e0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
226f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 36 30  .SELECT ALL - 60
22700 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32   AS col0, - col2
22710 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   * col0 FROM tab
22720 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  1 cor0..----..-6
22730 30 0d 0a 2d 34 38 39 36 0d 0a 2d 36 30 0d 0a 2d  0..-4896..-60..-
22740 35 30 31 35 0d 0a 2d 36 30 0d 0a 2d 36 31 38 38  5015..-60..-6188
22750 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22760 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
22770 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
22780 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
22790 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
227a0 20 6c 61 62 65 6c 2d 37 38 38 0d 0a 53 45 4c 45   label-788..SELE
227b0 43 54 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e  CT + MIN( DISTIN
227c0 43 54 20 37 33 20 29 20 44 49 56 20 2b 20 2b 20  CT 73 ) DIV + + 
227d0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
227e0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
227f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a  cor0..----..24..
22800 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
22810 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
22820 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22830 20 6c 61 62 65 6c 2d 37 38 38 0d 0a 53 45 4c 45   label-788..SELE
22840 43 54 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49  CT + MIN ( DISTI
22850 4e 43 54 20 37 33 20 29 20 2f 20 2b 20 2b 20 43  NCT 73 ) / + + C
22860 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
22870 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
22880 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a  cor0..----..24..
22890 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
228a0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
228b0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
228c0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 39 0d 0a  sort label-789..
228d0 53 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 2b 20  SELECT + SUM( + 
228e0 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32  + col1 ) AS col2
228f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
22900 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 0d  r0..----..103...
22910 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
22920 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
22930 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22940 6c 61 62 65 6c 2d 37 38 39 0d 0a 53 45 4c 45 43  label-789..SELEC
22950 54 20 2b 20 53 55 4d 20 28 20 2b 20 2b 20 63 6f  T + SUM ( + + co
22960 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
22970 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
22980 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 0d 0a 73 6b 69  ----..103....ski
22990 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
229a0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
229b0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
229c0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
229d0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
229e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
229f0 4c 20 63 6f 6c 32 20 2b 20 28 20 39 33 20 29 20  L col2 + ( 93 ) 
22a00 2a 20 2d 20 2d 20 28 20 63 6f 6c 30 20 29 20 2a  * - - ( col0 ) *
22a10 20 2b 20 32 33 20 63 6f 6c 30 20 46 52 4f 4d 20   + 23 col0 FROM 
22a20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 36 39  tab2..----..1369
22a30 33 36 0d 0a 31 36 30 34 38 33 0d 0a 39 38 34 31  36..160483..9841
22a40 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
22a50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
22a60 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2f 20 2b  TINCT + col1 / +
22a70 20 63 6f 6c 31 20 2a 20 2d 20 39 35 20 41 53 20   col1 * - 95 AS 
22a80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
22a90 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20  HERE NOT NULL > 
22aa0 2d 20 35 20 2f 20 2b 20 37 36 0d 0a 2d 2d 2d 2d  - 5 / + 76..----
22ab0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22ac0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
22ad0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
22ae0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22af0 61 62 65 6c 2d 37 39 32 0d 0a 53 45 4c 45 43 54  abel-792..SELECT
22b00 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f   DISTINCT + + co
22b10 6c 30 20 2a 20 28 20 2b 20 2d 20 63 6f 6c 30 20  l0 * ( + - col0 
22b20 29 20 2b 20 28 20 2b 20 34 34 20 29 20 44 49 56  ) + ( + 44 ) DIV
22b30 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
22b40 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  1 WHERE NOT + co
22b50 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
22b60 0d 0a 2d 32 36 30 31 0d 0a 2d 37 32 32 35 0d 0a  ..-2601..-7225..
22b70 2d 38 32 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -8281....skipif 
22b80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
22b90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
22ba0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
22bb0 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
22bc0 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 28 20  CT + + col0 * ( 
22bd0 2b 20 2d 20 63 6f 6c 30 20 29 20 2b 20 28 20 2b  + - col0 ) + ( +
22be0 20 34 34 20 29 20 2f 20 2b 20 63 6f 6c 32 20 46   44 ) / + col2 F
22bf0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
22c00 4f 54 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c  OT + col1 IS NUL
22c10 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 31 0d 0a  L..----..-2601..
22c20 2d 37 32 32 35 0d 0a 2d 38 32 38 31 0d 0a 0d 0a  -7225..-8281....
22c30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
22c40 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b  .SELECT - col0 +
22c50 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2a   + col2 * col2 *
22c60 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 32 35   + + col2 + - 25
22c70 20 2a 20 2b 20 2d 20 33 20 2a 20 2d 20 2d 20 63   * + - 3 * - - c
22c80 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a  ol2 * + + col2 *
22c90 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + + col2 FROM t
22ca0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
22cb0 45 20 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a  E NULL <> NULL..
22cc0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
22cd0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
22ce0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
22cf0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22d00 2d 37 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -794..SELECT ALL
22d10 20 35 33 20 2d 20 2b 20 2d 20 4d 49 4e 28 20 2d   53 - + - MIN( -
22d20 20 36 39 20 29 20 46 52 4f 4d 20 74 61 62 31 20   69 ) FROM tab1 
22d30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 0d  cor0..----..-16.
22d40 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22d50 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22d60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22d70 74 20 6c 61 62 65 6c 2d 37 39 34 0d 0a 53 45 4c  t label-794..SEL
22d80 45 43 54 20 41 4c 4c 20 35 33 20 2d 20 2b 20 2d  ECT ALL 53 - + -
22d90 20 4d 49 4e 20 28 20 2d 20 36 39 20 29 20 46 52   MIN ( - 69 ) FR
22da0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
22db0 2d 2d 0d 0a 2d 31 36 0d 0a 0d 0a 71 75 65 72 79  --..-16....query
22dc0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
22dd0 43 54 20 39 35 20 2a 20 2b 20 36 20 2b 20 2d 20  CT 95 * + 6 + - 
22de0 2b 20 63 6f 6c 31 20 2a 20 2b 20 36 34 20 46 52  + col1 * + 64 FR
22df0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
22e00 0a 2d 2d 2d 2d 0d 0a 2d 34 36 31 34 0d 0a 2d 37  .----..-4614..-7
22e10 37 34 0d 0a 35 30 36 0d 0a 0d 0a 6f 6e 6c 79 69  74..506....onlyi
22e20 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
22e30 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
22e40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22e50 62 65 6c 2d 37 39 36 0d 0a 53 45 4c 45 43 54 20  bel-796..SELECT 
22e60 2d 20 2d 20 34 36 20 2b 20 2d 20 28 20 2b 20 43  - - 46 + - ( + C
22e70 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52 4f 4d  OUNT( * ) ) FROM
22e80 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
22e90 2d 2d 2d 0d 0a 34 33 0d 0a 0d 0a 73 6b 69 70 69  ---..43....skipi
22ea0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
22eb0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
22ec0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22ed0 37 39 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  796..SELECT - - 
22ee0 34 36 20 2b 20 2d 20 28 20 2b 20 43 4f 55 4e 54  46 + - ( + COUNT
22ef0 20 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61   ( * ) ) FROM ta
22f00 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
22f10 0d 0a 34 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..43....query I 
22f20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
22f30 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c  DISTINCT - - col
22f40 32 20 2a 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 32  2 * + ( + - col2
22f50 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
22f60 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 38  cor0..----..-348
22f70 31 0d 0a 2d 34 36 32 34 0d 0a 2d 39 32 31 36 0d  1..-4624..-9216.
22f80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
22f90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
22fa0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
22fb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 38 0d  wsort label-798.
22fc0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41  .SELECT ALL + MA
22fd0 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  X( DISTINCT + + 
22fe0 32 36 20 29 20 2a 20 2b 20 32 33 20 46 52 4f 4d  26 ) * + 23 FROM
22ff0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 38   tab0..----..598
23000 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
23010 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
23020 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
23030 72 74 20 6c 61 62 65 6c 2d 37 39 38 0d 0a 53 45  rt label-798..SE
23040 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 20 28  LECT ALL + MAX (
23050 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 32 36   DISTINCT + + 26
23060 20 29 20 2a 20 2b 20 32 33 20 46 52 4f 4d 20 74   ) * + 23 FROM t
23070 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 38 0d 0a  ab0..----..598..
23080 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23090 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
230a0 6c 31 20 2b 20 38 37 20 41 53 20 63 6f 6c 32 20  l1 + 87 AS col2 
230b0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
230c0 0a 31 33 38 0d 0a 31 35 34 0d 0a 31 36 34 0d 0a  .138..154..164..
230d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
230e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
230f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
23100 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 30 0d 0a  sort label-800..
23110 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20 2b 20  SELECT - MAX( + 
23120 33 31 20 29 20 2a 20 33 38 20 2b 20 28 20 2b 20  31 ) * 38 + ( + 
23130 2b 20 35 32 20 29 20 46 52 4f 4d 20 74 61 62 30  + 52 ) FROM tab0
23140 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 53   WHERE + col2 IS
23150 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
23160 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
23170 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23180 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
23190 6f 72 74 20 6c 61 62 65 6c 2d 38 30 30 0d 0a 53  ort label-800..S
231a0 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20 2b 20  ELECT - MAX ( + 
231b0 33 31 20 29 20 2a 20 33 38 20 2b 20 28 20 2b 20  31 ) * 38 + ( + 
231c0 2b 20 35 32 20 29 20 46 52 4f 4d 20 74 61 62 30  + 52 ) FROM tab0
231d0 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 53   WHERE + col2 IS
231e0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
231f0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
23200 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
23210 20 2b 20 32 33 20 41 53 20 63 6f 6c 31 20 46 52   + 23 AS col1 FR
23220 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
23230 57 48 45 52 45 20 2d 20 38 38 20 49 53 20 4e 4f  WHERE - 88 IS NO
23240 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33  T NULL..----..23
23250 0d 0a 32 33 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72  ..23..23....quer
23260 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
23270 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31  ECT ALL - + col1
23280 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + - col0 AS col
23290 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
232a0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
232b0 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f  LL NOT IN ( + co
232c0 6c 31 2c 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  l1, col2 )..----
232d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
232e0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
232f0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
23300 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 33  owsort label-803
23310 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
23320 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 2a  ( ALL + col1 ) *
23330 20 2d 20 53 55 4d 28 20 63 6f 6c 32 20 29 20 2b   - SUM( col2 ) +
23340 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20   - COUNT( ALL - 
23350 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
23360 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
23370 0d 0a 2d 2d 2d 2d 0d 0a 34 36 35 0d 0a 0d 0a 73  ..----..465....s
23380 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
23390 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
233a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
233b0 62 65 6c 2d 38 30 33 0d 0a 53 45 4c 45 43 54 20  bel-803..SELECT 
233c0 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20  - COUNT ( ALL + 
233d0 63 6f 6c 31 20 29 20 2a 20 2d 20 53 55 4d 20 28  col1 ) * - SUM (
233e0 20 63 6f 6c 32 20 29 20 2b 20 2d 20 43 4f 55 4e   col2 ) + - COUN
233f0 54 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29  T ( ALL - col1 )
23400 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
23410 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
23420 0d 0a 34 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..465....query I
23430 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
23440 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
23450 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
23460 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 63   NULL NOT IN ( c
23470 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2b  ol2 * + - col0 +
23480 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
23490 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
234a0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
234b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
234c0 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c  HERE NOT ( - col
234d0 31 20 29 20 2a 20 2b 20 2d 20 38 31 20 42 45 54  1 ) * + - 81 BET
234e0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f  WEEN NULL AND co
234f0 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l1..----..9 valu
23500 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
23510 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
23520 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
23530 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23540 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
23550 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   * + + col1 FROM
23560 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
23570 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2b  ERE NOT - col1 +
23580 20 2b 20 31 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d   + 18 IS NULL..-
23590 2d 2d 2d 0d 0a 32 31 30 0d 0a 33 38 30 37 0d 0a  ---..210..3807..
235a0 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  99....onlyif mys
235b0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
235c0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
235d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
235e0 30 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  07..SELECT DISTI
235f0 4e 43 54 20 2b 20 2d 20 4d 41 58 28 20 2d 20 35  NCT + - MAX( - 5
23600 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  6 ) AS col1 FROM
23610 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
23620 2d 2d 2d 0d 0a 35 36 0d 0a 0d 0a 73 6b 69 70 69  ---..56....skipi
23630 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
23640 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
23650 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23660 38 30 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  807..SELECT DIST
23670 49 4e 43 54 20 2b 20 2d 20 4d 41 58 20 28 20 2d  INCT + - MAX ( -
23680 20 35 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52   56 ) AS col1 FR
23690 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
236a0 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 0d 0a 6f 6e 6c  .----..56....onl
236b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
236c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
236d0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
236e0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
236f0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
23700 2d 38 30 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -808..SELECT ALL
23710 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
23720 6f 6c 30 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20  ol0, - COUNT( * 
23730 29 20 2a 20 2b 20 2b 20 36 36 20 44 49 56 20 2b  ) * + + 66 DIV +
23740 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d   SUM( DISTINCT -
23750 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20   col0 ) AS col0 
23760 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
23770 0a 33 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .3..0....skipif 
23780 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
23790 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
237a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
237b0 30 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  08..SELECT ALL C
237c0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
237d0 6c 30 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  l0, - COUNT ( * 
237e0 29 20 2a 20 2b 20 2b 20 36 36 20 2f 20 2b 20 53  ) * + + 66 / + S
237f0 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UM ( DISTINCT - 
23800 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
23810 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
23820 33 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  3..0....skipif p
23830 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
23840 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
23850 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
23860 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
23870 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23880 0d 0a 53 45 4c 45 43 54 20 2d 20 37 20 2a 20 2b  ..SELECT - 7 * +
23890 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20   col0 col1 FROM 
238a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35  tab0..----..-105
238b0 0d 0a 2d 36 30 39 0d 0a 2d 36 37 39 0d 0a 0d 0a  ..-609..-679....
238c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
238d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
238e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
238f0 72 74 20 6c 61 62 65 6c 2d 38 31 30 0d 0a 53 45  rt label-810..SE
23900 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
23910 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20  MIN( DISTINCT + 
23920 33 39 20 29 20 2a 20 2b 20 2b 20 43 4f 55 4e 54  39 ) * + + COUNT
23930 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ( * ) FROM tab1.
23940 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 0d 0a 0d 0a 73  .----..-117....s
23950 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
23960 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
23970 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
23980 62 65 6c 2d 38 31 30 0d 0a 53 45 4c 45 43 54 20  bel-810..SELECT 
23990 44 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e 20 28  DISTINCT - MIN (
239a0 20 44 49 53 54 49 4e 43 54 20 2b 20 33 39 20 29   DISTINCT + 39 )
239b0 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   * + + COUNT ( *
239c0 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
239d0 2d 2d 0d 0a 2d 31 31 37 0d 0a 0d 0a 71 75 65 72  --..-117....quer
239e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
239f0 45 43 54 20 41 4c 4c 20 28 20 2d 20 2d 20 34 30  ECT ALL ( - - 40
23a00 20 29 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63   ) * - col2 AS c
23a10 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
23a20 2d 2d 2d 0d 0a 2d 31 36 30 30 0d 0a 2d 32 33 32  ---..-1600..-232
23a30 30 0d 0a 2d 39 32 30 0d 0a 0d 0a 71 75 65 72 79  0..-920....query
23a40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
23a50 43 54 20 2d 20 37 34 20 2a 20 2b 20 32 32 20 41  CT - 74 * + 22 A
23a60 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
23a70 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 32 38 0d 0a 2d  ..----..-1628..-
23a80 31 36 32 38 0d 0a 2d 31 36 32 38 0d 0a 0d 0a 71  1628..-1628....q
23a90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23aa0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
23ab0 32 32 20 2a 20 39 39 20 46 52 4f 4d 20 74 61 62  22 * 99 FROM tab
23ac0 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 37 38 0d 0a 0d  1..----..2178...
23ad0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
23ae0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
23af0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
23b00 6f 72 74 20 6c 61 62 65 6c 2d 38 31 34 0d 0a 53  ort label-814..S
23b10 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
23b20 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
23b30 2b 20 32 36 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 26 AS col0 FRO
23b40 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
23b50 2d 2d 2d 2d 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70  ----..78....skip
23b60 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23b70 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
23b80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23b90 2d 38 31 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -814..SELECT DIS
23ba0 54 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20  TINCT - - COUNT 
23bb0 28 20 2a 20 29 20 2a 20 2b 20 32 36 20 41 53 20  ( * ) * + 26 AS 
23bc0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
23bd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 38  S cor0..----..78
23be0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
23bf0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
23c00 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
23c10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 35  owsort label-815
23c20 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
23c30 54 20 2d 20 38 37 20 2a 20 2d 20 4d 49 4e 28 20  T - 87 * - MIN( 
23c40 44 49 53 54 49 4e 43 54 20 39 30 20 29 20 46 52  DISTINCT 90 ) FR
23c50 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
23c60 0a 2d 2d 2d 2d 0d 0a 37 38 33 30 0d 0a 0d 0a 73  .----..7830....s
23c70 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
23c80 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
23c90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
23ca0 62 65 6c 2d 38 31 35 0d 0a 53 45 4c 45 43 54 20  bel-815..SELECT 
23cb0 44 49 53 54 49 4e 43 54 20 2d 20 38 37 20 2a 20  DISTINCT - 87 * 
23cc0 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  - MIN ( DISTINCT
23cd0 20 39 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20   90 ) FROM tab2 
23ce0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
23cf0 38 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  830....query I r
23d00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
23d10 20 2b 20 38 31 20 2a 20 2b 20 2d 20 63 6f 6c 32   + 81 * + - col2
23d20 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
23d30 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
23d40 0d 0a 33 38 30 37 0d 0a 38 30 31 39 0d 0a 38 31  ..3807..8019..81
23d50 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
23d60 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
23d70 20 28 20 37 36 20 29 20 46 52 4f 4d 20 74 61 62   ( 76 ) FROM tab
23d80 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
23d90 0a 37 36 0d 0a 37 36 0d 0a 37 36 0d 0a 0d 0a 6f  .76..76..76....o
23da0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
23db0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
23dc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23dd0 74 20 6c 61 62 65 6c 2d 38 31 38 0d 0a 53 45 4c  t label-818..SEL
23de0 45 43 54 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2b  ECT + SUM( ALL +
23df0 20 2b 20 34 30 20 29 20 46 52 4f 4d 20 74 61 62   + 40 ) FROM tab
23e00 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
23e10 0a 31 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .120....skipif m
23e20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
23e30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
23e40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 38  owsort label-818
23e50 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28  ..SELECT + SUM (
23e60 20 41 4c 4c 20 2b 20 2b 20 34 30 20 29 20 46 52   ALL + + 40 ) FR
23e70 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
23e80 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 0d 0a 71 75  .----..120....qu
23e90 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
23ea0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
23eb0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
23ec0 45 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 2b  E ( + + col1 ) +
23ed0 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d   + col0 IS NULL.
23ee0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
23ef0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
23f00 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 35 33   - col2 * + + 53
23f10 20 2a 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20   * + ( - col1 ) 
23f20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
23f30 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 33 30 0d 0a  0..----..11130..
23f40 32 30 31 37 37 31 0d 0a 35 32 34 37 0d 0a 0d 0a  201771..5247....
23f50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
23f60 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
23f70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
23f80 72 74 20 6c 61 62 65 6c 2d 38 32 31 0d 0a 53 45  rt label-821..SE
23f90 4c 45 43 54 20 2d 20 2b 20 53 55 4d 28 20 41 4c  LECT - + SUM( AL
23fa0 4c 20 63 6f 6c 32 20 29 20 2b 20 2d 20 2d 20 33  L col2 ) + - - 3
23fb0 35 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  5 FROM tab2 AS c
23fc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a  or0..----..-86..
23fd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
23fe0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
23ff0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24000 20 6c 61 62 65 6c 2d 38 32 31 0d 0a 53 45 4c 45   label-821..SELE
24010 43 54 20 2d 20 2b 20 53 55 4d 20 28 20 41 4c 4c  CT - + SUM ( ALL
24020 20 63 6f 6c 32 20 29 20 2b 20 2d 20 2d 20 33 35   col2 ) + - - 35
24030 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
24040 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a 0d  r0..----..-86...
24050 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24060 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
24070 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * - col2 FROM ta
24080 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
24090 20 2d 20 63 6f 6c 32 20 2a 20 31 39 20 49 53 20   - col2 * 19 IS 
240a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
240b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
240c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
240d0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
240e0 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20  cor0 WHERE col1 
240f0 2b 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54  + - col1 NOT BET
24100 57 45 45 4e 20 2b 20 63 6f 6c 32 20 41 4e 44 20  WEEN + col2 AND 
24110 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20  - col2..----..9 
24120 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
24130 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
24140 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
24150 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  ad....query III 
24160 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
24170 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
24180 57 48 45 52 45 20 2d 20 2d 20 39 38 20 49 53 20  WHERE - - 98 IS 
24190 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
241a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
241b0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b  ELECT ALL col2 +
241c0 20 2d 20 28 20 2b 20 28 20 63 6f 6c 32 20 29 20   - ( + ( col2 ) 
241d0 29 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63  ) + - col1 + - c
241e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
241f0 2d 2d 2d 0d 0a 2d 31 34 31 0d 0a 2d 31 34 32 0d  ---..-141..-142.
24200 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-97....query II
24210 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24220 20 32 35 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 63   25 * - col2 + c
24230 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63  ol0 AS col2, + c
24240 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20  ol0 * + col1 AS 
24250 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
24260 2d 2d 2d 2d 0d 0a 2d 31 31 36 30 0d 0a 31 32 31  ----..-1160..121
24270 35 0d 0a 2d 31 36 33 0d 0a 31 38 32 37 0d 0a 2d  5..-163..1827..-
24280 32 33 37 38 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79  2378..97....only
24290 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
242a0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
242b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
242c0 61 62 65 6c 2d 38 32 37 0d 0a 53 45 4c 45 43 54  abel-827..SELECT
242d0 20 41 4c 4c 20 2d 20 4d 41 58 28 20 44 49 53 54   ALL - MAX( DIST
242e0 49 4e 43 54 20 2b 20 2b 20 28 20 2b 20 32 38 20  INCT + + ( + 28 
242f0 29 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  ) ) + - COUNT( *
24300 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
24310 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d  tab2..----..-31.
24320 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
24330 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
24340 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24350 74 20 6c 61 62 65 6c 2d 38 32 37 0d 0a 53 45 4c  t label-827..SEL
24360 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20  ECT ALL - MAX ( 
24370 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 2b  DISTINCT + + ( +
24380 20 32 38 20 29 20 29 20 2b 20 2d 20 43 4f 55 4e   28 ) ) + - COUN
24390 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
243a0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
243b0 0a 2d 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-31....query I 
243c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
243d0 2d 20 2d 20 36 34 20 41 53 20 63 6f 6c 31 20 46  - - 64 AS col1 F
243e0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
243f0 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
24400 63 6f 6c 31 20 2b 20 2b 20 35 30 20 2b 20 2d 20  col1 + + 50 + - 
24410 35 20 2a 20 2d 20 2d 20 28 20 2b 20 37 37 20 29  5 * - - ( + 77 )
24420 20 41 4e 44 20 35 34 0d 0a 2d 2d 2d 2d 0d 0a 0d   AND 54..----...
24430 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
24440 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
24450 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
24460 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
24470 65 6c 2d 38 32 39 0d 0a 53 45 4c 45 43 54 20 41  el-829..SELECT A
24480 4c 4c 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c 30  LL col0 DIV col0
24490 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 63 6f 6c 31   + + + col0 col1
244a0 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  , col0 FROM tab1
244b0 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 35 31 0d 0a  ..----..52..51..
244c0 38 36 0d 0a 38 35 0d 0a 39 32 0d 0a 39 31 0d 0a  86..85..92..91..
244d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
244e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
244f0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
24500 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
24510 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
24520 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
24530 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
24540 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
24550 2d 38 32 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -829..SELECT ALL
24560 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 20 2b 20 2b   col0 / col0 + +
24570 20 2b 20 63 6f 6c 30 20 63 6f 6c 31 2c 20 63 6f   + col0 col1, co
24580 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
24590 2d 2d 0d 0a 35 32 0d 0a 35 31 0d 0a 38 36 0d 0a  --..52..51..86..
245a0 38 35 0d 0a 39 32 0d 0a 39 31 0d 0a 0d 0a 71 75  85..92..91....qu
245b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
245c0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
245d0 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  ab0 WHERE NULL <
245e0 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 63 6f 6c   NULL OR NOT col
245f0 32 20 2a 20 63 6f 6c 31 20 3c 20 4e 55 4c 4c 0d  2 * col1 < NULL.
24600 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
24610 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24620 20 2b 20 37 38 20 2b 20 2b 20 63 6f 6c 32 20 41   + 78 + + col2 A
24630 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
24640 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37 0d 0a 31 34 36  ..----..137..146
24650 0d 0a 31 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49  ..174....query I
24660 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
24670 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  T + col1 AS col2
24680 2c 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 35 20 41  , - col0 + - 5 A
24690 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
246a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
246b0 31 34 0d 0a 2d 35 36 0d 0a 34 37 0d 0a 2d 39 36  14..-56..47..-96
246c0 0d 0a 35 0d 0a 2d 39 30 0d 0a 0d 0a 6f 6e 6c 79  ..5..-90....only
246d0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
246e0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
246f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24700 61 62 65 6c 2d 38 33 33 0d 0a 53 45 4c 45 43 54  abel-833..SELECT
24710 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2b 20   ALL - COUNT( + 
24720 2d 20 39 31 20 29 20 41 53 20 63 6f 6c 30 20 46  - 91 ) AS col0 F
24730 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
24740 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
24750 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
24760 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
24770 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
24780 65 6c 2d 38 33 33 0d 0a 53 45 4c 45 43 54 20 41  el-833..SELECT A
24790 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 2d  LL - COUNT ( + -
247a0 20 39 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52   91 ) AS col0 FR
247b0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
247c0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  .----..-3....onl
247d0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
247e0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
247f0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
24800 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
24810 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24820 38 33 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  834..SELECT COUN
24830 54 28 20 2a 20 29 20 44 49 56 20 34 31 20 2d 20  T( * ) DIV 41 - 
24840 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
24850 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  tab2..----..-3..
24860 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
24870 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
24880 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24890 20 6c 61 62 65 6c 2d 38 33 34 0d 0a 53 45 4c 45   label-834..SELE
248a0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f  CT COUNT ( * ) /
248b0 20 34 31 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20   41 - COUNT ( * 
248c0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
248d0 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-3....query I
248e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
248f0 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
24900 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
24910 20 4e 4f 54 20 2b 20 28 20 2b 20 39 31 20 29 20   NOT + ( + 91 ) 
24920 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20  NOT BETWEEN ( + 
24930 63 6f 6c 31 20 29 20 41 4e 44 20 28 20 4e 55 4c  col1 ) AND ( NUL
24940 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
24950 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
24960 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24970 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
24980 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30  or0 WHERE + col0
24990 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   - - col1 + + co
249a0 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20  l0 * - - col0 + 
249b0 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
249c0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
249d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
249e0 4c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  L col0 FROM tab0
249f0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
24a00 4f 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 38 36  OT - col1 + + 86
24a10 20 2f 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54   / + col2 IS NOT
24a20 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
24a30 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
24a40 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
24a50 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
24a60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24a70 38 33 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  838..SELECT DIST
24a80 49 4e 43 54 20 38 34 20 2a 20 2d 20 2d 20 43 41  INCT 84 * - - CA
24a90 53 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  ST( col0 AS SIGN
24aa0 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  ED ) FROM tab1..
24ab0 2d 2d 2d 2d 0d 0a 34 32 38 34 0d 0a 37 31 34 30  ----..4284..7140
24ac0 0d 0a 37 36 34 34 0d 0a 0d 0a 73 6b 69 70 69 66  ..7644....skipif
24ad0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
24ae0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
24af0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24b00 33 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  38..SELECT DISTI
24b10 4e 43 54 20 38 34 20 2a 20 2d 20 2d 20 43 41 53  NCT 84 * - - CAS
24b20 54 20 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  T ( col0 AS INTE
24b30 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  GER ) FROM tab1.
24b40 0a 2d 2d 2d 2d 0d 0a 34 32 38 34 0d 0a 37 31 34  .----..4284..714
24b50 30 0d 0a 37 36 34 34 0d 0a 0d 0a 71 75 65 72 79  0..7644....query
24b60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
24b70 43 54 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f  CT col1 * - + co
24b80 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
24b90 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab0..----..-1..
24ba0 2d 34 34 31 0d 0a 2d 36 35 36 31 0d 0a 0d 0a 6f  -441..-6561....o
24bb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
24bc0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
24bd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24be0 74 20 6c 61 62 65 6c 2d 38 34 30 0d 0a 53 45 4c  t label-840..SEL
24bf0 45 43 54 20 36 38 20 2a 20 2d 20 4d 49 4e 28 20  ECT 68 * - MIN( 
24c00 2b 20 28 20 2d 20 2b 20 36 37 20 29 20 29 20 41  + ( - + 67 ) ) A
24c10 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
24c20 0d 0a 2d 2d 2d 2d 0d 0a 34 35 35 36 0d 0a 0d 0a  ..----..4556....
24c30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
24c40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
24c50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24c60 61 62 65 6c 2d 38 34 30 0d 0a 53 45 4c 45 43 54  abel-840..SELECT
24c70 20 36 38 20 2a 20 2d 20 4d 49 4e 20 28 20 2b 20   68 * - MIN ( + 
24c80 28 20 2d 20 2b 20 36 37 20 29 20 29 20 41 53 20  ( - + 67 ) ) AS 
24c90 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
24ca0 2d 2d 2d 2d 0d 0a 34 35 35 36 0d 0a 0d 0a 6f 6e  ----..4556....on
24cb0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
24cc0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
24cd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24ce0 20 6c 61 62 65 6c 2d 38 34 31 0d 0a 53 45 4c 45   label-841..SELE
24cf0 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
24d00 54 28 20 2a 20 29 20 2a 20 2d 20 2b 20 32 39 20  T( * ) * - + 29 
24d10 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
24d20 0a 2d 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-87....skipif m
24d30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24d40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
24d50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 31  owsort label-841
24d60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
24d70 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  T COUNT ( * ) * 
24d80 2d 20 2b 20 32 39 20 46 52 4f 4d 20 74 61 62 31  - + 29 FROM tab1
24d90 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a 0d 0a 71  ..----..-87....q
24da0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
24db0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24dc0 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  col2 * - - col1 
24dd0 2a 20 2b 20 2d 20 31 31 20 41 53 20 63 6f 6c 31  * + - 11 AS col1
24de0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
24df0 0d 0a 2d 31 30 38 39 0d 0a 2d 32 33 31 30 0d 0a  ..-1089..-2310..
24e00 2d 34 31 38 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  -41877....onlyif
24e10 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
24e20 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
24e30 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
24e40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 33  owsort label-843
24e50 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
24e60 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
24e70 4f 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  OT + - col1 * + 
24e80 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 43 41 53  col2 BETWEEN CAS
24e90 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
24ea0 44 20 29 20 41 4e 44 20 2d 20 2d 20 32 33 0d 0a  D ) AND - - 23..
24eb0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
24ec0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24ed0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
24ee0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24ef0 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  43..SELECT ALL *
24f00 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
24f10 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20   NOT + - col1 * 
24f20 2b 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 43  + col2 BETWEEN C
24f30 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
24f40 54 45 47 45 52 20 29 20 41 4e 44 20 2d 20 2d 20  TEGER ) AND - - 
24f50 32 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  23..----....only
24f60 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
24f70 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
24f80 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
24f90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 34  owsort label-844
24fa0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20  ..SELECT col2 * 
24fb0 2d 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54 28  - col2 * - CAST(
24fc0 20 2d 20 2b 20 33 34 20 41 53 20 53 49 47 4e 45   - + 34 AS SIGNE
24fd0 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
24fe0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33   tab0..----..-33
24ff0 33 32 33 34 0d 0a 2d 33 34 30 30 0d 0a 2d 37 35  3234..-3400..-75
25000 31 30 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  106....skipif my
25010 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
25020 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
25030 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 34 0d  wsort label-844.
25040 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2d  .SELECT col2 * -
25050 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54 20 28   col2 * - CAST (
25060 20 2d 20 2b 20 33 34 20 41 53 20 49 4e 54 45 47   - + 34 AS INTEG
25070 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ER ) AS col1 FRO
25080 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab0..----..-3
25090 33 33 32 33 34 0d 0a 2d 33 34 30 30 0d 0a 2d 37  33234..-3400..-7
250a0 35 31 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  5106....query I 
250b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
250c0 2b 20 34 34 20 2a 20 63 6f 6c 31 20 2b 20 2d 20  + 44 * col1 + - 
250d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
250e0 2d 2d 2d 2d 0d 0a 31 36 31 0d 0a 32 30 30 30 0d  ----..161..2000.
250f0 0a 35 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .520....onlyif m
25100 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
25110 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
25120 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
25130 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
25140 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 36 0d  wsort label-846.
25150 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
25160 20 29 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   ) + CAST( NULL 
25170 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20  AS DECIMAL ) AS 
25180 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
25190 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
251a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
251b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
251c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
251d0 65 6c 2d 38 34 36 0d 0a 53 45 4c 45 43 54 20 43  el-846..SELECT C
251e0 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43 41 53  OUNT ( * ) + CAS
251f0 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
25200 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
25210 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
25220 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
25230 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
25240 37 39 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  79 FROM tab2 cor
25250 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
25260 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
25270 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
25280 67 20 74 6f 20 34 30 61 32 32 36 31 63 61 61 32  g to 40a2261caa2
25290 63 35 63 64 62 66 64 38 30 39 36 35 64 37 64 66  c5cdbfd80965d7df
252a0 31 32 33 31 66 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1231f....onlyif 
252b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
252c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
252d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
252e0 6c 2d 38 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-848..SELECT AL
252f0 4c 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  L + MIN( DISTINC
25300 54 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 36  T col0 ) + + + 6
25310 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
25320 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
25330 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  77....skipif mys
25340 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
25350 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
25360 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 38 0d 0a  sort label-848..
25370 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
25380 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30   ( DISTINCT col0
25390 20 29 20 2b 20 2b 20 2b 20 36 32 20 41 53 20 63   ) + + + 62 AS c
253a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
253b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a  r0..----..77....
253c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
253d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
253e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
253f0 72 74 20 6c 61 62 65 6c 2d 38 34 39 0d 0a 53 45  rt label-849..SE
25400 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2d 20  LECT ALL MIN( - 
25410 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31  + col0 ) AS col1
25420 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
25430 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a 0d  r0..----..-91...
25440 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
25450 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
25460 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
25470 6c 61 62 65 6c 2d 38 34 39 0d 0a 53 45 4c 45 43  label-849..SELEC
25480 54 20 41 4c 4c 20 4d 49 4e 20 28 20 2d 20 2b 20  T ALL MIN ( - + 
25490 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
254a0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
254b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a 71  ..----..-91....q
254c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
254d0 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 63 6f 6c  SELECT - ( + col
254e0 31 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b  1 ) * - - col1 +
254f0 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
25500 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  2 FROM tab0 cor0
25510 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d 34  ..----..-100..-4
25520 35 31 0d 0a 2d 36 36 30 38 0d 0a 0d 0a 6f 6e 6c  51..-6608....onl
25530 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
25540 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
25550 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
25560 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25570 35 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63  51..SELECT + - c
25580 6f 6c 31 20 44 49 56 20 2b 20 63 6f 6c 30 2c 20  ol1 DIV + col0, 
25590 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
255a0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
255b0 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 32 33 0d 0a 2d 31  ----..-1..23..-1
255c0 0d 0a 34 30 0d 0a 30 0d 0a 35 38 0d 0a 0d 0a 73  ..40..0..58....s
255d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
255e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
255f0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
25600 61 62 65 6c 2d 38 35 31 0d 0a 53 45 4c 45 43 54  abel-851..SELECT
25610 20 2b 20 2d 20 63 6f 6c 31 20 2f 20 2b 20 63 6f   + - col1 / + co
25620 6c 30 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  l0, col2 AS col0
25630 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
25640 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 32 33  r0..----..-1..23
25650 0d 0a 2d 31 0d 0a 34 30 0d 0a 30 0d 0a 35 38 0d  ..-1..40..0..58.
25660 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
25670 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
25680 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
25690 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
256a0 62 65 6c 2d 38 35 32 0d 0a 53 45 4c 45 43 54 20  bel-852..SELECT 
256b0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
256c0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
256d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
256e0 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2b 20  r0 WHERE col2 + 
256f0 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20  - col2 + - col1 
25700 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
25710 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
25720 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
25730 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
25740 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
25750 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 32 0d  wsort label-852.
25760 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28  .SELECT - CAST (
25770 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
25780 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
25790 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
257a0 52 45 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32  RE col2 + - col2
257b0 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54   + - col1 IS NOT
257c0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
257d0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
257e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
257f0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
25800 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
25810 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
25820 65 6c 2d 38 35 33 0d 0a 53 45 4c 45 43 54 20 41  el-853..SELECT A
25830 4c 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  LL + CAST( NULL 
25840 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20  AS SIGNED ) * - 
25850 2d 20 63 6f 6c 32 20 2f 20 2d 20 2d 20 63 6f 6c  - col2 / - - col
25860 30 20 2a 20 28 20 2d 20 63 6f 6c 32 20 29 2c 20  0 * ( - col2 ), 
25870 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
25880 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
25890 20 57 48 45 52 45 20 4e 4f 54 20 38 37 20 2b 20   WHERE NOT 87 + 
258a0 2d 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20  - - col2 + col2 
258b0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
258c0 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
258d0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
258e0 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
258f0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 33 0d 0a  sort label-853..
25900 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53  SELECT ALL + CAS
25910 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
25920 47 45 52 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 32  GER ) * - - col2
25930 20 2f 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 28 20   / - - col0 * ( 
25940 2d 20 63 6f 6c 32 20 29 2c 20 2d 20 63 6f 6c 31  - col2 ), - col1
25950 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
25960 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
25970 20 4e 4f 54 20 38 37 20 2b 20 2d 20 2d 20 63 6f   NOT 87 + - - co
25980 6c 32 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54  l2 + col2 IS NOT
25990 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
259a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
259b0 0a 53 45 4c 45 43 54 20 2d 20 36 34 2c 20 2d 20  .SELECT - 64, - 
259c0 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
259d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
259e0 2d 2d 2d 2d 0d 0a 2d 36 34 0d 0a 2d 35 31 0d 0a  ----..-64..-51..
259f0 2d 36 34 0d 0a 2d 38 35 0d 0a 2d 36 34 0d 0a 2d  -64..-85..-64..-
25a00 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  91....onlyif mys
25a10 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
25a20 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
25a30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25a40 20 6c 61 62 65 6c 2d 38 35 35 0d 0a 53 45 4c 45   label-855..SELE
25a50 43 54 20 28 20 2d 20 2d 20 37 34 20 29 20 2a 20  CT ( - - 74 ) * 
25a60 2d 20 43 41 53 54 28 20 2d 20 37 31 20 41 53 20  - CAST( - 71 AS 
25a70 53 49 47 4e 45 44 20 29 20 2a 20 28 20 2d 20 2b  SIGNED ) * ( - +
25a80 20 28 20 2b 20 63 6f 6c 31 20 29 20 29 20 2a 20   ( + col1 ) ) * 
25a90 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20  + col0 * - col2 
25aa0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
25ab0 2d 2d 2d 2d 0d 0a 31 30 33 35 36 36 38 34 38 30  ----..1035668480
25ac0 0d 0a 31 35 33 31 32 37 38 33 30 30 0d 0a 32 38  ..1531278300..28
25ad0 33 34 39 35 33 33 32 0d 0a 0d 0a 73 6b 69 70 69  3495332....skipi
25ae0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
25af0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
25b00 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
25b10 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
25b20 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
25b30 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
25b40 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
25b50 72 74 20 6c 61 62 65 6c 2d 38 35 35 0d 0a 53 45  rt label-855..SE
25b60 4c 45 43 54 20 28 20 2d 20 2d 20 37 34 20 29 20  LECT ( - - 74 ) 
25b70 2a 20 2d 20 43 41 53 54 20 28 20 2d 20 37 31 20  * - CAST ( - 71 
25b80 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 28  AS INTEGER ) * (
25b90 20 2d 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20   - + ( + col1 ) 
25ba0 29 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63  ) * + col0 * - c
25bb0 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ol2 col0 FROM ta
25bc0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 35 36 36  b2..----..103566
25bd0 38 34 38 30 0d 0a 31 35 33 31 32 37 38 33 30 30  8480..1531278300
25be0 0d 0a 32 38 33 34 39 35 33 33 32 0d 0a 0d 0a 73  ..283495332....s
25bf0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
25c00 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
25c10 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
25c20 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
25c30 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
25c40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25c50 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
25c60 2b 20 2d 20 2b 20 63 6f 6c 30 20 63 6f 6c 31 20  + - + col0 col1 
25c70 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
25c80 0a 2d 31 37 34 0d 0a 2d 31 39 34 0d 0a 2d 33 30  .-174..-194..-30
25c90 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
25ca0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
25cb0 49 4e 43 54 20 2d 20 38 34 20 2a 20 2b 20 63 6f  INCT - 84 * + co
25cc0 6c 32 20 2a 20 63 6f 6c 32 20 2b 20 63 6f 6c 32  l2 * col2 + col2
25cd0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
25ce0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 35 35 30  b0..----..-18550
25cf0 39 0d 0a 2d 38 32 33 31 38 35 0d 0a 2d 38 33 39  9..-823185..-839
25d00 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
25d10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
25d20 20 37 35 20 2d 20 28 20 63 6f 6c 32 20 29 20 46   75 - ( col2 ) F
25d30 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
25d40 2d 32 34 0d 0a 32 38 0d 0a 36 35 0d 0a 0d 0a 71  -24..28..65....q
25d50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
25d60 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
25d70 2d 20 28 20 2d 20 31 33 20 29 20 2d 20 2d 20 34  - ( - 13 ) - - 4
25d80 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
25d90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 0d 0a  r0..----..17....
25da0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25db0 0a 53 45 4c 45 43 54 20 2b 20 31 32 20 2a 20 2d  .SELECT + 12 * -
25dc0 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 30   col0 + - + col0
25dd0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
25de0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
25df0 0d 0a 2d 35 39 38 0d 0a 2d 38 33 32 0d 0a 2d 39  ..-598..-832..-9
25e00 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  75....query II r
25e10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
25e20 4c 4c 20 2b 20 63 6f 6c 30 20 2d 20 63 6f 6c 30  LL + col0 - col0
25e30 2c 20 31 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  , 18 AS col2 FRO
25e40 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
25e50 2d 2d 2d 2d 0d 0a 30 0d 0a 31 38 0d 0a 30 0d 0a  ----..0..18..0..
25e60 31 38 0d 0a 30 0d 0a 31 38 0d 0a 0d 0a 71 75 65  18..0..18....que
25e70 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
25e80 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 20  LECT DISTINCT 1 
25e90 2f 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  / + + col2 FROM 
25ea0 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab1 WHERE NULL 
25eb0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
25ec0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
25ed0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
25ee0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
25ef0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25f00 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  63..SELECT DISTI
25f10 4e 43 54 20 2b 20 39 33 20 41 53 20 63 6f 6c 32  NCT + 93 AS col2
25f20 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 36  , COUNT( * ) * 6
25f30 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  6 FROM tab2 AS c
25f40 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
25f50 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
25f60 2d 0d 0a 39 33 0d 0a 35 39 34 0d 0a 0d 0a 73 6b  -..93..594....sk
25f70 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
25f80 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
25f90 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
25fa0 62 65 6c 2d 38 36 33 0d 0a 53 45 4c 45 43 54 20  bel-863..SELECT 
25fb0 44 49 53 54 49 4e 43 54 20 2b 20 39 33 20 41 53  DISTINCT + 93 AS
25fc0 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 20 28 20 2a   col2, COUNT ( *
25fd0 20 29 20 2a 20 36 36 20 46 52 4f 4d 20 74 61 62   ) * 66 FROM tab
25fe0 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
25ff0 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
26000 31 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 35 39 34  1..----..93..594
26010 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
26020 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
26030 2b 20 31 36 20 2a 20 34 38 20 46 52 4f 4d 20 74  + 16 * 48 FROM t
26040 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
26050 2d 0d 0a 37 36 38 0d 0a 37 36 38 0d 0a 37 36 38  -..768..768..768
26060 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26070 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
26080 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
26090 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
260a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
260b0 20 6c 61 62 65 6c 2d 38 36 35 0d 0a 53 45 4c 45   label-865..SELE
260c0 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20  CT - - COUNT( * 
260d0 29 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ) * CAST( NULL A
260e0 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
260f0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
26100 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
26110 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
26120 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26130 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
26140 72 74 20 6c 61 62 65 6c 2d 38 36 35 0d 0a 53 45  rt label-865..SE
26150 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28  LECT - - COUNT (
26160 20 2a 20 29 20 2a 20 43 41 53 54 20 28 20 4e 55   * ) * CAST ( NU
26170 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
26180 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
26190 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
261a0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
261b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
261c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
261d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
261e0 6c 2d 38 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-866..SELECT - 
261f0 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  + SUM( DISTINCT 
26200 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
26210 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
26220 0d 0a 2d 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..-121....skipif
26230 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26240 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26250 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26260 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 53  66..SELECT - + S
26270 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  UM ( DISTINCT + 
26280 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
26290 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
262a0 2d 31 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -121....onlyif m
262b0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
262c0 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
262d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
262e0 6f 72 74 20 6c 61 62 65 6c 2d 38 36 37 0d 0a 53  ort label-867..S
262f0 45 4c 45 43 54 20 41 4c 4c 20 34 39 20 2b 20 2b  ELECT ALL 49 + +
26300 20 43 41 53 54 28 20 38 37 20 41 53 20 44 45 43   CAST( 87 AS DEC
26310 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 30 20 46  IMAL ) AS col0 F
26320 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
26330 45 52 45 20 4e 55 4c 4c 20 3c 20 2b 20 63 6f 6c  ERE NULL < + col
26340 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  0..----....skipi
26350 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
26360 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
26370 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26380 38 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  867..SELECT ALL 
26390 34 39 20 2b 20 2b 20 43 41 53 54 20 28 20 38 37  49 + + CAST ( 87
263a0 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f   AS REAL ) AS co
263b0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
263c0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 2b  0 WHERE NULL < +
263d0 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
263e0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
263f0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 2c 20  .SELECT - col1, 
26400 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  + col1 FROM tab1
26410 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
26420 2d 31 34 0d 0a 31 34 0d 0a 2d 34 37 0d 0a 34 37  -14..14..-47..47
26430 0d 0a 2d 35 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69  ..-5..5....onlyi
26440 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
26450 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
26460 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
26470 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
26480 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26490 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  69..SELECT + COU
264a0 4e 54 28 20 2a 20 29 2c 20 43 4f 55 4e 54 28 20  NT( * ), COUNT( 
264b0 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
264c0 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
264d0 20 4e 4f 54 20 63 6f 6c 30 20 42 45 54 57 45 45   NOT col0 BETWEE
264e0 4e 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 4e 44  N ( + col0 ) AND
264f0 20 2d 20 33 37 20 44 49 56 20 39 31 20 2a 20 2b   - 37 DIV 91 * +
26500 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 31   col0 * - + col1
26510 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a  ..----..3..3....
26520 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
26530 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
26540 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
26550 6c 61 62 65 6c 2d 38 36 39 0d 0a 53 45 4c 45 43  label-869..SELEC
26560 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c  T + COUNT ( * ),
26570 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
26580 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63  col0 FROM tab0 c
26590 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
265a0 6c 30 20 42 45 54 57 45 45 4e 20 28 20 2b 20 63  l0 BETWEEN ( + c
265b0 6f 6c 30 20 29 20 41 4e 44 20 2d 20 33 37 20 2f  ol0 ) AND - 37 /
265c0 20 39 31 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d   91 * + col0 * -
265d0 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 33   + col1..----..3
265e0 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ..3....query II 
265f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
26600 41 4c 4c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ALL - col0 AS co
26610 6c 31 2c 20 2b 20 63 6f 6c 32 20 2d 20 63 6f 6c  l1, + col2 - col
26620 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
26630 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
26640 2d 35 31 0d 0a 30 0d 0a 2d 38 35 0d 0a 30 0d 0a  -51..0..-85..0..
26650 2d 39 31 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  -91..0....onlyif
26660 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
26670 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
26680 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
26690 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 31 0d  wsort label-871.
266a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
266b0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
266c0 45 43 49 4d 41 4c 20 29 20 2a 20 2d 20 28 20 2d  ECIMAL ) * - ( -
266d0 20 2b 20 39 38 20 29 20 2f 20 2d 20 63 6f 6c 32   + 98 ) / - col2
266e0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
266f0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
26700 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26710 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26720 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26730 37 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  71..SELECT DISTI
26740 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  NCT CAST ( NULL 
26750 41 53 20 52 45 41 4c 20 29 20 2a 20 2d 20 28 20  AS REAL ) * - ( 
26760 2d 20 2b 20 39 38 20 29 20 2f 20 2d 20 63 6f 6c  - + 98 ) / - col
26770 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
26780 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
26790 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
267a0 43 54 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74  CT - col1 FROM t
267b0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
267c0 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 42 45 54  - ( - col1 ) BET
267d0 57 45 45 4e 20 28 20 28 20 2b 20 2d 20 32 33 20  WEEN ( ( + - 23 
267e0 29 20 2b 20 2d 20 63 6f 6c 32 20 29 20 41 4e 44  ) + - col2 ) AND
267f0 20 2d 20 28 20 2d 20 32 36 20 29 0d 0a 2d 2d 2d   - ( - 26 )..---
26800 2d 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20  -..-81....query 
26810 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
26820 54 20 41 4c 4c 20 34 31 20 2a 20 2d 20 2b 20 63  T ALL 41 * - + c
26830 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
26840 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36   tab2..----..-16
26850 34 30 0d 0a 2d 32 33 37 38 0d 0a 2d 39 34 33 0d  40..-2378..-943.
26860 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
26870 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
26880 4e 43 54 20 38 31 20 2a 20 28 20 63 6f 6c 31 20  NCT 81 * ( col1 
26890 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
268a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 30 31 0d  ab0..----..1701.
268b0 0a 36 35 36 31 0d 0a 38 31 0d 0a 0d 0a 71 75 65  .6561..81....que
268c0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
268d0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
268e0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32  b1 WHERE NOT - 2
268f0 34 20 42 45 54 57 45 45 4e 20 2b 20 2b 20 35 35  4 BETWEEN + + 55
26900 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
26910 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
26920 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
26930 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
26940 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  54cad....onlyif 
26950 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
26960 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
26970 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
26980 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 36 0d 0a  sort label-876..
26990 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
269a0 2b 20 35 37 20 2b 20 28 20 2d 20 2b 20 43 41 53  + 57 + ( - + CAS
269b0 54 28 20 2b 20 2b 20 31 33 20 41 53 20 44 45 43  T( + + 13 AS DEC
269c0 49 4d 41 4c 20 29 20 29 20 46 52 4f 4d 20 74 61  IMAL ) ) FROM ta
269d0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  b1 WHERE NOT - c
269e0 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol0 IS NOT NULL.
269f0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
26a00 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
26a10 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
26a20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37  rowsort label-87
26a30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
26a40 43 54 20 2b 20 35 37 20 2b 20 28 20 2d 20 2b 20  CT + 57 + ( - + 
26a50 43 41 53 54 20 28 20 2b 20 2b 20 31 33 20 41 53  CAST ( + + 13 AS
26a60 20 52 45 41 4c 20 29 20 29 20 46 52 4f 4d 20 74   REAL ) ) FROM t
26a70 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
26a80 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
26a90 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
26aa0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
26ab0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
26ac0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
26ad0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
26ae0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
26af0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
26b00 2b 20 2b 20 39 20 63 6f 6c 30 20 46 52 4f 4d 20  + + 9 col0 FROM 
26b10 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
26b20 2d 2d 0d 0a 31 30 30 0d 0a 36 30 0d 0a 39 34 0d  --..100..60..94.
26b30 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
26b40 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
26b50 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
26b60 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
26b70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
26b80 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
26b90 45 43 54 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52  ECT col2 col2 FR
26ba0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
26bb0 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31  WHERE NOT + col1
26bc0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
26bd0 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75  23..40..58....qu
26be0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
26bf0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
26c00 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
26c10 52 45 20 28 20 2b 20 33 37 20 49 53 20 4e 55 4c  RE ( + 37 IS NUL
26c20 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
26c30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26c40 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c  LECT ALL + - col
26c50 30 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  0 + - col1 AS co
26c60 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
26c70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38  cor0..----..-138
26c80 0d 0a 2d 36 35 0d 0a 2d 39 30 0d 0a 0d 0a 6f 6e  ..-65..-90....on
26c90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
26ca0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
26cb0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
26cc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26cd0 38 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  81..SELECT DISTI
26ce0 4e 43 54 20 2d 20 38 38 20 2d 20 2d 20 43 41 53  NCT - 88 - - CAS
26cf0 54 28 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47  T( - col1 AS SIG
26d00 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52  NED ) AS col0 FR
26d10 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
26d20 0a 2d 2d 2d 2d 0d 0a 2d 31 30 39 0d 0a 2d 31 36  .----..-109..-16
26d30 39 0d 0a 2d 38 39 0d 0a 0d 0a 73 6b 69 70 69 66  9..-89....skipif
26d40 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26d50 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26d60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26d70 38 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  81..SELECT DISTI
26d80 4e 43 54 20 2d 20 38 38 20 2d 20 2d 20 43 41 53  NCT - 88 - - CAS
26d90 54 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e  T ( - col1 AS IN
26da0 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20  TEGER ) AS col0 
26db0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
26dc0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 39 0d 0a 2d  0..----..-109..-
26dd0 31 36 39 0d 0a 2d 38 39 0d 0a 0d 0a 71 75 65 72  169..-89....quer
26de0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
26df0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
26e00 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
26e10 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
26e20 20 3c 3e 20 32 20 2a 20 2b 20 63 6f 6c 31 20 2a   <> 2 * + col1 *
26e30 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col0..----....o
26e40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
26e50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
26e60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26e70 74 20 6c 61 62 65 6c 2d 38 38 33 0d 0a 53 45 4c  t label-883..SEL
26e80 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
26e90 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20   * ) * - COUNT( 
26ea0 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
26eb0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
26ec0 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66  ---..9....skipif
26ed0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26ee0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26ef0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26f00 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  83..SELECT ALL -
26f10 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
26f20 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
26f30 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
26f40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d  S cor0..----..9.
26f50 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
26f60 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
26f70 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
26f80 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
26f90 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45 45   col0 NOT BETWEE
26fa0 4e 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  N - col2 * - col
26fb0 31 20 2b 20 2d 20 63 6f 6c 30 20 41 4e 44 20 4e  1 + - col0 AND N
26fc0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
26fd0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
26fe0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
26ff0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
27000 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
27010 38 35 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  85..SELECT + col
27020 31 20 2b 20 2d 20 32 39 20 44 49 56 20 63 6f 6c  1 + - 29 DIV col
27030 30 20 44 49 56 20 2b 20 2d 20 63 6f 6c 31 20 63  0 DIV + - col1 c
27040 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  ol2, + col1 FROM
27050 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   tab1..----..14.
27060 0a 31 34 0d 0a 34 37 0d 0a 34 37 0d 0a 35 0d 0a  .14..47..47..5..
27070 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
27080 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27090 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
270a0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
270b0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
270c0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
270d0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
270e0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
270f0 62 65 6c 2d 38 38 35 0d 0a 53 45 4c 45 43 54 20  bel-885..SELECT 
27100 2b 20 63 6f 6c 31 20 2b 20 2d 20 32 39 20 2f 20  + col1 + - 29 / 
27110 63 6f 6c 30 20 2f 20 2b 20 2d 20 63 6f 6c 31 20  col0 / + - col1 
27120 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20 46 52 4f  col2, + col1 FRO
27130 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab1..----..14
27140 0d 0a 31 34 0d 0a 34 37 0d 0a 34 37 0d 0a 35 0d  ..14..47..47..5.
27150 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .5....query I ro
27160 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
27170 4c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  L col2 FROM tab1
27180 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 2b 20   WHERE - col1 + 
27190 2b 20 31 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  + 12 IS NOT NULL
271a0 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a  ..----..59..68..
271b0 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  96....onlyif mys
271c0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
271d0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
271e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
271f0 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  87..SELECT ALL C
27200 4f 55 4e 54 28 20 2a 20 29 20 2b 20 36 30 20 46  OUNT( * ) + 60 F
27210 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
27220 36 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  63....skipif mys
27230 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
27240 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
27250 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 37 0d 0a  sort label-887..
27260 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
27270 20 28 20 2a 20 29 20 2b 20 36 30 20 46 52 4f 4d   ( * ) + 60 FROM
27280 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d   tab1..----..63.
27290 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
272a0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
272b0 4e 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 38  NCT - col2 - + 8
272c0 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
272d0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30 0d  ab0..----..-130.
272e0 0a 2d 31 38 32 0d 0a 2d 39 33 0d 0a 0d 0a 71 75  .-182..-93....qu
272f0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
27300 53 45 4c 45 43 54 20 2b 20 39 33 20 41 53 20 63  SELECT + 93 AS c
27310 6f 6c 32 2c 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  ol2, col1 * + co
27320 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
27330 2d 2d 0d 0a 39 33 0d 0a 31 31 37 33 0d 0a 39 33  --..93..1173..93
27340 0d 0a 33 30 38 30 0d 0a 39 33 0d 0a 33 38 38 36  ..3080..93..3886
27350 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
27360 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
27370 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c  + col2 + + - col
27380 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
27390 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
273a0 2d 31 37 0d 0a 2d 32 33 0d 0a 2d 32 34 0d 0a 0d  -17..-23..-24...
273b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
273c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 36 20  ..SELECT ALL 66 
273d0 2f 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  / + col0 * - col
273e0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
273f0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
27400 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 4e 55 4c  E NOT NULL > NUL
27410 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
27420 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
27430 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
27440 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
27450 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
27460 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
27470 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  2..SELECT ALL + 
27480 2b 20 39 33 20 2f 20 2d 20 2b 20 43 41 53 54 28  + 93 / - + CAST(
27490 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
274a0 29 20 2a 20 31 32 20 2b 20 43 4f 55 4e 54 28 20  ) * 12 + COUNT( 
274b0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  * ) FROM tab1 co
274c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
274d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
274e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
274f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27500 20 6c 61 62 65 6c 2d 38 39 32 0d 0a 53 45 4c 45   label-892..SELE
27510 43 54 20 41 4c 4c 20 2b 20 2b 20 39 33 20 2f 20  CT ALL + + 93 / 
27520 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
27530 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 31  AS INTEGER ) * 1
27540 32 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  2 + COUNT ( * ) 
27550 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
27560 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
27570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27580 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2b  ELECT + col0 * +
27590 20 38 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53   84 FROM tab1 AS
275a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32 38   cor0..----..428
275b0 34 0d 0a 37 31 34 30 0d 0a 37 36 34 34 0d 0a 0d  4..7140..7644...
275c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
275d0 0d 0a 53 45 4c 45 43 54 20 2d 20 32 34 20 41 53  ..SELECT - 24 AS
275e0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
275f0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
27600 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
27610 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
27620 68 61 73 68 69 6e 67 20 74 6f 20 37 39 37 64 30  hashing to 797d0
27630 66 37 63 31 34 35 66 38 61 63 36 32 33 39 32 34  f7c145f8ac623924
27640 34 34 38 63 37 31 34 62 62 63 63 0d 0a 0d 0a 71  448c714bbcc....q
27650 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
27660 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 20 2d  SELECT ALL - 2 -
27670 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74   - + col1 FROM t
27680 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab1 WHERE NOT NU
27690 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
276a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
276b0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
276c0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
276d0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
276e0 6c 61 62 65 6c 2d 38 39 36 0d 0a 53 45 4c 45 43  label-896..SELEC
276f0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
27700 2a 20 2d 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 32  * - - col2, col2
27710 20 2b 20 43 41 53 54 28 20 2d 20 33 37 20 41 53   + CAST( - 37 AS
27720 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
27730 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
27740 2d 0d 0a 31 30 35 38 0d 0a 2d 31 34 0d 0a 32 35  -..1058..-14..25
27750 36 30 0d 0a 33 0d 0a 34 33 35 30 0d 0a 32 31 0d  60..3..4350..21.
27760 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
27770 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
27780 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
27790 72 74 20 6c 61 62 65 6c 2d 38 39 36 0d 0a 53 45  rt label-896..SE
277a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
277b0 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 32 2c 20 63  l0 * - - col2, c
277c0 6f 6c 32 20 2b 20 43 41 53 54 20 28 20 2d 20 33  ol2 + CAST ( - 3
277d0 37 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  7 AS INTEGER ) A
277e0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
277f0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 38 0d 0a 2d 31  ..----..1058..-1
27800 34 0d 0a 32 35 36 30 0d 0a 33 0d 0a 34 33 35 30  4..2560..3..4350
27810 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..21....onlyif m
27820 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
27830 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
27840 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
27850 72 74 20 6c 61 62 65 6c 2d 38 39 37 0d 0a 53 45  rt label-897..SE
27860 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2b  LECT ALL + ( - +
27870 20 43 41 53 54 28 20 2b 20 63 6f 6c 30 20 41 53   CAST( + col0 AS
27880 20 53 49 47 4e 45 44 20 29 20 29 20 41 53 20 63   SIGNED ) ) AS c
27890 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
278a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   cor0..----..-15
278b0 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b  ..-87..-97....sk
278c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
278d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
278e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
278f0 65 6c 2d 38 39 37 0d 0a 53 45 4c 45 43 54 20 41  el-897..SELECT A
27900 4c 4c 20 2b 20 28 20 2d 20 2b 20 43 41 53 54 20  LL + ( - + CAST 
27910 28 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  ( + col0 AS INTE
27920 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 31 20  GER ) ) AS col1 
27930 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
27940 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38  0..----..-15..-8
27950 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-97....onlyif
27960 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
27970 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
27980 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27990 65 6c 2d 38 39 38 0d 0a 53 45 4c 45 43 54 20 44  el-898..SELECT D
279a0 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28  ISTINCT + COUNT(
279b0 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
279c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
279d0 48 45 52 45 20 34 37 20 2b 20 63 6f 6c 31 20 2d  HERE 47 + col1 -
279e0 20 63 6f 6c 31 20 49 4e 20 28 20 2d 20 39 32 20   col1 IN ( - 92 
279f0 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  )..----..0....sk
27a00 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
27a10 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
27a20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27a30 65 6c 2d 38 39 38 0d 0a 53 45 4c 45 43 54 20 44  el-898..SELECT D
27a40 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
27a50 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
27a60 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
27a70 57 48 45 52 45 20 34 37 20 2b 20 63 6f 6c 31 20  WHERE 47 + col1 
27a80 2d 20 63 6f 6c 31 20 49 4e 20 28 20 2d 20 39 32  - col1 IN ( - 92
27a90 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f   )..----..0....o
27aa0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
27ab0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
27ac0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27ad0 74 20 6c 61 62 65 6c 2d 38 39 39 0d 0a 53 45 4c  t label-899..SEL
27ae0 45 43 54 20 2b 20 28 20 2d 20 28 20 2b 20 2d 20  ECT + ( - ( + - 
27af0 43 4f 55 4e 54 28 20 63 6f 6c 32 20 29 20 29 20  COUNT( col2 ) ) 
27b00 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
27b10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
27b20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
27b30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
27b40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
27b50 61 62 65 6c 2d 38 39 39 0d 0a 53 45 4c 45 43 54  abel-899..SELECT
27b60 20 2b 20 28 20 2d 20 28 20 2b 20 2d 20 43 4f 55   + ( - ( + - COU
27b70 4e 54 20 28 20 63 6f 6c 32 20 29 20 29 20 29 20  NT ( col2 ) ) ) 
27b80 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
27b90 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75  0..----..3....qu
27ba0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
27bb0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
27bc0 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20  - col0 AS col1, 
27bd0 33 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  30 FROM tab1..--
27be0 2d 2d 0d 0a 2d 35 31 0d 0a 33 30 0d 0a 2d 38 35  --..-51..30..-85
27bf0 0d 0a 33 30 0d 0a 2d 39 31 0d 0a 33 30 0d 0a 0d  ..30..-91..30...
27c00 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
27c10 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
27c20 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
27c30 57 48 45 52 45 20 4e 4f 54 20 2d 20 28 20 2d 20  WHERE NOT - ( - 
27c40 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e 55  col0 ) IS NOT NU
27c50 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
27c60 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
27c70 4c 45 43 54 20 2b 20 32 32 20 41 53 20 63 6f 6c  LECT + 22 AS col
27c80 31 2c 20 33 30 20 46 52 4f 4d 20 74 61 62 31 0d  1, 30 FROM tab1.
27c90 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 33 30 0d 0a 32  .----..22..30..2
27ca0 32 0d 0a 33 30 0d 0a 32 32 0d 0a 33 30 0d 0a 0d  2..30..22..30...
27cb0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
27cc0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
27cd0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
27ce0 57 48 45 52 45 20 63 6f 6c 30 20 2b 20 2d 20 2d  WHERE col0 + - -
27cf0 20 39 36 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   96 NOT BETWEEN 
27d00 2d 20 63 6f 6c 31 20 41 4e 44 20 2b 20 63 6f 6c  - col1 AND + col
27d10 30 20 2d 20 2b 20 39 38 20 2b 20 2b 20 2d 20 28  0 - + 98 + + - (
27d20 20 39 38 20 29 20 2b 20 63 6f 6c 32 0d 0a 2d 2d   98 ) + col2..--
27d30 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
27d40 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
27d50 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
27d60 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79  37fb43b7....only
27d70 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
27d80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
27d90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
27da0 61 62 65 6c 2d 39 30 34 0d 0a 53 45 4c 45 43 54  abel-904..SELECT
27db0 20 2d 20 35 20 2a 20 2b 20 38 36 20 2a 20 2b 20   - 5 * + 86 * + 
27dc0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  + COUNT( * ) col
27dd0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
27de0 2d 0d 0a 2d 31 32 39 30 0d 0a 0d 0a 73 6b 69 70  -..-1290....skip
27df0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
27e00 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
27e10 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
27e20 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
27e30 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
27e40 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
27e50 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
27e60 6f 72 74 20 6c 61 62 65 6c 2d 39 30 34 0d 0a 53  ort label-904..S
27e70 45 4c 45 43 54 20 2d 20 35 20 2a 20 2b 20 38 36  ELECT - 5 * + 86
27e80 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   * + + COUNT ( *
27e90 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
27ea0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 30 0d 0a  0..----..-1290..
27eb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27ec0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 31 20 2a  t..SELECT + 71 *
27ed0 20 2d 20 33 30 20 46 52 4f 4d 20 74 61 62 30 0d   - 30 FROM tab0.
27ee0 0a 2d 2d 2d 2d 0d 0a 2d 32 31 33 30 0d 0a 2d 32  .----..-2130..-2
27ef0 31 33 30 0d 0a 2d 32 31 33 30 0d 0a 0d 0a 6f 6e  130..-2130....on
27f00 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
27f10 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
27f20 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
27f30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27f40 39 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  906..SELECT DIST
27f50 49 4e 43 54 20 2b 20 63 6f 6c 30 20 41 53 20 63  INCT + col0 AS c
27f60 6f 6c 31 2c 20 38 35 20 2a 20 34 37 20 44 49 56  ol1, 85 * 47 DIV
27f70 20 63 6f 6c 32 20 2a 20 2d 20 37 34 20 41 53 20   col2 * - 74 AS 
27f80 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
27f90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S cor0..----..51
27fa0 0d 0a 2d 33 30 33 34 0d 0a 38 35 0d 0a 2d 34 39  ..-3034..85..-49
27fb0 35 38 0d 0a 39 31 0d 0a 2d 34 32 39 32 0d 0a 0d  58..91..-4292...
27fc0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
27fd0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
27fe0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
27ff0 20 6c 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45   label-906..SELE
28000 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
28010 6c 30 20 41 53 20 63 6f 6c 31 2c 20 38 35 20 2a  l0 AS col1, 85 *
28020 20 34 37 20 2f 20 63 6f 6c 32 20 2a 20 2d 20 37   47 / col2 * - 7
28030 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
28040 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
28050 2d 0d 0a 35 31 0d 0a 2d 33 30 33 34 0d 0a 38 35  -..51..-3034..85
28060 0d 0a 2d 34 39 35 38 0d 0a 39 31 0d 0a 2d 34 32  ..-4958..91..-42
28070 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  92....query I ro
28080 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
28090 2b 20 37 31 20 2b 20 2b 20 63 6f 6c 30 20 46 52  + 71 + + col0 FR
280a0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
280b0 2d 2d 0d 0a 31 32 32 0d 0a 31 35 36 0d 0a 31 36  --..122..156..16
280c0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  2....query II ro
280d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
280e0 4c 20 2d 20 38 39 2c 20 63 6f 6c 32 20 46 52 4f  L - 89, col2 FRO
280f0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
28100 2d 0d 0a 2d 38 39 0d 0a 35 39 0d 0a 2d 38 39 0d  -..-89..59..-89.
28110 0a 36 38 0d 0a 2d 38 39 0d 0a 39 36 0d 0a 0d 0a  .68..-89..96....
28120 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
28130 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 2b 20  .SELECT + ( - + 
28140 63 6f 6c 30 20 29 20 2b 20 2d 20 63 6f 6c 30 20  col0 ) + - col0 
28150 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
28160 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 38 0d 0a 2d  0..----..-128..-
28170 31 35 30 0d 0a 2d 39 32 0d 0a 0d 0a 6f 6e 6c 79  150..-92....only
28180 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
28190 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
281a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
281b0 61 62 65 6c 2d 39 31 30 0d 0a 53 45 4c 45 43 54  abel-910..SELECT
281c0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
281d0 33 36 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  36 FROM tab0 cor
281e0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a 73  0..----..33....s
281f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
28200 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
28210 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
28220 62 65 6c 2d 39 31 30 0d 0a 53 45 4c 45 43 54 20  bel-910..SELECT 
28230 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  - COUNT ( * ) + 
28240 33 36 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  36 FROM tab0 cor
28250 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a 71  0..----..33....q
28260 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
28270 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
28280 74 61 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c  tab1 WHERE + col
28290 32 20 3d 20 28 20 39 34 20 2a 20 2b 20 63 6f 6c  2 = ( 94 * + col
282a0 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  0 )..----....que
282b0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
282c0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
282d0 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b2 WHERE NOT NUL
282e0 4c 20 3c 20 28 20 2b 20 37 30 20 29 0d 0a 2d 2d  L < ( + 70 )..--
282f0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
28300 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
28310 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2d 20  STINCT - col0 - 
28320 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20  + col1 * + col2 
28330 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
28340 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 39 35 0d 0a  1..----..-1395..
28350 2d 33 32 38 37 0d 0a 2d 33 38 30 0d 0a 0d 0a 71  -3287..-380....q
28360 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28370 53 45 4c 45 43 54 20 2b 20 28 20 34 37 20 29 20  SELECT + ( 47 ) 
28380 2b 20 2b 20 34 33 20 41 53 20 63 6f 6c 31 20 46  + + 43 AS col1 F
28390 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
283a0 39 30 0d 0a 39 30 0d 0a 39 30 0d 0a 0d 0a 6f 6e  90..90..90....on
283b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
283c0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
283d0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
283e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
283f0 31 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  15..SELECT col1 
28400 2b 20 2b 20 39 38 20 44 49 56 20 37 36 20 41 53  + + 98 DIV 76 AS
28410 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
28420 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 32 0d 0a 38 32  .----..2..22..82
28430 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
28440 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
28450 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
28460 72 74 20 6c 61 62 65 6c 2d 39 31 35 0d 0a 53 45  rt label-915..SE
28470 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20 39 38  LECT col1 + + 98
28480 20 2f 20 37 36 20 41 53 20 63 6f 6c 30 20 46 52   / 76 AS col0 FR
28490 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
284a0 0d 0a 32 32 0d 0a 38 32 0d 0a 0d 0a 73 6b 69 70  ..22..82....skip
284b0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
284c0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
284d0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
284e0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
284f0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
28500 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 38 37 20  sort..SELECT 87 
28510 2b 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d  + col2 col0 FROM
28520 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 36   tab1..----..146
28530 0d 0a 31 35 35 0d 0a 31 38 33 0d 0a 0d 0a 71 75  ..155..183....qu
28540 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28550 45 4c 45 43 54 20 2d 20 33 39 20 2b 20 63 6f 6c  ELECT - 39 + col
28560 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  0 FROM tab1 WHER
28570 45 20 28 20 33 36 20 29 20 49 4e 20 28 20 37 35  E ( 36 ) IN ( 75
28580 20 2f 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   / - col0 )..---
28590 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
285a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
285b0 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 2a   + col2 + col0 *
285c0 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   + col0 AS col1 
285d0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
285e0 0a 32 36 39 37 0d 0a 37 32 38 34 0d 0a 38 33 34  .2697..7284..834
285f0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
28600 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
28610 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
28620 20 2d 20 31 37 20 2a 20 63 6f 6c 32 20 49 53 20   - 17 * col2 IS 
28630 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
28640 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
28650 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
28660 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
28670 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  43b7....query II
28680 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28690 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
286a0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
286b0 57 45 45 4e 20 2b 20 63 6f 6c 32 20 2b 20 63 6f  WEEN + col2 + co
286c0 6c 31 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d  l1 AND ( NULL ).
286d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
286e0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
286f0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
28700 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28710 6c 2d 39 32 31 0d 0a 53 45 4c 45 43 54 20 28 20  l-921..SELECT ( 
28720 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52 4f  COUNT( * ) ) FRO
28730 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
28740 20 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45   ( NULL ) BETWEE
28750 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 4e 55 4c  N NULL AND ( NUL
28760 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  L )..----..0....
28770 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
28780 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
28790 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
287a0 61 62 65 6c 2d 39 32 31 0d 0a 53 45 4c 45 43 54  abel-921..SELECT
287b0 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   ( COUNT ( * ) )
287c0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
287d0 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 42 45   NOT ( NULL ) BE
287e0 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28  TWEEN NULL AND (
287f0 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30   NULL )..----..0
28800 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28810 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
28820 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2a 20 33 32  INCT - col1 * 32
28830 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
28840 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 30 34 0d  b1..----..-1504.
28850 0a 2d 31 36 30 0d 0a 2d 34 34 38 0d 0a 0d 0a 6f  .-160..-448....o
28860 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
28870 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
28880 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28890 74 20 6c 61 62 65 6c 2d 39 32 33 0d 0a 53 45 4c  t label-923..SEL
288a0 45 43 54 20 41 4c 4c 20 2b 20 39 39 20 2a 20 43  ECT ALL + 99 * C
288b0 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
288c0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
288d0 33 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d  31 NOT BETWEEN -
288e0 20 63 6f 6c 32 20 41 4e 44 20 2d 20 63 6f 6c 30   col2 AND - col0
288f0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
28900 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
28910 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
28920 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28930 6c 2d 39 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-923..SELECT AL
28940 4c 20 2b 20 39 39 20 2a 20 43 4f 55 4e 54 20 28  L + 99 * COUNT (
28950 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57   * ) FROM tab0 W
28960 48 45 52 45 20 4e 4f 54 20 2b 20 33 31 20 4e 4f  HERE NOT + 31 NO
28970 54 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 32  T BETWEEN - col2
28980 20 41 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d   AND - col0..---
28990 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..0....query II
289a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
289b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
289c0 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63  ERE + col2 * - c
289d0 6f 6c 32 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d  ol2 IN ( col1 ).
289e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
289f0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
28a00 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
28a10 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
28a20 6f 72 74 20 6c 61 62 65 6c 2d 39 32 35 0d 0a 53  ort label-925..S
28a30 45 4c 45 43 54 20 41 4c 4c 20 33 30 20 44 49 56  ELECT ALL 30 DIV
28a40 20 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20   col0 col0 FROM 
28a50 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab1..----..0..0
28a60 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
28a70 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
28a80 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
28a90 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
28aa0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
28ab0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
28ac0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
28ad0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28ae0 61 62 65 6c 2d 39 32 35 0d 0a 53 45 4c 45 43 54  abel-925..SELECT
28af0 20 41 4c 4c 20 33 30 20 2f 20 63 6f 6c 30 20 63   ALL 30 / col0 c
28b00 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
28b10 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
28b20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
28b30 0a 53 45 4c 45 43 54 20 2d 20 39 32 20 2b 20 63  .SELECT - 92 + c
28b40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
28b50 2d 2d 2d 0d 0a 2d 33 34 0d 0a 2d 35 32 0d 0a 2d  ---..-34..-52..-
28b60 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  69....query I ro
28b70 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
28b80 4c 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 41 53  L col2 * col2 AS
28b90 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
28ba0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d  WHERE NOT NULL =
28bb0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 2a   col2 + - col1 *
28bc0 20 2b 20 34 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   + 43..----....q
28bd0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
28be0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
28bf0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab2 WHERE NOT +
28c00 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2b 20 2d   col0 * col2 + -
28c10 20 36 37 20 2a 20 63 6f 6c 32 20 49 53 20 4e 4f   67 * col2 IS NO
28c20 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
28c30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
28c40 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
28c50 20 38 32 20 2a 20 2d 20 33 30 20 41 53 20 63 6f   82 * - 30 AS co
28c60 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
28c70 2d 2d 0d 0a 2d 32 34 36 30 0d 0a 0d 0a 6f 6e 6c  --..-2460....onl
28c80 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
28c90 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
28ca0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
28cb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
28cc0 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44  0..SELECT col0 D
28cd0 49 56 20 63 6f 6c 30 20 2b 20 34 20 46 52 4f 4d  IV col0 + 4 FROM
28ce0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a   tab2..----..5..
28cf0 35 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  5..5....skipif m
28d00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
28d10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
28d20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 30  owsort label-930
28d30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20  ..SELECT col0 / 
28d40 63 6f 6c 30 20 2b 20 34 20 46 52 4f 4d 20 74 61  col0 + 4 FROM ta
28d50 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 35 0d 0a  b2..----..5..5..
28d60 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
28d70 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
28d80 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
28d90 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
28da0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
28db0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
28dc0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28dd0 6c 2d 39 33 31 0d 0a 53 45 4c 45 43 54 20 33 34  l-931..SELECT 34
28de0 20 44 49 56 20 2d 20 43 41 53 54 28 20 28 20 4d   DIV - CAST( ( M
28df0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  IN( DISTINCT + c
28e00 6f 6c 32 20 29 20 29 20 2a 20 2b 20 43 4f 55 4e  ol2 ) ) * + COUN
28e10 54 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  T( DISTINCT col0
28e20 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46   ) AS SIGNED ) F
28e30 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
28e40 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -1....skipif mys
28e50 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28e60 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
28e70 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 31 0d 0a  sort label-931..
28e80 53 45 4c 45 43 54 20 33 34 20 2f 20 2d 20 43 41  SELECT 34 / - CA
28e90 53 54 20 28 20 28 20 4d 49 4e 20 28 20 44 49 53  ST ( ( MIN ( DIS
28ea0 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29 20 29  TINCT + col2 ) )
28eb0 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53   * + COUNT ( DIS
28ec0 54 49 4e 43 54 20 63 6f 6c 30 20 29 20 41 53 20  TINCT col0 ) AS 
28ed0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
28ee0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d  ab0..----..-1...
28ef0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
28f00 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
28f10 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f  NED type: DIV fo
28f20 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
28f30 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
28f40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 32 0d  wsort label-932.
28f50 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20  .SELECT CAST( + 
28f60 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 44 49  0 AS SIGNED ) DI
28f70 56 20 63 6f 6c 30 20 2b 20 31 20 46 52 4f 4d 20  V col0 + 1 FROM 
28f80 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31  tab1..----..1..1
28f90 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
28fa0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
28fb0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
28fc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 32 0d  wsort label-932.
28fd0 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 2b  .SELECT CAST ( +
28fe0 20 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   0 AS INTEGER ) 
28ff0 2f 20 63 6f 6c 30 20 2b 20 31 20 46 52 4f 4d 20  / col0 + 1 FROM 
29000 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31  tab1..----..1..1
29010 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..1....query I r
29020 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
29030 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2d 20 63   col2 * col0 - c
29040 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20  ol2 * + col1 AS 
29050 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
29060 48 45 52 45 20 4e 4f 54 20 2d 20 38 38 20 2a 20  HERE NOT - 88 * 
29070 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  - col1 IS NULL..
29080 2d 2d 2d 2d 0d 0a 2d 32 32 33 31 0d 0a 2d 35 36  ----..-2231..-56
29090 34 30 0d 0a 2d 38 32 33 36 0d 0a 0d 0a 6f 6e 6c  40..-8236....onl
290a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
290b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
290c0 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
290d0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
290e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
290f0 39 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  934..SELECT DIST
29100 49 4e 43 54 20 31 36 20 44 49 56 20 2b 20 43 4f  INCT 16 DIV + CO
29110 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
29120 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20  b0 WHERE - col0 
29130 2a 20 37 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  * 77 IS NOT NULL
29140 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69  ..----..5....ski
29150 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
29160 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
29170 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29180 6c 2d 39 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-934..SELECT DI
29190 53 54 49 4e 43 54 20 31 36 20 2f 20 2b 20 43 4f  STINCT 16 / + CO
291a0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
291b0 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  ab0 WHERE - col0
291c0 20 2a 20 37 37 20 49 53 20 4e 4f 54 20 4e 55 4c   * 77 IS NOT NUL
291d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 6f 6e  L..----..5....on
291e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
291f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
29200 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29210 20 6c 61 62 65 6c 2d 39 33 35 0d 0a 53 45 4c 45   label-935..SELE
29220 43 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d 28  CT DISTINCT SUM(
29230 20 37 37 20 29 20 2a 20 2d 20 37 38 20 41 53 20   77 ) * - 78 AS 
29240 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
29250 2d 2d 2d 2d 0d 0a 2d 31 38 30 31 38 0d 0a 0d 0a  ----..-18018....
29260 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29270 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
29280 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29290 61 62 65 6c 2d 39 33 35 0d 0a 53 45 4c 45 43 54  abel-935..SELECT
292a0 20 44 49 53 54 49 4e 43 54 20 53 55 4d 20 28 20   DISTINCT SUM ( 
292b0 37 37 20 29 20 2a 20 2d 20 37 38 20 41 53 20 63  77 ) * - 78 AS c
292c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
292d0 2d 2d 2d 0d 0a 2d 31 38 30 31 38 0d 0a 0d 0a 71  ---..-18018....q
292e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
292f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
29300 2b 20 34 32 20 2f 20 2b 20 28 20 31 37 20 29 20  + 42 / + ( 17 ) 
29310 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
29320 30 20 57 48 45 52 45 20 2d 20 37 35 20 3e 3d 20  0 WHERE - 75 >= 
29330 2b 20 32 30 20 2f 20 63 6f 6c 30 0d 0a 2d 2d 2d  + 20 / col0..---
29340 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
29350 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
29360 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
29370 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
29380 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
29390 43 54 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e  CT + MIN( DISTIN
293a0 43 54 20 28 20 2d 20 28 20 63 6f 6c 31 20 29 20  CT ( - ( col1 ) 
293b0 29 20 29 20 2a 20 2b 20 38 31 20 46 52 4f 4d 20  ) ) * + 81 FROM 
293c0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 33  tab2..----..-623
293d0 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
293e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
293f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
29400 6f 72 74 20 6c 61 62 65 6c 2d 39 33 37 0d 0a 53  ort label-937..S
29410 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
29420 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20   MIN ( DISTINCT 
29430 28 20 2d 20 28 20 63 6f 6c 31 20 29 20 29 20 29  ( - ( col1 ) ) )
29440 20 2a 20 2b 20 38 31 20 46 52 4f 4d 20 74 61 62   * + 81 FROM tab
29450 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 33 37 0d 0a  2..----..-6237..
29460 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
29470 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
29480 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
29490 45 20 2d 20 38 34 20 2b 20 63 6f 6c 31 20 2f 20  E - 84 + col1 / 
294a0 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 4e 55 4c  col2 BETWEEN NUL
294b0 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
294c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
294d0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
294e0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
294f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29500 61 62 65 6c 2d 39 33 39 0d 0a 53 45 4c 45 43 54  abel-939..SELECT
29510 20 2b 20 32 33 20 44 49 56 20 63 6f 6c 30 20 46   + 23 DIV col0 F
29520 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
29530 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  0..0..1....skipi
29540 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29550 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29560 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29570 39 33 39 0d 0a 53 45 4c 45 43 54 20 2b 20 32 33  939..SELECT + 23
29580 20 2f 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   / col0 FROM tab
29590 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31  0..----..0..0..1
295a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
295b0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
295c0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
295d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
295e0 61 62 65 6c 2d 39 34 30 0d 0a 53 45 4c 45 43 54  abel-940..SELECT
295f0 20 2d 20 63 6f 6c 31 20 44 49 56 20 36 34 20 41   - col1 DIV 64 A
29600 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
29610 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
29620 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
29630 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
29640 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29650 74 20 6c 61 62 65 6c 2d 39 34 30 0d 0a 53 45 4c  t label-940..SEL
29660 45 43 54 20 2d 20 63 6f 6c 31 20 2f 20 36 34 20  ECT - col1 / 64 
29670 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
29680 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  1..----..0..0..0
29690 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
296a0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
296b0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
296c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 31  owsort label-941
296d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
296e0 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
296f0 20 2b 20 35 34 20 41 53 20 63 6f 6c 32 20 46 52   + 54 AS col2 FR
29700 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
29710 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
29720 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
29730 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
29740 6f 72 74 20 6c 61 62 65 6c 2d 39 34 31 0d 0a 53  ort label-941..S
29750 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
29760 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
29770 20 35 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   54 AS col2 FROM
29780 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   tab2..----..51.
29790 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
297a0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
297b0 32 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 31  2 + + col2 * + 1
297c0 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
297d0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 36 30 0d  ab2..----..1160.
297e0 0a 34 36 30 0d 0a 38 30 30 0d 0a 0d 0a 71 75 65  .460..800....que
297f0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
29800 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
29810 62 31 20 57 48 45 52 45 20 2b 20 35 20 3e 3d 20  b1 WHERE + 5 >= 
29820 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
29830 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
29840 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
29850 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29860 20 6c 61 62 65 6c 2d 39 34 34 0d 0a 53 45 4c 45   label-944..SELE
29870 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
29880 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
29890 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 4e 4f   WHERE - col2 NO
298a0 54 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20 2b 20  T IN ( + col1 + 
298b0 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  col2 )..----..3.
298c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
298d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
298e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
298f0 74 20 6c 61 62 65 6c 2d 39 34 34 0d 0a 53 45 4c  t label-944..SEL
29900 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
29910 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
29920 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20  b1 WHERE - col2 
29930 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20  NOT IN ( + col1 
29940 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col2 )..----..
29950 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
29960 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
29970 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
29980 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34  rowsort label-94
29990 35 0d 0a 53 45 4c 45 43 54 20 2b 20 31 33 20 2b  5..SELECT + 13 +
299a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
299b0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d   tab0..----..16.
299c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
299d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
299e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
299f0 74 20 6c 61 62 65 6c 2d 39 34 35 0d 0a 53 45 4c  t label-945..SEL
29a00 45 43 54 20 2b 20 31 33 20 2b 20 43 4f 55 4e 54  ECT + 13 + COUNT
29a10 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
29a20 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a 6f 6e  ..----..16....on
29a30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
29a40 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
29a50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29a60 20 6c 61 62 65 6c 2d 39 34 36 0d 0a 53 45 4c 45   label-946..SELE
29a70 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 49  CT DISTINCT - MI
29a80 4e 28 20 63 6f 6c 31 20 29 20 2a 20 38 32 20 41  N( col1 ) * 82 A
29a90 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
29aa0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29ab0 2d 34 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -410....skipif m
29ac0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
29ad0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
29ae0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 36  owsort label-946
29af0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29b00 54 20 2d 20 4d 49 4e 20 28 20 63 6f 6c 31 20 29  T - MIN ( col1 )
29b10 20 2a 20 38 32 20 41 53 20 63 6f 6c 32 20 46 52   * 82 AS col2 FR
29b20 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
29b30 0a 2d 2d 2d 2d 0d 0a 2d 34 31 30 0d 0a 0d 0a 6f  .----..-410....o
29b40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
29b50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
29b60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29b70 74 20 6c 61 62 65 6c 2d 39 34 37 0d 0a 53 45 4c  t label-947..SEL
29b80 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
29b90 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
29ba0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a  WHERE NOT col0 *
29bb0 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 49 4e 20 28   - col1 NOT IN (
29bc0 20 2d 20 32 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30   - 25 )..----..0
29bd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
29be0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
29bf0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
29c00 72 74 20 6c 61 62 65 6c 2d 39 34 37 0d 0a 53 45  rt label-947..SE
29c10 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LECT + COUNT ( *
29c20 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
29c30 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30  0 WHERE NOT col0
29c40 20 2a 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 49 4e   * - col1 NOT IN
29c50 20 28 20 2d 20 32 35 20 29 0d 0a 2d 2d 2d 2d 0d   ( - 25 )..----.
29c60 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
29c70 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
29c80 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
29c90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29ca0 20 6c 61 62 65 6c 2d 39 34 38 0d 0a 53 45 4c 45   label-948..SELE
29cb0 43 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20  CT ( - col1 ) + 
29cc0 28 20 33 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( 3 ) FROM tab0 
29cd0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
29ce0 54 20 2d 20 28 20 2d 20 36 32 20 29 20 2b 20 2b  T - ( - 62 ) + +
29cf0 20 32 31 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c   21 BETWEEN NULL
29d00 20 41 4e 44 20 2b 20 43 41 53 54 28 20 63 6f 6c   AND + CAST( col
29d10 31 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d  1 AS SIGNED )..-
29d20 2d 2d 2d 0d 0a 2d 31 38 0d 0a 2d 37 38 0d 0a 32  ---..-18..-78..2
29d30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
29d40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
29d50 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
29d60 72 74 20 6c 61 62 65 6c 2d 39 34 38 0d 0a 53 45  rt label-948..SE
29d70 4c 45 43 54 20 28 20 2d 20 63 6f 6c 31 20 29 20  LECT ( - col1 ) 
29d80 2b 20 28 20 33 20 29 20 46 52 4f 4d 20 74 61 62  + ( 3 ) FROM tab
29d90 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
29da0 4e 4f 54 20 2d 20 28 20 2d 20 36 32 20 29 20 2b  NOT - ( - 62 ) +
29db0 20 2b 20 32 31 20 42 45 54 57 45 45 4e 20 4e 55   + 21 BETWEEN NU
29dc0 4c 4c 20 41 4e 44 20 2b 20 43 41 53 54 20 28 20  LL AND + CAST ( 
29dd0 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
29de0 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 2d 37  )..----..-18..-7
29df0 38 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  8..2....onlyif m
29e00 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
29e10 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
29e20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29e30 2d 39 34 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -949..SELECT DIS
29e40 54 49 4e 43 54 20 2b 20 28 20 2d 20 53 55 4d 28  TINCT + ( - SUM(
29e50 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 29 20   ALL + col1 ) ) 
29e60 2a 20 2b 20 28 20 2d 20 31 36 20 29 20 41 53 20  * + ( - 16 ) AS 
29e70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
29e80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
29e90 34 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  48....skipif mys
29ea0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
29eb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
29ec0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 39 0d 0a  sort label-949..
29ed0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
29ee0 2b 20 28 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20  + ( - SUM ( ALL 
29ef0 2b 20 63 6f 6c 31 20 29 20 29 20 2a 20 2b 20 28  + col1 ) ) * + (
29f00 20 2d 20 31 36 20 29 20 41 53 20 63 6f 6c 32 20   - 16 ) AS col2 
29f10 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
29f20 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 34 38 0d 0a 0d  0..----..1648...
29f30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
29f40 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
29f50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
29f60 6f 72 74 20 6c 61 62 65 6c 2d 39 35 30 0d 0a 53  ort label-950..S
29f70 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49 4e 28  ELECT ALL - MIN(
29f80 20 41 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c 31 20   ALL - ( - col1 
29f90 29 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ) ) col2 FROM ta
29fa0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a  b1..----..-5....
29fb0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29fc0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
29fd0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
29fe0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
29ff0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2a000 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2a010 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2a020 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2a030 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  0..SELECT ALL - 
2a040 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 28 20 2d 20  MIN ( ALL - ( - 
2a050 63 6f 6c 31 20 29 20 29 20 63 6f 6c 32 20 46 52  col1 ) ) col2 FR
2a060 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2a070 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
2a080 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2a090 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2a0a0 20 4e 4f 54 20 28 20 37 35 20 29 20 42 45 54 57   NOT ( 75 ) BETW
2a0b0 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44  EEN ( NULL ) AND
2a0c0 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39   - col2..----..9
2a0d0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
2a0e0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
2a0f0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
2a100 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  a49....skipif po
2a110 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2a120 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2a130 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2a140 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2a150 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2a160 0a 53 45 4c 45 43 54 20 37 39 20 2a 20 2b 20 63  .SELECT 79 * + c
2a170 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol2 col1 FROM ta
2a180 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 36 36 31 0d 0a  b1..----..4661..
2a190 35 33 37 32 0d 0a 37 35 38 34 0d 0a 0d 0a 71 75  5372..7584....qu
2a1a0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2a1b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2a1c0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
2a1d0 52 45 20 63 6f 6c 30 20 2a 20 39 36 20 2b 20 63  RE col0 * 96 + c
2a1e0 6f 6c 32 20 2a 20 33 36 20 3e 20 2b 20 63 6f 6c  ol2 * 36 > + col
2a1f0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
2a200 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
2a210 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
2a220 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
2a230 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2a240 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2a250 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2a260 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a270 6c 2d 39 35 34 0d 0a 53 45 4c 45 43 54 20 2b 20  l-954..SELECT + 
2a280 2b 20 28 20 33 36 20 29 20 44 49 56 20 35 39 20  + ( 36 ) DIV 59 
2a290 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2a2a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2a2b0 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
2a2c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a2d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a2e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a2f0 2d 39 35 34 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -954..SELECT + +
2a300 20 28 20 33 36 20 29 20 2f 20 35 39 20 41 53 20   ( 36 ) / 59 AS 
2a310 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2a320 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2a330 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .0..0....onlyif 
2a340 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2a350 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2a360 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a370 6c 2d 39 35 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-955..SELECT DI
2a380 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20  STINCT + COUNT( 
2a390 2a 20 29 20 2a 20 30 20 46 52 4f 4d 20 74 61 62  * ) * 0 FROM tab
2a3a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2a3b0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
2a3c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2a3d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2a3e0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 35 0d 0a  sort label-955..
2a3f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2a400 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
2a410 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
2a420 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
2a430 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2a440 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
2a450 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
2a460 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
2a470 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45 43 54 20  bel-956..SELECT 
2a480 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  * FROM tab2 cor0
2a490 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 43   WHERE NOT ( - C
2a4a0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
2a4b0 49 4d 41 4c 20 29 20 2a 20 2b 20 63 6f 6c 32 20  IMAL ) * + col2 
2a4c0 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  ) < NULL..----..
2a4d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2a4e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2a4f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2a500 72 74 20 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45  rt label-956..SE
2a510 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
2a520 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2a530 28 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ( - CAST ( NULL 
2a540 41 53 20 52 45 41 4c 20 29 20 2a 20 2b 20 63 6f  AS REAL ) * + co
2a550 6c 32 20 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l2 ) < NULL..---
2a560 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2a570 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2a580 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2a590 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2a5a0 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
2a5b0 43 54 20 31 35 20 2a 20 43 4f 55 4e 54 28 20 2a  CT 15 * COUNT( *
2a5c0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
2a5d0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
2a5e0 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  ULL BETWEEN NULL
2a5f0 20 41 4e 44 20 28 20 2b 20 63 6f 6c 32 20 2b 20   AND ( + col2 + 
2a600 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col1 )..----..
2a610 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2a620 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2a630 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2a640 6f 72 74 20 6c 61 62 65 6c 2d 39 35 37 0d 0a 53  ort label-957..S
2a650 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31  ELECT DISTINCT 1
2a660 35 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  5 * COUNT ( * ) 
2a670 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2a680 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
2a690 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
2a6a0 44 20 28 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63  D ( + col2 + - c
2a6b0 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ol1 )..----..0..
2a6c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2a6d0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2a6e0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2a6f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a700 65 6c 2d 39 35 38 0d 0a 53 45 4c 45 43 54 20 44  el-958..SELECT D
2a710 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32  ISTINCT - + col2
2a720 20 44 49 56 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   DIV + col1 FROM
2a730 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
2a740 0d 0a 2d 31 0d 0a 2d 31 31 0d 0a 2d 36 0d 0a 0d  ..-1..-11..-6...
2a750 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2a760 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2a770 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a780 6c 61 62 65 6c 2d 39 35 38 0d 0a 53 45 4c 45 43  label-958..SELEC
2a790 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  T DISTINCT - + c
2a7a0 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31 20 46 52 4f  ol2 / + col1 FRO
2a7b0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2a7c0 2d 0d 0a 2d 31 0d 0a 2d 31 31 0d 0a 2d 36 0d 0a  -..-1..-11..-6..
2a7d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2a7e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
2a7f0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
2a800 54 20 28 20 39 30 20 2b 20 31 37 20 29 20 4e 4f  T ( 90 + 17 ) NO
2a810 54 20 49 4e 20 28 20 63 6f 6c 32 20 2a 20 32 37  T IN ( col2 * 27
2a820 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
2a830 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2a840 45 43 54 20 41 4c 4c 20 2b 20 39 38 20 2a 20 2b  ECT ALL + 98 * +
2a850 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31   - col2 * - col1
2a860 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 31   + + col0 * col1
2a870 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2a880 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 33 30 30  b2..----..117300
2a890 0d 0a 33 30 36 37 36 38 0d 0a 33 38 35 38 35 33  ..306768..385853
2a8a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a8b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 32  ort..SELECT + 22
2a8c0 20 2b 20 2b 20 34 34 20 46 52 4f 4d 20 74 61 62   + + 44 FROM tab
2a8d0 32 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 36 36 0d  2..----..66..66.
2a8e0 0a 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .66....query I r
2a8f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2a900 20 28 20 2d 20 2b 20 34 33 20 29 20 2b 20 2b 20   ( - + 43 ) + + 
2a910 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 41 53 20 63  col0 * col2 AS c
2a920 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
2a930 2d 2d 2d 0d 0a 36 36 32 0d 0a 38 32 37 0d 0a 39  ---..662..827..9
2a940 35 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  560....query III
2a950 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a960 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
2a970 52 45 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 30  RE + col0 + col0
2a980 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   = NULL..----...
2a990 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2a9a0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
2a9b0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2a9c0 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2b 20 63 6f   NOT - col0 + co
2a9d0 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
2a9e0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2a9f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2aa00 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  col0 + col0 * - 
2aa10 31 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  10 AS col2 FROM 
2aa20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2aa30 2d 2d 0d 0a 2d 34 31 34 0d 0a 2d 35 37 36 0d 0a  --..-414..-576..
2aa40 2d 36 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -675....query I 
2aa50 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2aa60 2d 20 63 6f 6c 30 20 2a 20 2d 20 35 30 20 2d 20  - col0 * - 50 - 
2aa70 2d 20 38 39 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 89 AS col2 FRO
2aa80 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2aa90 2d 2d 2d 2d 0d 0a 34 34 33 39 0d 0a 34 39 33 39  ----..4439..4939
2aaa0 0d 0a 38 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..839....query I
2aab0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2aac0 20 2d 20 28 20 33 20 29 20 2a 20 2b 20 63 6f 6c   - ( 3 ) * + col
2aad0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
2aae0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 37 0d  or0..----..-177.
2aaf0 0a 2d 32 30 34 0d 0a 2d 32 38 38 0d 0a 0d 0a 6f  .-204..-288....o
2ab00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2ab10 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
2ab20 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2ab30 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2ab40 6c 2d 39 36 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-968..SELECT DI
2ab50 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
2ab60 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2ab70 20 4e 4f 54 20 2b 20 43 41 53 54 28 20 4e 55 4c   NOT + CAST( NUL
2ab80 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20  L AS SIGNED ) - 
2ab90 2d 20 33 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  - 31 IS NOT NULL
2aba0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
2abb0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
2abc0 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
2abd0 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
2abe0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2abf0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2ac00 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2ac10 20 6c 61 62 65 6c 2d 39 36 38 0d 0a 53 45 4c 45   label-968..SELE
2ac20 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
2ac30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2ac40 57 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54  WHERE NOT + CAST
2ac50 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
2ac60 45 52 20 29 20 2d 20 2d 20 33 31 20 49 53 20 4e  ER ) - - 31 IS N
2ac70 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
2ac80 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
2ac90 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
2aca0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
2acb0 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  3b7....query III
2acc0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2acd0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
2ace0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
2acf0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
2ad00 57 45 45 4e 20 28 20 36 34 20 29 20 2a 20 2d 20  WEEN ( 64 ) * - 
2ad10 36 37 20 2b 20 63 6f 6c 30 20 41 4e 44 20 63 6f  67 + col0 AND co
2ad20 6c 30 20 2d 20 28 20 37 36 20 29 20 2a 20 2d 20  l0 - ( 76 ) * - 
2ad30 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
2ad40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2ad50 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2ad60 6f 6c 32 20 2b 20 2b 20 28 20 35 34 20 29 20 46  ol2 + + ( 54 ) F
2ad70 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2ad80 31 30 31 0d 0a 31 35 33 0d 0a 36 34 0d 0a 0d 0a  101..153..64....
2ad90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2ada0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2adb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2adc0 72 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a 53 45  rt label-971..SE
2add0 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 44 49  LECT ALL SUM( DI
2ade0 53 54 49 4e 43 54 20 32 37 20 29 20 41 53 20 63  STINCT 27 ) AS c
2adf0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 2c 20 74  ol1 FROM tab1, t
2ae00 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
2ae10 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  27....skipif mys
2ae20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2ae30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2ae40 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a  sort label-971..
2ae50 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28  SELECT ALL SUM (
2ae60 20 44 49 53 54 49 4e 43 54 20 32 37 20 29 20 41   DISTINCT 27 ) A
2ae70 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
2ae80 2c 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  , tab0 cor0..---
2ae90 2d 0d 0a 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49  -..27....query I
2aea0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2aeb0 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20 34 39   DISTINCT ( - 49
2aec0 20 29 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   ) - + col0 FROM
2aed0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2aee0 2d 2d 2d 0d 0a 2d 31 31 33 0d 0a 2d 31 32 34 0d  ---..-113..-124.
2aef0 0a 2d 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-95....onlyif m
2af00 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2af10 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2af20 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
2af30 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 33 0d 0a  sort label-973..
2af40 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2af50 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2af60 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
2af70 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63 6f   SIGNED ) * + co
2af80 6c 31 20 2b 20 2b 20 35 39 20 49 53 20 4e 4f 54  l1 + + 59 IS NOT
2af90 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
2afa0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2afb0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2afc0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2afd0 6c 61 62 65 6c 2d 39 37 33 0d 0a 53 45 4c 45 43  label-973..SELEC
2afe0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
2aff0 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 43 41   cor0 WHERE - CA
2b000 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2b010 45 47 45 52 20 29 20 2a 20 2b 20 63 6f 6c 31 20  EGER ) * + col1 
2b020 2b 20 2b 20 35 39 20 49 53 20 4e 4f 54 20 4e 55  + + 59 IS NOT NU
2b030 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
2b040 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2b050 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2b060 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2b070 61 62 65 6c 2d 39 37 34 0d 0a 53 45 4c 45 43 54  abel-974..SELECT
2b080 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 44 49 53 54   ALL + MIN( DIST
2b090 49 4e 43 54 20 63 6f 6c 32 20 29 20 63 6f 6c 32  INCT col2 ) col2
2b0a0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
2b0b0 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b 69  .----..10....ski
2b0c0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2b0d0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
2b0e0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2b0f0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2b100 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2b110 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2b120 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2b130 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 34 0d 0a  sort label-974..
2b140 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
2b150 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32   ( DISTINCT col2
2b160 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
2b170 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  0 cor0..----..10
2b180 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2b190 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2b1a0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
2b1b0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2b1c0 2d 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 49  - ( + - col0 ) I
2b1d0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2b1e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2b1f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 35  ort..SELECT - 85
2b200 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32   * col0 + - col2
2b210 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31   - col2 * + col1
2b220 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
2b230 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 31 39 0d 0a 2d  .----..-10319..-
2b240 35 31 30 36 0d 0a 2d 38 35 36 30 0d 0a 0d 0a 71  5106..-8560....q
2b250 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2b260 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20  SELECT - - col1 
2b270 2a 20 2b 20 37 38 20 46 52 4f 4d 20 74 61 62 32  * + 78 FROM tab2
2b280 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2b290 33 39 37 38 0d 0a 35 32 32 36 0d 0a 36 30 30 36  3978..5226..6006
2b2a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2b2b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2b2c0 2d 20 63 6f 6c 32 20 2a 20 32 34 20 46 52 4f 4d  - col2 * 24 FROM
2b2d0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab2..----..-13
2b2e0 39 32 0d 0a 2d 35 35 32 0d 0a 2d 39 36 30 0d 0a  92..-552..-960..
2b2f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b300 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
2b310 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 30   * - col1 * col0
2b320 20 2a 20 2d 20 2b 20 33 31 20 46 52 4f 4d 20 74   * - + 31 FROM t
2b330 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 37 32  ab2..----..-1672
2b340 36 39 38 0d 0a 2d 36 31 31 30 37 32 30 0d 0a 2d  698..-6110720..-
2b350 39 30 33 34 39 35 30 0d 0a 0d 0a 71 75 65 72 79  9034950....query
2b360 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2b370 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b  ECT + col1 * + +
2b380 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 63   col2 AS col0, c
2b390 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
2b3a0 2d 2d 2d 0d 0a 32 31 30 0d 0a 31 30 0d 0a 33 38  ---..210..10..38
2b3b0 30 37 0d 0a 34 37 0d 0a 39 39 0d 0a 39 39 0d 0a  07..47..99..99..
2b3c0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2b3d0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 63  rt..SELECT - ( c
2b3e0 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 2c 20 63  ol0 ) AS col0, c
2b3f0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
2b400 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   tab1..----..-51
2b410 0d 0a 39 36 0d 0a 2d 38 35 0d 0a 35 39 0d 0a 2d  ..96..-85..59..-
2b420 39 31 0d 0a 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  91..68....onlyif
2b430 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2b440 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2b450 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
2b460 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 32 0d 0a  sort label-982..
2b470 53 45 4c 45 43 54 20 28 20 63 6f 6c 31 20 29 20  SELECT ( col1 ) 
2b480 44 49 56 20 2d 20 35 35 20 2b 20 2d 20 34 34 20  DIV - 55 + - 44 
2b490 2b 20 28 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20  + ( col1 + col1 
2b4a0 29 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ) * - col0 AS co
2b4b0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
2b4c0 2d 2d 0d 0a 2d 32 33 38 0d 0a 2d 32 34 37 35 0d  --..-238..-2475.
2b4d0 0a 2d 33 36 39 38 0d 0a 0d 0a 73 6b 69 70 69 66  .-3698....skipif
2b4e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2b4f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2b500 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b510 38 32 0d 0a 53 45 4c 45 43 54 20 28 20 63 6f 6c  82..SELECT ( col
2b520 31 20 29 20 2f 20 2d 20 35 35 20 2b 20 2d 20 34  1 ) / - 55 + - 4
2b530 34 20 2b 20 28 20 63 6f 6c 31 20 2b 20 63 6f 6c  4 + ( col1 + col
2b540 31 20 29 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20  1 ) * - col0 AS 
2b550 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2b560 2d 2d 2d 2d 0d 0a 2d 32 33 38 0d 0a 2d 32 34 37  ----..-238..-247
2b570 35 0d 0a 2d 33 36 39 38 0d 0a 0d 0a 71 75 65 72  5..-3698....quer
2b580 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2b590 4c 45 43 54 20 41 4c 4c 20 2d 20 39 38 20 2a 20  LECT ALL - 98 * 
2b5a0 2d 20 36 30 2c 20 38 35 20 41 53 20 63 6f 6c 32  - 60, 85 AS col2
2b5b0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2b5c0 0d 0a 35 38 38 30 0d 0a 38 35 0d 0a 35 38 38 30  ..5880..85..5880
2b5d0 0d 0a 38 35 0d 0a 35 38 38 30 0d 0a 38 35 0d 0a  ..85..5880..85..
2b5e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b5f0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2b600 43 54 20 2b 20 28 20 2b 20 28 20 2d 20 63 6f 6c  CT + ( + ( - col
2b610 31 20 29 20 29 20 2a 20 63 6f 6c 30 20 41 53 20  1 ) ) * col0 AS 
2b620 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
2b630 2d 2d 2d 2d 0d 0a 2d 32 33 34 36 0d 0a 2d 34 39  ----..-2346..-49
2b640 32 38 0d 0a 2d 35 30 32 35 0d 0a 0d 0a 71 75 65  28..-5025....que
2b650 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b660 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2b670 36 35 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46 52  65 * - - col0 FR
2b680 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
2b690 33 31 35 0d 0a 35 35 32 35 0d 0a 35 39 31 35 0d  315..5525..5915.
2b6a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2b6b0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39  rt..SELECT ALL 9
2b6c0 34 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  4 * + col0 AS co
2b6d0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
2b6e0 2d 2d 0d 0a 34 33 32 34 0d 0a 36 30 31 36 0d 0a  --..4324..6016..
2b6f0 37 30 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  7050....query II
2b700 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2b710 20 41 4c 4c 20 2d 20 2b 20 32 35 20 2a 20 63 6f   ALL - + 25 * co
2b720 6c 30 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  l0, col1 AS col1
2b730 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2b740 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 37 35 0d  r0..----..-2175.
2b750 0a 32 31 0d 0a 2d 32 34 32 35 0d 0a 31 0d 0a 2d  .21..-2425..1..-
2b760 33 37 35 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79  375..81....query
2b770 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2b780 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
2b790 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2b7a0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
2b7b0 4c 20 4e 4f 54 20 49 4e 20 28 20 2d 20 28 20 2d  L NOT IN ( - ( -
2b7c0 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   col0 ) )..----.
2b7d0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2b7e0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2b7f0 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20  IGNED type: DIV 
2b800 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2b810 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2b820 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2b830 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
2b840 43 54 20 28 20 63 6f 6c 31 20 29 20 44 49 56 20  CT ( col1 ) DIV 
2b850 43 41 53 54 28 20 2b 20 2b 20 63 6f 6c 31 20 41  CAST( + + col1 A
2b860 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 63  S SIGNED ) * - c
2b870 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
2b880 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2b890 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d  ---..-46..-64..-
2b8a0 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  75....skipif mys
2b8b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2b8c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2b8d0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 39 0d 0a  sort label-989..
2b8e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2b8f0 28 20 63 6f 6c 31 20 29 20 2f 20 43 41 53 54 20  ( col1 ) / CAST 
2b900 28 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e  ( + + col1 AS IN
2b910 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30  TEGER ) * - col0
2b920 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2b930 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2b940 0d 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d  ..-46..-64..-75.
2b950 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2b960 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
2b970 30 20 2b 20 38 32 20 41 53 20 63 6f 6c 32 20 46  0 + 82 AS col2 F
2b980 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
2b990 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 31  ERE NOT ( - col1
2b9a0 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 29 20 49 53   * + - col2 ) IS
2b9b0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d   NULL..----..18.
2b9c0 0a 33 36 0d 0a 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  .36..7....onlyif
2b9d0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2b9e0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2b9f0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
2ba00 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 31 0d 0a  sort label-991..
2ba10 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
2ba20 30 20 44 49 56 20 33 39 20 2a 20 63 6f 6c 31 20  0 DIV 39 * col1 
2ba30 44 49 56 20 34 32 20 41 53 20 63 6f 6c 30 20 46  DIV 42 AS col0 F
2ba40 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2ba50 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 30 0d 0a 30  ..----..-2..0..0
2ba60 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2ba70 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2ba80 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2ba90 72 74 20 6c 61 62 65 6c 2d 39 39 31 0d 0a 53 45  rt label-991..SE
2baa0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
2bab0 2f 20 33 39 20 2a 20 63 6f 6c 31 20 2f 20 34 32  / 39 * col1 / 42
2bac0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2bad0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2bae0 0d 0a 2d 32 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e  ..-2..0..0....on
2baf0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2bb00 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2bb10 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2bb20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2bb30 39 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  92..SELECT ALL -
2bb40 20 28 20 28 20 2b 20 43 41 53 54 28 20 4e 55 4c   ( ( + CAST( NUL
2bb50 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
2bb60 29 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ) * - col0 AS co
2bb70 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
2bb80 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2bb90 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2bba0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2bbb0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2bbc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 32  owsort label-992
2bbd0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28  ..SELECT ALL - (
2bbe0 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( + CAST ( NULL
2bbf0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
2bc00 29 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ) * - col0 AS co
2bc10 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
2bc20 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2bc30 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
2bc40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2bc50 2b 20 39 32 20 2a 20 2d 20 33 39 20 41 53 20 63  + 92 * - 39 AS c
2bc60 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
2bc70 2d 2d 2d 0d 0a 2d 33 35 38 38 0d 0a 2d 33 35 38  ---..-3588..-358
2bc80 38 0d 0a 2d 33 35 38 38 0d 0a 0d 0a 6f 6e 6c 79  8..-3588....only
2bc90 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2bca0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2bcb0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
2bcc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2bcd0 39 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  94..SELECT DISTI
2bce0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
2bcf0 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 31 20  WHERE NOT - - 1 
2bd00 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
2bd10 20 28 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c   ( + + CAST( NUL
2bd20 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 0d  L AS SIGNED ) ).
2bd30 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
2bd40 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2bd50 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2bd60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2bd70 39 39 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  994..SELECT DIST
2bd80 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
2bd90 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 31   WHERE NOT - - 1
2bda0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
2bdb0 44 20 28 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  D ( + + CAST ( N
2bdc0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2bdd0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
2bde0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2bdf0 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d  ECT - col1 * - -
2be00 20 31 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   1 + - col1 * + 
2be10 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
2be20 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2be30 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54   ( NULL ) IS NOT
2be40 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   NULL..----..-23
2be50 39 37 0d 0a 2d 35 30 30 35 0d 0a 2d 35 30 39 32  97..-5005..-5092
2be60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2be70 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2be80 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2be90 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2bea0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2beb0 20 6c 61 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45   label-996..SELE
2bec0 43 54 20 2b 20 43 4f 55 4e 54 28 20 2b 20 63 6f  CT + COUNT( + co
2bed0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  l2 ) FROM tab1 A
2bee0 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 43  S cor0 WHERE - C
2bef0 41 53 54 28 20 2d 20 33 34 20 41 53 20 53 49 47  AST( - 34 AS SIG
2bf00 4e 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  NED ) IS NOT NUL
2bf10 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  L..----..3....sk
2bf20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2bf30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2bf40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2bf50 65 6c 2d 39 39 36 0d 0a 53 45 4c 45 43 54 20 2b  el-996..SELECT +
2bf60 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 32 20   COUNT ( + col2 
2bf70 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
2bf80 6f 72 30 20 57 48 45 52 45 20 2d 20 43 41 53 54  or0 WHERE - CAST
2bf90 20 28 20 2d 20 33 34 20 41 53 20 49 4e 54 45 47   ( - 34 AS INTEG
2bfa0 45 52 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  ER ) IS NOT NULL
2bfb0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..----..3....onl
2bfc0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2bfd0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2bfe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2bff0 6c 61 62 65 6c 2d 39 39 37 0d 0a 53 45 4c 45 43  label-997..SELEC
2c000 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
2c010 4e 54 28 20 2a 20 29 20 2b 20 2d 20 35 39 20 46  NT( * ) + - 59 F
2c020 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2c030 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d 0a 73  ..----..-62....s
2c040 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2c050 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2c060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c070 62 65 6c 2d 39 39 37 0d 0a 53 45 4c 45 43 54 20  bel-997..SELECT 
2c080 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
2c090 20 28 20 2a 20 29 20 2b 20 2d 20 35 39 20 46 52   ( * ) + - 59 FR
2c0a0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2c0b0 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d 0a 6f 6e  .----..-62....on
2c0c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2c0d0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2c0e0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2c0f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2c100 39 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  98..SELECT + CAS
2c110 54 28 20 2b 20 38 37 20 41 53 20 53 49 47 4e 45  T( + 87 AS SIGNE
2c120 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  D ) col2 FROM ta
2c130 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2c140 0d 0a 38 37 0d 0a 38 37 0d 0a 38 37 0d 0a 0d 0a  ..87..87..87....
2c150 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2c160 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2c170 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2c180 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2c190 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2c1a0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2c1b0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2c1c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2c1d0 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  8..SELECT + CAST
2c1e0 20 28 20 2b 20 38 37 20 41 53 20 49 4e 54 45 47   ( + 87 AS INTEG
2c1f0 45 52 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ER ) col2 FROM t
2c200 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2c210 2d 0d 0a 38 37 0d 0a 38 37 0d 0a 38 37 0d 0a 0d  -..87..87..87...
2c220 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c230 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2c240 54 20 39 38 20 2b 20 2d 20 28 20 2b 20 2b 20 63  T 98 + - ( + + c
2c250 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol0 ) FROM tab0.
2c260 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 31 0d 0a 38 33  .----..1..11..83
2c270 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2c280 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2c290 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2c2a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c2b0 61 62 65 6c 2d 31 30 30 30 0d 0a 53 45 4c 45 43  abel-1000..SELEC
2c2c0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
2c2d0 30 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  0 * + CAST( NULL
2c2e0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63   AS SIGNED ) + c
2c2f0 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol0 col2 FROM ta
2c300 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
2c310 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2c320 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2c330 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2c340 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2c350 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2c360 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2c370 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2c380 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2c390 31 30 30 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  1000..SELECT DIS
2c3a0 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2b  TINCT + col0 * +
2c3b0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2c3c0 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c 30  INTEGER ) + col0
2c3d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2c3e0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
2c3f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2c400 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 2b 20 28  SELECT + ( - + (
2c410 20 2b 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63   + col1 ) ) AS c
2c420 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2c430 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38  ---..-1..-21..-8
2c440 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
2c450 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2c460 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2b  TINCT - col2 * +
2c470 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 41 53 20   col1 + col2 AS 
2c480 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
2c490 2d 2d 2d 2d 0d 0a 2d 32 30 30 0d 0a 2d 33 37 36  ----..-200..-376
2c4a0 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0..0....onlyif m
2c4b0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2c4c0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2c4d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c4e0 2d 31 30 30 33 0d 0a 53 45 4c 45 43 54 20 28 20  -1003..SELECT ( 
2c4f0 2d 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43  - + MAX( DISTINC
2c500 54 20 2b 20 63 6f 6c 31 20 29 20 29 20 46 52 4f  T + col1 ) ) FRO
2c510 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  M tab2..----..-7
2c520 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
2c530 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2c540 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2c550 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 33 0d 0a  ort label-1003..
2c560 53 45 4c 45 43 54 20 28 20 2d 20 2b 20 4d 41 58  SELECT ( - + MAX
2c570 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f   ( DISTINCT + co
2c580 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32  l1 ) ) FROM tab2
2c590 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d 0a 71  ..----..-77....q
2c5a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2c5b0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 46 52  SELECT - col1 FR
2c5c0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20  OM tab1 WHERE ( 
2c5d0 4e 4f 54 20 2b 20 38 34 20 49 53 20 4e 4f 54 20  NOT + 84 IS NOT 
2c5e0 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
2c5f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2c600 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2c610 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2c620 72 74 20 6c 61 62 65 6c 2d 31 30 30 35 0d 0a 53  rt label-1005..S
2c630 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 4d 49  ELECT ALL - + MI
2c640 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  N( DISTINCT + + 
2c650 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 41 53 20  ( - col2 ) ) AS 
2c660 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
2c670 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
2c680 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2c690 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2c6a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2c6b0 72 74 20 6c 61 62 65 6c 2d 31 30 30 35 0d 0a 53  rt label-1005..S
2c6c0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 4d 49  ELECT ALL - + MI
2c6d0 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  N ( DISTINCT + +
2c6e0 20 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 41 53   ( - col2 ) ) AS
2c6f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2c700 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
2c710 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
2c720 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2c730 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2c740 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c750 6c 61 62 65 6c 2d 31 30 30 36 0d 0a 53 45 4c 45  label-1006..SELE
2c760 43 54 20 28 20 2d 20 43 41 53 54 28 20 4e 55 4c  CT ( - CAST( NUL
2c770 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
2c780 2b 20 2d 20 36 30 20 2a 20 33 35 20 41 53 20 63  + - 60 * 35 AS c
2c790 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
2c7a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
2c7b0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
2c7c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2c7d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2c7e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c7f0 6c 61 62 65 6c 2d 31 30 30 36 0d 0a 53 45 4c 45  label-1006..SELE
2c800 43 54 20 28 20 2d 20 43 41 53 54 20 28 20 4e 55  CT ( - CAST ( NU
2c810 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
2c820 29 20 2b 20 2d 20 36 30 20 2a 20 33 35 20 41 53  ) + - 60 * 35 AS
2c830 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2c840 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
2c850 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
2c860 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2c870 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b  rt..SELECT - ( +
2c880 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
2c890 32 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  2 cor0 WHERE + c
2c8a0 6f 6c 31 20 2d 20 35 33 20 49 4e 20 28 20 2d 20  ol1 - 53 IN ( - 
2c8b0 33 37 20 2b 20 37 32 20 2b 20 2d 20 63 6f 6c 31  37 + 72 + - col1
2c8c0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
2c8d0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2c8e0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2c8f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c900 61 62 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45 43  abel-1008..SELEC
2c910 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20  T DISTINCT MAX( 
2c920 41 4c 4c 20 37 39 20 29 20 41 53 20 63 6f 6c 30  ALL 79 ) AS col0
2c930 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2c940 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d 0a 0d 0a  r0..----..79....
2c950 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2c960 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2c970 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c980 61 62 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45 43  abel-1008..SELEC
2c990 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28  T DISTINCT MAX (
2c9a0 20 41 4c 4c 20 37 39 20 29 20 41 53 20 63 6f 6c   ALL 79 ) AS col
2c9b0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2c9c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d 0a 0d  or0..----..79...
2c9d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2c9e0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
2c9f0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
2ca00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2ca10 65 6c 2d 31 30 30 39 0d 0a 53 45 4c 45 43 54 20  el-1009..SELECT 
2ca20 2b 20 37 30 20 2d 20 2d 20 63 6f 6c 31 20 2d 20  + 70 - - col1 - 
2ca30 2b 20 34 34 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  + 44 * - col1 * 
2ca40 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + + CAST( NULL A
2ca50 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63  S DECIMAL ) AS c
2ca60 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol1 FROM tab1 co
2ca70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
2ca80 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
2ca90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2caa0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2cab0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2cac0 65 6c 2d 31 30 30 39 0d 0a 53 45 4c 45 43 54 20  el-1009..SELECT 
2cad0 2b 20 37 30 20 2d 20 2d 20 63 6f 6c 31 20 2d 20  + 70 - - col1 - 
2cae0 2b 20 34 34 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  + 44 * - col1 * 
2caf0 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
2cb00 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c  AS REAL ) AS col
2cb10 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
2cb20 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2cb30 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
2cb40 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
2cb50 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2cb60 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2cb70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2cb80 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44  0..SELECT col0 D
2cb90 49 56 20 2d 20 36 35 20 2d 20 2d 20 2b 20 33 35  IV - 65 - - + 35
2cba0 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
2cbb0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2cbc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  or0..----..-46..
2cbd0 31 33 0d 0a 33 33 0d 0a 0d 0a 73 6b 69 70 69 66  13..33....skipif
2cbe0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2cbf0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2cc00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2cc10 30 31 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  010..SELECT col0
2cc20 20 2f 20 2d 20 36 35 20 2d 20 2d 20 2b 20 33 35   / - 65 - - + 35
2cc30 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
2cc40 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2cc50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  or0..----..-46..
2cc60 31 33 0d 0a 33 33 0d 0a 0d 0a 71 75 65 72 79 20  13..33....query 
2cc70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2cc80 43 54 20 44 49 53 54 49 4e 43 54 20 39 33 2c 20  CT DISTINCT 93, 
2cc90 2d 20 31 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 14 AS col0 FRO
2cca0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2ccb0 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
2ccc0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 2d 31 34  L..----..93..-14
2ccd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
2cce0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2ccf0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2cd00 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2cd10 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2cd20 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2cd30 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2cd40 63 6f 6c 31 20 2d 20 2b 20 2d 20 63 6f 6c 30 20  col1 - + - col0 
2cd50 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
2cd60 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
2cd70 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
2cd80 0d 0a 33 37 0d 0a 34 34 0d 0a 38 30 0d 0a 0d 0a  ..37..44..80....
2cd90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2cda0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2cdb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2cdc0 72 74 20 6c 61 62 65 6c 2d 31 30 31 33 0d 0a 53  rt label-1013..S
2cdd0 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2d  ELECT ALL MIN( -
2cde0 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   + col2 ) AS col
2cdf0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
2ce00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a  or0..----..-96..
2ce10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2ce20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2ce30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ce40 20 6c 61 62 65 6c 2d 31 30 31 33 0d 0a 53 45 4c   label-1013..SEL
2ce50 45 43 54 20 41 4c 4c 20 4d 49 4e 20 28 20 2d 20  ECT ALL MIN ( - 
2ce60 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31  + col2 ) AS col1
2ce70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2ce80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d  r0..----..-96...
2ce90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2cea0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2ceb0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2cec0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 34 0d 0a  ort label-1014..
2ced0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
2cee0 28 20 2a 20 29 20 2b 20 2d 20 4d 49 4e 28 20 2d  ( * ) + - MIN( -
2cef0 20 35 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20   51 ) FROM tab1 
2cf00 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
2cf10 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
2cf20 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
2cf30 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2cf40 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2cf50 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2cf60 65 6c 2d 31 30 31 34 0d 0a 53 45 4c 45 43 54 20  el-1014..SELECT 
2cf70 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ALL COUNT ( * ) 
2cf80 2b 20 2d 20 4d 49 4e 20 28 20 2d 20 35 31 20 29  + - MIN ( - 51 )
2cf90 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2cfa0 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  r0 WHERE NULL IS
2cfb0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2cfc0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
2cfd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2cfe0 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20   - ( + + col0 ) 
2cff0 2a 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  * + + col2 AS co
2d000 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
2d010 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 35  cor0..----..-705
2d020 0d 0a 2d 38 37 30 0d 0a 2d 39 36 30 33 0d 0a 0d  ..-870..-9603...
2d030 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d040 0d 0a 53 45 4c 45 43 54 20 2d 20 33 20 2a 20 63  ..SELECT - 3 * c
2d050 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
2d060 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36   tab0..----..-26
2d070 31 0d 0a 2d 32 39 31 0d 0a 2d 34 35 0d 0a 0d 0a  1..-291..-45....
2d080 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2d090 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
2d0a0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2d0b0 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3d 20 37  NOT ( NULL ) = 7
2d0c0 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
2d0d0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2d0e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
2d0f0 6f 6c 31 2c 20 39 37 20 46 52 4f 4d 20 74 61 62  ol1, 97 FROM tab
2d100 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
2d110 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2d120 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2d130 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2d140 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
2d150 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63   WHERE NOT + + c
2d160 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ol1 NOT BETWEEN 
2d170 63 6f 6c 32 20 2b 20 2b 20 34 32 20 2f 20 2d 20  col2 + + 42 / - 
2d180 63 6f 6c 32 20 41 4e 44 20 2d 20 35 39 0d 0a 2d  col2 AND - 59..-
2d190 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
2d1a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2d1b0 4c 4c 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63  LL + + col0 AS c
2d1c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
2d1d0 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c 32  ERE NOT + - col2
2d1e0 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2f 20 2d 20   + - + col0 / - 
2d1f0 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 31 20  col2 * - + col1 
2d200 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35  IS NULL..----..5
2d210 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71 75 65  1..85..91....que
2d220 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2d230 4c 45 43 54 20 41 4c 4c 20 2b 20 33 38 20 2a 20  LECT ALL + 38 * 
2d240 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  + col0 FROM tab1
2d250 0d 0a 2d 2d 2d 2d 0d 0a 31 39 33 38 0d 0a 33 32  ..----..1938..32
2d260 33 30 0d 0a 33 34 35 38 0d 0a 0d 0a 71 75 65 72  30..3458....quer
2d270 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2d280 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
2d290 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
2d2a0 36 32 20 49 4e 20 28 20 2b 20 39 37 20 29 0d 0a  62 IN ( + 97 )..
2d2b0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2d2c0 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
2d2d0 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
2d2e0 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
2d2f0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2d300 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2d310 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 36 37  ab0 WHERE NOT 67
2d320 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   > NULL..----...
2d330 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d340 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2d350 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2d360 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 34 0d 0a  ort label-1024..
2d370 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2d380 2b 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2b 20 63  + + MAX( ALL + c
2d390 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ol2 ) col2 FROM 
2d3a0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2d3b0 2d 2d 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..99....skipif
2d3c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2d3d0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
2d3e0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2d3f0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2d400 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2d410 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2d420 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d430 74 20 6c 61 62 65 6c 2d 31 30 32 34 0d 0a 53 45  t label-1024..SE
2d440 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2d450 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f  + MAX ( ALL + co
2d460 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l2 ) col2 FROM t
2d470 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2d480 2d 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  -..99....query I
2d490 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d4a0 20 41 4c 4c 20 2b 20 2d 20 35 34 20 2a 20 2b 20   ALL + - 54 * + 
2d4b0 2d 20 31 32 20 46 52 4f 4d 20 74 61 62 31 20 41  - 12 FROM tab1 A
2d4c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34  S cor0..----..64
2d4d0 38 0d 0a 36 34 38 0d 0a 36 34 38 0d 0a 0d 0a 71  8..648..648....q
2d4e0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2d4f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31  .SELECT ALL col1
2d500 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32   AS col1, + col2
2d510 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2d520 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 39 39 0d  r0..----..1..99.
2d530 0a 32 31 0d 0a 31 30 0d 0a 38 31 0d 0a 34 37 0d  .21..10..81..47.
2d540 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2d550 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
2d560 63 6f 6c 31 2c 20 63 6f 6c 32 20 41 53 20 63 6f  col1, col2 AS co
2d570 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
2d580 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 39 36 0d  0..----..14..96.
2d590 0a 34 37 0d 0a 36 38 0d 0a 35 0d 0a 35 39 0d 0a  .47..68..5..59..
2d5a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d5b0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2d5c0 43 54 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f  CT col0 * - - co
2d5d0 6c 31 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l1 * col1 AS col
2d5e0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
2d5f0 2d 0d 0a 32 30 31 30 31 39 0d 0a 32 31 32 35 0d  -..201019..2125.
2d600 0a 39 39 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .9996....onlyif 
2d610 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2d620 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2d630 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2d640 6c 2d 31 30 32 39 0d 0a 53 45 4c 45 43 54 20 43  l-1029..SELECT C
2d650 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
2d660 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
2d670 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
2d680 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
2d690 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
2d6a0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2d6b0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2d6c0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 39 0d 0a  ort label-1029..
2d6d0 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
2d6e0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2d6f0 74 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20  tab1 cor0 CROSS 
2d700 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
2d710 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75  1..----..9....qu
2d720 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f  ery IIIIII rowso
2d730 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2d740 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
2d750 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
2d760 74 61 62 31 20 41 53 20 63 6f 72 31 20 57 48 45  tab1 AS cor1 WHE
2d770 52 45 20 4e 55 4c 4c 20 3e 3d 20 28 20 2d 20 39  RE NULL >= ( - 9
2d780 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  0 )..----....que
2d790 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2d7a0 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 28 20  LECT - col2 * ( 
2d7b0 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32  - col1 ) AS col2
2d7c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2d7d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 34 34 0d 0a  r0..----..1344..
2d7e0 32 39 35 0d 0a 33 31 39 36 0d 0a 0d 0a 73 6b 69  295..3196....ski
2d7f0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
2d800 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
2d810 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
2d820 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
2d830 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
2d840 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2d850 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 63 6f  STINCT + col0 co
2d860 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
2d870 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
2d880 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   > NULL..----...
2d890 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d8a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 37 20  ..SELECT ALL 27 
2d8b0 2b 20 2b 20 2d 20 35 30 20 41 53 20 63 6f 6c 30  + + - 50 AS col0
2d8c0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2d8d0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d  r0..----..-23..-
2d8e0 32 33 0d 0a 2d 32 33 0d 0a 0d 0a 71 75 65 72 79  23..-23....query
2d8f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2d900 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20  CT ALL col0 * + 
2d910 63 6f 6c 31 20 2b 20 2b 20 28 20 2b 20 63 6f 6c  col1 + + ( + col
2d920 32 20 29 20 2b 20 2b 20 31 30 20 46 52 4f 4d 20  2 ) + + 10 FROM 
2d930 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 33 35 35  tab1..----..4355
2d940 0d 0a 34 39 34 0d 0a 38 32 30 0d 0a 0d 0a 71 75  ..494..820....qu
2d950 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2d960 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2d970 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2a   col0 + - col2 *
2d980 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
2d990 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2d9a0 31 38 37 0d 0a 2d 32 32 32 34 0d 0a 2d 39 38 39  187..-2224..-989
2d9b0 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  8....query II ro
2d9c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2d9d0 4c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  L + col2 AS col0
2d9e0 2c 20 32 34 20 41 53 20 63 6f 6c 31 20 46 52 4f  , 24 AS col1 FRO
2d9f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33  M tab2..----..23
2da00 0d 0a 32 34 0d 0a 34 30 0d 0a 32 34 0d 0a 35 38  ..24..40..24..58
2da10 0d 0a 32 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..24....onlyif m
2da20 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2da30 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2da40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2da50 2d 31 30 33 37 0d 0a 53 45 4c 45 43 54 20 2d 20  -1037..SELECT - 
2da60 34 31 20 2b 20 2b 20 4d 49 4e 28 20 44 49 53 54  41 + + MIN( DIST
2da70 49 4e 43 54 20 2d 20 39 20 29 20 41 53 20 63 6f  INCT - 9 ) AS co
2da80 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
2da90 2d 2d 0d 0a 2d 35 30 0d 0a 0d 0a 73 6b 69 70 69  --..-50....skipi
2daa0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2dab0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2dac0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2dad0 31 30 33 37 0d 0a 53 45 4c 45 43 54 20 2d 20 34  1037..SELECT - 4
2dae0 31 20 2b 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  1 + + MIN ( DIST
2daf0 49 4e 43 54 20 2d 20 39 20 29 20 41 53 20 63 6f  INCT - 9 ) AS co
2db00 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
2db10 2d 2d 0d 0a 2d 35 30 0d 0a 0d 0a 71 75 65 72 79  --..-50....query
2db20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2db30 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 30 20  CT ALL - + col0 
2db40 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2db50 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  1 WHERE NULL IS 
2db60 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d  NULL..----..-51.
2db70 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c  .-85..-91....onl
2db80 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2db90 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2dba0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2dbb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2dbc0 33 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  39..SELECT DISTI
2dbd0 4e 43 54 20 63 6f 6c 32 20 44 49 56 20 2d 20 63  NCT col2 DIV - c
2dbe0 6f 6c 32 20 2d 20 2b 20 2b 20 33 30 20 46 52 4f  ol2 - + + 30 FRO
2dbf0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
2dc00 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
2dc10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2dc20 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2dc30 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 39 0d 0a  ort label-1039..
2dc40 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2dc50 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32 20 2d 20  col2 / - col2 - 
2dc60 2b 20 2b 20 33 30 20 46 52 4f 4d 20 74 61 62 31  + + 30 FROM tab1
2dc70 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 0d 0a 6f  ..----..-31....o
2dc80 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2dc90 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2dca0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2dcb0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2dcc0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2dcd0 6c 2d 31 30 34 30 0d 0a 53 45 4c 45 43 54 20 2b  l-1040..SELECT +
2dce0 20 43 4f 55 4e 54 28 20 2d 20 2b 20 63 6f 6c 31   COUNT( - + col1
2dcf0 20 29 20 44 49 56 20 53 55 4d 28 20 44 49 53 54   ) DIV SUM( DIST
2dd00 49 4e 43 54 20 2b 20 35 32 20 29 20 41 53 20 63  INCT + 52 ) AS c
2dd10 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
2dd20 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
2dd30 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2dd40 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2dd50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2dd60 20 6c 61 62 65 6c 2d 31 30 34 30 0d 0a 53 45 4c   label-1040..SEL
2dd70 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20  ECT + COUNT ( - 
2dd80 2b 20 63 6f 6c 31 20 29 20 2f 20 53 55 4d 20 28  + col1 ) / SUM (
2dd90 20 44 49 53 54 49 4e 43 54 20 2b 20 35 32 20 29   DISTINCT + 52 )
2dda0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2ddb0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2ddc0 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
2ddd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2dde0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
2ddf0 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
2de00 20 4e 4f 54 20 31 31 20 2a 20 2d 20 2d 20 63 6f   NOT 11 * - - co
2de10 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e  l2 + - col0 IS N
2de20 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
2de30 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2de40 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
2de50 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
2de60 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
2de70 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2de80 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2de90 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2dea0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2deb0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2dec0 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32  ECT ALL + - col2
2ded0 20 2b 20 2d 20 33 35 20 63 6f 6c 32 20 46 52 4f   + - 35 col2 FRO
2dee0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2def0 2d 2d 2d 2d 0d 0a 2d 31 33 34 0d 0a 2d 34 35 0d  ----..-134..-45.
2df00 0a 2d 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-82....onlyif m
2df10 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2df20 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2df30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2df40 2d 31 30 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c  -1043..SELECT AL
2df50 4c 20 2b 20 4d 49 4e 28 20 2b 20 2d 20 28 20 2d  L + MIN( + - ( -
2df60 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74   col2 ) ) FROM t
2df70 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
2df80 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  59....skipif mys
2df90 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2dfa0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2dfb0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 33 0d  sort label-1043.
2dfc0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49  .SELECT ALL + MI
2dfd0 4e 20 28 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 32  N ( + - ( - col2
2dfe0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63   ) ) FROM tab1 c
2dff0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d  or0..----..59...
2e000 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2e010 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2e020 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2e030 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2e040 65 6c 2d 31 30 34 34 0d 0a 53 45 4c 45 43 54 20  el-1044..SELECT 
2e050 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 43  DISTINCT CAST( C
2e060 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2e070 4e 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20  NED ) AS SIGNED 
2e080 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 38 38 20  ) AS col1, - 88 
2e090 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2e0a0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d  0..----..NULL..-
2e0b0 38 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  88....skipif mys
2e0c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e0d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
2e0e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 34  wsort label-1044
2e0f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2e100 54 20 43 41 53 54 20 28 20 43 41 53 54 20 28 20  T CAST ( CAST ( 
2e110 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2e120 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  ) AS INTEGER ) A
2e130 53 20 63 6f 6c 31 2c 20 2d 20 38 38 20 46 52 4f  S col1, - 88 FRO
2e140 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2e150 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 38 38 0d  ----..NULL..-88.
2e160 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2e170 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2e180 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 39  NCT - col2 * + 9
2e190 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
2e1a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 31 30  or0..----..-5310
2e1b0 0d 0a 2d 36 31 32 30 0d 0a 2d 38 36 34 30 0d 0a  ..-6120..-8640..
2e1c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e1d0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 46  t..SELECT col0 F
2e1e0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2e1f0 20 57 48 45 52 45 20 4e 4f 54 20 32 33 20 49 53   WHERE NOT 23 IS
2e200 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   NULL..----..15.
2e210 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  .87..97....query
2e220 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2e230 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
2e240 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2e250 4f 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 28 20  OT + col1 * - ( 
2e260 2d 20 63 6f 6c 30 20 29 20 3e 20 2b 20 2b 20 28  - col0 ) > + + (
2e270 20 63 6f 6c 31 20 29 20 2a 20 2b 20 28 20 63 6f   col1 ) * + ( co
2e280 6c 31 20 29 20 2f 20 2b 20 2d 20 63 6f 6c 32 20  l1 ) / + - col2 
2e290 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 37  + col2..----..97
2e2a0 0d 0a 31 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..1..99....onlyi
2e2b0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2e2c0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2e2d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e2e0 62 65 6c 2d 31 30 34 38 0d 0a 53 45 4c 45 43 54  bel-1048..SELECT
2e2f0 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 53 55   DISTINCT - + SU
2e300 4d 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  M( DISTINCT - co
2e310 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l1 ) FROM tab2 A
2e320 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
2e330 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
2e340 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2e350 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2e360 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 38 0d 0a  ort label-1048..
2e370 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2e380 2d 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e  - + SUM ( DISTIN
2e390 43 54 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d  CT - col1 ) FROM
2e3a0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2e3b0 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 71 75 65 72  ---..195....quer
2e3c0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2e3d0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
2e3e0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
2e3f0 45 52 45 20 4e 4f 54 20 28 20 2b 20 2d 20 63 6f  ERE NOT ( + - co
2e400 6c 31 20 29 20 2a 20 2d 20 63 6f 6c 30 20 4e 4f  l1 ) * - col0 NO
2e410 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
2e420 4e 44 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 63 6f  ND + + col1 + co
2e430 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
2e440 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2e450 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2e460 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2e470 61 62 65 6c 2d 31 30 35 30 0d 0a 53 45 4c 45 43  abel-1050..SELEC
2e480 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 41 4c 4c  T ALL + SUM( ALL
2e490 20 2d 20 28 20 63 6f 6c 31 20 29 20 29 20 41 53   - ( col1 ) ) AS
2e4a0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
2e4b0 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 73 6b  .----..-66....sk
2e4c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2e4d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2e4e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2e4f0 65 6c 2d 31 30 35 30 0d 0a 53 45 4c 45 43 54 20  el-1050..SELECT 
2e500 41 4c 4c 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20  ALL + SUM ( ALL 
2e510 2d 20 28 20 63 6f 6c 31 20 29 20 29 20 41 53 20  - ( col1 ) ) AS 
2e520 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
2e530 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 6f 6e 6c  ----..-66....onl
2e540 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2e550 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2e560 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
2e570 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e580 31 30 35 31 0d 0a 53 45 4c 45 43 54 20 39 33 20  1051..SELECT 93 
2e590 2b 20 2d 20 63 6f 6c 32 20 63 6f 6c 31 2c 20 43  + - col2 col1, C
2e5a0 41 53 54 28 20 2b 20 2d 20 33 20 41 53 20 53 49  AST( + - 3 AS SI
2e5b0 47 4e 45 44 20 29 20 2d 20 2d 20 36 34 20 41 53  GNED ) - - 64 AS
2e5c0 20 63 6f 6c 30 2c 20 2b 20 2b 20 31 38 20 46 52   col0, + + 18 FR
2e5d0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
2e5e0 54 20 28 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  T ( NOT ( NULL )
2e5f0 20 3c 3e 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d   <> - col0 )..--
2e600 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
2e610 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e620 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
2e630 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2e640 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2e650 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2e660 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2e670 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2e680 6c 61 62 65 6c 2d 31 30 35 31 0d 0a 53 45 4c 45  label-1051..SELE
2e690 43 54 20 39 33 20 2b 20 2d 20 63 6f 6c 32 20 63  CT 93 + - col2 c
2e6a0 6f 6c 31 2c 20 43 41 53 54 20 28 20 2b 20 2d 20  ol1, CAST ( + - 
2e6b0 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d  3 AS INTEGER ) -
2e6c0 20 2d 20 36 34 20 41 53 20 63 6f 6c 30 2c 20 2b   - 64 AS col0, +
2e6d0 20 2b 20 31 38 20 46 52 4f 4d 20 74 61 62 32 20   + 18 FROM tab2 
2e6e0 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20  WHERE NOT ( NOT 
2e6f0 28 20 4e 55 4c 4c 20 29 20 3c 3e 20 2d 20 63 6f  ( NULL ) <> - co
2e700 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  l0 )..----....sk
2e710 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2e720 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2e730 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2e740 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2e750 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
2e760 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2e770 20 63 6f 6c 31 20 2a 20 2b 20 36 35 20 2a 20 2d   col1 * + 65 * -
2e780 20 34 35 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   45 col0 FROM ta
2e790 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 39 31 37  b2..----..-14917
2e7a0 35 0d 0a 2d 31 39 35 39 37 35 0d 0a 2d 32 32 35  5..-195975..-225
2e7b0 32 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  225....onlyif my
2e7c0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2e7d0 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
2e7e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2e7f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2e800 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 33 0d 0a  ort label-1053..
2e810 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 41 4c  SELECT COUNT( AL
2e820 4c 20 2d 20 2d 20 43 41 53 54 28 20 32 39 20 41  L - - CAST( 29 A
2e830 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a 20 2d  S SIGNED ) ) * -
2e840 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2e850 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2e860 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69  ---..-9....skipi
2e870 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2e880 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2e890 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e8a0 31 30 35 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55  1053..SELECT COU
2e8b0 4e 54 20 28 20 41 4c 4c 20 2d 20 2d 20 43 41 53  NT ( ALL - - CAS
2e8c0 54 20 28 20 32 39 20 41 53 20 49 4e 54 45 47 45  T ( 29 AS INTEGE
2e8d0 52 20 29 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20  R ) ) * - COUNT 
2e8e0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
2e8f0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2e900 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
2e910 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 31  sort..SELECT - 1
2e920 20 2a 20 2b 20 38 30 20 46 52 4f 4d 20 74 61 62   * + 80 FROM tab
2e930 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 2d 38  2..----..-80..-8
2e940 30 0d 0a 2d 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..-80....onlyif
2e950 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2e960 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2e970 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
2e980 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 35  wsort label-1055
2e990 0d 0a 53 45 4c 45 43 54 20 2d 20 31 39 20 2a 20  ..SELECT - 19 * 
2e9a0 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 63 6f  col2 AS col2, co
2e9b0 6c 30 20 44 49 56 20 2b 20 63 6f 6c 30 20 46 52  l0 DIV + col0 FR
2e9c0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2e9d0 31 31 32 31 0d 0a 31 0d 0a 2d 31 32 39 32 0d 0a  1121..1..-1292..
2e9e0 31 0d 0a 2d 31 38 32 34 0d 0a 31 0d 0a 0d 0a 73  1..-1824..1....s
2e9f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ea00 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ea10 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2ea20 61 62 65 6c 2d 31 30 35 35 0d 0a 53 45 4c 45 43  abel-1055..SELEC
2ea30 54 20 2d 20 31 39 20 2a 20 63 6f 6c 32 20 41 53  T - 19 * col2 AS
2ea40 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 2f 20 2b 20   col2, col0 / + 
2ea50 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
2ea60 2d 2d 2d 2d 0d 0a 2d 31 31 32 31 0d 0a 31 0d 0a  ----..-1121..1..
2ea70 2d 31 32 39 32 0d 0a 31 0d 0a 2d 31 38 32 34 0d  -1292..1..-1824.
2ea80 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .1....onlyif mys
2ea90 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2eaa0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2eab0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2eac0 31 30 35 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1056..SELECT + C
2ead0 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d  OUNT( DISTINCT -
2eae0 20 31 36 20 29 20 41 53 20 63 6f 6c 32 2c 20 35   16 ) AS col2, 5
2eaf0 33 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  3 col0 FROM tab0
2eb00 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 33   WHERE NOT + + 3
2eb10 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2eb20 2d 2d 0d 0a 30 0d 0a 35 33 0d 0a 0d 0a 73 6b 69  --..0..53....ski
2eb30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2eb40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
2eb50 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2eb60 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2eb70 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2eb80 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2eb90 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
2eba0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 36  wsort label-1056
2ebb0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
2ebc0 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 31 36   ( DISTINCT - 16
2ebd0 20 29 20 41 53 20 63 6f 6c 32 2c 20 35 33 20 63   ) AS col2, 53 c
2ebe0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol0 FROM tab0 WH
2ebf0 45 52 45 20 4e 4f 54 20 2b 20 2b 20 33 20 49 53  ERE NOT + + 3 IS
2ec00 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2ec10 0a 30 0d 0a 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  .0..53....onlyif
2ec20 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2ec30 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2ec40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2ec50 65 6c 2d 31 30 35 37 0d 0a 53 45 4c 45 43 54 20  el-1057..SELECT 
2ec60 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
2ec70 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2d 20 43  ( - col0 ) * - C
2ec80 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
2ec90 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
2eca0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
2ecb0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2ecc0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2ecd0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 37 0d 0a  ort label-1057..
2ece0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2ecf0 2d 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 30  - COUNT ( - col0
2ed00 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) * - COUNT ( *
2ed10 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
2ed20 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e  0..----..9....on
2ed30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
2ed40 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2ed50 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2ed60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2ed70 31 30 35 38 0d 0a 53 45 4c 45 43 54 20 37 31 20  1058..SELECT 71 
2ed80 2b 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 41  + + ( - col0 ) A
2ed90 53 20 63 6f 6c 32 2c 20 35 39 20 44 49 56 20 2d  S col2, 59 DIV -
2eda0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
2edb0 0a 2d 2d 2d 2d 0d 0a 2d 31 36 0d 0a 2d 32 0d 0a  .----..-16..-2..
2edc0 2d 32 36 0d 0a 2d 35 39 0d 0a 35 36 0d 0a 30 0d  -26..-59..56..0.
2edd0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2ede0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2edf0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2ee00 72 74 20 6c 61 62 65 6c 2d 31 30 35 38 0d 0a 53  rt label-1058..S
2ee10 45 4c 45 43 54 20 37 31 20 2b 20 2b 20 28 20 2d  ELECT 71 + + ( -
2ee20 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 2c   col0 ) AS col2,
2ee30 20 35 39 20 2f 20 2d 20 63 6f 6c 31 20 46 52 4f   59 / - col1 FRO
2ee40 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
2ee50 36 0d 0a 2d 32 0d 0a 2d 32 36 0d 0a 2d 35 39 0d  6..-2..-26..-59.
2ee60 0a 35 36 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  .56..0....onlyif
2ee70 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2ee80 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2ee90 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2eea0 65 6c 2d 31 30 35 39 0d 0a 53 45 4c 45 43 54 20  el-1059..SELECT 
2eeb0 41 4c 4c 20 2d 20 4d 41 58 28 20 44 49 53 54 49  ALL - MAX( DISTI
2eec0 4e 43 54 20 2d 20 2d 20 36 32 20 29 20 46 52 4f  NCT - - 62 ) FRO
2eed0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab2..----..-6
2eee0 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
2eef0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2ef00 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2ef10 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 39 0d 0a  ort label-1059..
2ef20 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58  SELECT ALL - MAX
2ef30 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20   ( DISTINCT - - 
2ef40 36 32 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  62 ) FROM tab2..
2ef50 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d 0a 71 75 65  ----..-62....que
2ef60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2ef70 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2ef80 28 20 2d 20 33 38 20 29 20 46 52 4f 4d 20 74 61  ( - 38 ) FROM ta
2ef90 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2efa0 0d 0a 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..38....onlyif m
2efb0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2efc0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
2efd0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2efe0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
2eff0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 31 0d  sort label-1061.
2f000 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
2f010 20 29 20 44 49 56 20 39 38 20 46 52 4f 4d 20 74   ) DIV 98 FROM t
2f020 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2f030 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
2f040 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2f050 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2f060 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
2f070 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  1..SELECT COUNT 
2f080 28 20 2a 20 29 20 2f 20 39 38 20 46 52 4f 4d 20  ( * ) / 98 FROM 
2f090 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2f0a0 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..0....onlyif 
2f0b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2f0c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2f0d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2f0e0 6c 2d 31 30 36 32 0d 0a 53 45 4c 45 43 54 20 41  l-1062..SELECT A
2f0f0 4c 4c 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LL - + COUNT( * 
2f100 29 20 2a 20 2b 20 35 38 20 41 53 20 63 6f 6c 32  ) * + 58 AS col2
2f110 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2f120 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34 0d 0a  r0..----..-174..
2f130 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2f140 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2f150 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f160 20 6c 61 62 65 6c 2d 31 30 36 32 0d 0a 53 45 4c   label-1062..SEL
2f170 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43 4f 55 4e  ECT ALL - + COUN
2f180 54 20 28 20 2a 20 29 20 2a 20 2b 20 35 38 20 41  T ( * ) * + 58 A
2f190 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2f1a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f1b0 2d 31 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -174....query II
2f1c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f1d0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
2f1e0 20 63 6f 72 30 20 57 48 45 52 45 20 36 34 20 2b   cor0 WHERE 64 +
2f1f0 20 2d 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57   - col2 NOT BETW
2f200 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
2f210 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
2f220 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2f230 45 43 54 20 41 4c 4c 20 2d 20 28 20 63 6f 6c 31  ECT ALL - ( col1
2f240 20 29 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 30 20   ) + - ( - col0 
2f250 29 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20  ), col1 AS col2 
2f260 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2f270 0a 2d 31 33 0d 0a 37 37 0d 0a 2d 35 0d 0a 35 31  .-13..77..-5..51
2f280 0d 0a 38 0d 0a 36 37 0d 0a 0d 0a 71 75 65 72 79  ..8..67....query
2f290 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2f2a0 43 54 20 31 34 20 2a 20 35 33 20 2d 20 2d 20 2b  CT 14 * 53 - - +
2f2b0 20 36 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   63 FROM tab1..-
2f2c0 2d 2d 2d 0d 0a 38 30 35 0d 0a 38 30 35 0d 0a 38  ---..805..805..8
2f2d0 30 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  05....query I ro
2f2e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2f2f0 4c 20 63 6f 6c 30 20 2a 20 2d 20 34 38 20 41 53  L col0 * - 48 AS
2f300 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
2f310 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2f320 32 34 34 38 0d 0a 2d 34 30 38 30 0d 0a 2d 34 33  2448..-4080..-43
2f330 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  68....onlyif mys
2f340 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2f350 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2f360 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f370 20 6c 61 62 65 6c 2d 31 30 36 37 0d 0a 53 45 4c   label-1067..SEL
2f380 45 43 54 20 2b 20 43 41 53 54 28 20 2b 20 2b 20  ECT + CAST( + + 
2f390 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29  col2 AS SIGNED )
2f3a0 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20   + + col2 * + + 
2f3b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
2f3c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
2f3d0 38 0d 0a 32 32 30 0d 0a 33 38 35 34 0d 0a 0d 0a  8..220..3854....
2f3e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2f3f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2f400 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f410 61 62 65 6c 2d 31 30 36 37 0d 0a 53 45 4c 45 43  abel-1067..SELEC
2f420 54 20 2b 20 43 41 53 54 20 28 20 2b 20 2b 20 63  T + CAST ( + + c
2f430 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
2f440 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20   + + col2 * + + 
2f450 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
2f460 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
2f470 38 0d 0a 32 32 30 0d 0a 33 38 35 34 0d 0a 0d 0a  8..220..3854....
2f480 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2f490 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2f4a0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2f4b0 72 74 20 6c 61 62 65 6c 2d 31 30 36 38 0d 0a 53  rt label-1068..S
2f4c0 45 4c 45 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2b  ELECT MIN( ALL +
2f4d0 20 63 6f 6c 30 20 29 20 2b 20 53 55 4d 28 20 44   col0 ) + SUM( D
2f4e0 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30  ISTINCT - + col0
2f4f0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
2f500 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 34  cor0..----..-184
2f510 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2f520 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2f530 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2f540 72 74 20 6c 61 62 65 6c 2d 31 30 36 38 0d 0a 53  rt label-1068..S
2f550 45 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20  ELECT MIN ( ALL 
2f560 2b 20 63 6f 6c 30 20 29 20 2b 20 53 55 4d 20 28  + col0 ) + SUM (
2f570 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f   DISTINCT - + co
2f580 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l0 ) FROM tab0 A
2f590 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2f5a0 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  84....onlyif mys
2f5b0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2f5c0 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
2f5d0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
2f5e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2f5f0 72 74 20 6c 61 62 65 6c 2d 31 30 36 39 0d 0a 53  rt label-1069..S
2f600 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
2f610 54 28 20 2a 20 29 20 44 49 56 20 2b 20 2d 20 39  T( * ) DIV + - 9
2f620 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  8 FROM tab1 AS c
2f630 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
2f640 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
2f650 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
2f660 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2f670 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2f680 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
2f690 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  9..SELECT ALL + 
2f6a0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20  COUNT ( * ) / + 
2f6b0 2d 20 39 38 20 46 52 4f 4d 20 74 61 62 31 20 41  - 98 FROM tab1 A
2f6c0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
2f6d0 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a  N tab2 AS cor1..
2f6e0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
2f6f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2f700 43 54 20 2b 20 33 32 20 41 53 20 63 6f 6c 30 20  CT + 32 AS col0 
2f710 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2f720 4e 4f 54 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 30  NOT + + ( + col0
2f730 20 29 20 2a 20 2d 20 2b 20 34 20 49 53 20 4e 4f   ) * - + 4 IS NO
2f740 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
2f750 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2f760 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2f770 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2f780 72 74 20 6c 61 62 65 6c 2d 31 30 37 31 0d 0a 53  rt label-1071..S
2f790 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2f7a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2f7b0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
2f7c0 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
2f7d0 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d   tab0 cor1..----
2f7e0 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-9....skipif m
2f7f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2f800 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2f810 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37  owsort label-107
2f820 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2f830 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
2f840 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2f850 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
2f860 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d   JOIN tab0 cor1.
2f870 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65  .----..-9....que
2f880 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f890 4c 45 43 54 20 2b 20 2b 20 33 36 20 41 53 20 63  LECT + + 36 AS c
2f8a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
2f8b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 33 36  r0..----..36..36
2f8c0 0d 0a 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..36....query II
2f8d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2f8e0 20 44 49 53 54 49 4e 43 54 20 31 37 2c 20 63 6f   DISTINCT 17, co
2f8f0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
2f900 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a  cor0..----..17..
2f910 31 30 0d 0a 31 37 0d 0a 34 37 0d 0a 31 37 0d 0a  10..17..47..17..
2f920 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  99....query III 
2f930 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f940 36 37 2c 20 2d 20 35 32 20 41 53 20 63 6f 6c 32  67, - 52 AS col2
2f950 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  , + col2 AS col1
2f960 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2f970 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2f980 6e 67 20 74 6f 20 66 64 61 62 30 38 64 39 30 30  ng to fdab08d900
2f990 64 35 38 30 30 36 64 66 37 36 61 32 39 35 39 65  d58006df76a2959e
2f9a0 32 66 63 39 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  2fc935....onlyif
2f9b0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2f9c0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2f9d0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
2f9e0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 35 0d  sort label-1075.
2f9f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2fa00 20 2d 20 36 39 20 44 49 56 20 2d 20 31 30 20 41   - 69 DIV - 10 A
2fa10 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2fa20 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69  ..----..6....ski
2fa30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2fa40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2fa50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2fa60 6c 2d 31 30 37 35 0d 0a 53 45 4c 45 43 54 20 44  l-1075..SELECT D
2fa70 49 53 54 49 4e 43 54 20 2d 20 36 39 20 2f 20 2d  ISTINCT - 69 / -
2fa80 20 31 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   10 AS col1 FROM
2fa90 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a   tab2..----..6..
2faa0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2fab0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2fac0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
2fad0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 36  wsort label-1076
2fae0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2faf0 54 20 2b 20 33 31 20 41 53 20 63 6f 6c 32 2c 20  T + 31 AS col2, 
2fb00 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 2d  - COUNT( ALL - -
2fb10 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
2fb20 32 0d 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a 2d 33 0d  2..----..31..-3.
2fb30 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2fb40 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2fb50 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2fb60 72 74 20 6c 61 62 65 6c 2d 31 30 37 36 0d 0a 53  rt label-1076..S
2fb70 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2fb80 20 33 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43   31 AS col2, - C
2fb90 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 2d 20 63  OUNT ( ALL - - c
2fba0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol0 ) FROM tab2.
2fbb0 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a 2d 33 0d 0a 0d  .----..31..-3...
2fbc0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2fbd0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2fbe0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2fbf0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2fc00 6c 2d 31 30 37 37 0d 0a 53 45 4c 45 43 54 20 2d  l-1077..SELECT -
2fc10 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20   + ( - col2 ) + 
2fc20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
2fc30 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
2fc40 20 2b 20 43 41 53 54 28 20 2b 20 43 41 53 54 28   + CAST( + CAST(
2fc50 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2fc60 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 49 53  ) AS SIGNED ) IS
2fc70 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
2fc80 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2fc90 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2fca0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2fcb0 62 65 6c 2d 31 30 37 37 0d 0a 53 45 4c 45 43 54  bel-1077..SELECT
2fcc0 20 2d 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20   - + ( - col2 ) 
2fcd0 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
2fce0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
2fcf0 4f 54 20 2b 20 43 41 53 54 20 28 20 2b 20 43 41  OT + CAST ( + CA
2fd00 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2fd10 45 47 45 52 20 29 20 41 53 20 49 4e 54 45 47 45  EGER ) AS INTEGE
2fd20 52 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  R ) IS NULL..---
2fd30 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
2fd40 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2fd50 63 6f 6c 30 2c 20 28 20 63 6f 6c 32 20 29 20 41  col0, ( col2 ) A
2fd60 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2fd70 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 39 36 0d 0a  ..----..51..96..
2fd80 38 35 0d 0a 35 39 0d 0a 39 31 0d 0a 36 38 0d 0a  85..59..91..68..
2fd90 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2fda0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2fdb0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2fdc0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 39 0d  sort label-1079.
2fdd0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 38 20 2b 20  .SELECT - + 8 + 
2fde0 4d 49 4e 28 20 2b 20 33 36 20 29 20 41 53 20 63  MIN( + 36 ) AS c
2fdf0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
2fe00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d   cor0..----..28.
2fe10 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2fe20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2fe30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2fe40 74 20 6c 61 62 65 6c 2d 31 30 37 39 0d 0a 53 45  t label-1079..SE
2fe50 4c 45 43 54 20 2d 20 2b 20 38 20 2b 20 4d 49 4e  LECT - + 8 + MIN
2fe60 20 28 20 2b 20 33 36 20 29 20 41 53 20 63 6f 6c   ( + 36 ) AS col
2fe70 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
2fe80 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 0d  or0..----..28...
2fe90 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2fea0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2feb0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2fec0 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
2fed0 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f  ) NOT BETWEEN co
2fee0 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 4e  l2 + + + col2 AN
2fef0 44 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2a 20  D col2 * col1 * 
2ff00 2b 20 2d 20 63 6f 6c 31 20 2d 20 63 6f 6c 31 0d  + - col1 - col1.
2ff10 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2ff20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2ff30 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2ff40 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2ff50 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 31 0d 0a  ort label-1081..
2ff60 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20  SELECT + col2 + 
2ff70 2d 20 2d 20 33 34 20 2d 20 2b 20 43 41 53 54 28  - - 34 - + CAST(
2ff80 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2ff90 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
2ffa0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2ffb0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
2ffc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ffd0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ffe0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2fff0 62 65 6c 2d 31 30 38 31 0d 0a 53 45 4c 45 43 54  bel-1081..SELECT
30000 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 33 34   + col2 + - - 34
30010 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   - + CAST ( NULL
30020 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
30030 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
30040 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
30050 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
30060 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
30070 43 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 63 6f  CT + - col1 * co
30080 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63  l2 + - col2 AS c
30090 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
300a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
300b0 39 36 0d 0a 2d 33 31 32 30 0d 0a 2d 33 39 34 34  96..-3120..-3944
300c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
300d0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
300e0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
300f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38  owsort label-108
30100 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  3..SELECT - COUN
30110 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  T( DISTINCT - + 
30120 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
30130 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
30140 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
30150 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
30160 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
30170 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 33 0d  sort label-1083.
30180 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20  .SELECT - COUNT 
30190 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  ( DISTINCT - + c
301a0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol0 ) FROM tab0 
301b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
301c0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  3....query II ro
301d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
301e0 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f  l2 AS col2, - co
301f0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
30200 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  cor0..----..10..
30210 2d 32 31 0d 0a 34 37 0d 0a 2d 38 31 0d 0a 39 39  -21..47..-81..99
30220 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-1....onlyif m
30230 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
30240 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
30250 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
30260 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
30270 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
30280 62 65 6c 2d 31 30 38 35 0d 0a 53 45 4c 45 43 54  bel-1085..SELECT
30290 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2d 20 39   ALL - CAST( - 9
302a0 36 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20 63  6 AS SIGNED ), c
302b0 6f 6c 30 20 44 49 56 20 2d 20 2b 20 32 33 20 41  ol0 DIV - + 23 A
302c0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
302d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
302e0 39 36 0d 0a 2d 32 0d 0a 39 36 0d 0a 2d 33 0d 0a  96..-2..96..-3..
302f0 39 36 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  96..-3....skipif
30300 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30310 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30320 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30330 31 30 38 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1085..SELECT ALL
30340 20 2d 20 43 41 53 54 20 28 20 2d 20 39 36 20 41   - CAST ( - 96 A
30350 53 20 49 4e 54 45 47 45 52 20 29 2c 20 63 6f 6c  S INTEGER ), col
30360 30 20 2f 20 2d 20 2b 20 32 33 20 41 53 20 63 6f  0 / - + 23 AS co
30370 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
30380 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a  cor0..----..96..
30390 2d 32 0d 0a 39 36 0d 0a 2d 33 0d 0a 39 36 0d 0a  -2..96..-3..96..
303a0 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -3....onlyif mys
303b0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
303c0 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
303d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
303e0 74 20 6c 61 62 65 6c 2d 31 30 38 36 0d 0a 53 45  t label-1086..SE
303f0 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  LECT + col1 + + 
30400 2b 20 38 39 20 2b 20 2b 20 43 41 53 54 28 20 4e  + 89 + + CAST( N
30410 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
30420 20 2f 20 2d 20 63 6f 6c 32 20 2d 20 63 6f 6c 30   / - col2 - col0
30430 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
30440 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
30450 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
30460 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
30470 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
30480 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
30490 65 6c 2d 31 30 38 36 0d 0a 53 45 4c 45 43 54 20  el-1086..SELECT 
304a0 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 38 39 20  + col1 + + + 89 
304b0 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
304c0 41 53 20 52 45 41 4c 20 29 20 2f 20 2d 20 63 6f  AS REAL ) / - co
304d0 6c 32 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l2 - col0 FROM t
304e0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
304f0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
30500 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
30510 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
30520 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
30530 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
30540 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
30550 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
30560 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b  .SELECT - col2 +
30570 20 2b 20 36 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + 6 col1 FROM t
30580 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
30590 2d 0d 0a 2d 31 37 0d 0a 2d 33 34 0d 0a 2d 35 32  -..-17..-34..-52
305a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
305b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
305c0 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30   + - col0 + col0
305d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
305e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37  r0..----..15..87
305f0 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..97....onlyif m
30600 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
30610 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
30620 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
30630 72 74 20 6c 61 62 65 6c 2d 31 30 38 39 0d 0a 53  rt label-1089..S
30640 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 36 35  ELECT ALL + + 65
30650 20 2a 20 2d 20 36 20 2b 20 2d 20 63 6f 6c 32 20   * - 6 + - col2 
30660 44 49 56 20 2d 20 34 32 20 46 52 4f 4d 20 74 61  DIV - 42 FROM ta
30670 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
30680 33 38 38 0d 0a 2d 33 38 39 0d 0a 2d 33 39 30 0d  388..-389..-390.
30690 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
306a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
306b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
306c0 74 20 6c 61 62 65 6c 2d 31 30 38 39 0d 0a 53 45  t label-1089..SE
306d0 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 36 35 20  LECT ALL + + 65 
306e0 2a 20 2d 20 36 20 2b 20 2d 20 63 6f 6c 32 20 2f  * - 6 + - col2 /
306f0 20 2d 20 34 32 20 46 52 4f 4d 20 74 61 62 30 20   - 42 FROM tab0 
30700 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 38  cor0..----..-388
30710 0d 0a 2d 33 38 39 0d 0a 2d 33 39 30 0d 0a 0d 0a  ..-389..-390....
30720 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
30730 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
30740 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
30750 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e  ERE NULL BETWEEN
30760 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20 63 6f   ( NULL ) AND co
30770 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  l2..----....skip
30780 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
30790 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
307a0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
307b0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
307c0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
307d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
307e0 20 36 35 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   65 col0 FROM ta
307f0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  b2 cor0..----..6
30800 35 0d 0a 36 35 0d 0a 36 35 0d 0a 0d 0a 71 75 65  5..65..65....que
30810 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
30820 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34 38  LECT DISTINCT 48
30830 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2b 20 31 30   + col2 - - + 10
30840 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
30850 0d 0a 31 30 35 0d 0a 31 35 37 0d 0a 36 38 0d 0a  ..105..157..68..
30860 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30870 74 0d 0a 53 45 4c 45 43 54 20 34 38 20 2a 20 28  t..SELECT 48 * (
30880 20 2b 20 32 38 20 29 20 2b 20 2d 20 38 37 20 46   + 28 ) + - 87 F
30890 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
308a0 31 32 35 37 0d 0a 31 32 35 37 0d 0a 31 32 35 37  1257..1257..1257
308b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
308c0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
308d0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
308e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39  owsort label-109
308f0 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
30900 43 54 20 31 35 20 2b 20 2b 20 2d 20 43 4f 55 4e  CT 15 + + - COUN
30910 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
30920 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
30930 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  12....skipif mys
30940 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
30950 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
30960 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 34 0d  sort label-1094.
30970 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
30980 20 31 35 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 20   15 + + - COUNT 
30990 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
309a0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
309b0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
309c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
309d0 20 2b 20 32 37 20 2d 20 2d 20 2b 20 63 6f 6c 30   + 27 - - + col0
309e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
309f0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 0d 0a 31  b1..----..112..1
30a00 31 38 0d 0a 37 38 0d 0a 0d 0a 71 75 65 72 79 20  18..78....query 
30a10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30a20 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
30a30 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 35  + - col2 + + - 5
30a40 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
30a50 2d 0d 0a 2d 32 35 0d 0a 2d 32 38 0d 0a 2d 39 36  -..-25..-28..-96
30a60 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
30a70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
30a80 49 4e 43 54 20 38 37 20 2d 20 2b 20 31 33 20 41  INCT 87 - + 13 A
30a90 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
30aa0 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 71 75  ..----..74....qu
30ab0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
30ac0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32 20 2a 20  ELECT ALL + 2 * 
30ad0 2b 20 2b 20 34 36 20 2d 20 2b 20 63 6f 6c 31 20  + + 46 - + col1 
30ae0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
30af0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 37 38 0d  0..----..45..78.
30b00 0a 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .87....onlyif my
30b10 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
30b20 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
30b30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30b40 74 20 6c 61 62 65 6c 2d 31 30 39 39 0d 0a 53 45  t label-1099..SE
30b50 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28  LECT ALL - CAST(
30b60 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   + col2 AS SIGNE
30b70 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  D ) AS col2 FROM
30b80 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
30b90 45 52 45 20 4e 4f 54 20 28 20 33 31 20 29 20 4e  ERE NOT ( 31 ) N
30ba0 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20 2a  OT IN ( + col2 *
30bb0 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   + col0 )..----.
30bc0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
30bd0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
30be0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30bf0 74 20 6c 61 62 65 6c 2d 31 30 39 39 0d 0a 53 45  t label-1099..SE
30c00 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20  LECT ALL - CAST 
30c10 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54 45  ( + col2 AS INTE
30c20 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52  GER ) AS col2 FR
30c30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
30c40 57 48 45 52 45 20 4e 4f 54 20 28 20 33 31 20 29  WHERE NOT ( 31 )
30c50 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32   NOT IN ( + col2
30c60 20 2a 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   * + col0 )..---
30c70 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
30c80 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
30c90 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
30ca0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
30cb0 30 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  00..SELECT COUNT
30cc0 28 20 31 36 20 29 20 41 53 20 63 6f 6c 30 20 46  ( 16 ) AS col0 F
30cd0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
30ce0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
30cf0 3e 20 2b 20 37 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  > + 72..----..0.
30d00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
30d10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
30d20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30d30 74 20 6c 61 62 65 6c 2d 31 31 30 30 0d 0a 53 45  t label-1100..SE
30d40 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 31 36 20  LECT COUNT ( 16 
30d50 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
30d60 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
30d70 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 2b 20 37  E NOT NULL > + 7
30d80 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  2..----..0....on
30d90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
30da0 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
30db0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
30dc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30dd0 31 31 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1101..SELECT DIS
30de0 54 49 4e 43 54 20 2b 20 33 38 20 2f 20 2b 20 2b  TINCT + 38 / + +
30df0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
30e00 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 31  ECIMAL ) AS col1
30e10 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
30e20 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
30e30 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30e40 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30e50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30e60 31 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  101..SELECT DIST
30e70 49 4e 43 54 20 2b 20 33 38 20 2f 20 2b 20 2b 20  INCT + 38 / + + 
30e80 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
30e90 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 20 46 52  EAL ) AS col1 FR
30ea0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
30eb0 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
30ec0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
30ed0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
30ee0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30ef0 74 20 6c 61 62 65 6c 2d 31 31 30 32 0d 0a 53 45  t label-1102..SE
30f00 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
30f10 44 49 56 20 28 20 2d 20 63 6f 6c 31 20 29 20 44  DIV ( - col1 ) D
30f20 49 56 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  IV col2 FROM tab
30f30 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  2..----..0..0..0
30f40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
30f50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
30f60 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
30f70 72 74 20 6c 61 62 65 6c 2d 31 31 30 32 0d 0a 53  rt label-1102..S
30f80 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30  ELECT ALL - col0
30f90 20 2f 20 28 20 2d 20 63 6f 6c 31 20 29 20 2f 20   / ( - col1 ) / 
30fa0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
30fb0 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
30fc0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
30fd0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
30fe0 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 63 6f   * + - col2 * co
30ff0 6c 31 20 2a 20 2b 20 63 6f 6c 31 2c 20 2b 20 63  l1 * + col1, + c
31000 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2a  ol1 * - - col1 *
31010 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
31020 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
31030 33 37 35 39 32 39 0d 0a 31 33 32 36 35 31 0d 0a  375929..132651..
31040 31 35 31 30 30 39 39 36 0d 0a 33 30 30 37 36 33  15100996..300763
31050 0d 0a 39 34 38 36 34 30 30 0d 0a 34 35 36 35 33  ..9486400..45653
31060 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  3....query II ro
31070 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
31080 53 54 49 4e 43 54 20 28 20 63 6f 6c 32 20 29 20  STINCT ( col2 ) 
31090 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 41 53  AS col1, col0 AS
310a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
310b0 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 38 37 0d 0a 34  .----..10..87..4
310c0 37 0d 0a 31 35 0d 0a 39 39 0d 0a 39 37 0d 0a 0d  7..15..99..97...
310d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
310e0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
310f0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
31100 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31110 6c 2d 31 31 30 35 0d 0a 53 45 4c 45 43 54 20 63  l-1105..SELECT c
31120 6f 6c 32 20 44 49 56 20 2b 20 34 31 20 41 53 20  ol2 DIV + 41 AS 
31130 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
31140 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
31150 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..1....skipif 
31160 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
31170 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
31180 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
31190 30 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  05..SELECT col2 
311a0 2f 20 2b 20 34 31 20 41 53 20 63 6f 6c 30 20 46  / + 41 AS col0 F
311b0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
311c0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d  ..----..0..0..1.
311d0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
311e0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
311f0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
31200 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
31210 6c 61 62 65 6c 2d 31 31 30 36 0d 0a 53 45 4c 45  label-1106..SELE
31220 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
31230 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
31240 20 43 41 53 54 28 20 28 20 2b 20 28 20 2d 20 2d   CAST( ( + ( - -
31250 20 32 33 20 29 20 29 20 41 53 20 53 49 47 4e 45   23 ) ) AS SIGNE
31260 44 20 29 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d  D ) + - col2 + -
31270 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 32   col0 * - - col2
31280 20 42 45 54 57 45 45 4e 20 2d 20 35 35 20 2a 20   BETWEEN - 55 * 
31290 63 6f 6c 32 20 41 4e 44 20 63 6f 6c 31 0d 0a 2d  col2 AND col1..-
312a0 2d 2d 2d 0d 0a 34 36 0d 0a 35 31 0d 0a 32 33 0d  ---..46..51..23.
312b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
312c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
312d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
312e0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 36 0d 0a  ort label-1106..
312f0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
31300 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
31310 48 45 52 45 20 43 41 53 54 20 28 20 28 20 2b 20  HERE CAST ( ( + 
31320 28 20 2d 20 2d 20 32 33 20 29 20 29 20 41 53 20  ( - - 23 ) ) AS 
31330 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63 6f  INTEGER ) + - co
31340 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  l2 + - col0 * - 
31350 2d 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2d  - col2 BETWEEN -
31360 20 35 35 20 2a 20 63 6f 6c 32 20 41 4e 44 20 63   55 * col2 AND c
31370 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 35  ol1..----..46..5
31380 31 0d 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49  1..23....query I
31390 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
313a0 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   ALL - col1 * + 
313b0 2b 20 63 6f 6c 30 20 2a 20 38 34 20 41 53 20 63  + col0 * 84 AS c
313c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
313d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35   cor0..----..-35
313e0 37 30 30 0d 0a 2d 33 35 39 32 36 38 0d 0a 2d 35  700..-359268..-5
313f0 39 39 37 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  9976....onlyif m
31400 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
31410 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
31420 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
31430 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
31440 72 74 20 6c 61 62 65 6c 2d 31 31 30 38 0d 0a 53  rt label-1108..S
31450 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
31460 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
31470 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 63 6f  NOT NULL IN ( co
31480 6c 31 20 2a 20 34 39 20 2b 20 2d 20 2d 20 43 41  l1 * 49 + - - CA
31490 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
314a0 45 44 20 29 20 2b 20 2b 20 63 6f 6c 30 20 2a 20  ED ) + + col0 * 
314b0 2d 20 63 6f 6c 32 20 2b 20 2d 20 36 20 2b 20 2b  - col2 + - 6 + +
314c0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
314d0 45 43 49 4d 41 4c 20 29 2c 20 38 39 20 2a 20 39  ECIMAL ), 89 * 9
314e0 38 20 2a 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d  8 * - col0 )..--
314f0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
31500 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31510 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
31520 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30  owsort label-110
31530 38 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  8..SELECT * FROM
31540 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
31550 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20  ERE NOT NULL IN 
31560 28 20 63 6f 6c 31 20 2a 20 34 39 20 2b 20 2d 20  ( col1 * 49 + - 
31570 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
31580 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63   INTEGER ) + + c
31590 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d  ol0 * - col2 + -
315a0 20 36 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55   6 + + CAST ( NU
315b0 4c 4c 20 41 53 20 52 45 41 4c 20 29 2c 20 38 39  LL AS REAL ), 89
315c0 20 2a 20 39 38 20 2a 20 2d 20 63 6f 6c 30 20 29   * 98 * - col0 )
315d0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
315e0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
315f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
31600 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
31610 4f 54 20 28 20 2b 20 2d 20 63 6f 6c 32 20 2a 20  OT ( + - col2 * 
31620 2b 20 28 20 63 6f 6c 31 20 29 20 29 20 3e 20 2b  + ( col1 ) ) > +
31630 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   col2..----..9 v
31640 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
31650 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
31660 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
31670 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
31680 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
31690 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
316a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
316b0 31 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33  10..SELECT ALL 3
316c0 39 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  9 * - - COUNT( *
316d0 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) * - COUNT( * 
316e0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
316f0 2d 0d 0a 2d 33 35 31 0d 0a 0d 0a 73 6b 69 70 69  -..-351....skipi
31700 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
31710 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
31720 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31730 31 31 31 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1110..SELECT ALL
31740 20 33 39 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 20   39 * - - COUNT 
31750 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20  ( * ) * - COUNT 
31760 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
31770 0a 2d 2d 2d 2d 0d 0a 2d 33 35 31 0d 0a 0d 0a 71  .----..-351....q
31780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
31790 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 38 20  SELECT col0 * 8 
317a0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
317b0 31 0d 0a 2d 2d 2d 2d 0d 0a 34 30 38 0d 0a 36 38  1..----..408..68
317c0 30 0d 0a 37 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..728....onlyif
317d0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
317e0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
317f0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
31800 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 32 0d  sort label-1112.
31810 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
31820 20 2b 20 33 34 20 2a 20 2b 20 2d 20 43 41 53 54   + 34 * + - CAST
31830 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
31840 20 29 20 2a 20 36 33 20 2a 20 2d 20 63 6f 6c 30   ) * 63 * - col0
31850 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f   + + col1 + - co
31860 6c 30 20 2a 20 38 37 20 41 53 20 63 6f 6c 30 20  l0 * 87 AS col0 
31870 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
31880 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
31890 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
318a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
318b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
318c0 31 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  12..SELECT DISTI
318d0 4e 43 54 20 2b 20 33 34 20 2a 20 2b 20 2d 20 43  NCT + 34 * + - C
318e0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
318f0 54 45 47 45 52 20 29 20 2a 20 36 33 20 2a 20 2d  TEGER ) * 63 * -
31900 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 2b   col0 + + col1 +
31910 20 2d 20 63 6f 6c 30 20 2a 20 38 37 20 41 53 20   - col0 * 87 AS 
31920 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
31930 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
31940 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
31950 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
31960 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
31970 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31980 31 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  113..SELECT ALL 
31990 32 39 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  29 * + - col2 + 
319a0 43 41 53 54 28 20 2d 20 63 6f 6c 32 20 41 53 20  CAST( - col2 AS 
319b0 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
319c0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 30 30 0d  b2..----..-1200.
319d0 0a 2d 31 37 34 30 0d 0a 2d 36 39 30 0d 0a 0d 0a  .-1740..-690....
319e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
319f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31a00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31a10 61 62 65 6c 2d 31 31 31 33 0d 0a 53 45 4c 45 43  abel-1113..SELEC
31a20 54 20 41 4c 4c 20 32 39 20 2a 20 2b 20 2d 20 63  T ALL 29 * + - c
31a30 6f 6c 32 20 2b 20 43 41 53 54 20 28 20 2d 20 63  ol2 + CAST ( - c
31a40 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
31a50 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
31a60 0d 0a 2d 31 32 30 30 0d 0a 2d 31 37 34 30 0d 0a  ..-1200..-1740..
31a70 2d 36 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  -690....skipif p
31a80 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
31a90 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
31aa0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
31ab0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
31ac0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31ad0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
31ae0 54 20 2d 20 39 32 20 63 6f 6c 30 20 46 52 4f 4d  T - 92 col0 FROM
31af0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32   tab1..----..-92
31b00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31b10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
31b20 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
31b30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
31b40 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  5..SELECT ALL CO
31b50 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20  UNT( DISTINCT + 
31b60 31 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  12 ) FROM tab1 A
31b70 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
31b80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
31b90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
31ba0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31bb0 74 20 6c 61 62 65 6c 2d 31 31 31 35 0d 0a 53 45  t label-1115..SE
31bc0 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
31bd0 20 44 49 53 54 49 4e 43 54 20 2b 20 31 32 20 29   DISTINCT + 12 )
31be0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
31bf0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71  r0..----..1....q
31c00 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
31c10 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
31c20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
31c30 52 45 20 63 6f 6c 32 20 2a 20 2d 20 36 30 20 3e  RE col2 * - 60 >
31c40 3d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = col1..----....
31c50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
31c60 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
31c70 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
31c80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31c90 2d 31 31 31 37 0d 0a 53 45 4c 45 43 54 20 2b 20  -1117..SELECT + 
31ca0 2d 20 43 41 53 54 28 20 2d 20 2b 20 28 20 2d 20  - CAST( - + ( - 
31cb0 2b 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47 4e  + col0 ) AS SIGN
31cc0 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ED ) AS col2 FRO
31cd0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
31ce0 48 45 52 45 20 2d 20 36 39 20 49 53 20 4e 4f 54  HERE - 69 IS NOT
31cf0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   NULL..----..-51
31d00 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b  ..-85..-91....sk
31d10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
31d20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
31d30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
31d40 65 6c 2d 31 31 31 37 0d 0a 53 45 4c 45 43 54 20  el-1117..SELECT 
31d50 2b 20 2d 20 43 41 53 54 20 28 20 2d 20 2b 20 28  + - CAST ( - + (
31d60 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 49   - + col0 ) AS I
31d70 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
31d80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
31d90 72 30 20 57 48 45 52 45 20 2d 20 36 39 20 49 53  r0 WHERE - 69 IS
31da0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
31db0 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a  .-51..-85..-91..
31dc0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
31dd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
31de0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
31df0 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2a 20   WHERE - col0 * 
31e00 2d 20 39 37 20 3c 3d 20 28 20 2d 20 2d 20 63 6f  - 97 <= ( - - co
31e10 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d  l1 * - col1 )..-
31e20 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
31e30 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
31e40 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
31e50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31e60 74 20 6c 61 62 65 6c 2d 31 31 31 39 0d 0a 53 45  t label-1119..SE
31e70 4c 45 43 54 20 41 4c 4c 20 37 39 20 2b 20 2b 20  LECT ALL 79 + + 
31e80 43 41 53 54 28 20 2d 20 35 36 20 41 53 20 53 49  CAST( - 56 AS SI
31e90 47 4e 45 44 20 29 20 2a 20 63 6f 6c 31 20 46 52  GNED ) * col1 FR
31ea0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
31eb0 32 37 37 37 0d 0a 2d 33 36 37 33 0d 0a 2d 34 32  2777..-3673..-42
31ec0 33 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  33....skipif mys
31ed0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31ee0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
31ef0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 39 0d  sort label-1119.
31f00 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 39 20 2b  .SELECT ALL 79 +
31f10 20 2b 20 43 41 53 54 20 28 20 2d 20 35 36 20 41   + CAST ( - 56 A
31f20 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 63 6f  S INTEGER ) * co
31f30 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
31f40 2d 2d 0d 0a 2d 32 37 37 37 0d 0a 2d 33 36 37 33  --..-2777..-3673
31f50 0d 0a 2d 34 32 33 33 0d 0a 0d 0a 71 75 65 72 79  ..-4233....query
31f60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31f70 43 54 20 2d 20 34 35 20 41 53 20 63 6f 6c 30 20  CT - 45 AS col0 
31f80 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43  FROM tab0 cor0 C
31f90 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
31fa0 53 20 63 6f 72 31 20 57 48 45 52 45 20 4e 55 4c  S cor1 WHERE NUL
31fb0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
31fc0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
31fd0 67 20 74 6f 20 37 31 31 36 30 61 62 66 30 39 35  g to 71160abf095
31fe0 38 39 36 39 35 33 37 39 61 37 30 35 35 38 37 32  89695379a7055872
31ff0 36 66 30 62 61 0d 0a 0d 0a 71 75 65 72 79 20 49  6f0ba....query I
32000 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
32010 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
32020 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
32030 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 2b 20  ULL ) BETWEEN + 
32040 2d 20 31 32 20 2b 20 34 36 20 2d 20 2b 20 28 20  - 12 + 46 - + ( 
32050 63 6f 6c 30 20 29 20 41 4e 44 20 2b 20 63 6f 6c  col0 ) AND + col
32060 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  2..----....skipi
32070 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
32080 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
32090 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
320a0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
320b0 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
320c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
320d0 20 2d 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 30 20   - - col2, col0 
320e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
320f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 38  or0..----..59..8
32100 35 0d 0a 36 38 0d 0a 39 31 0d 0a 39 36 0d 0a 35  5..68..91..96..5
32110 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
32120 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 39 20  sort..SELECT 79 
32130 2a 20 2b 20 32 38 20 2d 20 2d 20 63 6f 6c 30 20  * + 28 - - col0 
32140 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
32150 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 32 37 0d 0a 32  0..----..2227..2
32160 32 39 39 0d 0a 32 33 30 39 0d 0a 0d 0a 71 75 65  299..2309....que
32170 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
32180 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2d 20 63 6f  LECT col2 * - co
32190 6c 31 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63  l1 - - col0 AS c
321a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
321b0 2d 2d 2d 0d 0a 2d 31 31 32 37 0d 0a 2d 33 30 31  ---..-1127..-301
321c0 36 0d 0a 2d 33 38 31 31 0d 0a 0d 0a 71 75 65 72  6..-3811....quer
321d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
321e0 45 43 54 20 2d 20 34 34 20 2d 20 63 6f 6c 30 20  ECT - 44 - col0 
321f0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
32200 0a 2d 31 33 31 0d 0a 2d 31 34 31 0d 0a 2d 35 39  .-131..-141..-59
32210 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
32220 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
32230 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
32240 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32250 61 62 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45 43  abel-1126..SELEC
32260 54 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20  T - col1 * col1 
32270 2a 20 2b 20 2d 20 31 32 20 2a 20 2b 20 33 31 20  * + - 12 * + 31 
32280 2d 20 2b 20 33 20 44 49 56 20 2d 20 2d 20 31 38  - + 3 DIV - - 18
32290 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
322a0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 32 39 31 32 0d  b1..----..72912.
322b0 0a 38 32 31 37 34 38 0d 0a 39 33 30 30 0d 0a 0d  .821748..9300...
322c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
322d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
322e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
322f0 6c 61 62 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45  label-1126..SELE
32300 43 54 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31  CT - col1 * col1
32310 20 2a 20 2b 20 2d 20 31 32 20 2a 20 2b 20 33 31   * + - 12 * + 31
32320 20 2d 20 2b 20 33 20 2f 20 2d 20 2d 20 31 38 20   - + 3 / - - 18 
32330 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
32340 31 0d 0a 2d 2d 2d 2d 0d 0a 37 32 39 31 32 0d 0a  1..----..72912..
32350 38 32 31 37 34 38 0d 0a 39 33 30 30 0d 0a 0d 0a  821748..9300....
32360 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
32370 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 38  .SELECT ALL - 18
32380 20 2a 20 2b 20 63 6f 6c 32 20 2d 20 37 30 20 41   * + col2 - 70 A
32390 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
323a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 35 32 0d 0a 2d  ..----..-1852..-
323b0 32 35 30 0d 0a 2d 39 31 36 0d 0a 0d 0a 71 75 65  250..-916....que
323c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
323d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
323e0 33 31 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  31 + col1 AS col
323f0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
32400 2d 0d 0a 32 30 0d 0a 33 36 0d 0a 34 36 0d 0a 0d  -..20..36..46...
32410 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32420 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
32430 54 20 33 31 20 2d 20 36 32 20 46 52 4f 4d 20 74  T 31 - 62 FROM t
32440 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a  ab1..----..-31..
32450 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32460 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
32470 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
32480 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d  sort label-1130.
32490 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
324a0 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 4d 41 58  COUNT( * ) + MAX
324b0 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
324c0 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  0 ) FROM tab2 AS
324d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 32 0d   cor0..----..72.
324e0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
324f0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
32500 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32510 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d 0a 53 45  t label-1130..SE
32520 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55  LECT ALL + - COU
32530 4e 54 20 28 20 2a 20 29 20 2b 20 4d 41 58 20 28  NT ( * ) + MAX (
32540 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30   DISTINCT + col0
32550 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
32560 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 32 0d 0a  cor0..----..72..
32570 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32580 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
32590 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
325a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 31  wsort label-1131
325b0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
325c0 28 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32  ( col1 ) AS col2
325d0 2c 20 37 39 20 2b 20 38 39 20 41 53 20 63 6f 6c  , 79 + 89 AS col
325e0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
325f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 31  or0..----..-3..1
32600 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  68....skipif mys
32610 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
32620 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
32630 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 31  wsort label-1131
32640 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
32650 20 28 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   ( col1 ) AS col
32660 32 2c 20 37 39 20 2b 20 38 39 20 41 53 20 63 6f  2, 79 + 89 AS co
32670 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
32680 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
32690 31 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  168....query III
326a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
326b0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
326c0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 32  cor0 WHERE NOT 2
326d0 31 20 2f 20 2d 20 33 30 20 49 53 20 4e 55 4c 4c  1 / - 30 IS NULL
326e0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
326f0 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
32700 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
32710 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
32720 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
32730 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 20 2a 20  .SELECT + - 3 * 
32740 2d 20 31 39 20 2a 20 2b 20 2b 20 63 6f 6c 32 20  - 19 * + + col2 
32750 2b 20 31 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  + 1 + col1 AS co
32760 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
32770 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 36 31  cor0..----..2761
32780 0d 0a 35 36 34 35 0d 0a 35 39 32 0d 0a 0d 0a 6f  ..5645..592....o
32790 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
327a0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
327b0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
327c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
327d0 31 31 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1134..SELECT ALL
327e0 20 2b 20 43 41 53 54 28 20 2d 20 2b 20 32 30 20   + CAST( - + 20 
327f0 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
32800 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30   tab0..----..-20
32810 0d 0a 2d 32 30 0d 0a 2d 32 30 0d 0a 0d 0a 73 6b  ..-20..-20....sk
32820 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
32830 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
32840 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32850 65 6c 2d 31 31 33 34 0d 0a 53 45 4c 45 43 54 20  el-1134..SELECT 
32860 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 2d 20 2b  ALL + CAST ( - +
32870 20 32 30 20 41 53 20 49 4e 54 45 47 45 52 20 29   20 AS INTEGER )
32880 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
32890 0d 0a 2d 32 30 0d 0a 2d 32 30 0d 0a 2d 32 30 0d  ..-20..-20..-20.
328a0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
328b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
328c0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
328d0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20  RE NOT NULL NOT 
328e0 42 45 54 57 45 45 4e 20 37 34 20 41 4e 44 20 4e  BETWEEN 74 AND N
328f0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
32900 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
32910 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
32920 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
32930 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32940 31 33 36 0d 0a 53 45 4c 45 43 54 20 35 31 2c 20  136..SELECT 51, 
32950 2d 20 28 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  - ( + - CAST( NU
32960 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
32970 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
32980 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
32990 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a 35 31 0d 0a  ..51..NULL..51..
329a0 4e 55 4c 4c 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a  NULL..51..NULL..
329b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
329c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
329d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
329e0 74 20 6c 61 62 65 6c 2d 31 31 33 36 0d 0a 53 45  t label-1136..SE
329f0 4c 45 43 54 20 35 31 2c 20 2d 20 28 20 2b 20 2d  LECT 51, - ( + -
32a00 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
32a10 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20 63  INTEGER ) ) AS c
32a20 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
32a30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
32a40 0a 4e 55 4c 4c 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d  .NULL..51..NULL.
32a50 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  .51..NULL....que
32a60 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
32a70 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
32a80 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
32a90 20 4e 4f 54 20 63 6f 6c 31 20 4e 4f 54 20 49 4e   NOT col1 NOT IN
32aa0 20 28 20 2b 20 2d 20 63 6f 6c 31 2c 20 2d 20 63   ( + - col1, - c
32ab0 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ol2 )..----....o
32ac0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
32ad0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
32ae0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
32af0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
32b00 2d 31 31 33 38 0d 0a 53 45 4c 45 43 54 20 2b 20  -1138..SELECT + 
32b10 63 6f 6c 31 20 63 6f 6c 32 2c 20 2d 20 35 30 20  col1 col2, - 50 
32b20 2a 20 2d 20 43 41 53 54 28 20 2b 20 28 20 2d 20  * - CAST( + ( - 
32b30 35 30 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  50 ) AS SIGNED )
32b40 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
32b50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 32  r0..----..14..-2
32b60 35 30 30 0d 0a 34 37 0d 0a 2d 32 35 30 30 0d 0a  500..47..-2500..
32b70 35 0d 0a 2d 32 35 30 30 0d 0a 0d 0a 73 6b 69 70  5..-2500....skip
32b80 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
32b90 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
32ba0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
32bb0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
32bc0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
32bd0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
32be0 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
32bf0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 38 0d  sort label-1138.
32c00 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 63  .SELECT + col1 c
32c10 6f 6c 32 2c 20 2d 20 35 30 20 2a 20 2d 20 43 41  ol2, - 50 * - CA
32c20 53 54 20 28 20 2b 20 28 20 2d 20 35 30 20 29 20  ST ( + ( - 50 ) 
32c30 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
32c40 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
32c50 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 32 35 30 30 0d  ----..14..-2500.
32c60 0a 34 37 0d 0a 2d 32 35 30 30 0d 0a 35 0d 0a 2d  .47..-2500..5..-
32c70 32 35 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  2500....onlyif m
32c80 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
32c90 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
32ca0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
32cb0 6c 2d 31 31 33 39 0d 0a 53 45 4c 45 43 54 20 44  l-1139..SELECT D
32cc0 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28  ISTINCT - COUNT(
32cd0 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 2b 20   * ) AS col2, + 
32ce0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
32cf0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
32d00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
32d10 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
32d20 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32d30 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
32d40 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 39 0d  sort label-1139.
32d50 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
32d60 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
32d70 53 20 63 6f 6c 32 2c 20 2b 20 43 4f 55 4e 54 20  S col2, + COUNT 
32d80 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
32d90 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
32da0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 33 0d 0a 0d 0a  .----..-3..3....
32db0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
32dc0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
32dd0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
32de0 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20  NOT NULL NOT IN 
32df0 28 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c  ( - - col1 * col
32e00 30 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  0 + col0 )..----
32e10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
32e20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34 33  ort..SELECT + 43
32e30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
32e40 62 32 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30  b2, tab1 AS cor0
32e50 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
32e60 20 68 61 73 68 69 6e 67 20 74 6f 20 31 39 39 31   hashing to 1991
32e70 30 35 36 31 39 30 34 39 32 37 31 31 34 37 39 35  0561904927114795
32e80 36 64 65 35 32 65 37 66 35 65 64 34 0d 0a 0d 0a  6de52e7f5ed4....
32e90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
32ea0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 38  .SELECT ALL - 98
32eb0 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
32ec0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
32ed0 2d 0d 0a 2d 32 32 35 34 0d 0a 2d 33 39 32 30 0d  -..-2254..-3920.
32ee0 0a 2d 35 36 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-5684....onlyif
32ef0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
32f00 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
32f10 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
32f20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
32f30 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  3..SELECT * FROM
32f40 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 35 33   tab2 WHERE + 53
32f50 20 2a 20 2d 20 43 41 53 54 28 20 2b 20 2b 20 35   * - CAST( + + 5
32f60 35 20 41 53 20 53 49 47 4e 45 44 20 29 20 3c 3d  5 AS SIGNED ) <=
32f70 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
32f80 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
32f90 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
32fa0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
32fb0 6c 61 62 65 6c 2d 31 31 34 33 0d 0a 53 45 4c 45  label-1143..SELE
32fc0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
32fd0 48 45 52 45 20 2b 20 35 33 20 2a 20 2d 20 43 41  HERE + 53 * - CA
32fe0 53 54 20 28 20 2b 20 2b 20 35 35 20 41 53 20 49  ST ( + + 55 AS I
32ff0 4e 54 45 47 45 52 20 29 20 3c 3d 20 4e 55 4c 4c  NTEGER ) <= NULL
33000 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
33010 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
33020 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2b 20  CT ALL col0 + + 
33030 2d 20 32 32 2c 20 2b 20 63 6f 6c 32 20 46 52 4f  - 22, + col2 FRO
33040 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
33050 2d 2d 2d 2d 0d 0a 32 39 0d 0a 39 36 0d 0a 36 33  ----..29..96..63
33060 0d 0a 35 39 0d 0a 36 39 0d 0a 36 38 0d 0a 0d 0a  ..59..69..68....
33070 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
33080 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
33090 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
330a0 72 74 20 6c 61 62 65 6c 2d 31 31 34 35 0d 0a 53  rt label-1145..S
330b0 45 4c 45 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2d  ELECT MIN( ALL -
330c0 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20   col0 ) AS col2 
330d0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
330e0 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-97....skipif m
330f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33100 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33110 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
33120 35 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20  5..SELECT MIN ( 
33130 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  ALL - col0 ) AS 
33140 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
33150 2d 2d 2d 2d 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c  ----..-97....onl
33160 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
33170 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
33180 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33190 6c 61 62 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45  label-1146..SELE
331a0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20  CT COUNT( * ) - 
331b0 2d 20 2b 20 36 35 20 41 53 20 63 6f 6c 31 20 46  - + 65 AS col1 F
331c0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
331d0 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  68....skipif mys
331e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
331f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
33200 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 36 0d  sort label-1146.
33210 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
33220 2a 20 29 20 2d 20 2d 20 2b 20 36 35 20 41 53 20  * ) - - + 65 AS 
33230 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
33240 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d 0a 71 75 65 72  ----..68....quer
33250 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
33260 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
33270 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f   tab0 WHERE - co
33280 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 41  l1 IS NOT NULL A
33290 4e 44 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  ND NULL NOT BETW
332a0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
332b0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
332c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
332d0 43 54 20 2d 20 63 6f 6c 30 20 2d 20 2b 20 2b 20  CT - col0 - + + 
332e0 63 6f 6c 32 20 2a 20 2d 20 37 31 20 46 52 4f 4d  col2 * - 71 FROM
332f0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 38   tab2..----..158
33300 37 0d 0a 32 37 37 36 0d 0a 34 30 34 33 0d 0a 0d  7..2776..4043...
33310 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33320 0d 0a 53 45 4c 45 43 54 20 34 38 20 2d 20 63 6f  ..SELECT 48 - co
33330 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 46 52  l1 * - - col1 FR
33340 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
33350 31 34 38 0d 0a 2d 32 31 36 31 0d 0a 32 33 0d 0a  148..-2161..23..
33360 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33370 74 0d 0a 53 45 4c 45 43 54 20 33 34 20 2b 20 2b  t..SELECT 34 + +
33380 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 46   col2 + + col0 F
33390 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
333a0 0d 0a 2d 2d 2d 2d 0d 0a 31 33 31 0d 0a 32 33 30  ..----..131..230
333b0 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..96....onlyif m
333c0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
333d0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
333e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
333f0 72 74 20 6c 61 62 65 6c 2d 31 31 35 31 0d 0a 53  rt label-1151..S
33400 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
33410 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
33420 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52  NED ) AS col2 FR
33430 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
33440 57 48 45 52 45 20 63 6f 6c 32 20 3d 20 2b 20 2b  WHERE col2 = + +
33450 20 33 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69   31..----....ski
33460 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
33470 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
33480 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33490 6c 2d 31 31 35 31 0d 0a 53 45 4c 45 43 54 20 44  l-1151..SELECT D
334a0 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e  ISTINCT CAST ( N
334b0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
334c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
334d0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
334e0 20 63 6f 6c 32 20 3d 20 2b 20 2b 20 33 31 0d 0a   col2 = + + 31..
334f0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
33500 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33510 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 32 37 20  - - col1 * + 27 
33520 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + + col0 FROM ta
33530 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
33540 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54   ( NULL ) IS NOT
33550 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
33560 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
33570 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
33580 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33590 74 20 6c 61 62 65 6c 2d 31 31 35 33 0d 0a 53 45  t label-1153..SE
335a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
335b0 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
335c0 37 34 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  74 ) AS col0 FRO
335d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
335e0 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  ----..1....skipi
335f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33600 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33610 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33620 31 31 35 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  1153..SELECT DIS
33630 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  TINCT + COUNT ( 
33640 44 49 53 54 49 4e 43 54 20 37 34 20 29 20 41 53  DISTINCT 74 ) AS
33650 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
33660 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
33670 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33680 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
33690 49 4e 43 54 20 2b 20 38 37 20 41 53 20 63 6f 6c  INCT + 87 AS col
336a0 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
336b0 45 20 4e 55 4c 4c 20 3e 20 2d 20 28 20 2b 20 2b  E NULL > - ( + +
336c0 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
336d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
336e0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
336f0 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 2b  M tab2 WHERE - +
33700 20 32 32 20 3c 3d 20 2b 20 2b 20 35 35 20 2a 20   22 <= + + 55 * 
33710 2d 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20  - + col0 * col1 
33720 2b 20 63 6f 6c 30 20 2f 20 2d 20 2b 20 38 31 20  + col0 / - + 81 
33730 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  * col2..----....
33740 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
33750 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
33760 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
33770 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33780 2d 31 31 35 36 0d 0a 53 45 4c 45 43 54 20 2b 20  -1156..SELECT + 
33790 63 6f 6c 31 20 44 49 56 20 63 6f 6c 32 20 2a 20  col1 DIV col2 * 
337a0 2d 20 2d 20 28 20 34 38 20 29 20 46 52 4f 4d 20  - - ( 48 ) FROM 
337b0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34  tab0..----..0..4
337c0 38 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  8..96....skipif 
337d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
337e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
337f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33800 35 36 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  56..SELECT + col
33810 31 20 2f 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 28  1 / col2 * - - (
33820 20 34 38 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   48 ) FROM tab0.
33830 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 38 0d 0a 39 36  .----..0..48..96
33840 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33850 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
33860 2d 20 63 6f 6c 31 20 2b 20 2d 20 37 32 20 41 53  - col1 + - 72 AS
33870 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
33880 0a 2d 2d 2d 2d 0d 0a 2d 31 35 33 0d 0a 2d 37 33  .----..-153..-73
33890 0d 0a 2d 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-93....onlyif 
338a0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
338b0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
338c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
338d0 6c 2d 31 31 35 38 0d 0a 53 45 4c 45 43 54 20 4d  l-1158..SELECT M
338e0 49 4e 28 20 35 37 20 29 20 46 52 4f 4d 20 74 61  IN( 57 ) FROM ta
338f0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 0d 0a  b1..----..57....
33900 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33910 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
33920 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33930 61 62 65 6c 2d 31 31 35 38 0d 0a 53 45 4c 45 43  abel-1158..SELEC
33940 54 20 4d 49 4e 20 28 20 35 37 20 29 20 46 52 4f  T MIN ( 57 ) FRO
33950 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 37  M tab1..----..57
33960 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
33970 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
33980 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c   + col2 AS col0,
33990 20 2b 20 39 36 20 46 52 4f 4d 20 74 61 62 32 0d   + 96 FROM tab2.
339a0 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 39 36 0d 0a 34  .----..23..96..4
339b0 30 0d 0a 39 36 0d 0a 35 38 0d 0a 39 36 0d 0a 0d  0..96..58..96...
339c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
339d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
339e0 43 54 20 2b 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c  CT + col2, + col
339f0 31 20 2a 20 2d 20 37 37 20 46 52 4f 4d 20 74 61  1 * - 77 FROM ta
33a00 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 33  b1..----..59..-3
33a10 38 35 0d 0a 36 38 0d 0a 2d 33 36 31 39 0d 0a 39  85..68..-3619..9
33a20 36 0d 0a 2d 31 30 37 38 0d 0a 0d 0a 71 75 65 72  6..-1078....quer
33a30 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
33a40 4c 45 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c  LECT col2 AS col
33a50 32 2c 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2d 20  2, - col2 + - - 
33a60 28 20 2b 20 2b 20 32 20 29 20 46 52 4f 4d 20 74  ( + + 2 ) FROM t
33a70 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 2d  ab0..----..10..-
33a80 38 0d 0a 34 37 0d 0a 2d 34 35 0d 0a 39 39 0d 0a  8..47..-45..99..
33a90 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -97....query II 
33aa0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33ab0 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 2d 20  col1 AS col1, - 
33ac0 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
33ad0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab1..----..14
33ae0 0d 0a 2d 39 36 0d 0a 34 37 0d 0a 2d 36 38 0d 0a  ..-96..47..-68..
33af0 35 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72 79 20  5..-59....query 
33b00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33b10 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c  T - col0 + + col
33b20 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
33b30 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
33b40 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  NULL ) IS NULL..
33b50 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
33b60 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33b70 41 4c 4c 20 2b 20 35 20 2a 20 2b 20 63 6f 6c 32  ALL + 5 * + col2
33b80 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
33b90 0a 2d 2d 2d 2d 0d 0a 31 31 35 0d 0a 32 30 30 0d  .----..115..200.
33ba0 0a 32 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .290....query II
33bb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
33bc0 20 41 4c 4c 20 2b 20 63 6f 6c 31 2c 20 36 32 20   ALL + col1, 62 
33bd0 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
33be0 2d 2d 2d 2d 0d 0a 31 0d 0a 36 32 0d 0a 32 31 0d  ----..1..62..21.
33bf0 0a 36 32 0d 0a 38 31 0d 0a 36 32 0d 0a 0d 0a 6f  .62..81..62....o
33c00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
33c10 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
33c20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33c30 74 20 6c 61 62 65 6c 2d 31 31 36 36 0d 0a 53 45  t label-1166..SE
33c40 4c 45 43 54 20 2b 20 35 34 20 2b 20 2d 20 43 4f  LECT + 54 + - CO
33c50 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
33c60 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
33c70 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
33c80 72 31 20 57 48 45 52 45 20 4e 4f 54 20 34 30 20  r1 WHERE NOT 40 
33c90 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
33ca0 2d 0d 0a 35 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..54....skipif 
33cb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
33cc0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
33cd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33ce0 36 36 0d 0a 53 45 4c 45 43 54 20 2b 20 35 34 20  66..SELECT + 54 
33cf0 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
33d00 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
33d10 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
33d20 30 20 41 53 20 63 6f 72 31 20 57 48 45 52 45 20  0 AS cor1 WHERE 
33d30 4e 4f 54 20 34 30 20 49 53 20 4e 4f 54 20 4e 55  NOT 40 IS NOT NU
33d40 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 0d 0a  LL..----..54....
33d50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
33d60 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
33d70 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
33d80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33d90 2d 31 31 36 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1167..SELECT DI
33da0 53 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54 28  STINCT + - CAST(
33db0 20 33 38 20 41 53 20 53 49 47 4e 45 44 20 29 20   38 AS SIGNED ) 
33dc0 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  * col2 AS col0 F
33dd0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
33de0 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
33df0 3c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  < - col2 * - col
33e00 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  2..----....skipi
33e10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33e20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33e30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33e40 31 31 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  1167..SELECT DIS
33e50 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54 20 28  TINCT + - CAST (
33e60 20 33 38 20 41 53 20 49 4e 54 45 47 45 52 20 29   38 AS INTEGER )
33e70 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   * col2 AS col0 
33e80 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
33e90 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  0 WHERE NOT col1
33ea0 20 3c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   < - col2 * - co
33eb0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
33ec0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
33ed0 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
33ee0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
33ef0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33f00 36 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  68..SELECT DISTI
33f10 4e 43 54 20 28 20 43 41 53 54 28 20 4e 55 4c 4c  NCT ( CAST( NULL
33f20 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20   AS DECIMAL ) ) 
33f30 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
33f40 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
33f50 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33f60 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33f70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33f80 6c 61 62 65 6c 2d 31 31 36 38 0d 0a 53 45 4c 45  label-1168..SELE
33f90 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 43 41  CT DISTINCT ( CA
33fa0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
33fb0 4c 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20  L ) ) FROM tab2 
33fc0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
33fd0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
33fe0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
33ff0 4c 4c 20 2d 20 2d 20 35 32 20 41 53 20 63 6f 6c  LL - - 52 AS col
34000 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
34010 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 35 32 0d 0a  ..----..52..52..
34020 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  52....query I ro
34030 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
34040 2d 20 38 32 20 2a 20 2b 20 63 6f 6c 30 20 41 53  - 82 * + col0 AS
34050 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
34060 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
34070 33 37 37 32 0d 0a 2d 35 32 34 38 0d 0a 2d 36 31  3772..-5248..-61
34080 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  50....onlyif mys
34090 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
340a0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
340b0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
340c0 74 20 6c 61 62 65 6c 2d 31 31 37 31 0d 0a 53 45  t label-1171..SE
340d0 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c  LECT col0 AS col
340e0 32 2c 20 35 31 20 2b 20 2b 20 63 6f 6c 32 20 2b  2, 51 + + col2 +
340f0 20 2b 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f   + col2 DIV - co
34100 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
34110 2d 2d 0d 0a 31 35 0d 0a 39 37 0d 0a 38 37 0d 0a  --..15..97..87..
34120 36 30 0d 0a 39 37 0d 0a 31 34 39 0d 0a 0d 0a 73  60..97..149....s
34130 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34140 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34150 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
34160 61 62 65 6c 2d 31 31 37 31 0d 0a 53 45 4c 45 43  abel-1171..SELEC
34170 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20  T col0 AS col2, 
34180 35 31 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  51 + + col2 + + 
34190 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32 20 46 52  col2 / - col2 FR
341a0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
341b0 35 0d 0a 39 37 0d 0a 38 37 0d 0a 36 30 0d 0a 39  5..97..87..60..9
341c0 37 0d 0a 31 34 39 0d 0a 0d 0a 71 75 65 72 79 20  7..149....query 
341d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
341e0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d  T DISTINCT - ( -
341f0 20 2b 20 35 31 20 29 20 2d 20 37 38 20 2a 20 2b   + 51 ) - 78 * +
34200 20 41 56 47 20 28 20 63 6f 6c 30 20 29 20 46 52   AVG ( col0 ) FR
34210 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 63 6f  OM tab0 WHERE co
34220 6c 30 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  l0 > NULL..----.
34230 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
34240 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
34250 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
34260 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34270 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 33 0d 0a  ort label-1173..
34280 53 45 4c 45 43 54 20 41 4c 4c 20 34 36 20 44 49  SELECT ALL 46 DI
34290 56 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63  V - + col0 * - c
342a0 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 44 49 56  ol2 * - col2 DIV
342b0 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + - col2 FROM t
342c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab1..----..0..0.
342d0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
342e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
342f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
34300 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 33 0d  sort label-1173.
34310 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 36 20 2f  .SELECT ALL 46 /
34320 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   - + col0 * - co
34330 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2f 20 2b 20  l2 * - col2 / + 
34340 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  - col2 FROM tab1
34350 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
34360 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34370 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
34380 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
34390 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
343a0 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c 45 43 54  bel-1174..SELECT
343b0 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 38 38   - col0 * - + 88
343c0 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 43 41   * - col0 * + CA
343d0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
343e0 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  ED ) FROM tab1..
343f0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
34400 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
34410 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
34420 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
34430 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
34440 31 37 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  174..SELECT - co
34450 6c 30 20 2a 20 2d 20 2b 20 38 38 20 2a 20 2d 20  l0 * - + 88 * - 
34460 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54 20 28 20  col0 * + CAST ( 
34470 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
34480 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
34490 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
344a0 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
344b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
344c0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
344d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
344e0 74 20 6c 61 62 65 6c 2d 31 31 37 35 0d 0a 53 45  t label-1175..SE
344f0 4c 45 43 54 20 43 41 53 54 28 20 2d 20 28 20 2d  LECT CAST( - ( -
34500 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 53 49 47   + col1 ) AS SIG
34510 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  NED ) FROM tab2.
34520 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37  .----..51..67..7
34530 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
34540 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34550 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
34560 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 35 0d 0a  ort label-1175..
34570 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 2d 20  SELECT CAST ( - 
34580 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 41 53 20  ( - + col1 ) AS 
34590 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
345a0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36  ab2..----..51..6
345b0 37 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49  7..77....query I
345c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
345d0 20 44 49 53 54 49 4e 43 54 20 2d 20 33 31 20 2a   DISTINCT - 31 *
345e0 20 31 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   16 AS col0 FROM
345f0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39   tab0..----..-49
34600 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
34610 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
34620 54 49 4e 43 54 20 28 20 2d 20 63 6f 6c 31 20 29  TINCT ( - col1 )
34630 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
34640 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
34650 2d 0d 0a 2d 31 36 32 0d 0a 2d 32 0d 0a 2d 34 32  -..-162..-2..-42
34660 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34670 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
34680 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
34690 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
346a0 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  78..SELECT DISTI
346b0 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  NCT + COUNT( * )
346c0 20 41 53 20 63 6f 6c 32 2c 20 2b 20 4d 49 4e 28   AS col2, + MIN(
346d0 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   - col0 ) FROM t
346e0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 39  ab1..----..3..-9
346f0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
34700 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34710 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
34720 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 38 0d  sort label-1178.
34730 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
34740 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
34750 53 20 63 6f 6c 32 2c 20 2b 20 4d 49 4e 20 28 20  S col2, + MIN ( 
34760 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
34770 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 39 31  b1..----..3..-91
34780 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
34790 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
347a0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
347b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
347c0 61 62 65 6c 2d 31 31 37 39 0d 0a 53 45 4c 45 43  abel-1179..SELEC
347d0 54 20 63 6f 6c 30 20 44 49 56 20 38 33 20 2b 20  T col0 DIV 83 + 
347e0 2d 20 38 38 20 46 52 4f 4d 20 74 61 62 32 20 41  - 88 FROM tab2 A
347f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  S cor0..----..-8
34800 38 0d 0a 2d 38 38 0d 0a 2d 38 38 0d 0a 0d 0a 73  8..-88..-88....s
34810 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34820 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34830 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34840 62 65 6c 2d 31 31 37 39 0d 0a 53 45 4c 45 43 54  bel-1179..SELECT
34850 20 63 6f 6c 30 20 2f 20 38 33 20 2b 20 2d 20 38   col0 / 83 + - 8
34860 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  8 FROM tab2 AS c
34870 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 38 0d 0a  or0..----..-88..
34880 2d 38 38 0d 0a 2d 38 38 0d 0a 0d 0a 6f 6e 6c 79  -88..-88....only
34890 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
348a0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
348b0 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
348c0 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69   type: DIV for i
348d0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
348e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
348f0 72 74 20 6c 61 62 65 6c 2d 31 31 38 30 0d 0a 53  rt label-1180..S
34900 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
34910 20 29 20 44 49 56 20 2d 20 35 33 20 46 52 4f 4d   ) DIV - 53 FROM
34920 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 34 37   tab0 WHERE + 47
34930 20 2d 20 63 6f 6c 32 20 3c 20 2d 20 43 41 53 54   - col2 < - CAST
34940 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
34950 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73   )..----..0....s
34960 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34970 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34980 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34990 62 65 6c 2d 31 31 38 30 0d 0a 53 45 4c 45 43 54  bel-1180..SELECT
349a0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f   - COUNT ( * ) /
349b0 20 2d 20 35 33 20 46 52 4f 4d 20 74 61 62 30 20   - 53 FROM tab0 
349c0 57 48 45 52 45 20 2b 20 34 37 20 2d 20 63 6f 6c  WHERE + 47 - col
349d0 32 20 3c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  2 < - CAST ( NUL
349e0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a  L AS INTEGER )..
349f0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
34a00 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
34a10 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
34a20 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
34a30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 31  wsort label-1181
34a40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
34a50 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
34a60 44 20 29 20 2b 20 63 6f 6c 30 20 63 6f 6c 32 20  D ) + col0 col2 
34a70 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
34a80 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
34a90 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
34aa0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34ab0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
34ac0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
34ad0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
34ae0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
34af0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
34b00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
34b10 65 6c 2d 31 31 38 31 0d 0a 53 45 4c 45 43 54 20  el-1181..SELECT 
34b20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ALL CAST ( NULL 
34b30 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63  AS INTEGER ) + c
34b40 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol0 col2 FROM ta
34b50 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
34b60 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
34b70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
34b80 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
34b90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34ba0 20 6c 61 62 65 6c 2d 31 31 38 32 0d 0a 53 45 4c   label-1182..SEL
34bb0 45 43 54 20 28 20 2d 20 2d 20 43 4f 55 4e 54 28  ECT ( - - COUNT(
34bc0 20 2a 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d   * ) ) col1 FROM
34bd0 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f   tab0 WHERE - co
34be0 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b  l2 NOT BETWEEN +
34bf0 20 33 37 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d   37 + col1 * - -
34c00 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2d 20   ( - col0 ) * - 
34c10 32 35 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  25 AND NULL..---
34c20 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
34c30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
34c40 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
34c50 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
34c60 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
34c70 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
34c80 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
34c90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34ca0 6c 61 62 65 6c 2d 31 31 38 32 0d 0a 53 45 4c 45  label-1182..SELE
34cb0 43 54 20 28 20 2d 20 2d 20 43 4f 55 4e 54 20 28  CT ( - - COUNT (
34cc0 20 2a 20 29 20 29 20 63 6f 6c 31 20 46 52 4f 4d   * ) ) col1 FROM
34cd0 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f   tab0 WHERE - co
34ce0 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b  l2 NOT BETWEEN +
34cf0 20 33 37 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d   37 + col1 * - -
34d00 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2d 20   ( - col0 ) * - 
34d10 32 35 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  25 AND NULL..---
34d20 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..3....onlyif m
34d30 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
34d40 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
34d50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34d60 2d 31 31 38 33 0d 0a 53 45 4c 45 43 54 20 44 49  -1183..SELECT DI
34d70 53 54 49 4e 43 54 20 2b 20 53 55 4d 28 20 44 49  STINCT + SUM( DI
34d80 53 54 49 4e 43 54 20 34 33 20 29 20 46 52 4f 4d  STINCT 43 ) FROM
34d90 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d   tab0..----..43.
34da0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
34db0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
34dc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34dd0 74 20 6c 61 62 65 6c 2d 31 31 38 33 0d 0a 53 45  t label-1183..SE
34de0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
34df0 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 34  SUM ( DISTINCT 4
34e00 33 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  3 ) FROM tab0..-
34e10 2d 2d 2d 0d 0a 34 33 0d 0a 0d 0a 6f 6e 6c 79 69  ---..43....onlyi
34e20 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
34e30 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
34e40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34e50 62 65 6c 2d 31 31 38 34 0d 0a 53 45 4c 45 43 54  bel-1184..SELECT
34e60 20 41 4c 4c 20 2d 20 53 55 4d 28 20 2b 20 2b 20   ALL - SUM( + + 
34e70 37 32 20 29 20 2d 20 43 4f 55 4e 54 28 20 2a 20  72 ) - COUNT( * 
34e80 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
34e90 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 39 0d  or0..----..-219.
34ea0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
34eb0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
34ec0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34ed0 74 20 6c 61 62 65 6c 2d 31 31 38 34 0d 0a 53 45  t label-1184..SE
34ee0 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28  LECT ALL - SUM (
34ef0 20 2b 20 2b 20 37 32 20 29 20 2d 20 43 4f 55 4e   + + 72 ) - COUN
34f00 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
34f10 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
34f20 0a 2d 32 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-219....onlyif 
34f30 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
34f40 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
34f50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34f60 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 35 0d 0a  ort label-1185..
34f70 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53  SELECT ALL - CAS
34f80 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
34f90 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
34fa0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
34fb0 45 52 45 20 2d 20 43 41 53 54 28 20 63 6f 6c 32  ERE - CAST( col2
34fc0 20 41 53 20 53 49 47 4e 45 44 20 29 20 3e 3d 20   AS SIGNED ) >= 
34fd0 33 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  32..----....skip
34fe0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
34ff0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
35000 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35010 2d 31 31 38 35 0d 0a 53 45 4c 45 43 54 20 41 4c  -1185..SELECT AL
35020 4c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  L - CAST ( NULL 
35030 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
35040 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
35050 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 43  S cor0 WHERE - C
35060 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20 49 4e  AST ( col2 AS IN
35070 54 45 47 45 52 20 29 20 3e 3d 20 33 32 0d 0a 2d  TEGER ) >= 32..-
35080 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
35090 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
350a0 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2d 20 2d  ISTINCT col1 - -
350b0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
350c0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
350d0 2d 2d 0d 0a 31 31 37 0d 0a 31 32 35 0d 0a 37 34  --..117..125..74
350e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
350f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
35100 34 37 20 2a 20 2d 20 2b 20 28 20 63 6f 6c 30 20  47 * - + ( col0 
35110 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
35120 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
35130 2d 0d 0a 2d 32 31 36 32 0d 0a 2d 33 30 30 38 0d  -..-2162..-3008.
35140 0a 2d 33 35 32 35 0d 0a 0d 0a 71 75 65 72 79 20  .-3525....query 
35150 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
35160 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2d 20  CT ALL + col1 - 
35170 2b 20 2d 20 63 6f 6c 30 2c 20 2b 20 37 30 20 2b  + - col0, + 70 +
35180 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 33 31 20 41   + col2 + - 31 A
35190 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
351a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
351b0 31 33 38 0d 0a 31 30 37 0d 0a 36 35 0d 0a 31 33  138..107..65..13
351c0 35 0d 0a 39 30 0d 0a 39 38 0d 0a 0d 0a 6f 6e 6c  5..90..98....onl
351d0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
351e0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
351f0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
35200 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35210 38 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63  89..SELECT + + c
35220 6f 6c 32 20 2d 20 2d 20 37 38 20 44 49 56 20 2d  ol2 - - 78 DIV -
35230 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
35240 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
35250 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39  .----..59..68..9
35260 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
35270 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35280 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35290 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 39 0d 0a  ort label-1189..
352a0 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20  SELECT + + col2 
352b0 2d 20 2d 20 37 38 20 2f 20 2d 20 63 6f 6c 30 20  - - 78 / - col0 
352c0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
352d0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
352e0 0a 35 39 0d 0a 36 38 0d 0a 39 35 0d 0a 0d 0a 71  .59..68..95....q
352f0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
35300 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2d  .SELECT - col1 -
35310 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 39 37 20 2a   - col1 * + 97 *
35320 20 2b 20 32 38 20 41 53 20 63 6f 6c 31 2c 20 2b   + 28 AS col1, +
35330 20 63 6f 6c 32 20 2a 20 34 32 20 46 52 4f 4d 20   col2 * 42 FROM 
35340 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
35350 2d 2d 0d 0a 31 32 37 36 30 35 0d 0a 32 38 35 36  --..127605..2856
35360 0d 0a 31 33 35 37 35 0d 0a 32 34 37 38 0d 0a 33  ..13575..2478..3
35370 38 30 31 30 0d 0a 34 30 33 32 0d 0a 0d 0a 6f 6e  8010..4032....on
35380 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
35390 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
353a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
353b0 20 6c 61 62 65 6c 2d 31 31 39 31 0d 0a 53 45 4c   label-1191..SEL
353c0 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 2b  ECT ALL + SUM( +
353d0 20 32 37 20 29 20 46 52 4f 4d 20 74 61 62 30 20   27 ) FROM tab0 
353e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  AS cor0..----..8
353f0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
35400 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35410 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35420 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 31 0d 0a  ort label-1191..
35430 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d  SELECT ALL + SUM
35440 20 28 20 2b 20 32 37 20 29 20 46 52 4f 4d 20 74   ( + 27 ) FROM t
35450 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
35460 2d 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49  -..81....query I
35470 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35480 20 2b 20 39 39 20 2a 20 2b 20 63 6f 6c 32 20 46   + 99 * + col2 F
35490 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
354a0 0d 0a 2d 2d 2d 2d 0d 0a 34 36 35 33 0d 0a 39 38  ..----..4653..98
354b0 30 31 0d 0a 39 39 30 0d 0a 0d 0a 71 75 65 72 79  01..990....query
354c0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
354d0 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
354e0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
354f0 20 2d 20 38 20 49 53 20 4e 55 4c 4c 20 29 0d 0a   - 8 IS NULL )..
35500 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
35510 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
35520 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
35530 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
35540 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
35550 45 4c 45 43 54 20 39 39 20 2a 20 2d 20 2b 20 63  ELECT 99 * - + c
35560 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
35570 2d 2d 2d 0d 0a 2d 32 30 37 39 0d 0a 2d 38 30 31  ---..-2079..-801
35580 39 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20  9..-99....query 
35590 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
355a0 54 20 2b 20 37 38 20 41 53 20 63 6f 6c 31 20 46  T + 78 AS col1 F
355b0 52 4f 4d 20 74 61 62 32 2c 20 74 61 62 31 20 41  ROM tab2, tab1 A
355c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
355d0 20 2b 20 2d 20 33 39 20 3c 3e 20 2b 20 2d 20 37   + - 39 <> + - 7
355e0 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
355f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
35600 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
35610 2d 20 2d 20 37 37 20 29 20 46 52 4f 4d 20 74 61  - - 77 ) FROM ta
35620 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d  b0..----..-77...
35630 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35640 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
35650 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol2 FROM tab2 WH
35660 45 52 45 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55  ERE - col1 IS NU
35670 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
35680 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
35690 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 2c 20 63  LECT ALL col1, c
356a0 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f  ol1 * - col1 FRO
356b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31  M tab2..----..51
356c0 0d 0a 2d 32 36 30 31 0d 0a 36 37 0d 0a 2d 34 34  ..-2601..67..-44
356d0 38 39 0d 0a 37 37 0d 0a 2d 35 39 32 39 0d 0a 0d  89..77..-5929...
356e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
356f0 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c  ..SELECT + - col
35700 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
35710 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
35720 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
35730 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
35740 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
35750 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35760 61 62 65 6c 2d 31 32 30 30 0d 0a 53 45 4c 45 43  abel-1200..SELEC
35770 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2b  T DISTINCT + ( +
35780 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
35790 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63  col0 FROM tab0 c
357a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  or0..----..-3...
357b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
357c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
357d0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
357e0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
357f0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
35800 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
35810 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
35820 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35830 32 30 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  200..SELECT DIST
35840 49 4e 43 54 20 2b 20 28 20 2b 20 2d 20 43 4f 55  INCT + ( + - COU
35850 4e 54 20 28 20 2a 20 29 20 29 20 63 6f 6c 30 20  NT ( * ) ) col0 
35860 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
35870 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70  ----..-3....skip
35880 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
35890 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
358a0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
358b0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
358c0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
358d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
358e0 31 20 2a 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 32  1 * - ( - + col2
358f0 20 29 20 2b 20 2d 20 63 6f 6c 30 20 63 6f 6c 32   ) + - col0 col2
35900 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
35910 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 37 0d 0a  r0..----..1127..
35920 33 30 31 36 0d 0a 33 38 31 31 0d 0a 0d 0a 6f 6e  3016..3811....on
35930 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
35940 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
35950 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35960 20 6c 61 62 65 6c 2d 31 32 30 32 0d 0a 53 45 4c   label-1202..SEL
35970 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 34 20  ECT DISTINCT 74 
35980 2b 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d  + - COUNT( ALL -
35990 20 28 20 31 33 20 29 20 29 20 46 52 4f 4d 20 74   ( 13 ) ) FROM t
359a0 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab1 cor0 CROSS J
359b0 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 20 57 48  OIN tab0 cor1 WH
359c0 45 52 45 20 4e 55 4c 4c 20 3d 20 28 20 2b 20 34  ERE NULL = ( + 4
359d0 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d  3 )..----..74...
359e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
359f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35a00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35a10 6c 61 62 65 6c 2d 31 32 30 32 0d 0a 53 45 4c 45  label-1202..SELE
35a20 43 54 20 44 49 53 54 49 4e 43 54 20 37 34 20 2b  CT DISTINCT 74 +
35a30 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d   - COUNT ( ALL -
35a40 20 28 20 31 33 20 29 20 29 20 46 52 4f 4d 20 74   ( 13 ) ) FROM t
35a50 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab1 cor0 CROSS J
35a60 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 20 57 48  OIN tab0 cor1 WH
35a70 45 52 45 20 4e 55 4c 4c 20 3d 20 28 20 2b 20 34  ERE NULL = ( + 4
35a80 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d  3 )..----..74...
35a90 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
35aa0 74 0d 0a 53 45 4c 45 43 54 20 39 31 20 41 53 20  t..SELECT 91 AS 
35ab0 63 6f 6c 30 2c 20 63 6f 6c 31 20 46 52 4f 4d 20  col0, col1 FROM 
35ac0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a  tab0..----..91..
35ad0 31 0d 0a 39 31 0d 0a 32 31 0d 0a 39 31 0d 0a 38  1..91..21..91..8
35ae0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
35af0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
35b00 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
35b10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
35b20 30 34 0d 0a 53 45 4c 45 43 54 20 2d 20 32 35 20  04..SELECT - 25 
35b30 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  * + COUNT( * ) A
35b40 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
35b50 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a 73  ..----..-75....s
35b60 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35b70 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35b80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35b90 62 65 6c 2d 31 32 30 34 0d 0a 53 45 4c 45 43 54  bel-1204..SELECT
35ba0 20 2d 20 32 35 20 2a 20 2b 20 43 4f 55 4e 54 20   - 25 * + COUNT 
35bb0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
35bc0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
35bd0 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
35be0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
35bf0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
35c00 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
35c10 74 20 6c 61 62 65 6c 2d 31 32 30 35 0d 0a 53 45  t label-1205..SE
35c20 4c 45 43 54 20 2d 20 2d 20 43 41 53 54 28 20 4e  LECT - - CAST( N
35c30 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
35c40 2a 20 35 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20  * 51 AS col1, + 
35c50 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
35c60 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
35c70 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 30 0d 0a  ----..NULL..10..
35c80 4e 55 4c 4c 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a  NULL..47..NULL..
35c90 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  99....skipif mys
35ca0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
35cb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
35cc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 35  wsort label-1205
35cd0 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 41 53  ..SELECT - - CAS
35ce0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
35cf0 47 45 52 20 29 20 2a 20 35 31 20 41 53 20 63 6f  GER ) * 51 AS co
35d00 6c 31 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  l1, + col2 AS co
35d10 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
35d20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
35d30 0d 0a 31 30 0d 0a 4e 55 4c 4c 0d 0a 34 37 0d 0a  ..10..NULL..47..
35d40 4e 55 4c 4c 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72  NULL..99....quer
35d50 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
35d60 45 43 54 20 2d 20 31 20 2a 20 2d 20 63 6f 6c 31  ECT - 1 * - col1
35d70 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
35d80 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
35d90 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a  ..51..67..77....
35da0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
35db0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
35dc0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
35dd0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35de0 2d 31 32 30 37 0d 0a 53 45 4c 45 43 54 20 2b 20  -1207..SELECT + 
35df0 63 6f 6c 31 20 44 49 56 20 63 6f 6c 32 20 2d 20  col1 DIV col2 - 
35e00 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
35e10 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
35e20 2d 2d 2d 0d 0a 31 32 0d 0a 34 38 0d 0a 39 39 0d  ---..12..48..99.
35e30 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
35e40 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
35e50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35e60 74 20 6c 61 62 65 6c 2d 31 32 30 37 0d 0a 53 45  t label-1207..SE
35e70 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 63 6f  LECT + col1 / co
35e80 6c 32 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63  l2 - - col2 AS c
35e90 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
35ea0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 34 38  r0..----..12..48
35eb0 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..99....onlyif m
35ec0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
35ed0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
35ee0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
35ef0 6c 2d 31 32 30 38 0d 0a 53 45 4c 45 43 54 20 43  l-1208..SELECT C
35f00 4f 55 4e 54 28 20 2a 20 29 20 2a 20 43 4f 55 4e  OUNT( * ) * COUN
35f10 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20  T( * ) AS col1, 
35f20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
35f30 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
35f40 0a 39 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .9..3....skipif 
35f50 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
35f60 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
35f70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35f80 32 30 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  208..SELECT COUN
35f90 54 20 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54 20  T ( * ) * COUNT 
35fa0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20 43  ( * ) AS col1, C
35fb0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
35fc0 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
35fd0 0a 39 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .9..3....query I
35fe0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35ff0 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 46 52 4f   col0 * col0 FRO
36000 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
36010 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 2d  HERE NOT ( NOT -
36020 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2b   col1 * + col2 +
36030 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32   + + col2 * col2
36040 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
36050 2d 2d 2d 2d 0d 0a 32 32 35 0d 0a 37 35 36 39 0d  ----..225..7569.
36060 0a 39 34 30 39 0d 0a 0d 0a 71 75 65 72 79 20 49  .9409....query I
36070 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36080 20 2d 20 2d 20 35 20 2a 20 2d 20 2d 20 63 6f 6c   - - 5 * - - col
36090 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
360a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 35 0d 0a  or0..----..235..
360b0 32 35 0d 0a 37 30 0d 0a 0d 0a 73 6b 69 70 69 66  25..70....skipif
360c0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
360d0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
360e0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
360f0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
36100 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
36110 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
36120 2b 20 2b 20 31 36 2c 20 63 6f 6c 32 20 63 6f 6c  + + 16, col2 col
36130 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
36140 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 31  or0..----..16..1
36150 30 0d 0a 31 36 0d 0a 34 37 0d 0a 31 36 0d 0a 39  0..16..47..16..9
36160 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
36170 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
36180 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
36190 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
361a0 6c 61 62 65 6c 2d 31 32 31 32 0d 0a 53 45 4c 45  label-1212..SELE
361b0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  CT DISTINCT - CA
361c0 53 54 28 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20  ST( + + col2 AS 
361d0 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 63 6f 6c  SIGNED ) + - col
361e0 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
361f0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
36200 2d 0d 0a 2d 31 31 37 0d 0a 2d 31 32 35 0d 0a 2d  -..-117..-125..-
36210 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  74....skipif mys
36220 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
36230 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
36240 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 32 0d  sort label-1212.
36250 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
36260 20 2d 20 43 41 53 54 20 28 20 2b 20 2b 20 63 6f   - CAST ( + + co
36270 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
36280 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  + - col1 AS col0
36290 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
362a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 0d 0a  r0..----..-117..
362b0 2d 31 32 35 0d 0a 2d 37 34 0d 0a 0d 0a 71 75 65  -125..-74....que
362c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
362d0 4c 45 43 54 20 41 4c 4c 20 2b 20 39 35 20 2a 20  LECT ALL + 95 * 
362e0 2d 20 33 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f  - 3 + + col0 FRO
362f0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
36300 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a 2d 32 32 31  ----..-210..-221
36310 0d 0a 2d 32 33 39 0d 0a 0d 0a 71 75 65 72 79 20  ..-239....query 
36320 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
36330 43 54 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30  CT col2 + - col0
36340 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 46   AS col1, col1 F
36350 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
36360 2d 37 37 0d 0a 32 31 0d 0a 32 0d 0a 31 0d 0a 33  -77..21..2..1..3
36370 32 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  2..81....onlyif 
36380 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
36390 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
363a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
363b0 6c 2d 31 32 31 35 0d 0a 53 45 4c 45 43 54 20 43  l-1215..SELECT C
363c0 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 28 20  OUNT( * ) + - ( 
363d0 31 39 20 29 20 2b 20 2d 20 31 30 20 2a 20 2d 20  19 ) + - 10 * - 
363e0 4d 41 58 28 20 63 6f 6c 30 20 29 20 41 53 20 63  MAX( col0 ) AS c
363f0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
36400 2d 2d 2d 0d 0a 39 35 34 0d 0a 0d 0a 73 6b 69 70  ---..954....skip
36410 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36420 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36430 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36440 2d 31 32 31 35 0d 0a 53 45 4c 45 43 54 20 43 4f  -1215..SELECT CO
36450 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 28 20  UNT ( * ) + - ( 
36460 31 39 20 29 20 2b 20 2d 20 31 30 20 2a 20 2d 20  19 ) + - 10 * - 
36470 4d 41 58 20 28 20 63 6f 6c 30 20 29 20 41 53 20  MAX ( col0 ) AS 
36480 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
36490 2d 2d 2d 2d 0d 0a 39 35 34 0d 0a 0d 0a 71 75 65  ----..954....que
364a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
364b0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
364c0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
364d0 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 2d 20 31 36   + col0 - + - 16
364e0 20 2d 20 37 39 20 49 53 20 4e 4f 54 20 4e 55 4c   - 79 IS NOT NUL
364f0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
36500 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
36510 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
36520 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
36530 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 37  wsort label-1217
36540 0d 0a 53 45 4c 45 43 54 20 2d 20 36 36 20 44 49  ..SELECT - 66 DI
36550 56 20 39 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  V 99 AS col0 FRO
36560 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c  M tab0 WHERE NUL
36570 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
36580 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .0..0..0....skip
36590 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
365a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
365b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
365c0 2d 31 32 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20  -1217..SELECT - 
365d0 36 36 20 2f 20 39 39 20 41 53 20 63 6f 6c 30 20  66 / 99 AS col0 
365e0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
365f0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
36600 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71  --..0..0..0....q
36610 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
36620 53 45 4c 45 43 54 20 41 4c 4c 20 35 36 20 2b 20  SELECT ALL 56 + 
36630 2d 20 36 36 20 2b 20 2d 20 63 6f 6c 30 20 41 53  - 66 + - col0 AS
36640 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
36650 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 37 34 0d  .----..-56..-74.
36660 0a 2d 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-85....query I 
36670 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36680 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  col2 + + col1 * 
36690 2b 20 2b 20 35 34 20 2a 20 2d 20 2b 20 38 39 20  + + 54 * - + 89 
366a0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
366b0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 39 31 36  0..----..-100916
366c0 0d 0a 2d 33 38 39 32 33 39 0d 0a 2d 34 37 30 37  ..-389239..-4707
366d0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
366e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
366f0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
36700 45 52 45 20 2d 20 34 30 20 49 53 20 4e 55 4c 4c  ERE - 40 IS NULL
36710 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
36720 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36730 54 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  T - - col2 FROM 
36740 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 31 20  tab0 WHERE col1 
36750 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  + col1 IS NOT NU
36760 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37  LL..----..10..47
36770 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..99....query I 
36780 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36790 41 4c 4c 20 2b 20 2d 20 37 20 2a 20 2d 20 2b 20  ALL + - 7 * - + 
367a0 31 33 20 2a 20 2b 20 2d 20 32 20 2d 20 63 6f 6c  13 * + - 2 - col
367b0 30 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  0 + + col0 AS co
367c0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
367d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 32  cor0..----..-182
367e0 0d 0a 2d 31 38 32 0d 0a 2d 31 38 32 0d 0a 0d 0a  ..-182..-182....
367f0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
36800 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
36810 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
36820 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
36830 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
36840 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36850 20 2d 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f   - col0 col1 FRO
36860 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
36870 48 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  HERE + col2 * - 
36880 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e  col1 NOT BETWEEN
36890 20 37 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d   70 AND NULL..--
368a0 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39  --..-15..-87..-9
368b0 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
368c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
368d0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
368e0 20 2b 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 63 6f   + + col0 / + co
368f0 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 49 53  l2 + + + col0 IS
36900 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
36910 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
36920 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
36930 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
36940 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
36950 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  IIIII rowsort..S
36960 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
36970 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
36980 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
36990 41 53 20 63 6f 72 31 20 57 48 45 52 45 20 4e 4f  AS cor1 WHERE NO
369a0 54 20 2d 20 39 32 20 49 53 20 4e 55 4c 4c 0d 0a  T - 92 IS NULL..
369b0 2d 2d 2d 2d 0d 0a 35 34 20 76 61 6c 75 65 73 20  ----..54 values 
369c0 68 61 73 68 69 6e 67 20 74 6f 20 65 65 35 31 32  hashing to ee512
369d0 39 62 61 65 35 32 39 33 39 33 35 61 65 35 35 38  9bae5293935ae558
369e0 65 62 65 39 35 32 39 30 65 32 39 0d 0a 0d 0a 71  ebe95290e29....q
369f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
36a00 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
36a10 2d 20 31 36 20 46 52 4f 4d 20 74 61 62 32 2c 20  - 16 FROM tab2, 
36a20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
36a30 0a 2d 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-16....onlyif m
36a40 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
36a50 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
36a60 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
36a70 72 74 20 6c 61 62 65 6c 2d 31 32 32 37 0d 0a 53  rt label-1227..S
36a80 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2b  ELECT + + col2 +
36a90 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20   - ( - - col2 ) 
36aa0 44 49 56 20 2b 20 36 30 20 2b 20 2b 20 63 6f 6c  DIV + 60 + + col
36ab0 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
36ac0 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a 31 33 35  ..----..118..135
36ad0 0d 0a 31 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..191....skipif 
36ae0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36af0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
36b00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36b10 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63  27..SELECT + + c
36b20 6f 6c 32 20 2b 20 2d 20 28 20 2d 20 2d 20 63 6f  ol2 + - ( - - co
36b30 6c 32 20 29 20 2f 20 2b 20 36 30 20 2b 20 2b 20  l2 ) / + 60 + + 
36b40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
36b50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a  or0..----..118..
36b60 31 33 35 0d 0a 31 39 31 0d 0a 0d 0a 71 75 65 72  135..191....quer
36b70 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
36b80 45 43 54 20 41 4c 4c 20 33 32 20 2d 20 36 39 20  ECT ALL 32 - 69 
36b90 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
36ba0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 2d 33  0..----..-37..-3
36bb0 37 0d 0a 2d 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-37....onlyif
36bc0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
36bd0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
36be0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
36bf0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 39 0d  sort label-1229.
36c00 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44 49 56  .SELECT col0 DIV
36c10 20 32 34 20 2b 20 2b 20 2d 20 38 34 20 63 6f 6c   24 + + - 84 col
36c20 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
36c30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a  or0..----..-81..
36c40 2d 38 31 0d 0a 2d 38 32 0d 0a 0d 0a 73 6b 69 70  -81..-82....skip
36c50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36c60 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
36c70 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
36c80 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
36c90 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
36ca0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
36cb0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
36cc0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 39 0d 0a  ort label-1229..
36cd0 53 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20 32 34  SELECT col0 / 24
36ce0 20 2b 20 2b 20 2d 20 38 34 20 63 6f 6c 30 20 46   + + - 84 col0 F
36cf0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
36d00 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 2d 38 31  ..----..-81..-81
36d10 0d 0a 2d 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-82....query I
36d20 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36d30 20 44 49 53 54 49 4e 43 54 20 2d 20 36 30 20 2d   DISTINCT - 60 -
36d40 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   + col1 AS col0 
36d50 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
36d60 2d 2d 2d 2d 0d 0a 2d 31 34 31 0d 0a 2d 36 31 0d  ----..-141..-61.
36d70 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-81....query I 
36d80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36d90 41 4c 4c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ALL col2 FROM ta
36da0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
36db0 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   NOT - col1 * + 
36dc0 36 31 20 4e 4f 54 20 49 4e 20 28 20 2b 20 2b 20  61 NOT IN ( + + 
36dd0 63 6f 6c 30 2c 20 63 6f 6c 30 20 29 0d 0a 2d 2d  col0, col0 )..--
36de0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
36df0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36e00 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
36e10 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
36e20 63 6f 6c 32 20 3c 3d 20 2d 20 2b 20 28 20 2b 20  col2 <= - + ( + 
36e30 2b 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 29  + ( - + col2 ) )
36e40 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
36e50 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
36e60 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
36e70 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
36e80 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
36e90 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
36ea0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
36eb0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
36ec0 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 63 6f 6c   NULL IN ( - col
36ed0 31 2c 20 2b 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  1, + col1, + col
36ee0 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  0 )..----....que
36ef0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
36f00 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
36f10 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
36f20 20 4e 4f 54 20 2b 20 28 20 2d 20 63 6f 6c 31 20   NOT + ( - col1 
36f30 29 20 2b 20 31 32 20 49 53 20 4e 55 4c 4c 0d 0a  ) + 12 IS NULL..
36f40 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
36f50 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
36f60 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
36f70 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75  e537fb43b7....qu
36f80 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
36f90 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
36fa0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
36fb0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
36fc0 55 4c 4c 20 3c 20 34 31 0d 0a 2d 2d 2d 2d 0d 0a  ULL < 41..----..
36fd0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
36fe0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
36ff0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
37000 45 20 4e 4f 54 20 63 6f 6c 32 20 49 4e 20 28 20  E NOT col2 IN ( 
37010 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  - + col1 + - col
37020 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
37030 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
37040 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
37050 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
37060 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37070 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
37080 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
37090 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
370a0 62 65 6c 2d 31 32 33 37 0d 0a 53 45 4c 45 43 54  bel-1237..SELECT
370b0 20 41 4c 4c 20 32 20 44 49 56 20 63 6f 6c 32 20   ALL 2 DIV col2 
370c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
370d0 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
370e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
370f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
37100 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
37110 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
37120 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
37130 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
37140 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
37150 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37160 32 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  237..SELECT ALL 
37170 32 20 2f 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52  2 / col2 col0 FR
37180 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
37190 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..0..0....onlyif
371a0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
371b0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
371c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
371d0 65 6c 2d 31 32 33 38 0d 0a 53 45 4c 45 43 54 20  el-1238..SELECT 
371e0 2b 20 34 34 20 2d 20 2d 20 43 4f 55 4e 54 28 20  + 44 - - COUNT( 
371f0 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  - col0 ) AS col0
37200 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
37210 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 30 20 2a 20   NOT + + col0 * 
37220 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20  + col1 + + col0 
37230 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
37240 2d 0d 0a 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..44....skipif 
37250 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
37260 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
37270 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37280 33 38 0d 0a 53 45 4c 45 43 54 20 2b 20 34 34 20  38..SELECT + 44 
37290 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f  - - COUNT ( - co
372a0 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l0 ) AS col0 FRO
372b0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
372c0 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   + + col0 * + co
372d0 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e  l1 + + col0 IS N
372e0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34  OT NULL..----..4
372f0 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
37300 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
37310 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
37320 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
37330 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37340 74 20 6c 61 62 65 6c 2d 31 32 33 39 0d 0a 53 45  t label-1239..SE
37350 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
37360 44 49 56 20 2d 20 2b 20 53 55 4d 28 20 2d 20 63  DIV - + SUM( - c
37370 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol1 ) FROM tab0.
37380 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
37390 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
373a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
373b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
373c0 2d 31 32 33 39 0d 0a 53 45 4c 45 43 54 20 43 4f  -1239..SELECT CO
373d0 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d 20 2b 20  UNT ( * ) / - + 
373e0 53 55 4d 20 28 20 2d 20 63 6f 6c 31 20 29 20 46  SUM ( - col1 ) F
373f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
37400 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
37410 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
37420 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
37430 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37440 6c 61 62 65 6c 2d 31 32 34 30 0d 0a 53 45 4c 45  label-1240..SELE
37450 43 54 20 63 6f 6c 31 20 44 49 56 20 37 38 20 41  CT col1 DIV 78 A
37460 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
37470 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
37480 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
37490 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
374a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
374b0 74 20 6c 61 62 65 6c 2d 31 32 34 30 0d 0a 53 45  t label-1240..SE
374c0 4c 45 43 54 20 63 6f 6c 31 20 2f 20 37 38 20 41  LECT col1 / 78 A
374d0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
374e0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
374f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37500 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
37510 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
37520 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
37530 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37540 20 6c 61 62 65 6c 2d 31 32 34 31 0d 0a 53 45 4c   label-1241..SEL
37550 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e  ECT ALL + + COUN
37560 54 28 20 2b 20 28 20 2b 20 43 41 53 54 28 20 2b  T( + ( + CAST( +
37570 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 44   ( - col2 ) AS D
37580 45 43 49 4d 41 4c 20 29 20 29 20 29 20 2a 20 2d  ECIMAL ) ) ) * -
37590 20 39 39 20 46 52 4f 4d 20 74 61 62 31 20 57 48   99 FROM tab1 WH
375a0 45 52 45 20 4e 4f 54 20 2b 20 2b 20 31 20 2a 20  ERE NOT + + 1 * 
375b0 36 36 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 37 35  66 * + col0 + 75
375c0 20 2d 20 2d 20 2b 20 31 20 49 53 20 4e 55 4c 4c   - - + 1 IS NULL
375d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 37 0d 0a 0d 0a  ..----..-297....
375e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
375f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37600 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
37610 61 62 65 6c 2d 31 32 34 31 0d 0a 53 45 4c 45 43  abel-1241..SELEC
37620 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 20  T ALL + + COUNT 
37630 28 20 2b 20 28 20 2b 20 43 41 53 54 20 28 20 2b  ( + ( + CAST ( +
37640 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 52   ( - col2 ) AS R
37650 45 41 4c 20 29 20 29 20 29 20 2a 20 2d 20 39 39  EAL ) ) ) * - 99
37660 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
37670 20 4e 4f 54 20 2b 20 2b 20 31 20 2a 20 36 36 20   NOT + + 1 * 66 
37680 2a 20 2b 20 63 6f 6c 30 20 2b 20 37 35 20 2d 20  * + col0 + 75 - 
37690 2d 20 2b 20 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d  - + 1 IS NULL..-
376a0 2d 2d 2d 0d 0a 2d 32 39 37 0d 0a 0d 0a 6f 6e 6c  ---..-297....onl
376b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
376c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
376d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
376e0 6c 61 62 65 6c 2d 31 32 34 32 0d 0a 53 45 4c 45  label-1242..SELE
376f0 43 54 20 33 34 20 2a 20 2d 20 53 55 4d 28 20 44  CT 34 * - SUM( D
37700 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29  ISTINCT + col2 )
37710 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
37720 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 30 34 0d  b0..----..-5304.
37730 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
37740 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
37750 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37760 74 20 6c 61 62 65 6c 2d 31 32 34 32 0d 0a 53 45  t label-1242..SE
37770 4c 45 43 54 20 33 34 20 2a 20 2d 20 53 55 4d 20  LECT 34 * - SUM 
37780 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
37790 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
377a0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33   tab0..----..-53
377b0 30 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  04....onlyif mys
377c0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
377d0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
377e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
377f0 32 34 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  243..SELECT DIST
37800 49 4e 43 54 20 35 36 20 2a 20 2b 20 2b 20 43 4f  INCT 56 * + + CO
37810 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
37820 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
37830 0d 0a 31 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..168....skipif 
37840 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
37850 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
37860 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37870 34 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  43..SELECT DISTI
37880 4e 43 54 20 35 36 20 2a 20 2b 20 2b 20 43 4f 55  NCT 56 * + + COU
37890 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
378a0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
378b0 0d 0a 31 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49  ..168....query I
378c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
378d0 20 28 20 2d 20 2b 20 38 36 20 29 20 2b 20 2b 20   ( - + 86 ) + + 
378e0 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
378f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
37900 31 0d 0a 2d 32 32 0d 0a 2d 34 30 0d 0a 0d 0a 6f  1..-22..-40....o
37910 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
37920 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
37930 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37940 74 20 6c 61 62 65 6c 2d 31 32 34 35 0d 0a 53 45  t label-1245..SE
37950 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
37960 2d 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  - ( COUNT( * ) )
37970 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
37980 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  b0 cor0..----..3
37990 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
379a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
379b0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
379c0 72 74 20 6c 61 62 65 6c 2d 31 32 34 35 0d 0a 53  rt label-1245..S
379d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
379e0 20 2d 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29   - ( COUNT ( * )
379f0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
37a00 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
37a10 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .3....onlyif mys
37a20 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
37a30 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
37a40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37a50 32 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  246..SELECT ALL 
37a60 4d 49 4e 28 20 2b 20 2d 20 38 34 20 29 20 46 52  MIN( + - 84 ) FR
37a70 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
37a80 0a 2d 2d 2d 2d 0d 0a 2d 38 34 0d 0a 0d 0a 73 6b  .----..-84....sk
37a90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
37aa0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
37ab0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37ac0 65 6c 2d 31 32 34 36 0d 0a 53 45 4c 45 43 54 20  el-1246..SELECT 
37ad0 41 4c 4c 20 4d 49 4e 20 28 20 2b 20 2d 20 38 34  ALL MIN ( + - 84
37ae0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
37af0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 34 0d  cor0..----..-84.
37b00 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
37b10 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
37b20 2a 20 2d 20 32 33 20 2a 20 2b 20 28 20 2d 20 28  * - 23 * + ( - (
37b30 20 63 6f 6c 30 20 29 20 29 20 2b 20 2b 20 34 31   col0 ) ) + + 41
37b40 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
37b50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 30 39 31  r0..----..100091
37b60 0d 0a 32 34 33 37 35 0d 0a 35 38 39 32 31 0d 0a  ..24375..58921..
37b70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
37b80 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
37b90 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
37ba0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
37bb0 6c 61 62 65 6c 2d 31 32 34 38 0d 0a 53 45 4c 45  label-1248..SELE
37bc0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
37bd0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
37be0 57 48 45 52 45 20 2b 20 32 35 20 3e 20 43 41 53  WHERE + 25 > CAS
37bf0 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
37c00 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  AL )..----....sk
37c10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
37c20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
37c30 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
37c40 61 62 65 6c 2d 31 32 34 38 0d 0a 53 45 4c 45 43  abel-1248..SELEC
37c50 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
37c60 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
37c70 48 45 52 45 20 2b 20 32 35 20 3e 20 43 41 53 54  HERE + 25 > CAST
37c80 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
37c90 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
37ca0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
37cb0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
37cc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37cd0 62 65 6c 2d 31 32 34 39 0d 0a 53 45 4c 45 43 54  bel-1249..SELECT
37ce0 20 41 4c 4c 20 2d 20 4d 41 58 28 20 2b 20 2d 20   ALL - MAX( + - 
37cf0 32 38 20 29 20 2b 20 2b 20 4d 49 4e 28 20 41 4c  28 ) + + MIN( AL
37d00 4c 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32  L col1 ) AS col2
37d10 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
37d20 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d 0a 0d 0a  r0..----..79....
37d30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37d40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37d50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
37d60 61 62 65 6c 2d 31 32 34 39 0d 0a 53 45 4c 45 43  abel-1249..SELEC
37d70 54 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20 2b 20  T ALL - MAX ( + 
37d80 2d 20 32 38 20 29 20 2b 20 2b 20 4d 49 4e 20 28  - 28 ) + + MIN (
37d90 20 41 4c 4c 20 63 6f 6c 31 20 29 20 41 53 20 63   ALL col1 ) AS c
37da0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
37db0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d   cor0..----..79.
37dc0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37dd0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
37de0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
37df0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 30  wsort label-1250
37e00 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
37e10 28 20 34 34 20 29 20 41 53 20 63 6f 6c 32 20 46  ( 44 ) AS col2 F
37e20 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
37e30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
37e40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37e50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37e60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37e70 6c 2d 31 32 35 30 0d 0a 53 45 4c 45 43 54 20 2b  l-1250..SELECT +
37e80 20 43 4f 55 4e 54 20 28 20 34 34 20 29 20 41 53   COUNT ( 44 ) AS
37e90 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
37ea0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
37eb0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
37ec0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
37ed0 54 49 4e 43 54 20 2b 20 37 20 41 53 20 63 6f 6c  TINCT + 7 AS col
37ee0 30 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20  0, col1 AS col1 
37ef0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
37f00 30 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 35 31 0d 0a  0..----..7..51..
37f10 37 0d 0a 36 37 0d 0a 37 0d 0a 37 37 0d 0a 0d 0a  7..67..7..77....
37f20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
37f30 0a 53 45 4c 45 43 54 20 31 31 20 41 53 20 63 6f  .SELECT 11 AS co
37f40 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
37f50 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
37f60 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
37f70 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
37f80 45 4c 45 43 54 20 63 6f 6c 32 2c 20 28 20 2d 20  ELECT col2, ( - 
37f90 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
37fa0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d 35  b1..----..59..-5
37fb0 39 0d 0a 36 38 0d 0a 2d 36 38 0d 0a 39 36 0d 0a  9..68..-68..96..
37fc0 2d 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -96....query I r
37fd0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
37fe0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b  ISTINCT + col1 +
37ff0 20 35 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   58 FROM tab1..-
38000 2d 2d 2d 0d 0a 31 30 35 0d 0a 36 33 0d 0a 37 32  ---..105..63..72
38010 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
38020 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
38030 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
38040 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35  owsort label-125
38050 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
38060 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
38070 2a 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  * - + COUNT( * )
38080 20 2a 20 2d 20 32 37 20 2b 20 2b 20 2d 20 43 4f   * - 27 + + - CO
38090 55 4e 54 28 20 41 4c 4c 20 2b 20 39 20 29 20 46  UNT( ALL + 9 ) F
380a0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
380b0 32 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  240....skipif my
380c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
380d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
380e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 35  wsort label-1255
380f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
38100 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
38110 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  * - + COUNT ( * 
38120 29 20 2a 20 2d 20 32 37 20 2b 20 2b 20 2d 20 43  ) * - 27 + + - C
38130 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 39 20 29  OUNT ( ALL + 9 )
38140 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
38150 0d 0a 32 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..240....query I
38160 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
38170 54 20 2b 20 32 32 20 41 53 20 63 6f 6c 31 2c 20  T + 22 AS col1, 
38180 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
38190 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32  M tab0..----..22
381a0 0d 0a 31 30 0d 0a 32 32 0d 0a 34 37 0d 0a 32 32  ..10..22..47..22
381b0 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..99....query I 
381c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
381d0 41 4c 4c 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c  ALL col0 + + col
381e0 31 20 2b 20 2b 20 34 39 20 41 53 20 63 6f 6c 31  1 + + 49 AS col1
381f0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
38200 0d 0a 31 34 36 0d 0a 31 39 30 0d 0a 31 39 31 0d  ..146..190..191.
38210 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
38220 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
38230 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
38240 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2f 20 2d  WHERE + col2 / -
38250 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d   + col0 IS NULL.
38260 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
38270 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
38280 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 39 37 20 41   - col2 + + 97 A
38290 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
382a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
382b0 31 0d 0a 32 39 0d 0a 33 38 0d 0a 0d 0a 71 75 65  1..29..38....que
382c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
382d0 4c 45 43 54 20 2d 20 31 35 20 2b 20 2b 20 63 6f  LECT - 15 + + co
382e0 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63  l0 + + col1 AS c
382f0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
38300 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a 31  r0..----..126..1
38310 32 37 0d 0a 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  27..82....onlyif
38320 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
38330 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
38340 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
38350 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 31  wsort label-1261
38360 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
38370 2d 20 2b 20 37 36 20 2a 20 2b 20 63 6f 6c 30 20  - + 76 * + col0 
38380 2b 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  + - + CAST( NULL
38390 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 63 6f   AS DECIMAL ) co
383a0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
383b0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
383c0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
383d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
383e0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
383f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
38400 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
38410 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
38420 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
38430 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
38440 6c 61 62 65 6c 2d 31 32 36 31 0d 0a 53 45 4c 45  label-1261..SELE
38450 43 54 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 37 36  CT col0 * - + 76
38460 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20   * + col0 + - + 
38470 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
38480 45 41 4c 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  EAL ) col1 FROM 
38490 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
384a0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
384b0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
384c0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
384d0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
384e0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
384f0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
38500 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
38510 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 38 38 20 63   + col2 * - 88 c
38520 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
38530 2d 2d 2d 0d 0a 2d 34 31 33 36 0d 0a 2d 38 37 31  ---..-4136..-871
38540 32 0d 0a 2d 38 38 30 0d 0a 0d 0a 6f 6e 6c 79 69  2..-880....onlyi
38550 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
38560 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
38570 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
38580 61 62 65 6c 2d 31 32 36 33 0d 0a 53 45 4c 45 43  abel-1263..SELEC
38590 54 20 41 4c 4c 20 2d 20 28 20 2b 20 43 4f 55 4e  T ALL - ( + COUN
385a0 54 28 20 2a 20 29 20 29 20 2a 20 2d 20 2b 20 43  T( * ) ) * - + C
385b0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
385c0 32 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  2, + COUNT( * ) 
385d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
385e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d  S cor0..----..9.
385f0 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
38600 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
38610 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
38620 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
38630 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
38640 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
38650 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
38660 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
38670 61 62 65 6c 2d 31 32 36 33 0d 0a 53 45 4c 45 43  abel-1263..SELEC
38680 54 20 41 4c 4c 20 2d 20 28 20 2b 20 43 4f 55 4e  T ALL - ( + COUN
38690 54 20 28 20 2a 20 29 20 29 20 2a 20 2d 20 2b 20  T ( * ) ) * - + 
386a0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
386b0 6f 6c 32 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a  ol2, + COUNT ( *
386c0 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
386d0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
386e0 0a 39 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .9..3....onlyif 
386f0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
38700 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
38710 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
38720 6c 2d 31 32 36 34 0d 0a 53 45 4c 45 43 54 20 2d  l-1264..SELECT -
38730 20 2d 20 53 55 4d 28 20 41 4c 4c 20 63 6f 6c 32   - SUM( ALL col2
38740 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
38750 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d  cor0..----..156.
38760 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
38770 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
38780 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
38790 74 20 6c 61 62 65 6c 2d 31 32 36 34 0d 0a 53 45  t label-1264..SE
387a0 4c 45 43 54 20 2d 20 2d 20 53 55 4d 20 28 20 41  LECT - - SUM ( A
387b0 4c 4c 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74  LL col2 ) FROM t
387c0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
387d0 2d 0d 0a 31 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..156....onlyif
387e0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
387f0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
38800 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
38810 65 6c 2d 31 32 36 35 0d 0a 53 45 4c 45 43 54 20  el-1265..SELECT 
38820 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20  DISTINCT COUNT( 
38830 2a 20 29 20 2a 20 2d 20 37 38 20 46 52 4f 4d 20  * ) * - 78 FROM 
38840 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
38850 2d 2d 0d 0a 2d 32 33 34 0d 0a 0d 0a 73 6b 69 70  --..-234....skip
38860 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
38870 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
38880 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38890 2d 31 32 36 35 0d 0a 53 45 4c 45 43 54 20 44 49  -1265..SELECT DI
388a0 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
388b0 20 29 20 2a 20 2d 20 37 38 20 46 52 4f 4d 20 74   ) * - 78 FROM t
388c0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
388d0 2d 0d 0a 2d 32 33 34 0d 0a 0d 0a 6f 6e 6c 79 69  -..-234....onlyi
388e0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
388f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
38900 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
38910 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36  owsort label-126
38920 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
38930 43 54 20 2b 20 2b 20 63 6f 6c 31 20 44 49 56 20  CT + + col1 DIV 
38940 2d 20 2b 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31  - + col2, - col1
38950 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
38960 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
38970 0d 0a 2d 31 0d 0a 2d 38 31 0d 0a 2d 32 0d 0a 2d  ..-1..-81..-2..-
38980 32 31 0d 0a 30 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69  21..0..-1....ski
38990 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
389a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
389b0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
389c0 65 6c 2d 31 32 36 36 0d 0a 53 45 4c 45 43 54 20  el-1266..SELECT 
389d0 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c  DISTINCT + + col
389e0 31 20 2f 20 2d 20 2b 20 63 6f 6c 32 2c 20 2d 20  1 / - + col2, - 
389f0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
38a00 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
38a10 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 38 31 0d 0a 2d  ----..-1..-81..-
38a20 32 0d 0a 2d 32 31 0d 0a 30 0d 0a 2d 31 0d 0a 0d  2..-21..0..-1...
38a30 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
38a40 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
38a50 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
38a60 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
38a70 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
38a80 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
38a90 43 54 20 2b 20 38 31 20 2a 20 63 6f 6c 32 20 41  CT + 81 * col2 A
38aa0 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 2a  S col0, + col2 *
38ab0 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20   col0 col2 FROM 
38ac0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
38ad0 2d 2d 0d 0a 34 37 37 39 0d 0a 35 30 31 35 0d 0a  --..4779..5015..
38ae0 35 35 30 38 0d 0a 36 31 38 38 0d 0a 37 37 37 36  5508..6188..7776
38af0 0d 0a 34 38 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..4896....onlyif
38b00 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
38b10 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
38b20 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
38b30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 38  wsort label-1268
38b40 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 41 53  ..SELECT - - CAS
38b50 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47  T( + col2 AS SIG
38b60 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 2c 20 63  NED ) AS col1, c
38b70 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
38b80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   cor0..----..10.
38b90 0a 32 31 0d 0a 34 37 0d 0a 38 31 0d 0a 39 39 0d  .21..47..81..99.
38ba0 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
38bb0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
38bc0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
38bd0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 38  wsort label-1268
38be0 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 41 53  ..SELECT - - CAS
38bf0 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e  T ( + col2 AS IN
38c00 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 2c  TEGER ) AS col1,
38c10 20 63