sqllogictest
Hex Artifact Content
Not logged in

Artifact 84d3c19c43b8a66fd352ca8ea14b9a759030e037:


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 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
0310: 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  NT( DISTINCT + +
0320: 20 34 37 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   47 ) FROM tab1.
0330: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .----..1....skip
0340: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
0350: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
0360: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0370: 2d 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  -0..SELECT ALL +
0380: 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43   COUNT ( DISTINC
0390: 54 20 2b 20 2b 20 34 37 20 29 20 46 52 4f 4d 20  T + + 47 ) FROM 
03a0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  tab1..----..1...
03b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
03c0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28  ..SELECT ALL - (
03d0: 20 38 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d   80 ) FROM tab2.
03e0: 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 2d 38 30 0d  .----..-80..-80.
03f0: 0a 2d 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-80....query I 
0400: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
0410: 39 39 20 2a 20 2d 20 2d 20 37 35 20 41 53 20 63  99 * - - 75 AS c
0420: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
0430: 2d 2d 2d 0d 0a 37 34 32 35 0d 0a 37 34 32 35 0d  ---..7425..7425.
0440: 0a 37 34 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .7425....query I
0450: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
0460: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
0470: 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 28 20 63  HERE NOT - + ( c
0480: 6f 6c 30 20 29 20 2a 20 31 37 20 2a 20 2d 20 63  ol0 ) * 17 * - c
0490: 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 49  ol0 + + - col0 I
04a0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
04b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
04c0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
04d0: 49 4e 43 54 20 28 20 2d 20 2b 20 39 37 20 29 20  INCT ( - + 97 ) 
04e0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
04f0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 37 0d 0a 0d 0a  2..----..-97....
0500: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
0510: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
0520: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
0530: 72 74 20 6c 61 62 65 6c 2d 35 0d 0a 53 45 4c 45  rt label-5..SELE
0540: 43 54 20 2b 20 34 39 20 2a 20 2d 20 43 4f 55 4e  CT + 49 * - COUN
0550: 54 28 20 2a 20 29 20 2b 20 4d 41 58 28 20 44 49  T( * ) + MAX( DI
0560: 53 54 49 4e 43 54 20 2b 20 2b 20 37 31 20 29 20  STINCT + + 71 ) 
0570: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
0580: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
0590: 4e 4f 54 20 38 32 20 49 53 20 4e 4f 54 20 4e 55  NOT 82 IS NOT NU
05a0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
05b0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
05c0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
05d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
05e0: 20 6c 61 62 65 6c 2d 35 0d 0a 53 45 4c 45 43 54   label-5..SELECT
05f0: 20 2b 20 34 39 20 2a 20 2d 20 43 4f 55 4e 54 20   + 49 * - COUNT 
0600: 28 20 2a 20 29 20 2b 20 4d 41 58 20 28 20 44 49  ( * ) + MAX ( DI
0610: 53 54 49 4e 43 54 20 2b 20 2b 20 37 31 20 29 20  STINCT + + 71 ) 
0620: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
0630: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
0640: 4e 4f 54 20 38 32 20 49 53 20 4e 4f 54 20 4e 55  NOT 82 IS NOT NU
0650: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
0660: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0670: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
0680: 2d 20 39 38 20 46 52 4f 4d 20 74 61 62 30 20 57  - 98 FROM tab0 W
0690: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
06a0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
06b0: 0a 39 38 0d 0a 39 38 0d 0a 39 38 0d 0a 0d 0a 71  .98..98..98....q
06c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
06d0: 53 45 4c 45 43 54 20 33 34 20 2a 20 2b 20 63 6f  SELECT 34 * + co
06e0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
06f0: 2d 2d 0d 0a 31 37 33 34 0d 0a 32 38 39 30 0d 0a  --..1734..2890..
0700: 33 30 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3094....query I 
0710: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
0720: 2b 20 2b 20 38 30 20 46 52 4f 4d 20 74 61 62 32  + + 80 FROM tab2
0730: 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
0740: 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31  OIN tab1 AS cor1
0750: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
0760: 20 68 61 73 68 69 6e 67 20 74 6f 20 38 37 38 66   hashing to 878f
0770: 30 31 32 64 37 30 37 61 61 62 31 31 33 63 65 64  012d707aab113ced
0780: 61 66 35 36 65 36 63 35 32 65 39 34 0d 0a 0d 0a  af56e6c52e94....
0790: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
07a0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
07b0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
07c0: 72 74 20 6c 61 62 65 6c 2d 39 0d 0a 53 45 4c 45  rt label-9..SELE
07d0: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f  CT DISTINCT - CO
07e0: 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 31 37 20  UNT( * ) * + 17 
07f0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
0800: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
0810: 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-51....skipif m
0820: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
0830: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
0840: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 0d 0a  owsort label-9..
0850: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
0860: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
0870: 2b 20 31 37 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 17 AS col0 FRO
0880: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
0890: 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 71 75 65  ----..-51....que
08a0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
08b0: 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 30 2c 20  ELECT - + col0, 
08c0: 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c  + col2 + - - col
08d0: 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
08e0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
08f0: 2d 0d 0a 2d 31 35 0d 0a 36 32 0d 0a 2d 38 37 0d  -..-15..62..-87.
0900: 0a 39 37 0d 0a 2d 39 37 0d 0a 31 39 36 0d 0a 0d  .97..-97..196...
0910: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
0920: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
0930: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
0940: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0950: 6c 2d 31 31 0d 0a 53 45 4c 45 43 54 20 2b 20 35  l-11..SELECT + 5
0960: 34 20 44 49 56 20 63 6f 6c 32 20 46 52 4f 4d 20  4 DIV col2 FROM 
0970: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
0980: 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  --..0..0..0....s
0990: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
09a0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
09b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
09c0: 62 65 6c 2d 31 31 0d 0a 53 45 4c 45 43 54 20 2b  bel-11..SELECT +
09d0: 20 35 34 20 2f 20 63 6f 6c 32 20 46 52 4f 4d 20   54 / col2 FROM 
09e0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
09f0: 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f  --..0..0..0....o
0a00: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
0a10: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
0a20: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
0a30: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
0a40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0a50: 6c 2d 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-12..SELECT ALL
0a60: 20 32 37 20 44 49 56 20 43 4f 55 4e 54 28 20 2a   27 DIV COUNT( *
0a70: 20 29 20 2a 20 2b 20 2d 20 35 38 20 41 53 20 63   ) * + - 58 AS c
0a80: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
0a90: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32   cor0..----..-52
0aa0: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
0ab0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
0ac0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
0ad0: 6f 72 74 20 6c 61 62 65 6c 2d 31 32 0d 0a 53 45  ort label-12..SE
0ae0: 4c 45 43 54 20 41 4c 4c 20 32 37 20 2f 20 43 4f  LECT ALL 27 / CO
0af0: 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20  UNT ( * ) * + - 
0b00: 35 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  58 AS col2 FROM 
0b10: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
0b20: 2d 2d 0d 0a 2d 35 32 32 0d 0a 0d 0a 71 75 65 72  --..-522....quer
0b30: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
0b40: 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63  ECT - col2 + + c
0b50: 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a  ol0 * + + col0 *
0b60: 20 2b 20 2d 20 28 20 2b 20 31 35 20 29 20 46 52   + - ( + 15 ) FR
0b70: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
0b80: 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
0b90: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
0ba0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
0bb0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
0bc0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
0bd0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0be0: 2d 31 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  -14..SELECT col1
0bf0: 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 28 20 43 41   * + col0 + ( CA
0c00: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
0c10: 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  ED ) ) FROM tab1
0c20: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
0c30: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
0c40: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
0c50: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
0c60: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0c70: 2d 31 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  -14..SELECT col1
0c80: 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 28 20 43 41   * + col0 + ( CA
0c90: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
0ca0: 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61  EGER ) ) FROM ta
0cb0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
0cc0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
0cd0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
0ce0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
0cf0: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
0d00: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
0d10: 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  5..SELECT ALL - 
0d20: 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  col1 * + + col1 
0d30: 2b 20 2b 20 43 41 53 54 28 20 33 38 20 41 53 20  + + CAST( 38 AS 
0d40: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
0d50: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 33 0d 0a  b0..----..-403..
0d60: 2d 36 35 32 33 0d 0a 33 37 0d 0a 0d 0a 73 6b 69  -6523..37....ski
0d70: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
0d80: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
0d90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0da0: 6c 2d 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-15..SELECT ALL
0db0: 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f   - col1 * + + co
0dc0: 6c 31 20 2b 20 2b 20 43 41 53 54 20 28 20 33 38  l1 + + CAST ( 38
0dd0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
0de0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
0df0: 34 30 33 0d 0a 2d 36 35 32 33 0d 0a 33 37 0d 0a  403..-6523..37..
0e00: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0e10: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
0e20: 43 54 20 63 6f 6c 31 20 2b 20 2b 20 28 20 63 6f  CT col1 + + ( co
0e30: 6c 32 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 30 20  l2 ) + - + col0 
0e40: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
0e50: 0a 32 38 0d 0a 35 30 0d 0a 35 33 0d 0a 0d 0a 6f  .28..50..53....o
0e60: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
0e70: 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
0e80: 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
0e90: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0ea0: 2d 31 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -17..SELECT ALL 
0eb0: 2b 20 38 30 20 2d 20 2b 20 43 41 53 54 28 20 4e  + 80 - + CAST( N
0ec0: 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
0ed0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
0ee0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
0ef0: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
0f00: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
0f10: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
0f20: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 0d 0a 53  sort label-17..S
0f30: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 30 20 2d  ELECT ALL + 80 -
0f40: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
0f50: 53 20 52 45 41 4c 20 29 20 46 52 4f 4d 20 74 61  S REAL ) FROM ta
0f60: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
0f70: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
0f80: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
0f90: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
0fa0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
0fb0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
0fc0: 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
0fd0: 43 54 20 63 6f 6c 30 20 44 49 56 20 2b 20 63 6f  CT col0 DIV + co
0fe0: 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
0ff0: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
1000: 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..1....skipif 
1010: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1020: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1030: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38  rowsort label-18
1040: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1050: 54 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 31 20  T col0 / + col1 
1060: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1070: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  2 cor0..----..0.
1080: 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .1....query I ro
1090: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
10a0: 39 37 20 2a 20 2d 20 31 32 20 41 53 20 63 6f 6c  97 * - 12 AS col
10b0: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
10c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36 34  or0..----..-1164
10d0: 0d 0a 2d 31 31 36 34 0d 0a 2d 31 31 36 34 0d 0a  ..-1164..-1164..
10e0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10f0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1100: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1110: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 0d 0a 53  sort label-20..S
1120: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 4d 49  ELECT ALL + - MI
1130: 4e 28 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20  N( DISTINCT ( - 
1140: 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 29 20 46  ( - col2 ) ) ) F
1150: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1160: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73  ..----..-10....s
1170: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1180: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1190: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11a0: 62 65 6c 2d 32 30 0d 0a 53 45 4c 45 43 54 20 41  bel-20..SELECT A
11b0: 4c 4c 20 2b 20 2d 20 4d 49 4e 20 28 20 44 49 53  LL + - MIN ( DIS
11c0: 54 49 4e 43 54 20 28 20 2d 20 28 20 2d 20 63 6f  TINCT ( - ( - co
11d0: 6c 32 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61  l2 ) ) ) FROM ta
11e0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
11f0: 0d 0a 2d 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-10....onlyif 
1200: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1210: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1220: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1230: 6c 2d 32 31 0d 0a 53 45 4c 45 43 54 20 2b 20 37  l-21..SELECT + 7
1240: 32 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  2 * COUNT( * ) F
1250: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1260: 32 31 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  216....skipif my
1270: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1280: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1290: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 0d 0a  wsort label-21..
12a0: 53 45 4c 45 43 54 20 2b 20 37 32 20 2a 20 43 4f  SELECT + 72 * CO
12b0: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
12c0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 36 0d 0a  ab1..----..216..
12d0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
12e0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
12f0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1300: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 0d 0a 53  sort label-22..S
1310: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
1320: 54 28 20 2a 20 29 20 2b 20 2b 20 28 20 2b 20 36  T( * ) + + ( + 6
1330: 32 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  2 ) FROM tab0..-
1340: 2d 2d 2d 0d 0a 36 35 0d 0a 0d 0a 73 6b 69 70 69  ---..65....skipi
1350: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1360: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1370: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1380: 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  22..SELECT ALL +
1390: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
13a0: 20 28 20 2b 20 36 32 20 29 20 46 52 4f 4d 20 74   ( + 62 ) FROM t
13b0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a 0d  ab0..----..65...
13c0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
13d0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
13e0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
13f0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1400: 6c 2d 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-23..SELECT ALL
1410: 20 2d 20 63 6f 6c 30 20 44 49 56 20 2d 20 34 30   - col0 DIV - 40
1420: 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + + col1 AS col
1430: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
1440: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 34  or0..----..15..4
1450: 39 0d 0a 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  9..7....skipif m
1460: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1470: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1480: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 0d  owsort label-23.
1490: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
14a0: 6c 30 20 2f 20 2d 20 34 30 20 2b 20 2b 20 63 6f  l0 / - 40 + + co
14b0: 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
14c0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
14d0: 2d 2d 0d 0a 31 35 0d 0a 34 39 0d 0a 37 0d 0a 0d  --..15..49..7...
14e0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
14f0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1500: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1510: 6f 72 74 20 6c 61 62 65 6c 2d 32 34 0d 0a 53 45  ort label-24..SE
1520: 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55  LECT ALL + + COU
1530: 4e 54 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29  NT( ALL + col1 )
1540: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1550: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
1560: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1570: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1580: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1590: 62 65 6c 2d 32 34 0d 0a 53 45 4c 45 43 54 20 41  bel-24..SELECT A
15a0: 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41  LL + + COUNT ( A
15b0: 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d  LL + col1 ) FROM
15c0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
15d0: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
15e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15f0: 54 20 2b 20 63 6f 6c 30 20 2a 20 28 20 63 6f 6c  T + col0 * ( col
1600: 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
1610: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
1620: 0d 0a 34 38 39 36 0d 0a 35 30 31 35 0d 0a 36 31  ..4896..5015..61
1630: 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  88....query I ro
1640: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1650: 38 38 20 2f 20 2b 20 38 20 2a 20 2d 20 2b 20 63  88 / + 8 * - + c
1660: 6f 6c 31 20 2b 20 2d 20 28 20 39 35 20 29 20 2b  ol1 + - ( 95 ) +
1670: 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
1680: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1690: 4e 4f 54 20 2b 20 2d 20 38 33 20 2a 20 2d 20 2b  NOT + - 83 * - +
16a0: 20 36 30 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 2b   60 - col2 / - +
16b0: 20 28 20 2d 20 2d 20 32 36 20 29 20 49 53 20 4e   ( - - 26 ) IS N
16c0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
16d0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
16e0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
16f0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1700: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 0d 0a 53 45  ort label-27..SE
1710: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49  LECT DISTINCT MI
1720: 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  N( DISTINCT - + 
1730: 37 36 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  76 ) FROM tab0..
1740: 2d 2d 2d 2d 0d 0a 2d 37 36 0d 0a 0d 0a 73 6b 69  ----..-76....ski
1750: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1760: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1770: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1780: 6c 2d 32 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-27..SELECT DIS
1790: 54 49 4e 43 54 20 4d 49 4e 20 28 20 44 49 53 54  TINCT MIN ( DIST
17a0: 49 4e 43 54 20 2d 20 2b 20 37 36 20 29 20 46 52  INCT - + 76 ) FR
17b0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
17c0: 37 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  76....query III 
17d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17e0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
17f0: 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2f  WHERE NOT col0 /
1800: 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30   + col0 * - col0
1810: 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c   * - col1 IS NUL
1820: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
1830: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
1840: 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
1850: 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
1860: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1870: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1880: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
1890: 20 28 20 4e 4f 54 20 28 20 28 20 4e 4f 54 20 28   ( NOT ( ( NOT (
18a0: 20 4e 55 4c 4c 20 29 20 3c 20 2b 20 2b 20 37 37   NULL ) < + + 77
18b0: 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   ) ) )..----....
18c0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
18d0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
18e0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
18f0: 72 74 20 6c 61 62 65 6c 2d 33 30 0d 0a 53 45 4c  rt label-30..SEL
1900: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 53  ECT DISTINCT + S
1910: 55 4d 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  UM( - col0 ) AS 
1920: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1930: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
1940: 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  85....skipif mys
1950: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1960: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1970: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 0d 0a 53  sort label-30..S
1980: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1990: 20 53 55 4d 20 28 20 2d 20 63 6f 6c 30 20 29 20   SUM ( - col0 ) 
19a0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
19b0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
19c0: 0a 2d 31 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .-185....query I
19d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19e0: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
19f0: 32 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  2 * + col2 AS co
1a00: 6c 32 2c 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63  l2, - col0 * - c
1a10: 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
1a20: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1a30: 2d 2d 2d 0d 0a 2d 31 36 30 30 0d 0a 34 39 32 38  ---..-1600..4928
1a40: 0d 0a 2d 33 33 36 34 0d 0a 35 30 32 35 0d 0a 2d  ..-3364..5025..-
1a50: 35 32 39 0d 0a 32 33 34 36 0d 0a 0d 0a 6f 6e 6c  529..2346....onl
1a60: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1a70: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1a80: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1a90: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
1aa0: 0d 0a 53 45 4c 45 43 54 20 2b 20 38 36 20 2a 20  ..SELECT + 86 * 
1ab0: 2d 20 2b 20 28 20 2b 20 43 41 53 54 28 20 2b 20  - + ( + CAST( + 
1ac0: 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 53 49  ( - col2 ) AS SI
1ad0: 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61  GNED ) ) FROM ta
1ae0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1af0: 0d 0a 34 30 34 32 0d 0a 38 35 31 34 0d 0a 38 36  ..4042..8514..86
1b00: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
1b10: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1b20: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1b30: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 0d 0a 53 45  ort label-32..SE
1b40: 4c 45 43 54 20 2b 20 38 36 20 2a 20 2d 20 2b 20  LECT + 86 * - + 
1b50: 28 20 2b 20 43 41 53 54 20 28 20 2b 20 28 20 2d  ( + CAST ( + ( -
1b60: 20 63 6f 6c 32 20 29 20 41 53 20 49 4e 54 45 47   col2 ) AS INTEG
1b70: 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  ER ) ) FROM tab0
1b80: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1b90: 34 30 34 32 0d 0a 38 35 31 34 0d 0a 38 36 30 0d  4042..8514..860.
1ba0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1bb0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
1bc0: 20 2d 20 31 31 20 41 53 20 63 6f 6c 32 20 46 52   - 11 AS col2 FR
1bd0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
1be0: 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 4f  WHERE col2 IS NO
1bf0: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  T NULL..----..-1
1c00: 31 0d 0a 2d 31 31 0d 0a 2d 31 31 0d 0a 0d 0a 71  1..-11..-11....q
1c10: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1c20: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c30: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
1c40: 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
1c50: 6c 32 20 3c 3e 20 31 38 0d 0a 2d 2d 2d 2d 0d 0a  l2 <> 18..----..
1c60: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1c70: 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
1c80: 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
1c90: 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
1ca0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1cb0: 44 49 53 54 49 4e 43 54 20 31 31 20 2b 20 2b 20  DISTINCT 11 + + 
1cc0: 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
1cd0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab1..----..10
1ce0: 32 0d 0a 36 32 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c  2..62..96....onl
1cf0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1d00: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1d10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d20: 6c 61 62 65 6c 2d 33 36 0d 0a 53 45 4c 45 43 54  label-36..SELECT
1d30: 20 41 4c 4c 20 2d 20 4d 41 58 28 20 63 6f 6c 31   ALL - MAX( col1
1d40: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
1d50: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d  tab1..----..-47.
1d60: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1d70: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1d80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d90: 74 20 6c 61 62 65 6c 2d 33 36 0d 0a 53 45 4c 45  t label-36..SELE
1da0: 43 54 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20 63  CT ALL - MAX ( c
1db0: 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol1 ) AS col1 FR
1dc0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
1dd0: 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  47....onlyif mys
1de0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1df0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1e00: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1e10: 74 20 6c 61 62 65 6c 2d 33 37 0d 0a 53 45 4c 45  t label-37..SELE
1e20: 43 54 20 2d 20 32 31 20 63 6f 6c 32 2c 20 63 6f  CT - 21 col2, co
1e30: 6c 32 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c  l2 + - CAST( NUL
1e40: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
1e50: 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  + col0 FROM tab1
1e60: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 4e 55 4c  ..----..-21..NUL
1e70: 4c 0d 0a 2d 32 31 0d 0a 4e 55 4c 4c 0d 0a 2d 32  L..-21..NULL..-2
1e80: 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  1..NULL....skipi
1e90: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ea0: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
1eb0: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1ec0: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1ed0: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1ee0: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1ef0: 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
1f00: 6f 72 74 20 6c 61 62 65 6c 2d 33 37 0d 0a 53 45  ort label-37..SE
1f10: 4c 45 43 54 20 2d 20 32 31 20 63 6f 6c 32 2c 20  LECT - 21 col2, 
1f20: 63 6f 6c 32 20 2b 20 2d 20 43 41 53 54 20 28 20  col2 + - CAST ( 
1f30: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1f40: 29 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  ) * + col0 FROM 
1f50: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d  tab1..----..-21.
1f60: 0a 4e 55 4c 4c 0d 0a 2d 32 31 0d 0a 4e 55 4c 4c  .NULL..-21..NULL
1f70: 0d 0a 2d 32 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  ..-21..NULL....q
1f80: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1f90: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1fa0: 63 6f 6c 32 20 2b 20 2d 20 35 20 46 52 4f 4d 20  col2 + - 5 FROM 
1fb0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a  tab2..----..18..
1fc0: 33 35 0d 0a 35 33 0d 0a 0d 0a 71 75 65 72 79 20  35..53....query 
1fd0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1fe0: 54 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20  T col1 * - col0 
1ff0: 2b 20 2d 20 2d 20 28 20 2b 20 2d 20 39 35 20 29  + - - ( + - 95 )
2000: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2010: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 34 31 0d  r0..----..-2441.
2020: 0a 2d 35 30 32 33 0d 0a 2d 35 31 32 30 0d 0a 0d  .-5023..-5120...
2030: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2040: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2050: 54 20 2d 20 36 20 2a 20 38 20 41 53 20 63 6f 6c  T - 6 * 8 AS col
2060: 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
2070: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 0d 0a  or0..----..-48..
2080: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2090: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
20a0: 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 46 52  l1 * - + col1 FR
20b0: 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
20c0: 2d 2d 0d 0a 2d 31 0d 0a 2d 34 34 31 0d 0a 2d 36  --..-1..-441..-6
20d0: 35 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  561....query III
20e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
20f0: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
2100: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
2110: 6f 6c 31 20 3c 20 2b 20 35 33 20 2a 20 63 6f 6c  ol1 < + 53 * col
2120: 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
2130: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
2140: 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
2150: 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
2160: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2170: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2180: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2190: 48 45 52 45 20 28 20 4e 55 4c 4c 20 3c 20 2d 20  HERE ( NULL < - 
21a0: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 29 0d  col2 + + col0 ).
21b0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
21c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
21d0: 20 41 4c 4c 20 2b 20 38 37 20 2b 20 2d 20 2b 20   ALL + 87 + - + 
21e0: 32 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  25 AS col2 FROM 
21f0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2200: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20  RE NOT NULL NOT 
2210: 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20 41  BETWEEN + col2 A
2220: 4e 44 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  ND + + col1 + - 
2230: 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col1..----....on
2240: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2250: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2260: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2270: 20 6c 61 62 65 6c 2d 34 35 0d 0a 53 45 4c 45 43   label-45..SELEC
2280: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
2290: 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
22a0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
22b0: 4e 4f 54 20 2d 20 63 6f 6c 31 20 3e 20 4e 55 4c  NOT - col1 > NUL
22c0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
22d0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
22e0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
22f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2300: 65 6c 2d 34 35 0d 0a 53 45 4c 45 43 54 20 44 49  el-45..SELECT DI
2310: 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
2320: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
2330: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2340: 20 2d 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c 0d 0a   - col1 > NULL..
2350: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
2360: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2370: 43 54 20 41 4c 4c 20 63 6f 6c 32 20 46 52 4f 4d  CT ALL col2 FROM
2380: 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f   tab2 WHERE + co
2390: 6c 31 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 29  l1 IN ( + col0 )
23a0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
23b0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
23c0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
23d0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
23e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53  sort label-47..S
23f0: 45 4c 45 43 54 20 2b 20 35 30 20 44 49 56 20 2d  ELECT + 50 DIV -
2400: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
2410: 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 30 0d 0a  .----..-1..-10..
2420: 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
2430: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2440: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2450: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53  sort label-47..S
2460: 45 4c 45 43 54 20 2b 20 35 30 20 2f 20 2d 20 63  ELECT + 50 / - c
2470: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
2480: 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 30 0d 0a 2d 33  ---..-1..-10..-3
2490: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
24a0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
24b0: 49 4e 43 54 20 2b 20 31 39 20 2b 20 2d 20 63 6f  INCT + 19 + - co
24c0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
24d0: 2d 2d 0d 0a 2d 32 0d 0a 2d 36 32 0d 0a 31 38 0d  --..-2..-62..18.
24e0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
24f0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
2500: 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
2510: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2520: 61 62 65 6c 2d 34 39 0d 0a 53 45 4c 45 43 54 20  abel-49..SELECT 
2530: 2d 20 31 38 20 2a 20 2d 20 2b 20 43 41 53 54 28  - 18 * - + CAST(
2540: 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
2550: 20 29 20 2a 20 2b 20 32 33 20 2a 20 2d 20 63 6f   ) * + 23 * - co
2560: 6c 30 20 2a 20 63 6f 6c 31 20 2d 20 2b 20 28 20  l0 * col1 - + ( 
2570: 2b 20 63 6f 6c 32 20 29 20 2b 20 2b 20 2b 20 39  + col2 ) + + + 9
2580: 39 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  9 FROM tab2..---
2590: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
25a0: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
25b0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
25c0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
25d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 0d 0a  wsort label-49..
25e0: 53 45 4c 45 43 54 20 2d 20 31 38 20 2a 20 2d 20  SELECT - 18 * - 
25f0: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
2600: 20 52 45 41 4c 20 29 20 2a 20 2b 20 32 33 20 2a   REAL ) * + 23 *
2610: 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20 2d   - col0 * col1 -
2620: 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20   + ( + col2 ) + 
2630: 2b 20 2b 20 39 39 20 46 52 4f 4d 20 74 61 62 32  + + 99 FROM tab2
2640: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2650: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
2660: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2670: 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2d  ECT ALL - col2 -
2680: 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
2690: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
26a0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a  or0..----..-21..
26b0: 2d 35 34 0d 0a 2d 38 32 0d 0a 0d 0a 6f 6e 6c 79  -54..-82....only
26c0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
26d0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
26e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26f0: 61 62 65 6c 2d 35 31 0d 0a 53 45 4c 45 43 54 20  abel-51..SELECT 
2700: 44 49 53 54 49 4e 43 54 20 28 20 2b 20 2d 20 43  DISTINCT ( + - C
2710: 4f 55 4e 54 28 20 2a 20 29 20 29 20 2d 20 2d 20  OUNT( * ) ) - - 
2720: 32 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  23 AS col0 FROM 
2730: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2740: 2d 2d 0d 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..20....skipif
2750: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2760: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2770: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
2780: 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2790: 43 54 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20 28  CT ( + - COUNT (
27a0: 20 2a 20 29 20 29 20 2d 20 2d 20 32 33 20 41 53   * ) ) - - 23 AS
27b0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
27c0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
27d0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  0....skipif post
27e0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
27f0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2800: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2810: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2820: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2830: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 35 36 20 63  ELECT ALL - 56 c
2840: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
2850: 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 35 36 0d 0a 2d  ---..-56..-56..-
2860: 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  56....skipif pos
2870: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2880: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2890: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
28a0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
28b0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28c0: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
28d0: 31 20 2b 20 2b 20 2d 20 39 32 20 2d 20 2d 20 35  1 + + - 92 - - 5
28e0: 35 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20  5 + + col1 col0 
28f0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2900: 0a 2d 33 35 0d 0a 31 32 35 0d 0a 35 0d 0a 0d 0a  .-35..125..5....
2910: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2920: 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 28 20  .SELECT + ( + ( 
2930: 2d 20 35 39 20 29 20 29 20 41 53 20 63 6f 6c 30  - 59 ) ) AS col0
2940: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2950: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
2960: 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b0 AS cor1..----
2970: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2980: 6e 67 20 74 6f 20 31 65 36 35 33 37 63 39 32 32  ng to 1e6537c922
2990: 66 61 39 35 33 65 30 66 64 32 66 35 39 34 33 30  fa953e0fd2f59430
29a0: 38 30 33 37 30 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  803703....onlyif
29b0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
29c0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
29d0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
29e0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 0d  owsort label-55.
29f0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
2a00: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2a10: 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32  WHERE NOT + col2
2a20: 20 2b 20 2b 20 36 38 20 2a 20 2b 20 43 41 53 54   + + 68 * + CAST
2a30: 28 20 2d 20 37 20 41 53 20 53 49 47 4e 45 44 20  ( - 7 AS SIGNED 
2a40: 29 20 3c 3d 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d  ) <= - + col0..-
2a50: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
2a60: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2a70: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
2a80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
2a90: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
2aa0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2ab0: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
2ac0: 32 20 2b 20 2b 20 36 38 20 2a 20 2b 20 43 41 53  2 + + 68 * + CAS
2ad0: 54 20 28 20 2d 20 37 20 41 53 20 49 4e 54 45 47  T ( - 7 AS INTEG
2ae0: 45 52 20 29 20 3c 3d 20 2d 20 2b 20 63 6f 6c 30  ER ) <= - + col0
2af0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2b00: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b10: 54 20 41 4c 4c 20 2b 20 35 20 41 53 20 63 6f 6c  T ALL + 5 AS col
2b20: 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
2b30: 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 35 0d 0a 35 0d  ..----..5..5..5.
2b40: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2b50: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 37  rt..SELECT + + 7
2b60: 30 20 2a 20 38 20 46 52 4f 4d 20 74 61 62 32 20  0 * 8 FROM tab2 
2b70: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
2b80: 36 30 0d 0a 35 36 30 0d 0a 35 36 30 0d 0a 0d 0a  60..560..560....
2b90: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2ba0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2bb0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2bc0: 72 74 20 6c 61 62 65 6c 2d 35 38 0d 0a 53 45 4c  rt label-58..SEL
2bd0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31  ECT DISTINCT + 1
2be0: 33 20 2a 20 2d 20 53 55 4d 28 20 2d 20 2d 20 63  3 * - SUM( - - c
2bf0: 6f 6c 32 20 29 20 2a 20 2b 20 39 32 20 46 52 4f  ol2 ) * + 92 FRO
2c00: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
2c10: 36 36 37 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  66708....skipif 
2c20: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2c30: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2c40: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38  rowsort label-58
2c50: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2c60: 54 20 2b 20 31 33 20 2a 20 2d 20 53 55 4d 20 28  T + 13 * - SUM (
2c70: 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20   - - col2 ) * + 
2c80: 39 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  92 FROM tab1..--
2c90: 2d 2d 0d 0a 2d 32 36 36 37 30 38 0d 0a 0d 0a 71  --..-266708....q
2ca0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2cb0: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20  SELECT - col1 * 
2cc0: 37 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  76 FROM tab2..--
2cd0: 2d 2d 0d 0a 2d 33 38 37 36 0d 0a 2d 35 30 39 32  --..-3876..-5092
2ce0: 0d 0a 2d 35 38 35 32 0d 0a 0d 0a 6f 6e 6c 79 69  ..-5852....onlyi
2cf0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2d00: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2d10: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
2d20: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30  rowsort label-60
2d30: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
2d40: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
2d50: 4f 54 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54  OT col0 * + CAST
2d60: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
2d70: 20 29 20 2d 20 2b 20 38 39 20 3d 20 2b 20 2d 20   ) - + 89 = + - 
2d80: 36 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  69..----....skip
2d90: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2da0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2db0: 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
2dc0: 65 6c 2d 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c  el-60..SELECT AL
2dd0: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
2de0: 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a 20 2b  ERE NOT col0 * +
2df0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2e00: 49 4e 54 45 47 45 52 20 29 20 2d 20 2b 20 38 39  INTEGER ) - + 89
2e10: 20 3d 20 2b 20 2d 20 36 39 0d 0a 2d 2d 2d 2d 0d   = + - 69..----.
2e20: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2e30: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2e40: 49 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43 49  IGNED type: DECI
2e50: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
2e60: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2e70: 6c 2d 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-61..SELECT ALL
2e80: 20 2b 20 43 41 53 54 28 20 2d 20 39 20 41 53 20   + CAST( - 9 AS 
2e90: 44 45 43 49 4d 41 4c 20 29 20 2f 20 63 6f 6c 31  DECIMAL ) / col1
2ea0: 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 43 41   * col1 * - + CA
2eb0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2ec0: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  ED ) FROM tab0..
2ed0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
2ee0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
2ef0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f00: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f10: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
2f20: 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
2f30: 43 41 53 54 20 28 20 2d 20 39 20 41 53 20 52 45  CAST ( - 9 AS RE
2f40: 41 4c 20 29 20 2f 20 63 6f 6c 31 20 2a 20 63 6f  AL ) / col1 * co
2f50: 6c 31 20 2a 20 2d 20 2b 20 43 41 53 54 20 28 20  l1 * - + CAST ( 
2f60: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2f70: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
2f80: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
2f90: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
2fa0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2fb0: 20 35 34 20 2a 20 2b 20 37 30 20 2a 20 2d 20 2b   54 * + 70 * - +
2fc0: 20 35 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   55 AS col1 FROM
2fd0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30   tab2..----..-20
2fe0: 37 39 30 30 0d 0a 2d 32 30 37 39 30 30 0d 0a 2d  7900..-207900..-
2ff0: 32 30 37 39 30 30 0d 0a 0d 0a 71 75 65 72 79 20  207900....query 
3000: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3010: 54 20 2b 20 36 38 20 2a 20 2b 20 2b 20 32 36 20  T + 68 * + + 26 
3020: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
3030: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 37 36 38 0d 0a 31  1..----..1768..1
3040: 37 36 38 0d 0a 31 37 36 38 0d 0a 0d 0a 6f 6e 6c  768..1768....onl
3050: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
3060: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
3070: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3080: 6c 61 62 65 6c 2d 36 34 0d 0a 53 45 4c 45 43 54  label-64..SELECT
3090: 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
30a0: 20 2d 20 39 37 20 29 20 41 53 20 63 6f 6c 31 20   - 97 ) AS col1 
30b0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
30c0: 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .97....skipif my
30d0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30e0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
30f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 0d 0a  wsort label-64..
3100: 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 44 49 53  SELECT MIN ( DIS
3110: 54 49 4e 43 54 20 2d 20 2d 20 39 37 20 29 20 41  TINCT - - 97 ) A
3120: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
3130: 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 71 75  ..----..97....qu
3140: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
3150: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
3160: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
3170: 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63  T + + col1 * - c
3180: 6f 6c 31 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 <> NULL..---
3190: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
31a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
31b0: 20 39 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   93 AS col1 FROM
31c0: 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
31d0: 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53   NOT ( NULL ) IS
31e0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
31f0: 0a 2d 39 33 0d 0a 2d 39 33 0d 0a 2d 39 33 0d 0a  .-93..-93..-93..
3200: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3210: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
3220: 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 53  l1 + + + col0 AS
3230: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
3240: 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 36 35 0d 0a  .----..138..65..
3250: 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  90....query I ro
3260: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
3270: 4c 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  L + col2 FROM ta
3280: 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b2 WHERE NOT NUL
3290: 4c 20 3e 3d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d  L >= + col0..---
32a0: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
32b0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
32c0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
32d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
32e0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
32f0: 54 20 2d 20 39 36 20 2b 20 2b 20 43 4f 55 4e 54  T - 96 + + COUNT
3300: 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
3310: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
3320: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
3330: 3d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63  = + col0 * + - c
3340: 6f 6c 30 20 2a 20 2b 20 28 20 2b 20 2b 20 28 20  ol0 * + ( + + ( 
3350: 2d 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d 2d  - col0 ) )..----
3360: 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-96....skipif 
3370: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
3380: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
3390: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
33a0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
33b0: 54 20 2d 20 39 36 20 2b 20 2b 20 43 4f 55 4e 54  T - 96 + + COUNT
33c0: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
33d0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
33e0: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
33f0: 3c 3d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20  <= + col0 * + - 
3400: 63 6f 6c 30 20 2a 20 2b 20 28 20 2b 20 2b 20 28  col0 * + ( + + (
3410: 20 2d 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d   - col0 ) )..---
3420: 2d 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-96....onlyif
3430: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
3440: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
3450: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
3460: 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 0d 0a 53  sort label-70..S
3470: 45 4c 45 43 54 20 2d 20 2b 20 33 34 20 2b 20 2d  ELECT - + 34 + -
3480: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
3490: 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
34a0: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
34b0: 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 32 20  col0 * + - col2 
34c0: 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20  + col2 + - col2 
34d0: 2f 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20  / - col0 IS NOT 
34e0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
34f0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
3500: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3510: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3520: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3530: 61 62 65 6c 2d 37 30 0d 0a 53 45 4c 45 43 54 20  abel-70..SELECT 
3540: 2d 20 2b 20 33 34 20 2b 20 2d 20 43 41 53 54 20  - + 34 + - CAST 
3550: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
3560: 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  R ) FROM tab2 AS
3570: 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30   cor0 WHERE col0
3580: 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 63 6f   * + - col2 + co
3590: 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2f 20 2d 20  l2 + - col2 / - 
35a0: 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
35b0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
35c0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
35d0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
35e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
35f0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
3600: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
3610: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
3620: 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f  1..SELECT + - CO
3630: 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55  UNT( * ) + - COU
3640: 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20 2d 20  NT( * ) DIV + - 
3650: 33 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  38 FROM tab1 AS 
3660: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
3670: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
3680: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
3690: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36a0: 20 6c 61 62 65 6c 2d 37 31 0d 0a 53 45 4c 45 43   label-71..SELEC
36b0: 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  T + - COUNT ( * 
36c0: 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) + - COUNT ( * 
36d0: 29 20 2f 20 2b 20 2d 20 33 38 20 46 52 4f 4d 20  ) / + - 38 FROM 
36e0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
36f0: 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20  --..-3....query 
3700: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3710: 54 20 2d 20 34 31 20 2b 20 2d 20 2d 20 63 6f 6c  T - 41 + - - col
3720: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
3730: 2d 0d 0a 2d 33 31 0d 0a 35 38 0d 0a 36 0d 0a 0d  -..-31..58..6...
3740: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
3750: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
3760: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
3770: 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31   + col1 + + col1
3780: 20 3c 20 2b 20 2b 20 35 34 0d 0a 2d 2d 2d 2d 0d   < + + 54..----.
3790: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37a0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
37b0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
37c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 0d 0a  wsort label-74..
37d0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
37e0: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b  - COUNT( * ) * +
37f0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
3800: 35 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  52 FROM tab1 WHE
3810: 52 45 20 28 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  RE ( - col1 * + 
3820: 2d 20 63 6f 6c 31 20 3d 20 32 38 20 29 0d 0a 2d  - col1 = 28 )..-
3830: 2d 2d 2d 0d 0a 2d 35 32 0d 0a 0d 0a 73 6b 69 70  ---..-52....skip
3840: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
3850: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
3860: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
3870: 2d 37 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -74..SELECT DIST
3880: 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  INCT - COUNT ( *
3890: 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) * + COUNT ( *
38a0: 20 29 20 2b 20 2d 20 35 32 20 46 52 4f 4d 20 74   ) + - 52 FROM t
38b0: 61 62 31 20 57 48 45 52 45 20 28 20 2d 20 63 6f  ab1 WHERE ( - co
38c0: 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 3d 20  l1 * + - col1 = 
38d0: 32 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d  28 )..----..-52.
38e0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
38f0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 39 20  rt..SELECT - 39 
3900: 2b 20 2d 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 30  + - - ( - + col0
3910: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
3920: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33  tab2..----..-103
3930: 0d 0a 2d 31 31 34 0d 0a 2d 38 35 0d 0a 0d 0a 71  ..-114..-85....q
3940: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
3950: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
3960: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
3970: 20 34 34 20 3e 3d 20 2d 20 63 6f 6c 32 20 2a 20   44 >= - col2 * 
3980: 2d 20 2d 20 31 20 2a 20 2b 20 2b 20 33 38 20 2b  - - 1 * + + 38 +
3990: 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39   + col2..----..9
39a0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
39b0: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
39c0: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
39d0: 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  cad....query III
39e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
39f0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
3a00: 63 6f 72 30 20 57 48 45 52 45 20 36 38 20 2b 20  cor0 WHERE 68 + 
3a10: 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a  + col2 IS NULL..
3a20: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
3a30: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
3a40: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
3a50: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
3a60: 72 74 20 6c 61 62 65 6c 2d 37 38 0d 0a 53 45 4c  rt label-78..SEL
3a70: 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43 41 53 54  ECT ALL - + CAST
3a80: 28 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 53 49  ( + + col1 AS SI
3a90: 47 4e 45 44 20 29 20 2d 20 2b 20 35 36 20 46 52  GNED ) - + 56 FR
3aa0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
3ab0: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a 2d 36 31  .----..-103..-61
3ac0: 0d 0a 2d 37 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-70....skipif 
3ad0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
3ae0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
3af0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38  rowsort label-78
3b00: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
3b10: 20 43 41 53 54 20 28 20 2b 20 2b 20 63 6f 6c 31   CAST ( + + col1
3b20: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20   AS INTEGER ) - 
3b30: 2b 20 35 36 20 46 52 4f 4d 20 74 61 62 31 20 41  + 56 FROM tab1 A
3b40: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
3b50: 30 33 0d 0a 2d 36 31 0d 0a 2d 37 30 0d 0a 0d 0a  03..-61..-70....
3b60: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
3b70: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
3b80: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
3b90: 72 74 20 6c 61 62 65 6c 2d 37 39 0d 0a 53 45 4c  rt label-79..SEL
3ba0: 45 43 54 20 2b 20 33 37 20 2d 20 2b 20 43 4f 55  ECT + 37 - + COU
3bb0: 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  NT( * ) col1 FRO
3bc0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
3bd0: 2d 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 73 6b 69 70  ----..34....skip
3be0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
3bf0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
3c00: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
3c10: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
3c20: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
3c30: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
3c40: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
3c50: 6f 72 74 20 6c 61 62 65 6c 2d 37 39 0d 0a 53 45  ort label-79..SE
3c60: 4c 45 43 54 20 2b 20 33 37 20 2d 20 2b 20 43 4f  LECT + 37 - + CO
3c70: 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46  UNT ( * ) col1 F
3c80: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
3c90: 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 6f 6e  ..----..34....on
3ca0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
3cb0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
3cc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
3cd0: 20 6c 61 62 65 6c 2d 38 30 0d 0a 53 45 4c 45 43   label-80..SELEC
3ce0: 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 41 4c 4c  T ALL COUNT( ALL
3cf0: 20 2d 20 37 36 20 29 20 2a 20 2b 20 53 55 4d 28   - 76 ) * + SUM(
3d00: 20 2d 20 28 20 63 6f 6c 30 20 29 20 29 20 46 52   - ( col0 ) ) FR
3d10: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
3d20: 35 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  597....skipif my
3d30: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
3d40: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
3d50: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 0d 0a  wsort label-80..
3d60: 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
3d70: 20 28 20 41 4c 4c 20 2d 20 37 36 20 29 20 2a 20   ( ALL - 76 ) * 
3d80: 2b 20 53 55 4d 20 28 20 2d 20 28 20 63 6f 6c 30  + SUM ( - ( col0
3d90: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   ) ) FROM tab0..
3da0: 2d 2d 2d 2d 0d 0a 2d 35 39 37 0d 0a 0d 0a 71 75  ----..-597....qu
3db0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
3dc0: 45 4c 45 43 54 20 2d 20 28 20 34 34 20 29 20 41  ELECT - ( 44 ) A
3dd0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
3de0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
3df0: 2d 34 34 0d 0a 2d 34 34 0d 0a 2d 34 34 0d 0a 0d  -44..-44..-44...
3e00: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
3e10: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
3e20: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
3e30: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
3e40: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
3e50: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3e60: 54 20 2b 20 34 30 20 63 6f 6c 32 20 46 52 4f 4d  T + 40 col2 FROM
3e70: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
3e80: 0d 0a 34 30 0d 0a 34 30 0d 0a 34 30 0d 0a 0d 0a  ..40..40..40....
3e90: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
3ea0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
3eb0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
3ec0: 72 74 20 6c 61 62 65 6c 2d 38 33 0d 0a 53 45 4c  rt label-83..SEL
3ed0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  ECT DISTINCT + +
3ee0: 20 53 55 4d 28 20 2b 20 32 39 20 29 20 46 52 4f   SUM( + 29 ) FRO
3ef0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
3f00: 48 45 52 45 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  HERE col1 * - co
3f10: 6c 30 20 2f 20 63 6f 6c 32 20 3d 20 4e 55 4c 4c  l0 / col2 = NULL
3f20: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
3f30: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3f40: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3f50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3f60: 61 62 65 6c 2d 38 33 0d 0a 53 45 4c 45 43 54 20  abel-83..SELECT 
3f70: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 53 55 4d  DISTINCT + + SUM
3f80: 20 28 20 2b 20 32 39 20 29 20 46 52 4f 4d 20 74   ( + 29 ) FROM t
3f90: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
3fa0: 45 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20  E col1 * - col0 
3fb0: 2f 20 63 6f 6c 32 20 3d 20 4e 55 4c 4c 0d 0a 2d  / col2 = NULL..-
3fc0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
3fd0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
3fe0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
3ff0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
4000: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
4010: 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
4020: 2d 20 37 33 20 41 53 20 63 6f 6c 30 2c 20 43 41  - 73 AS col0, CA
4030: 53 54 28 20 28 20 2b 20 63 6f 6c 31 20 29 20 41  ST( ( + col1 ) A
4040: 53 20 53 49 47 4e 45 44 20 29 20 63 6f 6c 31 20  S SIGNED ) col1 
4050: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
4060: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 33 0d 0a 35 31  0..----..-73..51
4070: 0d 0a 2d 37 33 0d 0a 36 37 0d 0a 2d 37 33 0d 0a  ..-73..67..-73..
4080: 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  77....skipif mys
4090: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
40a0: 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
40b0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
40c0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
40d0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
40e0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
40f0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
4100: 61 62 65 6c 2d 38 34 0d 0a 53 45 4c 45 43 54 20  abel-84..SELECT 
4110: 41 4c 4c 20 2b 20 2d 20 37 33 20 41 53 20 63 6f  ALL + - 73 AS co
4120: 6c 30 2c 20 43 41 53 54 20 28 20 28 20 2b 20 63  l0, CAST ( ( + c
4130: 6f 6c 31 20 29 20 41 53 20 49 4e 54 45 47 45 52  ol1 ) AS INTEGER
4140: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
4150: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
4160: 0a 2d 37 33 0d 0a 35 31 0d 0a 2d 37 33 0d 0a 36  .-73..51..-73..6
4170: 37 0d 0a 2d 37 33 0d 0a 37 37 0d 0a 0d 0a 71 75  7..-73..77....qu
4180: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
4190: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
41a0: 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
41b0: 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20  RE ( NULL ) NOT 
41c0: 42 45 54 57 45 45 4e 20 2b 20 39 39 20 2b 20 2d  BETWEEN + 99 + -
41d0: 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a   col1 AND NULL..
41e0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
41f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4200: 20 32 32 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63   22 AS col0, - c
4210: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
4220: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d   cor0..----..22.
4230: 0a 2d 34 36 0d 0a 32 32 0d 0a 2d 36 34 0d 0a 32  .-46..22..-64..2
4240: 32 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79 20  2..-75....query 
4250: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4260: 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 2b  T ALL + col1 * +
4270: 20 31 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   13 FROM tab0..-
4280: 2d 2d 2d 0d 0a 31 30 35 33 0d 0a 31 33 0d 0a 32  ---..1053..13..2
4290: 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  73....query III 
42a0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
42b0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
42c0: 57 48 45 52 45 20 2d 20 39 20 2b 20 2d 20 2d 20  WHERE - 9 + - - 
42d0: 32 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  29 IS NULL..----
42e0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
42f0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
4300: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
4310: 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
4320: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4330: 74 20 6c 61 62 65 6c 2d 38 39 0d 0a 53 45 4c 45  t label-89..SELE
4340: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  CT DISTINCT - CA
4350: 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
4360: 4d 41 4c 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28  MAL ) * - COUNT(
4370: 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20   * ) * COUNT( * 
4380: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
4390: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
43a0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
43b0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
43c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
43d0: 38 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  89..SELECT DISTI
43e0: 4e 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  NCT - CAST ( NUL
43f0: 4c 20 41 53 20 52 45 41 4c 20 29 20 2a 20 2d 20  L AS REAL ) * - 
4400: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f  COUNT ( * ) * CO
4410: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
4420: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
4430: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4440: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
4450: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
4460: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
4470: 61 62 65 6c 2d 39 30 0d 0a 53 45 4c 45 43 54 20  abel-90..SELECT 
4480: 63 6f 6c 31 20 2a 20 43 41 53 54 28 20 4e 55 4c  col1 * CAST( NUL
4490: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
44a0: 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 63  + - col0 * + + c
44b0: 6f 6c 30 20 2a 20 63 6f 6c 30 2c 20 2d 20 63 6f  ol0 * col0, - co
44c0: 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
44d0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
44e0: 0d 0a 2d 35 39 0d 0a 4e 55 4c 4c 0d 0a 2d 36 38  ..-59..NULL..-68
44f0: 0d 0a 4e 55 4c 4c 0d 0a 2d 39 36 0d 0a 0d 0a 73  ..NULL..-96....s
4500: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
4510: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4520: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
4530: 61 62 65 6c 2d 39 30 0d 0a 53 45 4c 45 43 54 20  abel-90..SELECT 
4540: 63 6f 6c 31 20 2a 20 43 41 53 54 20 28 20 4e 55  col1 * CAST ( NU
4550: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
4560: 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b  * + - col0 * + +
4570: 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 2c 20 2d 20   col0 * col0, - 
4580: 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
4590: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
45a0: 4c 4c 0d 0a 2d 35 39 0d 0a 4e 55 4c 4c 0d 0a 2d  LL..-59..NULL..-
45b0: 36 38 0d 0a 4e 55 4c 4c 0d 0a 2d 39 36 0d 0a 0d  68..NULL..-96...
45c0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
45d0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
45e0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
45f0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
4600: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4610: 62 65 6c 2d 39 31 0d 0a 53 45 4c 45 43 54 20 2d  bel-91..SELECT -
4620: 20 2d 20 4d 41 58 28 20 43 41 53 54 28 20 63 6f   - MAX( CAST( co
4630: 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  l2 AS SIGNED ) )
4640: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
4650: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
4660: 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..96....skipif m
4670: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
4680: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
4690: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 0d  owsort label-91.
46a0: 0a 53 45 4c 45 43 54 20 2d 20 2d 20 4d 41 58 20  .SELECT - - MAX 
46b0: 28 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53  ( CAST ( col2 AS
46c0: 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20   INTEGER ) ) AS 
46d0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
46e0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36  S cor0..----..96
46f0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
4700: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
4710: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
4720: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
4730: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
4740: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
4750: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
4760: 6c 30 20 2b 20 37 20 63 6f 6c 30 20 46 52 4f 4d  l0 + 7 col0 FROM
4770: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d   tab2..----..53.
4780: 0a 37 31 0d 0a 38 32 0d 0a 0d 0a 6f 6e 6c 79 69  .71..82....onlyi
4790: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
47a0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
47b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
47c0: 62 65 6c 2d 39 33 0d 0a 53 45 4c 45 43 54 20 2b  bel-93..SELECT +
47d0: 20 33 37 20 2b 20 2d 20 2b 20 43 4f 55 4e 54 28   37 + - + COUNT(
47e0: 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
47f0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34  M tab0..----..34
4800: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
4810: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
4820: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
4830: 72 74 20 6c 61 62 65 6c 2d 39 33 0d 0a 53 45 4c  rt label-93..SEL
4840: 45 43 54 20 2b 20 33 37 20 2b 20 2d 20 2b 20 43  ECT + 37 + - + C
4850: 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
4860: 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
4870: 2d 2d 0d 0a 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..34....onlyif
4880: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
4890: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
48a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
48b0: 65 6c 2d 39 34 0d 0a 53 45 4c 45 43 54 20 2b 20  el-94..SELECT + 
48c0: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b  - COUNT( * ) + +
48d0: 20 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   2 FROM tab0 AS 
48e0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
48f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
4900: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
4910: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4920: 20 6c 61 62 65 6c 2d 39 34 0d 0a 53 45 4c 45 43   label-94..SELEC
4930: 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  T + - COUNT ( * 
4940: 29 20 2b 20 2b 20 32 20 46 52 4f 4d 20 74 61 62  ) + + 2 FROM tab
4950: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
4960: 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-1....onlyif my
4970: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
4980: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
4990: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
49a0: 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53  95..SELECT ALL S
49b0: 55 4d 28 20 2d 20 39 20 29 20 41 53 20 63 6f 6c  UM( - 9 ) AS col
49c0: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
49d0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a  or0..----..-27..
49e0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
49f0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
4a00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4a10: 20 6c 61 62 65 6c 2d 39 35 0d 0a 53 45 4c 45 43   label-95..SELEC
4a20: 54 20 41 4c 4c 20 53 55 4d 20 28 20 2d 20 39 20  T ALL SUM ( - 9 
4a30: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
4a40: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
4a50: 2d 0d 0a 2d 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-27....onlyif
4a60: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
4a70: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
4a80: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
4a90: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 0d 0a 53  sort label-96..S
4aa0: 45 4c 45 43 54 20 2b 20 36 39 20 2a 20 2b 20 43  ELECT + 69 * + C
4ab0: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
4ac0: 4e 45 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  NED ) col2 FROM 
4ad0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
4ae0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
4af0: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
4b00: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
4b10: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
4b20: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
4b30: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
4b40: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
4b50: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
4b60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4b70: 6c 61 62 65 6c 2d 39 36 0d 0a 53 45 4c 45 43 54  label-96..SELECT
4b80: 20 2b 20 36 39 20 2a 20 2b 20 43 41 53 54 20 28   + 69 * + CAST (
4b90: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
4ba0: 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
4bb0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
4bc0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
4bd0: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
4be0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
4bf0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
4c00: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d  r0 WHERE NULL <=
4c10: 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f   - col1 * + + co
4c20: 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l1..----....quer
4c30: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
4c40: 45 43 54 20 34 34 20 2d 20 63 6f 6c 31 20 2b 20  ECT 44 - col1 + 
4c50: 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  + + col0 * + col
4c60: 30 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  0 + + col0 FROM 
4c70: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 36 38 32  tab1..----..2682
4c80: 0d 0a 37 33 34 39 0d 0a 38 33 36 39 0d 0a 0d 0a  ..7349..8369....
4c90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
4ca0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4cb0: 20 2d 20 39 32 20 2b 20 63 6f 6c 32 20 41 53 20   - 92 + col2 AS 
4cc0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
4cd0: 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 33 33 0d 0a  ----..-24..-33..
4ce0: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
4cf0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
4d00: 6f 6c 31 20 2a 20 38 37 20 2b 20 2d 20 2d 20 63  ol1 * 87 + - - c
4d10: 6f 6c 31 20 2b 20 2d 20 2b 20 37 30 20 2a 20 2b  ol1 + - + 70 * +
4d20: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
4d30: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  1 WHERE NULL IS 
4d40: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33  NULL..----..-223
4d50: 34 0d 0a 2d 32 33 33 38 0d 0a 2d 35 35 31 30 0d  4..-2338..-5510.
4d60: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4d70: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
4d80: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
4d90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 0d  wsort label-101.
4da0: 0a 53 45 4c 45 43 54 20 35 32 20 2d 20 43 4f 55  .SELECT 52 - COU
4db0: 4e 54 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f  NT( * ) col2 FRO
4dc0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 39  M tab2..----..49
4dd0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
4de0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
4df0: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
4e00: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
4e10: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
4e20: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
4e30: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
4e40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4e50: 6c 2d 31 30 31 0d 0a 53 45 4c 45 43 54 20 35 32  l-101..SELECT 52
4e60: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63   - COUNT ( * ) c
4e70: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
4e80: 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 71 75 65 72 79  ---..49....query
4e90: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
4ea0: 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20  CT ALL + col1 * 
4eb0: 2d 20 63 6f 6c 30 20 2b 20 2d 20 38 36 20 41 53  - col0 + - 86 AS
4ec0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
4ed0: 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30 31 0d 0a 2d 31  .----..-1301..-1
4ee0: 38 33 0d 0a 2d 31 39 31 33 0d 0a 0d 0a 71 75 65  83..-1913....que
4ef0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
4f00: 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2d 20 63  ELECT + col1 - c
4f10: 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  ol0, - col0 + + 
4f20: 37 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  7 * col0 AS col1
4f30: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
4f40: 0d 0a 2d 33 37 0d 0a 33 30 36 0d 0a 2d 34 34 0d  ..-37..306..-44.
4f50: 0a 35 34 36 0d 0a 2d 38 30 0d 0a 35 31 30 0d 0a  .546..-80..510..
4f60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4f70: 74 0d 0a 53 45 4c 45 43 54 20 39 33 20 2d 20 2d  t..SELECT 93 - -
4f80: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
4f90: 0a 2d 2d 2d 2d 0d 0a 31 31 36 0d 0a 31 33 33 0d  .----..116..133.
4fa0: 0a 31 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .151....onlyif m
4fb0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
4fc0: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
4fd0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
4fe0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
4ff0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 0d 0a  sort label-105..
5000: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
5010: 2d 20 43 41 53 54 28 20 2b 20 2d 20 43 4f 55 4e  - CAST( + - COUN
5020: 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e 45 44  T( * ) AS SIGNED
5030: 20 29 20 2b 20 36 36 20 46 52 4f 4d 20 74 61 62   ) + 66 FROM tab
5040: 32 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 73  2..----..69....s
5050: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
5060: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
5070: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5080: 62 65 6c 2d 31 30 35 0d 0a 53 45 4c 45 43 54 20  bel-105..SELECT 
5090: 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 20  DISTINCT - CAST 
50a0: 28 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ( + - COUNT ( * 
50b0: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  ) AS INTEGER ) +
50c0: 20 36 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   66 FROM tab2..-
50d0: 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 6f 6e 6c 79 69  ---..69....onlyi
50e0: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
50f0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
5100: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
5110: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
5120: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
5130: 54 20 2b 20 38 32 20 44 49 56 20 63 6f 6c 32 20  T + 82 DIV col2 
5140: 2a 20 2b 20 63 6f 6c 32 2c 20 32 20 41 53 20 63  * + col2, 2 AS c
5150: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
5160: 2d 2d 2d 0d 0a 30 0d 0a 32 0d 0a 34 37 0d 0a 32  ---..0..2..47..2
5170: 0d 0a 38 30 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69  ..80..2....skipi
5180: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5190: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
51a0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
51b0: 2d 31 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -106..SELECT DIS
51c0: 54 49 4e 43 54 20 2b 20 38 32 20 2f 20 63 6f 6c  TINCT + 82 / col
51d0: 32 20 2a 20 2b 20 63 6f 6c 32 2c 20 32 20 41 53  2 * + col2, 2 AS
51e0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
51f0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 0d 0a 34 37 0d  .----..0..2..47.
5200: 0a 32 0d 0a 38 30 0d 0a 32 0d 0a 0d 0a 71 75 65  .2..80..2....que
5210: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
5220: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
5230: 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
5240: 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d   NULL NOT IN ( -
5250: 20 2d 20 39 36 2c 20 32 39 20 2a 20 2b 20 63 6f   - 96, 29 * + co
5260: 6c 32 2c 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d  l2, + col0 )..--
5270: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
5280: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
5290: 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63  ol2 AS col0, + c
52a0: 6f 6c 30 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b  ol0 + col0 + + +
52b0: 20 31 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   11 FROM tab0..-
52c0: 2d 2d 2d 0d 0a 31 30 0d 0a 31 38 35 0d 0a 34 37  ---..10..185..47
52d0: 0d 0a 34 31 0d 0a 39 39 0d 0a 32 30 35 0d 0a 0d  ..41..99..205...
52e0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
52f0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
5300: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
5310: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5320: 6c 2d 31 30 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-109..SELECT DI
5330: 53 54 49 4e 43 54 20 32 37 20 2a 20 43 41 53 54  STINCT 27 * CAST
5340: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
5350: 20 29 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   ) * + col2 FROM
5360: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab1..----..NUL
5370: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
5380: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
5390: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
53a0: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 0d 0a 53  ort label-109..S
53b0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32  ELECT DISTINCT 2
53c0: 37 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  7 * CAST ( NULL 
53d0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
53e0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
53f0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
5400: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
5410: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
5420: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5430: 74 20 6c 61 62 65 6c 2d 31 31 30 0d 0a 53 45 4c  t label-110..SEL
5440: 45 43 54 20 2b 20 34 37 20 2b 20 2d 20 28 20 2b  ECT + 47 + - ( +
5450: 20 2b 20 4d 41 58 28 20 2d 20 2b 20 34 35 20 29   + MAX( - + 45 )
5460: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
5470: 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49 53  RE NOT - col2 IS
5480: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d   NULL..----..92.
5490: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
54a0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
54b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
54c0: 74 20 6c 61 62 65 6c 2d 31 31 30 0d 0a 53 45 4c  t label-110..SEL
54d0: 45 43 54 20 2b 20 34 37 20 2b 20 2d 20 28 20 2b  ECT + 47 + - ( +
54e0: 20 2b 20 4d 41 58 20 28 20 2d 20 2b 20 34 35 20   + MAX ( - + 45 
54f0: 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ) ) FROM tab0 WH
5500: 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49  ERE NOT - col2 I
5510: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 32  S NULL..----..92
5520: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
5530: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
5540: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
5550: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
5560: 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53 45 4c 45   label-111..SELE
5570: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
5580: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
5590: 57 48 45 52 45 20 43 41 53 54 28 20 2d 20 32 35  WHERE CAST( - 25
55a0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d   AS SIGNED ) * -
55b0: 20 2d 20 63 6f 6c 30 20 3e 20 2d 20 2d 20 63 6f   - col0 > - - co
55c0: 6c 32 20 2f 20 2b 20 2b 20 37 34 20 2b 20 2b 20  l2 / + + 74 + + 
55d0: 2b 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 63 6f 6c  + col0 / - - col
55e0: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  1..----....skipi
55f0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5600: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
5610: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
5620: 6c 2d 31 31 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-111..SELECT DI
5630: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
5640: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
5650: 20 43 41 53 54 20 28 20 2d 20 32 35 20 41 53 20   CAST ( - 25 AS 
5660: 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 2d 20  INTEGER ) * - - 
5670: 63 6f 6c 30 20 3e 20 2d 20 2d 20 63 6f 6c 32 20  col0 > - - col2 
5680: 2f 20 2b 20 2b 20 37 34 20 2b 20 2b 20 2b 20 63  / + + 74 + + + c
5690: 6f 6c 30 20 2f 20 2d 20 2d 20 63 6f 6c 31 0d 0a  ol0 / - - col1..
56a0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
56b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
56c0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
56d0: 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e  ERE NULL BETWEEN
56e0: 20 34 35 20 2b 20 2b 20 63 6f 6c 30 20 41 4e 44   45 + + col0 AND
56f0: 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   - + col1..----.
5700: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
5710: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
5720: 4e 43 54 20 2b 20 37 32 20 46 52 4f 4d 20 74 61  NCT + 72 FROM ta
5730: 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
5740: 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31 0d   JOIN tab2 cor1.
5750: 0a 2d 2d 2d 2d 0d 0a 37 32 0d 0a 0d 0a 71 75 65  .----..72....que
5760: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5770: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 46 52  LECT ALL col1 FR
5780: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
5790: 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20  WHERE NOT ( NOT 
57a0: 28 20 2d 20 35 37 20 2b 20 34 31 20 49 53 20 4e  ( - 57 + 41 IS N
57b0: 4f 54 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d  OT NULL ) )..---
57c0: 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a  -..1..21..81....
57d0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
57e0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
57f0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5800: 72 74 20 6c 61 62 65 6c 2d 31 31 35 0d 0a 53 45  rt label-115..SE
5810: 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
5820: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
5830: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
5840: 28 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  ( NULL IS NOT NU
5850: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  LL )..----..0...
5860: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
5870: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
5880: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
5890: 6c 61 62 65 6c 2d 31 31 35 0d 0a 53 45 4c 45 43  label-115..SELEC
58a0: 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  T COUNT ( * ) AS
58b0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
58c0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
58d0: 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
58e0: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71   )..----..0....q
58f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
5900: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 63  SELECT ALL ( - c
5910: 6f 6c 32 20 29 20 2a 20 32 33 20 2a 20 2b 20 2b  ol2 ) * 23 * + +
5920: 20 63 6f 6c 32 20 2b 20 28 20 2b 20 63 6f 6c 30   col2 + ( + col0
5930: 20 29 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   ) * + col1 FROM
5940: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
5950: 2d 2d 2d 0d 0a 2d 32 32 35 33 32 36 0d 0a 2d 34  ---..-225326..-4
5960: 37 33 0d 0a 2d 34 39 35 39 32 0d 0a 0d 0a 71 75  73..-49592....qu
5970: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
5980: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
5990: 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
59a0: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 49 53  RE NOT ( NULL IS
59b0: 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d   NOT NULL )..---
59c0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
59d0: 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
59e0: 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
59f0: 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
5a00: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
5a10: 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 33 37  CT - col2 + - 37
5a20: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
5a30: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
5a40: 0d 0a 2d 31 30 35 0d 0a 2d 31 33 33 0d 0a 2d 39  ..-105..-133..-9
5a50: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
5a60: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
5a70: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49   SIGNED type: DI
5a80: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
5a90: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
5aa0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
5ab0: 2d 31 31 39 0d 0a 53 45 4c 45 43 54 20 2b 20 28  -119..SELECT + (
5ac0: 20 2b 20 2b 20 63 6f 6c 30 20 29 20 2b 20 63 6f   + + col0 ) + co
5ad0: 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 44 49  l2 + - - col2 DI
5ae0: 56 20 35 34 20 41 53 20 63 6f 6c 30 2c 20 43 41  V 54 AS col0, CA
5af0: 53 54 28 20 28 20 2b 20 34 36 20 29 20 41 53 20  ST( ( + 46 ) AS 
5b00: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
5b10: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
5b20: 30 34 0d 0a 34 36 0d 0a 31 33 34 0d 0a 34 36 0d  04..46..134..46.
5b30: 0a 36 39 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69  .69..46....skipi
5b40: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5b50: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
5b60: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
5b70: 2d 31 31 39 0d 0a 53 45 4c 45 43 54 20 2b 20 28  -119..SELECT + (
5b80: 20 2b 20 2b 20 63 6f 6c 30 20 29 20 2b 20 63 6f   + + col0 ) + co
5b90: 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2f 20  l2 + - - col2 / 
5ba0: 35 34 20 41 53 20 63 6f 6c 30 2c 20 43 41 53 54  54 AS col0, CAST
5bb0: 20 28 20 28 20 2b 20 34 36 20 29 20 41 53 20 49   ( ( + 46 ) AS I
5bc0: 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
5bd0: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
5be0: 30 34 0d 0a 34 36 0d 0a 31 33 34 0d 0a 34 36 0d  04..46..134..46.
5bf0: 0a 36 39 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79 69  .69..46....onlyi
5c00: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
5c10: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
5c20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5c30: 62 65 6c 2d 31 32 30 0d 0a 53 45 4c 45 43 54 20  bel-120..SELECT 
5c40: 44 49 53 54 49 4e 43 54 20 34 36 20 2b 20 2d 20  DISTINCT 46 + - 
5c50: 4d 41 58 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20  MAX( - col0 ) * 
5c60: 2d 20 33 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a  - 33 FROM tab0..
5c70: 2d 2d 2d 2d 0d 0a 2d 34 34 39 0d 0a 0d 0a 73 6b  ----..-449....sk
5c80: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5c90: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5ca0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5cb0: 65 6c 2d 31 32 30 0d 0a 53 45 4c 45 43 54 20 44  el-120..SELECT D
5cc0: 49 53 54 49 4e 43 54 20 34 36 20 2b 20 2d 20 4d  ISTINCT 46 + - M
5cd0: 41 58 20 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20  AX ( - col0 ) * 
5ce0: 2d 20 33 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a  - 33 FROM tab0..
5cf0: 2d 2d 2d 2d 0d 0a 2d 34 34 39 0d 0a 0d 0a 6f 6e  ----..-449....on
5d00: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
5d10: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
5d20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5d30: 20 6c 61 62 65 6c 2d 31 32 31 0d 0a 53 45 4c 45   label-121..SELE
5d40: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
5d50: 29 20 2b 20 2b 20 37 36 20 63 6f 6c 30 20 46 52  ) + + 76 col0 FR
5d60: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab2..----..7
5d70: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
5d80: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
5d90: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
5da0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
5db0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
5dc0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
5dd0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
5de0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5df0: 65 6c 2d 31 32 31 0d 0a 53 45 4c 45 43 54 20 41  el-121..SELECT A
5e00: 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b  LL COUNT ( * ) +
5e10: 20 2b 20 37 36 20 63 6f 6c 30 20 46 52 4f 4d 20   + 76 col0 FROM 
5e20: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d 0a  tab2..----..79..
5e30: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
5e40: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
5e50: 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
5e60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5e70: 62 65 6c 2d 31 32 32 0d 0a 53 45 4c 45 43 54 20  bel-122..SELECT 
5e80: 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ALL CAST( NULL A
5e90: 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 2d 20  S DECIMAL ) + - 
5ea0: 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
5eb0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
5ec0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
5ed0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5ee0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5ef0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5f00: 20 6c 61 62 65 6c 2d 31 32 32 0d 0a 53 45 4c 45   label-122..SELE
5f10: 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55  CT ALL CAST ( NU
5f20: 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20 2d  LL AS REAL ) + -
5f30: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
5f40: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
5f50: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
5f60: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
5f70: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
5f80: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
5f90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 0d  wsort label-123.
5fa0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
5fb0: 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20 36 32  X( DISTINCT - 62
5fc0: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
5fd0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d 0a  tab0..----..62..
5fe0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5ff0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
6000: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6010: 20 6c 61 62 65 6c 2d 31 32 33 0d 0a 53 45 4c 45   label-123..SELE
6020: 43 54 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20 44  CT ALL - MAX ( D
6030: 49 53 54 49 4e 43 54 20 2d 20 36 32 20 29 20 41  ISTINCT - 62 ) A
6040: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
6050: 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d 0a 0d 0a 6f 6e  ..----..62....on
6060: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
6070: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
6080: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
6090: 74 20 6c 61 62 65 6c 2d 31 32 34 0d 0a 53 45 4c  t label-124..SEL
60a0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36  ECT DISTINCT + 6
60b0: 32 20 2a 20 2b 20 4d 41 58 28 20 2d 20 38 38 20  2 * + MAX( - 88 
60c0: 29 2c 20 36 32 20 41 53 20 63 6f 6c 32 20 46 52  ), 62 AS col2 FR
60d0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
60e0: 0a 2d 2d 2d 2d 0d 0a 2d 35 34 35 36 0d 0a 36 32  .----..-5456..62
60f0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
6100: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
6110: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
6120: 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 0d 0a 53  ort label-124..S
6130: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
6140: 20 36 32 20 2a 20 2b 20 4d 41 58 20 28 20 2d 20   62 * + MAX ( - 
6150: 38 38 20 29 2c 20 36 32 20 41 53 20 63 6f 6c 32  88 ), 62 AS col2
6160: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
6170: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 35 36 0d  r0..----..-5456.
6180: 0a 36 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .62....onlyif my
6190: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
61a0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
61b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
61c0: 31 32 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  125..SELECT COUN
61d0: 54 28 20 2a 20 29 20 2a 20 2b 20 2b 20 43 4f 55  T( * ) * + + COU
61e0: 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
61f0: 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  0 cor0 CROSS JOI
6200: 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 20 57  N tab1 AS cor1 W
6210: 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
6220: 4c 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 73  L..----..81....s
6230: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
6240: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
6250: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
6260: 62 65 6c 2d 31 32 35 0d 0a 53 45 4c 45 43 54 20  bel-125..SELECT 
6270: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20  COUNT ( * ) * + 
6280: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
6290: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f  OM tab0 cor0 CRO
62a0: 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
62b0: 63 6f 72 31 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor1 WHERE NULL 
62c0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 38  IS NULL..----..8
62d0: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
62e0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
62f0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
6300: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
6310: 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
6320: 28 20 2d 20 34 39 20 29 20 2a 20 2b 20 2b 20 43  ( - 49 ) * + + C
6330: 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20  OUNT( * ) + - - 
6340: 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 43  COUNT( * ) - + C
6350: 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 4d 49  OUNT( * ) + - MI
6360: 4e 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 41 53  N( - - col1 ) AS
6370: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
6380: 0a 2d 2d 2d 2d 0d 0a 2d 31 35 32 0d 0a 0d 0a 73  .----..-152....s
6390: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
63a0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
63b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
63c0: 62 65 6c 2d 31 32 36 0d 0a 53 45 4c 45 43 54 20  bel-126..SELECT 
63d0: 41 4c 4c 20 2b 20 28 20 2d 20 34 39 20 29 20 2a  ALL + ( - 49 ) *
63e0: 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   + + COUNT ( * )
63f0: 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a   + - - COUNT ( *
6400: 20 29 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) - + COUNT ( *
6410: 20 29 20 2b 20 2d 20 4d 49 4e 20 28 20 2d 20 2d   ) + - MIN ( - -
6420: 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
6430: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
6440: 0a 2d 31 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .-152....query I
6450: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
6460: 20 41 4c 4c 20 63 6f 6c 30 20 41 53 20 63 6f 6c   ALL col0 AS col
6470: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
6480: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
6490: 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 49 53  col0 * - col0 IS
64a0: 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 2d 20 63   NULL OR NOT - c
64b0: 6f 6c 32 20 2d 20 2b 20 2d 20 32 39 20 2b 20 2b  ol2 - + - 29 + +
64c0: 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
64d0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d  L..----..51..85.
64e0: 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .91....skipif po
64f0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
6500: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
6510: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
6520: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
6530: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
6540: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
6550: 20 2d 20 2d 20 35 37 20 63 6f 6c 32 20 46 52 4f   - - 57 col2 FRO
6560: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
6570: 2d 2d 2d 2d 0d 0a 35 37 0d 0a 0d 0a 6f 6e 6c 79  ----..57....only
6580: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
6590: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
65a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
65b0: 61 62 65 6c 2d 31 32 39 0d 0a 53 45 4c 45 43 54  abel-129..SELECT
65c0: 20 2d 20 53 55 4d 28 20 41 4c 4c 20 38 32 20 29   - SUM( ALL 82 )
65d0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
65e0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
65f0: 0d 0a 2d 32 34 36 0d 0a 0d 0a 73 6b 69 70 69 66  ..-246....skipif
6600: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
6610: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
6620: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6630: 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d  29..SELECT - SUM
6640: 20 28 20 41 4c 4c 20 38 32 20 29 20 41 53 20 63   ( ALL 82 ) AS c
6650: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
6660: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34   cor0..----..-24
6670: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
6680: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
6690: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
66a0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
66b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
66c0: 74 20 6c 61 62 65 6c 2d 31 33 30 0d 0a 53 45 4c  t label-130..SEL
66d0: 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
66e0: 20 2b 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c   + - + CAST( NUL
66f0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
6700: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
6710: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
6720: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
6730: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..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 33 30 0d 0a 53 45 4c 45 43 54 20  bel-130..SELECT 
6760: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  + COUNT ( * ) + 
6770: 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
6780: 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
6790: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
67a0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
67b0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
67c0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
67d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
67e0: 20 6c 61 62 65 6c 2d 31 33 31 0d 0a 53 45 4c 45   label-131..SELE
67f0: 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
6800: 2b 20 35 31 20 2a 20 43 4f 55 4e 54 28 20 2a 20  + 51 * COUNT( * 
6810: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
6820: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d 0a  or0..----..156..
6830: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
6840: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
6850: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6860: 20 6c 61 62 65 6c 2d 31 33 31 0d 0a 53 45 4c 45   label-131..SELE
6870: 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
6880: 20 2b 20 35 31 20 2a 20 43 4f 55 4e 54 20 28 20   + 51 * COUNT ( 
6890: 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
68a0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36   cor0..----..156
68b0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
68c0: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
68d0: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
68e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
68f0: 61 62 65 6c 2d 31 33 32 0d 0a 53 45 4c 45 43 54  abel-132..SELECT
6900: 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   ALL - col1 * + 
6910: 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2a 20  col0 + - col2 * 
6920: 2b 20 38 20 2b 20 2d 20 63 6f 6c 32 20 44 49 56  + 8 + - col2 DIV
6930: 20 2d 20 28 20 2d 20 33 38 20 29 20 46 52 4f 4d   - ( - 38 ) FROM
6940: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
6950: 2d 2d 2d 0d 0a 2d 31 34 38 34 0d 0a 2d 34 38 32  ---..-1484..-482
6960: 32 0d 0a 2d 38 39 38 0d 0a 0d 0a 73 6b 69 70 69  2..-898....skipi
6970: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
6980: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
6990: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
69a0: 31 33 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  132..SELECT ALL 
69b0: 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20  - col1 * + col0 
69c0: 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 38 20 2b  + - col2 * + 8 +
69d0: 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 28 20 2d 20   - col2 / - ( - 
69e0: 33 38 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  38 ) FROM tab1 A
69f0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
6a00: 34 38 34 0d 0a 2d 34 38 32 32 0d 0a 2d 38 39 38  484..-4822..-898
6a10: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
6a20: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28  sort..SELECT + (
6a30: 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   - col2 ) AS col
6a40: 32 2c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2, - col0 FROM t
6a50: 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
6a60: 2d 32 33 0d 0a 2d 34 36 0d 0a 2d 34 30 0d 0a 2d  -23..-46..-40..-
6a70: 36 34 0d 0a 2d 35 38 0d 0a 2d 37 35 0d 0a 0d 0a  64..-58..-75....
6a80: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
6a90: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
6aa0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
6ab0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
6ac0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
6ad0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6ae0: 54 20 44 49 53 54 49 4e 43 54 20 32 37 20 2b 20  T DISTINCT 27 + 
6af0: 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 2c 20 2b  + + col1 col2, +
6b00: 20 37 33 20 46 52 4f 4d 20 74 61 62 32 20 41 53   73 FROM tab2 AS
6b10: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34   cor0..----..104
6b20: 0d 0a 37 33 0d 0a 37 38 0d 0a 37 33 0d 0a 39 34  ..73..78..73..94
6b30: 0d 0a 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..73....query II
6b40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6b50: 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
6b60: 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 28  M tab2 WHERE - (
6b70: 20 2b 20 2b 20 32 38 20 29 20 49 53 20 4e 4f 54   + + 28 ) IS NOT
6b80: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
6b90: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
6ba0: 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
6bb0: 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
6bc0: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
6bd0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28  sort..SELECT - (
6be0: 20 2d 20 28 20 37 39 20 29 20 29 20 41 53 20 63   - ( 79 ) ) AS c
6bf0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
6c00: 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 30 20 2a  ERE NOT ( col0 *
6c10: 20 63 6f 6c 32 20 2d 20 2d 20 34 20 29 20 49 53   col2 - - 4 ) IS
6c20: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d   NULL..----..79.
6c30: 0a 37 39 0d 0a 37 39 0d 0a 0d 0a 71 75 65 72 79  .79..79....query
6c40: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
6c50: 43 54 20 31 32 20 2a 20 63 6f 6c 31 20 46 52 4f  CT 12 * col1 FRO
6c60: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  M tab0..----..12
6c70: 0d 0a 32 35 32 0d 0a 39 37 32 0d 0a 0d 0a 71 75  ..252..972....qu
6c80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
6c90: 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41 53 20  ELECT + col2 AS 
6ca0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
6cb0: 48 45 52 45 20 63 6f 6c 30 20 2b 20 63 6f 6c 31  HERE col0 + col1
6cc0: 20 3c 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 0d 0a   < col2 * col1..
6cd0: 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39  ----..10..47..99
6ce0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
6cf0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
6d00: 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 32 20  col0 + - + col2 
6d10: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
6d20: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 32 33 0d  2..----..17..23.
6d30: 0a 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .24....query I r
6d40: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
6d50: 4c 4c 20 2d 20 34 32 20 2a 20 2b 20 39 30 20 41  LL - 42 * + 90 A
6d60: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
6d70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 38 30 0d 0a 2d  ..----..-3780..-
6d80: 33 37 38 30 0d 0a 2d 33 37 38 30 0d 0a 0d 0a 71  3780..-3780....q
6d90: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
6da0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
6db0: 33 37 20 2a 20 2b 20 36 37 20 46 52 4f 4d 20 74  37 * + 67 FROM t
6dc0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 34 37 39 0d  ab2..----..2479.
6dd0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
6de0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
6df0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
6e00: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
6e10: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
6e20: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6e30: 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20 28 20 2b  ECT col0 * - ( +
6e40: 20 36 38 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20   68 ) col0 FROM 
6e50: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32  tab0..----..-102
6e60: 30 0d 0a 2d 35 39 31 36 0d 0a 2d 36 35 39 36 0d  0..-5916..-6596.
6e70: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
6e80: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
6e90: 30 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b  0 * + - col1 * +
6ea0: 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
6eb0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
6ec0: 0a 32 30 31 30 31 39 0d 0a 32 31 32 35 0d 0a 39  .201019..2125..9
6ed0: 39 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  996....query II 
6ee0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6ef0: 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 2c 20 63  DISTINCT col0, c
6f00: 6f 6c 31 20 2b 20 2b 20 34 37 20 46 52 4f 4d 20  ol1 + + 47 FROM 
6f10: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
6f20: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 3e 3d  RE NOT ( NULL >=
6f30: 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   - col0 )..----.
6f40: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
6f50: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
6f60: 2a 20 39 34 20 2a 20 63 6f 6c 31 20 41 53 20 63  * 94 * col1 AS c
6f70: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
6f80: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 34   cor0..----..244
6f90: 34 39 34 0d 0a 34 32 31 39 36 36 0d 0a 35 35 37  494..421966..557
6fa0: 33 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  326....query I r
6fb0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
6fc0: 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 32   col0 + - + col2
6fd0: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
6fe0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
6ff0: 0a 31 31 31 0d 0a 31 31 34 0d 0a 36 0d 0a 0d 0a  .111..114..6....
7000: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
7010: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
7020: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
7030: 72 74 20 6c 61 62 65 6c 2d 31 34 37 0d 0a 53 45  rt label-147..SE
7040: 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43 4f 55  LECT ALL - - COU
7050: 4e 54 28 20 41 4c 4c 20 39 20 29 20 2b 20 2b 20  NT( ALL 9 ) + + 
7060: 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 28  COUNT( * ) * - (
7070: 20 2d 20 34 20 29 20 63 6f 6c 30 20 46 52 4f 4d   - 4 ) col0 FROM
7080: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
7090: 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 73 6b 69 70 69  ---..15....skipi
70a0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
70b0: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
70c0: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
70d0: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
70e0: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
70f0: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
7100: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
7110: 72 74 20 6c 61 62 65 6c 2d 31 34 37 0d 0a 53 45  rt label-147..SE
7120: 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43 4f 55  LECT ALL - - COU
7130: 4e 54 20 28 20 41 4c 4c 20 39 20 29 20 2b 20 2b  NT ( ALL 9 ) + +
7140: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
7150: 20 28 20 2d 20 34 20 29 20 63 6f 6c 30 20 46 52   ( - 4 ) col0 FR
7160: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
7170: 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 71 75 65  .----..15....que
7180: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
7190: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
71a0: 62 32 20 57 48 45 52 45 20 63 6f 6c 30 20 2f 20  b2 WHERE col0 / 
71b0: 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c  + col0 * + - col
71c0: 32 20 3e 20 2b 20 35 33 20 2a 20 2b 20 2b 20 38  2 > + 53 * + + 8
71d0: 36 20 2d 20 2d 20 36 35 0d 0a 2d 2d 2d 2d 0d 0a  6 - - 65..----..
71e0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
71f0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
7200: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
7210: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 39 0d 0a  sort label-149..
7220: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
7230: 4e 54 28 20 2a 20 29 20 2b 20 38 32 20 46 52 4f  NT( * ) + 82 FRO
7240: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 35  M tab2..----..85
7250: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7260: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
7270: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
7280: 72 74 20 6c 61 62 65 6c 2d 31 34 39 0d 0a 53 45  rt label-149..SE
7290: 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
72a0: 20 28 20 2a 20 29 20 2b 20 38 32 20 46 52 4f 4d   ( * ) + 82 FROM
72b0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d   tab2..----..85.
72c0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
72d0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
72e0: 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
72f0: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
7300: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7310: 6c 61 62 65 6c 2d 31 35 30 0d 0a 53 45 4c 45 43  label-150..SELEC
7320: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 43  T DISTINCT - ( C
7330: 4f 55 4e 54 28 20 2b 20 2d 20 31 39 20 29 20 29  OUNT( + - 19 ) )
7340: 20 44 49 56 20 2d 20 2b 20 35 39 20 41 53 20 63   DIV - + 59 AS c
7350: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
7360: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
7370: 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d   tab2 AS cor1..-
7380: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
7390: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
73a0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
73b0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
73c0: 35 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  50..SELECT DISTI
73d0: 4e 43 54 20 2d 20 28 20 43 4f 55 4e 54 20 28 20  NCT - ( COUNT ( 
73e0: 2b 20 2d 20 31 39 20 29 20 29 20 2f 20 2d 20 2b  + - 19 ) ) / - +
73f0: 20 35 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   59 AS col0 FROM
7400: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
7410: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
7420: 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor1..----..0..
7430: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7440: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f  t..SELECT - + co
7450: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l1 FROM tab2 WHE
7460: 52 45 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c 0d  RE NULL >= NULL.
7470: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
7480: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
7490: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
74a0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
74b0: 6c 2d 31 35 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-152..SELECT AL
74c0: 4c 20 2b 20 31 32 20 2d 20 2d 20 4d 41 58 28 20  L + 12 - - MAX( 
74d0: 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 37 36 20  DISTINCT - + 76 
74e0: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
74f0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 34 0d 0a  or0..----..-64..
7500: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
7510: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
7520: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7530: 20 6c 61 62 65 6c 2d 31 35 32 0d 0a 53 45 4c 45   label-152..SELE
7540: 43 54 20 41 4c 4c 20 2b 20 31 32 20 2d 20 2d 20  CT ALL + 12 - - 
7550: 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d  MAX ( DISTINCT -
7560: 20 2b 20 37 36 20 29 20 46 52 4f 4d 20 74 61 62   + 76 ) FROM tab
7570: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
7580: 0a 2d 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-64....skipif p
7590: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
75a0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
75b0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
75c0: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
75d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
75e0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
75f0: 54 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 33 20 63  T col1 + - + 3 c
7600: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
7610: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d   cor0..----..48.
7620: 0a 36 34 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79 69  .64..74....onlyi
7630: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
7640: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
7650: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
7660: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 34 0d  wsort label-154.
7670: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
7680: 20 33 30 20 44 49 56 20 2d 20 36 32 20 41 53 20   30 DIV - 62 AS 
7690: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
76a0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
76b0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
76c0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
76d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
76e0: 74 20 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c  t label-154..SEL
76f0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 33 30 20  ECT DISTINCT 30 
7700: 2f 20 2d 20 36 32 20 41 53 20 63 6f 6c 31 20 46  / - 62 AS col1 F
7710: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
7720: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
7730: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
7740: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
7750: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7760: 6c 61 62 65 6c 2d 31 35 35 0d 0a 53 45 4c 45 43  label-155..SELEC
7770: 54 20 28 20 53 55 4d 28 20 44 49 53 54 49 4e 43  T ( SUM( DISTINC
7780: 54 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f  T col2 ) ) AS co
7790: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
77a0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d  cor0..----..156.
77b0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
77c0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
77d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
77e0: 74 20 6c 61 62 65 6c 2d 31 35 35 0d 0a 53 45 4c  t label-155..SEL
77f0: 45 43 54 20 28 20 53 55 4d 20 28 20 44 49 53 54  ECT ( SUM ( DIST
7800: 49 4e 43 54 20 63 6f 6c 32 20 29 20 29 20 41 53  INCT col2 ) ) AS
7810: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
7820: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
7830: 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  56....skipif pos
7840: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
7850: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
7860: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
7870: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
7880: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
7890: 53 45 4c 45 43 54 20 2d 20 39 34 20 63 6f 6c 32  SELECT - 94 col2
78a0: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
78b0: 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55  WHERE NULL IS NU
78c0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 34 0d 0a 2d  LL..----..-94..-
78d0: 39 34 0d 0a 2d 39 34 0d 0a 0d 0a 6f 6e 6c 79 69  94..-94....onlyi
78e0: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
78f0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
7900: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
7910: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 37 0d  wsort label-157.
7920: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
7930: 20 2b 20 2b 20 35 32 20 2d 20 2b 20 2d 20 63 6f   + + 52 - + - co
7940: 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  l1 + + + col0 + 
7950: 2b 20 63 6f 6c 30 20 44 49 56 20 2d 20 2d 20 31  + col0 DIV - - 1
7960: 35 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  5 FROM tab1 cor0
7970: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 31 34 37  ..----..120..147
7980: 0d 0a 31 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..196....skipif 
7990: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
79a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
79b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
79c0: 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
79d0: 43 54 20 2b 20 2b 20 35 32 20 2d 20 2b 20 2d 20  CT + + 52 - + - 
79e0: 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 30 20  col1 + + + col0 
79f0: 2b 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 31  + + col0 / - - 1
7a00: 35 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  5 FROM tab1 cor0
7a10: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 31 34 37  ..----..120..147
7a20: 0d 0a 31 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..196....query I
7a30: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7a40: 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 2c 20  T ALL - - col0, 
7a50: 2d 20 39 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 91 AS col2 FRO
7a60: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7a70: 2d 2d 2d 2d 0d 0a 34 36 0d 0a 2d 39 31 0d 0a 36  ----..46..-91..6
7a80: 34 0d 0a 2d 39 31 0d 0a 37 35 0d 0a 2d 39 31 0d  4..-91..75..-91.
7a90: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
7aa0: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
7ab0: 2a 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 31 39 20  * + - col1 - 19 
7ac0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
7ad0: 0a 2d 32 31 35 0d 0a 2d 32 32 32 38 0d 0a 2d 34  .-215..-2228..-4
7ae0: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
7af0: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
7b00: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
7b10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7b20: 6c 61 62 65 6c 2d 31 36 30 0d 0a 53 45 4c 45 43  label-160..SELEC
7b30: 54 20 2d 20 39 35 20 44 49 56 20 2d 20 63 6f 6c  T - 95 DIV - col
7b40: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
7b50: 2d 0d 0a 31 39 0d 0a 32 0d 0a 36 0d 0a 0d 0a 73  -..19..2..6....s
7b60: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
7b70: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
7b80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
7b90: 62 65 6c 2d 31 36 30 0d 0a 53 45 4c 45 43 54 20  bel-160..SELECT 
7ba0: 2d 20 39 35 20 2f 20 2d 20 63 6f 6c 31 20 46 52  - 95 / - col1 FR
7bb0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
7bc0: 39 0d 0a 32 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69  9..2..6....onlyi
7bd0: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
7be0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
7bf0: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
7c00: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 31  owsort label-161
7c10: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
7c20: 31 20 44 49 56 20 2d 20 63 6f 6c 31 20 41 53 20  1 DIV - col1 AS 
7c30: 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 63 6f 6c  col1, - col2 col
7c40: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
7c50: 2d 0d 0a 2d 31 0d 0a 2d 32 33 0d 0a 2d 31 0d 0a  -..-1..-23..-1..
7c60: 2d 34 30 0d 0a 2d 31 0d 0a 2d 35 38 0d 0a 0d 0a  -40..-1..-58....
7c70: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
7c80: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
7c90: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
7ca0: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
7cb0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
7cc0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
7cd0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
7ce0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7cf0: 36 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  61..SELECT ALL c
7d00: 6f 6c 31 20 2f 20 2d 20 63 6f 6c 31 20 41 53 20  ol1 / - col1 AS 
7d10: 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 63 6f 6c  col1, - col2 col
7d20: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
7d30: 2d 0d 0a 2d 31 0d 0a 2d 32 33 0d 0a 2d 31 0d 0a  -..-1..-23..-1..
7d40: 2d 34 30 0d 0a 2d 31 0d 0a 2d 35 38 0d 0a 0d 0a  -40..-1..-58....
7d50: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
7d60: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
7d70: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
7d80: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7d90: 2d 31 36 32 0d 0a 53 45 4c 45 43 54 20 35 31 20  -162..SELECT 51 
7da0: 44 49 56 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  DIV col2 FROM ta
7db0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  b1..----..0..0..
7dc0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
7dd0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7de0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7df0: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 32 0d 0a 53  ort label-162..S
7e00: 45 4c 45 43 54 20 35 31 20 2f 20 63 6f 6c 32 20  ELECT 51 / col2 
7e10: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
7e20: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .0..0..0....only
7e30: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
7e40: 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
7e50: 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
7e60: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
7e70: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7e80: 36 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  63..SELECT + CAS
7e90: 54 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  T( COUNT( * ) AS
7ea0: 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
7eb0: 61 62 31 2c 20 74 61 62 31 20 41 53 20 63 6f 72  ab1, tab1 AS cor
7ec0: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b  0..----..9....sk
7ed0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
7ee0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
7ef0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7f00: 65 6c 2d 31 36 33 0d 0a 53 45 4c 45 43 54 20 2b  el-163..SELECT +
7f10: 20 43 41 53 54 20 28 20 43 4f 55 4e 54 20 28 20   CAST ( COUNT ( 
7f20: 2a 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  * ) AS INTEGER )
7f30: 20 46 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 31   FROM tab1, tab1
7f40: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7f50: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
7f60: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
7f70: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
7f80: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
7f90: 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  LL BETWEEN NULL 
7fa0: 41 4e 44 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  AND col0..----..
7fb0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7fc0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20  t..SELECT + - ( 
7fd0: 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
7fe0: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
7ff0: 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a  59..-68..-96....
8000: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8010: 0a 53 45 4c 45 43 54 20 2b 20 33 32 20 2a 20 2b  .SELECT + 32 * +
8020: 20 38 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   89 AS col1 FROM
8030: 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
8040: 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
8050: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
8060: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
8070: 43 54 20 2d 20 31 36 20 2a 20 2d 20 63 6f 6c 30  CT - 16 * - col0
8080: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
8090: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 39 32 0d 0a  b0..----..1392..
80a0: 31 35 35 32 0d 0a 32 34 30 0d 0a 0d 0a 71 75 65  1552..240....que
80b0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
80c0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
80d0: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
80e0: 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 32 20 49 4e   NOT ( + col2 IN
80f0: 20 28 20 2d 20 33 20 2f 20 63 6f 6c 31 20 29 20   ( - 3 / col1 ) 
8100: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
8110: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
8120: 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
8130: 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
8140: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
8150: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
8160: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
8170: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 36 34 20  r0 WHERE NOT 64 
8180: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
8190: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
81a0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
81b0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
81c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
81d0: 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
81e0: 43 54 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20  CT + COUNT( ALL 
81f0: 2d 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 29  - ( - + col0 ) )
8200: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
8210: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
8220: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
8230: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8240: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
8250: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 30 0d  wsort label-170.
8260: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8270: 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d   + COUNT ( ALL -
8280: 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 29 20   ( - + col0 ) ) 
8290: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
82a0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
82b0: 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .3....onlyif mys
82c0: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
82d0: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
82e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
82f0: 20 6c 61 62 65 6c 2d 31 37 31 0d 0a 53 45 4c 45   label-171..SELE
8300: 43 54 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b 20  CT + col1 DIV + 
8310: 35 38 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20  58 + col2 + - - 
8320: 31 35 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41 53  15 * - + col0 AS
8330: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
8340: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
8350: 31 32 39 35 0d 0a 2d 31 33 35 36 0d 0a 2d 31 37  1295..-1356..-17
8360: 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
8370: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8380: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
8390: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 31 0d 0a 53  ort label-171..S
83a0: 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 2b  ELECT + col1 / +
83b0: 20 35 38 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d   58 + col2 + - -
83c0: 20 31 35 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41   15 * - + col0 A
83d0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
83e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
83f0: 2d 31 32 39 35 0d 0a 2d 31 33 35 36 0d 0a 2d 31  -1295..-1356..-1
8400: 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  77....query I ro
8410: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
8420: 53 54 49 4e 43 54 20 2b 20 38 39 20 2a 20 63 6f  STINCT + 89 * co
8430: 6c 30 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l0 + col0 FROM t
8440: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
8450: 2d 0d 0a 31 33 35 30 0d 0a 37 38 33 30 0d 0a 38  -..1350..7830..8
8460: 37 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  730....query I r
8470: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
8480: 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30  ISTINCT - + col0
8490: 20 2a 20 2d 20 33 37 20 46 52 4f 4d 20 74 61 62   * - 37 FROM tab
84a0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
84b0: 0a 31 37 30 32 0d 0a 32 33 36 38 0d 0a 32 37 37  .1702..2368..277
84c0: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
84d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
84e0: 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53   ( - - col2 ) AS
84f0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
8500: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  cor0..----..23..
8510: 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20  40..58....query 
8520: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8530: 54 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 36 37 20  T col0 * + + 67 
8540: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
8550: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
8560: 0a 31 30 30 35 0d 0a 35 38 32 39 0d 0a 36 34 39  .1005..5829..649
8570: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
8580: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
8590: 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 32 34 20 2b   + - col0 * 24 +
85a0: 20 2d 20 32 37 20 46 52 4f 4d 20 74 61 62 30 20   - 27 FROM tab0 
85b0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
85c0: 32 31 31 35 0d 0a 2d 32 33 35 35 0d 0a 2d 33 38  2115..-2355..-38
85d0: 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
85e0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
85f0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
8600: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
8610: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
8620: 72 74 20 6c 61 62 65 6c 2d 31 37 37 0d 0a 53 45  rt label-177..SE
8630: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 41 4c  LECT + COUNT( AL
8640: 4c 20 2b 20 2b 20 39 39 20 29 20 41 53 20 63 6f  L + + 99 ) AS co
8650: 6c 30 2c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  l0, CAST( NULL A
8660: 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
8670: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 4e  tab1..----..3..N
8680: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
8690: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
86a0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
86b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 37  owsort label-177
86c0: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
86d0: 20 28 20 41 4c 4c 20 2b 20 2b 20 39 39 20 29 20   ( ALL + + 99 ) 
86e0: 41 53 20 63 6f 6c 30 2c 20 43 41 53 54 20 28 20  AS col0, CAST ( 
86f0: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
8700: 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
8710: 2d 0d 0a 33 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  -..3..NULL....on
8720: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
8730: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
8740: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
8750: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8760: 31 37 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  178..SELECT col0
8770: 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20 2a 20   + ( - col2 ) * 
8780: 2b 20 43 41 53 54 28 20 36 32 20 41 53 20 53 49  + CAST( 62 AS SI
8790: 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 2c 20  GNED ) AS col1, 
87a0: 37 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  73 AS col1 FROM 
87b0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 39  tab0..----..-289
87c0: 39 0d 0a 37 33 0d 0a 2d 35 33 33 0d 0a 37 33 0d  9..73..-533..73.
87d0: 0a 2d 36 30 34 31 0d 0a 37 33 0d 0a 0d 0a 73 6b  .-6041..73....sk
87e0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
87f0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
8800: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
8810: 62 65 6c 2d 31 37 38 0d 0a 53 45 4c 45 43 54 20  bel-178..SELECT 
8820: 63 6f 6c 30 20 2b 20 28 20 2d 20 63 6f 6c 32 20  col0 + ( - col2 
8830: 29 20 2a 20 2b 20 43 41 53 54 20 28 20 36 32 20  ) * + CAST ( 62 
8840: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
8850: 63 6f 6c 31 2c 20 37 33 20 41 53 20 63 6f 6c 31  col1, 73 AS col1
8860: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
8870: 0d 0a 2d 32 38 39 39 0d 0a 37 33 0d 0a 2d 35 33  ..-2899..73..-53
8880: 33 0d 0a 37 33 0d 0a 2d 36 30 34 31 0d 0a 37 33  3..73..-6041..73
8890: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
88a0: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
88b0: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
88c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
88d0: 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43 54  abel-179..SELECT
88e0: 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f   DISTINCT - + co
88f0: 6c 32 20 44 49 56 20 63 6f 6c 31 20 46 52 4f 4d  l2 DIV col1 FROM
8900: 20 74 61 62 32 20 57 48 45 52 45 20 35 39 20 3e   tab2 WHERE 59 >
8910: 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   col0..----..0..
8920: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
8930: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
8940: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8950: 20 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45   label-179..SELE
8960: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
8970: 63 6f 6c 32 20 2f 20 63 6f 6c 31 20 46 52 4f 4d  col2 / col1 FROM
8980: 20 74 61 62 32 20 57 48 45 52 45 20 35 39 20 3e   tab2 WHERE 59 >
8990: 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   col0..----..0..
89a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
89b0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
89c0: 43 54 20 2b 20 37 30 20 2a 20 2d 20 63 6f 6c 32  CT + 70 * - col2
89d0: 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + - col0 AS col
89e0: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
89f0: 2d 0d 0a 2d 31 36 35 36 0d 0a 2d 32 38 36 34 0d  -..-1656..-2864.
8a00: 0a 2d 34 31 33 35 0d 0a 0d 0a 71 75 65 72 79 20  .-4135....query 
8a10: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
8a20: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
8a30: 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c 31 20 42  WHERE + + col1 B
8a40: 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
8a50: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
8a60: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
8a70: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
8a80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8a90: 20 6c 61 62 65 6c 2d 31 38 32 0d 0a 53 45 4c 45   label-182..SELE
8aa0: 43 54 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e  CT COUNT( DISTIN
8ab0: 43 54 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 30  CT - col0 ) col0
8ac0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
8ad0: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
8ae0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8af0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
8b00: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
8b10: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
8b20: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
8b30: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
8b40: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
8b50: 61 62 65 6c 2d 31 38 32 0d 0a 53 45 4c 45 43 54  abel-182..SELECT
8b60: 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43   COUNT ( DISTINC
8b70: 54 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20  T - col0 ) col0 
8b80: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
8b90: 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
8ba0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
8bb0: 6c 32 20 2d 20 2d 20 2b 20 28 20 2b 20 2b 20 63  l2 - - + ( + + c
8bc0: 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol0 ) FROM tab2.
8bd0: 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 33 33 0d  .----..104..133.
8be0: 0a 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .69....query I r
8bf0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
8c00: 49 53 54 49 4e 43 54 20 36 37 20 41 53 20 63 6f  ISTINCT 67 AS co
8c10: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
8c20: 52 45 20 2d 20 63 6f 6c 30 20 3e 20 63 6f 6c 32  RE - col0 > col2
8c30: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
8c40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8c50: 54 20 41 4c 4c 20 2d 20 37 35 20 41 53 20 63 6f  T ALL - 75 AS co
8c60: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
8c70: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
8c80: 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
8c90: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
8ca0: 67 20 74 6f 20 32 35 38 62 63 35 36 35 63 36 34  g to 258bc565c64
8cb0: 39 32 34 64 39 30 35 61 35 35 65 61 61 61 36 65  924d905a55eaaa6e
8cc0: 35 37 35 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49  57547....query I
8cd0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8ce0: 20 2d 20 2d 20 32 39 20 2a 20 39 32 20 2b 20 39   - - 29 * 92 + 9
8cf0: 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  7 AS col0 FROM t
8d00: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
8d10: 2d 0d 0a 32 37 36 35 0d 0a 32 37 36 35 0d 0a 32  -..2765..2765..2
8d20: 37 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  765....query I r
8d30: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
8d40: 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20  LL + - col2 + + 
8d50: 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c  + col0 * - + col
8d60: 31 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b  1 * + - col0 * +
8d70: 20 37 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   73 AS col1 FROM
8d80: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
8d90: 2d 2d 2d 0d 0a 31 31 36 30 33 32 36 37 0d 0a 31  ---..11603267..1
8da0: 33 33 30 33 37 38 0d 0a 36 38 36 37 35 38 0d 0a  330378..686758..
8db0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8dc0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b  t..SELECT col2 +
8dd0: 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b 20   - + col0 * + + 
8de0: 28 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29  ( - ( + + col0 )
8df0: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
8e00: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 33 39  cor0..----..2139
8e10: 0d 0a 34 31 33 36 0d 0a 35 36 38 33 0d 0a 0d 0a  ..4136..5683....
8e20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8e30: 0a 53 45 4c 45 43 54 20 33 31 20 2a 20 63 6f 6c  .SELECT 31 * col
8e40: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
8e50: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 32 39 0d  or0..----..1829.
8e60: 0a 32 31 30 38 0d 0a 32 39 37 36 0d 0a 0d 0a 6f  .2108..2976....o
8e70: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
8e80: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
8e90: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8ea0: 74 20 6c 61 62 65 6c 2d 31 39 30 0d 0a 53 45 4c  t label-190..SEL
8eb0: 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a  ECT ALL COUNT( *
8ec0: 20 29 20 2a 20 34 20 46 52 4f 4d 20 74 61 62 32   ) * 4 FROM tab2
8ed0: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b  ..----..12....sk
8ee0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
8ef0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
8f00: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8f10: 65 6c 2d 31 39 30 0d 0a 53 45 4c 45 43 54 20 41  el-190..SELECT A
8f20: 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  LL COUNT ( * ) *
8f30: 20 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   4 FROM tab2..--
8f40: 2d 2d 0d 0a 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..12....onlyif
8f50: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
8f60: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
8f70: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
8f80: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 31 0d 0a  sort label-191..
8f90: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8fa0: 39 32 20 44 49 56 20 2b 20 35 35 20 46 52 4f 4d  92 DIV + 55 FROM
8fb0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab0..----..1..
8fc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
8fd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
8fe0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8ff0: 20 6c 61 62 65 6c 2d 31 39 31 0d 0a 53 45 4c 45   label-191..SELE
9000: 43 54 20 44 49 53 54 49 4e 43 54 20 39 32 20 2f  CT DISTINCT 92 /
9010: 20 2b 20 35 35 20 46 52 4f 4d 20 74 61 62 30 0d   + 55 FROM tab0.
9020: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79  .----..1....only
9030: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
9040: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
9050: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
9060: 6c 61 62 65 6c 2d 31 39 32 0d 0a 53 45 4c 45 43  label-192..SELEC
9070: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 35 20  T DISTINCT - 95 
9080: 63 6f 6c 32 2c 20 2b 20 53 55 4d 28 20 41 4c 4c  col2, + SUM( ALL
9090: 20 2b 20 35 39 20 29 20 46 52 4f 4d 20 74 61 62   + 59 ) FROM tab
90a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 35 0d 0a 31 37  0..----..-95..17
90b0: 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
90c0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
90d0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
90e0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
90f0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
9100: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
9110: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
9120: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
9130: 62 65 6c 2d 31 39 32 0d 0a 53 45 4c 45 43 54 20  bel-192..SELECT 
9140: 44 49 53 54 49 4e 43 54 20 2d 20 39 35 20 63 6f  DISTINCT - 95 co
9150: 6c 32 2c 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20  l2, + SUM ( ALL 
9160: 2b 20 35 39 20 29 20 46 52 4f 4d 20 74 61 62 30  + 59 ) FROM tab0
9170: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 35 0d 0a 31 37 37  ..----..-95..177
9180: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
9190: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
91a0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
91b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 33  owsort label-193
91c0: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
91d0: 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
91e0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
91f0: 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
9200: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
9210: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
9220: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
9230: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
9240: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 33 0d  wsort label-193.
9250: 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20  .SELECT - COUNT 
9260: 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
9270: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
9280: 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
9290: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
92a0: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
92b0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
92c0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
92d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
92e0: 74 20 6c 61 62 65 6c 2d 31 39 34 0d 0a 53 45 4c  t label-194..SEL
92f0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
9300: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
9310: 49 47 4e 45 44 20 29 20 2a 20 2d 20 39 36 20 41  IGNED ) * - 96 A
9320: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
9330: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
9340: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
9350: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
9360: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
9370: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 34  owsort label-194
9380: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
9390: 54 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  T - + CAST ( NUL
93a0: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
93b0: 20 2d 20 39 36 20 41 53 20 63 6f 6c 31 20 46 52   - 96 AS col1 FR
93c0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
93d0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
93e0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
93f0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
9400: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
9410: 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
9420: 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e  WEEN ( NULL ) AN
9430: 44 20 2d 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 32  D - - ( - + col2
9440: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
9450: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
9460: 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
9470: 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
9480: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
9490: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
94a0: 39 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  96..SELECT DISTI
94b0: 4e 43 54 20 43 41 53 54 28 20 2b 20 34 20 41 53  NCT CAST( + 4 AS
94c0: 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 2d 20   SIGNED ) + + - 
94d0: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
94e0: 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
94f0: 2b 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 2b  + col0 BETWEEN +
9500: 20 63 6f 6c 31 20 2a 20 31 32 20 41 4e 44 20 35   col1 * 12 AND 5
9510: 36 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 73 6b  6..----..4....sk
9520: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
9530: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
9540: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9550: 65 6c 2d 31 39 36 0d 0a 53 45 4c 45 43 54 20 44  el-196..SELECT D
9560: 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 2b  ISTINCT CAST ( +
9570: 20 34 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   4 AS INTEGER ) 
9580: 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  + + - COUNT ( * 
9590: 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  ) FROM tab2 cor0
95a0: 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 42 45   WHERE + col0 BE
95b0: 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20 2a 20 31  TWEEN + col1 * 1
95c0: 32 20 41 4e 44 20 35 36 0d 0a 2d 2d 2d 2d 0d 0a  2 AND 56..----..
95d0: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
95e0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
95f0: 20 2b 20 33 37 20 41 53 20 63 6f 6c 31 20 46 52   + 37 AS col1 FR
9600: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
9610: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e  WHERE NOT NULL N
9620: 4f 54 20 49 4e 20 28 20 2d 20 34 32 2c 20 2d 20  OT IN ( - 42, - 
9630: 63 6f 6c 31 2c 20 2b 20 2d 20 38 32 20 2b 20 2d  col1, + - 82 + -
9640: 20 37 2c 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29   7, + ( - col1 )
9650: 2c 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20  , - col0 + col1 
9660: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
9670: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
9680: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
9690: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
96a0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 38  owsort label-198
96b0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
96c0: 54 20 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c 30  T - CAST( - col0
96d0: 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20 2b 20   AS SIGNED ), + 
96e0: 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
96f0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  M tab0..----..15
9700: 0d 0a 31 35 0d 0a 38 37 0d 0a 38 37 0d 0a 39 37  ..15..87..87..97
9710: 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..97....skipif m
9720: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
9730: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
9740: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39  rowsort label-19
9750: 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
9760: 43 54 20 2d 20 43 41 53 54 20 28 20 2d 20 63 6f  CT - CAST ( - co
9770: 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 2c  l0 AS INTEGER ),
9780: 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   + col0 AS col1 
9790: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
97a0: 0a 31 35 0d 0a 31 35 0d 0a 38 37 0d 0a 38 37 0d  .15..15..87..87.
97b0: 0a 39 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  .97..97....query
97c0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
97d0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
97e0: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
97f0: 32 20 49 4e 20 28 20 2b 20 2d 20 35 36 20 2a 20  2 IN ( + - 56 * 
9800: 35 32 2c 20 2d 20 34 35 2c 20 2b 20 35 32 2c 20  52, - 45, + 52, 
9810: 2d 20 2d 20 37 35 20 2a 20 2d 20 2b 20 63 6f 6c  - - 75 * - + col
9820: 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  0 )..----..9 val
9830: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
9840: 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
9850: 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
9860: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9870: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32 33 20  rt..SELECT - 23 
9880: 2b 20 2d 20 2b 20 39 30 20 41 53 20 63 6f 6c 30  + - + 90 AS col0
9890: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
98a0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 0d 0a  r0..----..-113..
98b0: 2d 31 31 33 0d 0a 2d 31 31 33 0d 0a 0d 0a 71 75  -113..-113....qu
98c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
98d0: 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63 6f  ELECT col1 AS co
98e0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
98f0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
9900: 6f 6c 30 20 2b 20 2d 20 31 36 20 2a 20 2d 20 2d  ol0 + - 16 * - -
9910: 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c   col0 IS NOT NUL
9920: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
9930: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
9940: 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 33 30  ECT ALL + ( - 30
9950: 20 29 20 41 53 20 63 6f 6c 30 2c 20 31 38 20 2a   ) AS col0, 18 *
9960: 20 2d 20 34 20 2a 20 2b 20 32 31 20 2a 20 63 6f   - 4 * + 21 * co
9970: 6c 32 20 2d 20 2b 20 37 31 20 2a 20 2d 20 2d 20  l2 - + 71 * - - 
9980: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
9990: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
99a0: 30 0d 0a 2d 33 38 30 34 32 0d 0a 2d 33 30 0d 0a  0..-38042..-30..
99b0: 2d 36 35 30 32 34 0d 0a 2d 33 30 0d 0a 2d 39 33  -65024..-30..-93
99c0: 30 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  021....onlyif my
99d0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
99e0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
99f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9a00: 32 30 33 0d 0a 53 45 4c 45 43 54 20 33 32 20 2a  203..SELECT 32 *
9a10: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
9a20: 34 37 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  47 FROM tab2 AS 
9a30: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a  cor0..----..49..
9a40: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9a50: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9a60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9a70: 20 6c 61 62 65 6c 2d 32 30 33 0d 0a 53 45 4c 45   label-203..SELE
9a80: 43 54 20 33 32 20 2a 20 43 4f 55 4e 54 20 28 20  CT 32 * COUNT ( 
9a90: 2a 20 29 20 2b 20 2d 20 34 37 20 46 52 4f 4d 20  * ) + - 47 FROM 
9aa0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
9ab0: 2d 2d 0d 0a 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..49....onlyif
9ac0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
9ad0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
9ae0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9af0: 65 6c 2d 32 30 34 0d 0a 53 45 4c 45 43 54 20 2d  el-204..SELECT -
9b00: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
9b10: 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 53  COUNT( * ) - + S
9b20: 55 4d 28 20 41 4c 4c 20 2d 20 36 20 29 20 2d 20  UM( ALL - 6 ) - 
9b30: 2b 20 38 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 88 AS col2 FRO
9b40: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
9b50: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f  HERE NOT NULL NO
9b60: 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
9b70: 4e 44 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  ND + col1 * + co
9b80: 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 2d 20  l0 + - col0 - - 
9b90: 63 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20  col1 * - + col0 
9ba0: 41 4e 44 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 3c  AND NOT + col2 <
9bb0: 3d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  = - col0 * + col
9bc0: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
9bd0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
9be0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
9bf0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
9c00: 6c 61 62 65 6c 2d 32 30 34 0d 0a 53 45 4c 45 43  label-204..SELEC
9c10: 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
9c20: 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * + COUNT ( * ) 
9c30: 2d 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20  - + SUM ( ALL - 
9c40: 36 20 29 20 2d 20 2b 20 38 38 20 41 53 20 63 6f  6 ) - + 88 AS co
9c50: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
9c60: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
9c70: 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
9c80: 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 31 20  NULL AND + col1 
9c90: 2a 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  * + col0 + - col
9ca0: 30 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b  0 - - col1 * - +
9cb0: 20 63 6f 6c 30 20 41 4e 44 20 4e 4f 54 20 2b 20   col0 AND NOT + 
9cc0: 63 6f 6c 32 20 3c 3d 20 2d 20 63 6f 6c 30 20 2a  col2 <= - col0 *
9cd0: 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e   + col0..----..N
9ce0: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
9cf0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9d00: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
9d10: 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
9d20: 20 4e 4f 54 20 63 6f 6c 31 20 2b 20 38 39 20 49   NOT col1 + 89 I
9d30: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
9d40: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
9d50: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
9d60: 63 6f 6c 31 20 2b 20 37 31 20 46 52 4f 4d 20 74  col1 + 71 FROM t
9d70: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
9d80: 2d 0d 0a 31 31 38 0d 0a 37 36 0d 0a 38 35 0d 0a  -..118..76..85..
9d90: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
9da0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
9db0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
9dc0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 37 0d 0a  sort label-207..
9dd0: 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 2b 20 4d  SELECT + - ( + M
9de0: 41 58 28 20 63 6f 6c 32 20 29 20 29 20 2a 20 2b  AX( col2 ) ) * +
9df0: 20 2b 20 39 32 20 46 52 4f 4d 20 74 61 62 32 20   + 92 FROM tab2 
9e00: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 33  cor0..----..-533
9e10: 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
9e20: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
9e30: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
9e40: 6f 72 74 20 6c 61 62 65 6c 2d 32 30 37 0d 0a 53  ort label-207..S
9e50: 45 4c 45 43 54 20 2b 20 2d 20 28 20 2b 20 4d 41  ELECT + - ( + MA
9e60: 58 20 28 20 63 6f 6c 32 20 29 20 29 20 2a 20 2b  X ( col2 ) ) * +
9e70: 20 2b 20 39 32 20 46 52 4f 4d 20 74 61 62 32 20   + 92 FROM tab2 
9e80: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 33  cor0..----..-533
9e90: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
9ea0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
9eb0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
9ec0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
9ed0: 74 20 6c 61 62 65 6c 2d 32 30 38 0d 0a 53 45 4c  t label-208..SEL
9ee0: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
9ef0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
9f00: 45 20 63 6f 6c 32 20 49 4e 20 28 20 63 6f 6c 32  E col2 IN ( col2
9f10: 2c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  , + CAST( NULL A
9f20: 53 20 53 49 47 4e 45 44 20 29 20 2f 20 63 6f 6c  S SIGNED ) / col
9f30: 31 2c 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 31  1, + col2 * col1
9f40: 2c 20 2b 20 63 6f 6c 30 2c 20 2d 20 31 32 20 2a  , + col0, - 12 *
9f50: 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 29   col1 * - col1 )
9f60: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
9f70: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
9f80: 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
9f90: 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
9fa0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9fb0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
9fc0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
9fd0: 20 6c 61 62 65 6c 2d 32 30 38 0d 0a 53 45 4c 45   label-208..SELE
9fe0: 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
9ff0: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
a000: 20 63 6f 6c 32 20 49 4e 20 28 20 63 6f 6c 32 2c   col2 IN ( col2,
a010: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
a020: 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 63 6f  S INTEGER ) / co
a030: 6c 31 2c 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c  l1, + col2 * col
a040: 31 2c 20 2b 20 63 6f 6c 30 2c 20 2d 20 31 32 20  1, + col0, - 12 
a050: 2a 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20  * col1 * - col1 
a060: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
a070: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
a080: 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
a090: 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
a0a0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
a0b0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
a0c0: 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e  M tab2 WHERE ( N
a0d0: 4f 54 20 39 34 20 3c 3d 20 4e 55 4c 4c 20 29 0d  OT 94 <= NULL ).
a0e0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
a0f0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
a100: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
a110: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
a120: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 30 0d 0a  sort label-210..
a130: 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2d 20 63  SELECT col1, - c
a140: 6f 6c 32 20 2f 20 2b 20 43 41 53 54 28 20 4e 55  ol2 / + CAST( NU
a150: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
a160: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
a170: 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 4e 55 4c 4c  ..----..14..NULL
a180: 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a 35 0d 0a 4e  ..47..NULL..5..N
a190: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
a1a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
a1b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
a1c0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 30  owsort label-210
a1d0: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2d  ..SELECT col1, -
a1e0: 20 63 6f 6c 32 20 2f 20 2b 20 43 41 53 54 20 28   col2 / + CAST (
a1f0: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
a200: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
a210: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  tab1..----..14..
a220: 4e 55 4c 4c 0d 0a 34 37 0d 0a 4e 55 4c 4c 0d 0a  NULL..47..NULL..
a230: 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  5..NULL....query
a240: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
a250: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
a260: 20 57 48 45 52 45 20 2b 20 33 39 20 2a 20 28 20   WHERE + 39 * ( 
a270: 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 2b 20 32  - col1 ) + - + 2
a280: 38 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  8 IS NOT NULL..-
a290: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
a2a0: 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
a2b0: 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
a2c0: 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c  537fb43b7....onl
a2d0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
a2e0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
a2f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
a300: 6c 61 62 65 6c 2d 32 31 32 0d 0a 53 45 4c 45 43  label-212..SELEC
a310: 54 20 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 28  T ALL - - COUNT(
a320: 20 2a 20 29 20 2a 20 36 33 20 2b 20 4d 49 4e 28   * ) * 63 + MIN(
a330: 20 2d 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   - - col0 ) FROM
a340: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
a350: 39 33 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20  93 + - col2 + + 
a360: 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
a370: 2d 2d 0d 0a 32 30 34 0d 0a 0d 0a 73 6b 69 70 69  --..204....skipi
a380: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
a390: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
a3a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a3b0: 32 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  212..SELECT ALL 
a3c0: 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - - COUNT ( * ) 
a3d0: 2a 20 36 33 20 2b 20 4d 49 4e 20 28 20 2d 20 2d  * 63 + MIN ( - -
a3e0: 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
a3f0: 30 20 57 48 45 52 45 20 4e 4f 54 20 39 33 20 2b  0 WHERE NOT 93 +
a400: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32   - col2 + + col2
a410: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
a420: 32 30 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  204....onlyif my
a430: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a440: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a450: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a460: 32 31 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  213..SELECT COUN
a470: 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32  T( * ) FROM tab2
a480: 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
a490: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
a4a0: 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
a4b0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
a4c0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
a4d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
a4e0: 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  3..SELECT COUNT 
a4f0: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
a500: 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
a510: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
a520: 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..3....onlyif m
a530: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
a540: 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
a550: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
a560: 6f 72 74 20 6c 61 62 65 6c 2d 32 31 34 0d 0a 53  ort label-214..S
a570: 45 4c 45 43 54 20 63 6f 6c 32 20 2f 20 2d 20 2b  ELECT col2 / - +
a580: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
a590: 45 43 49 4d 41 4c 20 29 20 2a 20 2b 20 28 20 63  ECIMAL ) * + ( c
a5a0: 6f 6c 32 20 29 20 2d 20 2b 20 2b 20 63 6f 6c 31  ol2 ) - + + col1
a5b0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
a5c0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
a5d0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
a5e0: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
a5f0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
a600: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
a610: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 34 0d 0a  sort label-214..
a620: 53 45 4c 45 43 54 20 63 6f 6c 32 20 2f 20 2d 20  SELECT col2 / - 
a630: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
a640: 20 52 45 41 4c 20 29 20 2a 20 2b 20 28 20 63 6f   REAL ) * + ( co
a650: 6c 32 20 29 20 2d 20 2b 20 2b 20 63 6f 6c 31 20  l2 ) - + + col1 
a660: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
a670: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
a680: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
a690: 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
a6a0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
a6b0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
a6c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
a6d0: 31 35 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58  15..SELECT - MAX
a6e0: 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 43 4f 55  ( - col1 ) * COU
a6f0: 4e 54 28 20 2a 20 29 20 2b 20 28 20 2d 20 43 4f  NT( * ) + ( - CO
a700: 55 4e 54 28 20 2a 20 29 20 29 20 2b 20 38 30 2c  UNT( * ) ) + 80,
a710: 20 2d 20 37 38 20 41 53 20 63 6f 6c 30 20 46 52   - 78 AS col0 FR
a720: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
a730: 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 2d 37 38 0d 0a  .----..92..-78..
a740: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
a750: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
a760: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
a770: 74 20 6c 61 62 65 6c 2d 32 31 35 0d 0a 53 45 4c  t label-215..SEL
a780: 45 43 54 20 2d 20 4d 41 58 20 28 20 2d 20 63 6f  ECT - MAX ( - co
a790: 6c 31 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a  l1 ) * COUNT ( *
a7a0: 20 29 20 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28   ) + ( - COUNT (
a7b0: 20 2a 20 29 20 29 20 2b 20 38 30 2c 20 2d 20 37   * ) ) + 80, - 7
a7c0: 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
a7d0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
a7e0: 2d 0d 0a 39 32 0d 0a 2d 37 38 0d 0a 0d 0a 71 75  -..92..-78....qu
a7f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
a800: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
a810: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
a820: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
a830: 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20 63 6f  WHERE NOT + ( co
a840: 6c 30 20 29 20 2a 20 2b 20 63 6f 6c 32 20 2b 20  l0 ) * + col2 + 
a850: 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2b  - ( - col2 ) + +
a860: 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   - col1 IS NOT N
a870: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
a880: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
a890: 4c 45 43 54 20 41 4c 4c 20 2b 20 37 39 20 2a 20  LECT ALL + 79 * 
a8a0: 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
a8b0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
a8c0: 2d 0d 0a 37 31 31 0d 0a 37 31 31 0d 0a 37 31 31  -..711..711..711
a8d0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
a8e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 32 20 2a  ort..SELECT 92 *
a8f0: 20 2b 20 33 36 20 41 53 20 63 6f 6c 32 20 46 52   + 36 AS col2 FR
a900: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
a910: 33 31 32 0d 0a 33 33 31 32 0d 0a 33 33 31 32 0d  312..3312..3312.
a920: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
a930: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37  rt..SELECT ALL 7
a940: 31 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63  1 * - col2 + - c
a950: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
a960: 2d 2d 2d 0d 0a 2d 31 36 37 39 0d 0a 2d 32 39 30  ---..-1679..-290
a970: 34 0d 0a 2d 34 31 39 33 0d 0a 0d 0a 71 75 65 72  4..-4193....quer
a980: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
a990: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
a9a0: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
a9b0: 32 35 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e  25 NOT BETWEEN N
a9c0: 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
a9d0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
a9e0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 36  wsort..SELECT 36
a9f0: 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * + col0 AS col
aa00: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
aa10: 2d 0d 0a 33 31 33 32 0d 0a 33 34 39 32 0d 0a 35  -..3132..3492..5
aa20: 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  40....skipif pos
aa30: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
aa40: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
aa50: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
aa60: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
aa70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
aa80: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 63  SELECT ALL ( + c
aa90: 6f 6c 32 20 29 20 2a 20 63 6f 6c 32 20 63 6f 6c  ol2 ) * col2 col
aaa0: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
aab0: 2d 0d 0a 33 34 38 31 0d 0a 34 36 32 34 0d 0a 39  -..3481..4624..9
aac0: 32 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  216....onlyif my
aad0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
aae0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
aaf0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ab00: 74 20 6c 61 62 65 6c 2d 32 32 33 0d 0a 53 45 4c  t label-223..SEL
ab10: 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 43  ECT + col0 + - C
ab20: 41 53 54 28 20 32 37 20 41 53 20 53 49 47 4e 45  AST( 27 AS SIGNE
ab30: 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  D ) FROM tab2 WH
ab40: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 2b  ERE NOT NULL = +
ab50: 20 28 20 2d 20 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a   ( - 5 )..----..
ab60: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ab70: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
ab80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ab90: 20 6c 61 62 65 6c 2d 32 32 33 0d 0a 53 45 4c 45   label-223..SELE
aba0: 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 43 41  CT + col0 + - CA
abb0: 53 54 20 28 20 32 37 20 41 53 20 49 4e 54 45 47  ST ( 27 AS INTEG
abc0: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57  ER ) FROM tab2 W
abd0: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20  HERE NOT NULL = 
abe0: 2b 20 28 20 2d 20 35 20 29 0d 0a 2d 2d 2d 2d 0d  + ( - 5 )..----.
abf0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
ac00: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
ac10: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
ac20: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 34 0d  wsort label-224.
ac30: 0a 53 45 4c 45 43 54 20 28 20 38 34 20 29 20 2b  .SELECT ( 84 ) +
ac40: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
ac50: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
ac60: 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e  WHERE ( NULL ) N
ac70: 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20  OT BETWEEN col0 
ac80: 41 4e 44 20 28 20 2d 20 34 36 20 29 0d 0a 2d 2d  AND ( - 46 )..--
ac90: 2d 2d 0d 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66  --..84....skipif
aca0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
acb0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
acc0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
acd0: 32 34 0d 0a 53 45 4c 45 43 54 20 28 20 38 34 20  24..SELECT ( 84 
ace0: 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) + - COUNT ( * 
acf0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
ad00: 61 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  ab2 WHERE ( NULL
ad10: 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63   ) NOT BETWEEN c
ad20: 6f 6c 30 20 41 4e 44 20 28 20 2d 20 34 36 20 29  ol0 AND ( - 46 )
ad30: 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 71 75  ..----..84....qu
ad40: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
ad50: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ad60: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
ad70: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
ad80: 4e 4f 54 20 49 4e 20 28 20 36 32 20 29 0d 0a 2d  NOT IN ( 62 )..-
ad90: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
ada0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
adb0: 4c 4c 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74  LL - col1 FROM t
adc0: 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
add0: 63 6f 6c 30 20 3e 20 28 20 4e 55 4c 4c 20 29 0d  col0 > ( NULL ).
ade0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
adf0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
ae00: 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
ae10: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63  b0 WHERE NOT ( c
ae20: 6f 6c 31 20 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d  ol1 ) < NULL..--
ae30: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
ae40: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
ae50: 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
ae60: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
ae70: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
ae80: 72 74 20 6c 61 62 65 6c 2d 32 32 38 0d 0a 53 45  rt label-228..SE
ae90: 4c 45 43 54 20 41 4c 4c 20 35 37 20 44 49 56 20  LECT ALL 57 DIV 
aea0: 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
aeb0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a  tab1..----..19..
aec0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
aed0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
aee0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
aef0: 20 6c 61 62 65 6c 2d 32 32 38 0d 0a 53 45 4c 45   label-228..SELE
af00: 43 54 20 41 4c 4c 20 35 37 20 2f 20 43 4f 55 4e  CT ALL 57 / COUN
af10: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
af20: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 0d 0a 71  1..----..19....q
af30: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
af40: 53 45 4c 45 43 54 20 2d 20 31 38 20 2b 20 2d 20  SELECT - 18 + - 
af50: 39 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  90 AS col1 FROM 
af60: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38  tab0..----..-108
af70: 0d 0a 2d 31 30 38 0d 0a 2d 31 30 38 0d 0a 0d 0a  ..-108..-108....
af80: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
af90: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
afa0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
afb0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
afc0: 2d 32 33 30 0d 0a 53 45 4c 45 43 54 20 2b 20 34  -230..SELECT + 4
afd0: 38 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  8 + col2 FROM ta
afe0: 62 31 20 57 48 45 52 45 20 43 41 53 54 28 20 4e  b1 WHERE CAST( N
aff0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
b000: 2b 20 2d 20 39 31 20 2a 20 63 6f 6c 32 20 4e 4f  + - 91 * col2 NO
b010: 54 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d 0a 2d  T IN ( col1 )..-
b020: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
b030: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b040: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
b050: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 30 0d  wsort label-230.
b060: 0a 53 45 4c 45 43 54 20 2b 20 34 38 20 2b 20 63  .SELECT + 48 + c
b070: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol2 FROM tab1 WH
b080: 45 52 45 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ERE CAST ( NULL 
b090: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d  AS INTEGER ) + -
b0a0: 20 39 31 20 2a 20 63 6f 6c 32 20 4e 4f 54 20 49   91 * col2 NOT I
b0b0: 4e 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  N ( col1 )..----
b0c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
b0d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
b0e0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
b0f0: 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  NOT ( NULL ) NOT
b100: 20 49 4e 20 28 20 2d 20 28 20 2d 20 63 6f 6c 31   IN ( - ( - col1
b110: 20 29 20 2a 20 63 6f 6c 31 20 2d 20 2d 20 63 6f   ) * col1 - - co
b120: 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  l2 )..----....qu
b130: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
b140: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
b150: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20  OM tab0 WHERE ( 
b160: 2b 20 63 6f 6c 31 20 29 20 4e 4f 54 20 42 45 54  + col1 ) NOT BET
b170: 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e  WEEN ( NULL ) AN
b180: 44 20 2d 20 63 6f 6c 32 20 2a 20 35 35 0d 0a 2d  D - col2 * 55..-
b190: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
b1a0: 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
b1b0: 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
b1c0: 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
b1d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
b1e0: 4c 45 43 54 20 41 4c 4c 20 32 38 20 2a 20 2b 20  LECT ALL 28 * + 
b1f0: 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  col1 + col2 FROM
b200: 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 31   tab2 WHERE col1
b210: 20 4e 4f 54 20 49 4e 20 28 20 2d 20 32 34 20 2b   NOT IN ( - 24 +
b220: 20 36 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 34 35   67 )..----..145
b230: 31 0d 0a 31 39 33 34 0d 0a 32 31 39 36 0d 0a 0d  1..1934..2196...
b240: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
b250: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
b260: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
b270: 57 48 45 52 45 20 4e 55 4c 4c 20 3d 20 28 20 63  WHERE NULL = ( c
b280: 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol1 )..----....q
b290: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
b2a0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
b2b0: 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
b2c0: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63  ROM tab1 WHERE c
b2d0: 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol1 IS NOT NULL.
b2e0: 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39  .----..51..85..9
b2f0: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
b300: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
b310: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
b320: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b330: 6c 61 62 65 6c 2d 32 33 36 0d 0a 53 45 4c 45 43  label-236..SELEC
b340: 54 20 41 4c 4c 20 2b 20 35 32 20 2b 20 31 33 20  T ALL + 52 + 13 
b350: 44 49 56 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  DIV + col0 FROM 
b360: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a  tab1..----..52..
b370: 35 32 0d 0a 35 32 0d 0a 0d 0a 73 6b 69 70 69 66  52..52....skipif
b380: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b390: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b3a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b3b0: 33 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  36..SELECT ALL +
b3c0: 20 35 32 20 2b 20 31 33 20 2f 20 2b 20 63 6f 6c   52 + 13 / + col
b3d0: 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
b3e0: 2d 0d 0a 35 32 0d 0a 35 32 0d 0a 35 32 0d 0a 0d  -..52..52..52...
b3f0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
b400: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
b410: 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 63  M tab2 WHERE + c
b420: 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 4e 4f 54  ol0 * + col1 NOT
b430: 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 2f 20 63   IN ( - col0 / c
b440: 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  ol2 )..----..9 v
b450: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
b460: 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
b470: 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
b480: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  9....skipif post
b490: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
b4a0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
b4b0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
b4c0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
b4d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
b4e0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
b4f0: 6f 6c 31 20 2a 20 2d 20 36 37 20 2b 20 2d 20 63  ol1 * - 67 + - c
b500: 6f 6c 32 20 2a 20 38 39 20 63 6f 6c 30 20 46 52  ol2 * 89 col0 FR
b510: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
b520: 35 35 38 36 0d 0a 2d 39 32 30 31 0d 0a 2d 39 34  5586..-9201..-94
b530: 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  82....query I ro
b540: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
b550: 53 54 49 4e 43 54 20 28 20 2d 20 37 31 20 29 20  STINCT ( - 71 ) 
b560: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
b570: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 31 0d 0a 0d 0a  0..----..-71....
b580: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
b590: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
b5a0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
b5b0: 48 45 52 45 20 2b 20 63 6f 6c 30 20 4e 4f 54 20  HERE + col0 NOT 
b5c0: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
b5d0: 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
b5e0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
b5f0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
b600: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
b610: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
b620: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
b630: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
b640: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28  ECT DISTINCT + (
b650: 20 37 35 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20   75 ) col2 FROM 
b660: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a  tab0..----..75..
b670: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b680: 74 0d 0a 53 45 4c 45 43 54 20 38 32 20 2a 20 63  t..SELECT 82 * c
b690: 6f 6c 30 20 2d 20 63 6f 6c 31 20 2a 20 38 31 20  ol0 - col1 * 81 
b6a0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
b6b0: 0a 33 30 34 38 0d 0a 33 36 35 35 0d 0a 36 35 36  .3048..3655..656
b6c0: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
b6d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
b6e0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
b6f0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d  r0 WHERE NOT ( -
b700: 20 33 30 20 29 20 2f 20 63 6f 6c 30 20 49 53 20   30 ) / col0 IS 
b710: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
b720: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
b730: 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
b740: 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
b750: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
b760: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
b770: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
b780: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 34  owsort label-244
b790: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
b7a0: 4f 55 4e 54 28 20 2d 20 63 6f 6c 30 20 29 20 46  OUNT( - col0 ) F
b7b0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
b7c0: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
b7d0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b7e0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b7f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b800: 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  44..SELECT ALL +
b810: 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20   COUNT ( - col0 
b820: 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  ) FROM tab2 cor0
b830: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..----..3....onl
b840: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
b850: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
b860: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b870: 6c 61 62 65 6c 2d 32 34 35 0d 0a 53 45 4c 45 43  label-245..SELEC
b880: 54 20 41 4c 4c 20 28 20 2d 20 4d 49 4e 28 20 41  T ALL ( - MIN( A
b890: 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 29 20 2f 20  LL + col1 ) ) / 
b8a0: 2b 20 39 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 96 AS col2 FRO
b8b0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
b8c0: 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45  HERE NULL BETWEE
b8d0: 4e 20 28 20 63 6f 6c 32 20 29 20 41 4e 44 20 36  N ( col2 ) AND 6
b8e0: 39 20 2b 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  9 + - col1..----
b8f0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
b900: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b910: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b920: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b930: 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  45..SELECT ALL (
b940: 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 63   - MIN ( ALL + c
b950: 6f 6c 31 20 29 20 29 20 2f 20 2b 20 39 36 20 41  ol1 ) ) / + 96 A
b960: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
b970: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
b980: 55 4c 4c 20 42 45 54 57 45 45 4e 20 28 20 63 6f  ULL BETWEEN ( co
b990: 6c 32 20 29 20 41 4e 44 20 36 39 20 2b 20 2d 20  l2 ) AND 69 + - 
b9a0: 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  col1..----..NULL
b9b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
b9c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
b9d0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
b9e0: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 28  b0 WHERE NOT ( (
b9f0: 20 2d 20 63 6f 6c 31 20 29 20 29 20 49 53 20 4e   - col1 ) ) IS N
ba00: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
ba10: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
ba20: 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
ba30: 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
ba40: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
ba50: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37  rt..SELECT ALL 7
ba60: 36 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  6 + col1 FROM ta
ba70: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 0d 0a 38  b1..----..123..8
ba80: 31 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..90....onlyif 
ba90: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
baa0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
bab0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
bac0: 6c 2d 32 34 38 0d 0a 53 45 4c 45 43 54 20 4d 49  l-248..SELECT MI
bad0: 4e 28 20 33 33 20 29 20 46 52 4f 4d 20 74 61 62  N( 33 ) FROM tab
bae0: 31 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a 73  1..----..33....s
baf0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
bb00: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
bb10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
bb20: 62 65 6c 2d 32 34 38 0d 0a 53 45 4c 45 43 54 20  bel-248..SELECT 
bb30: 4d 49 4e 20 28 20 33 33 20 29 20 46 52 4f 4d 20  MIN ( 33 ) FROM 
bb40: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a  tab1..----..33..
bb50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
bb60: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
bb70: 20 2a 20 34 33 20 2b 20 2d 20 63 6f 6c 30 20 2a   * 43 + - col0 *
bb80: 20 37 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53   75 FROM tab1 AS
bb90: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
bba0: 20 3e 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d   >= ( NULL )..--
bbb0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
bbc0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
bbd0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
bbe0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
bbf0: 54 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 28 20  T NULL IN ( - ( 
bc00: 2b 20 63 6f 6c 32 20 29 20 2b 20 63 6f 6c 30 20  + col2 ) + col0 
bc10: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
bc20: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
bc30: 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20  CT col2 AS col1 
bc40: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
bc50: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 28  0 WHERE NULL < (
bc60: 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   + col0 )..----.
bc70: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
bc80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
bc90: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
bca0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
bcb0: 4e 4f 54 20 2d 20 38 33 20 42 45 54 57 45 45 4e  NOT - 83 BETWEEN
bcc0: 20 2d 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c   - col2 AND NULL
bcd0: 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a 35 0d 0a 35  ..----..85..5..5
bce0: 39 0d 0a 39 31 0d 0a 34 37 0d 0a 36 38 0d 0a 0d  9..91..47..68...
bcf0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
bd00: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
bd10: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
bd20: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 33 0d 0a 53  ort label-253..S
bd30: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
bd40: 20 2d 20 32 32 20 2b 20 34 34 20 2a 20 2b 20 43   - 22 + 44 * + C
bd50: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
bd60: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
bd70: 2d 0d 0a 31 31 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..110....skipif
bd80: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
bd90: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
bda0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
bdb0: 35 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  53..SELECT DISTI
bdc0: 4e 43 54 20 2b 20 2d 20 32 32 20 2b 20 34 34 20  NCT + - 22 + 44 
bdd0: 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * + COUNT ( * ) 
bde0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
bdf0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 0d 0a  0..----..110....
be00: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
be10: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
be20: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63  CT * FROM tab1 c
be30: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
be40: 4c 4c 20 3c 3e 20 63 6f 6c 30 20 2b 20 2d 20 33  LL <> col0 + - 3
be50: 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  9..----....query
be60: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
be70: 43 54 20 2b 20 35 37 20 2b 20 63 6f 6c 30 20 41  CT + 57 + col0 A
be80: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
be90: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
bea0: 31 34 34 0d 0a 31 35 34 0d 0a 37 32 0d 0a 0d 0a  144..154..72....
beb0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
bec0: 0a 53 45 4c 45 43 54 20 2d 20 36 30 20 2b 20 2d  .SELECT - 60 + -
bed0: 20 28 20 28 20 39 20 29 20 29 20 46 52 4f 4d 20   ( ( 9 ) ) FROM 
bee0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
bef0: 2d 2d 0d 0a 2d 36 39 0d 0a 2d 36 39 0d 0a 2d 36  --..-69..-69..-6
bf00: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
bf10: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
bf20: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
bf30: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35  rowsort label-25
bf40: 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
bf50: 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 37  COUNT( * ) + + 7
bf60: 20 2a 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20   * + COUNT( ALL 
bf70: 2d 20 31 33 20 2b 20 2d 20 63 6f 6c 30 20 29 20  - 13 + - col0 ) 
bf80: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
bf90: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a 73  0..----..18....s
bfa0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
bfb0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
bfc0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
bfd0: 62 65 6c 2d 32 35 37 0d 0a 53 45 4c 45 43 54 20  bel-257..SELECT 
bfe0: 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ALL - COUNT ( * 
bff0: 29 20 2b 20 2b 20 37 20 2a 20 2b 20 43 4f 55 4e  ) + + 7 * + COUN
c000: 54 20 28 20 41 4c 4c 20 2d 20 31 33 20 2b 20 2d  T ( ALL - 13 + -
c010: 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20   col0 ) AS col2 
c020: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
c030: 0a 31 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .18....query I r
c040: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34  owsort..SELECT 4
c050: 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
c060: 61 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  ab2 WHERE ( NULL
c070: 20 29 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31   ) NOT IN ( col1
c080: 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   + + col0 )..---
c090: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
c0a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 36 20  sort..SELECT 66 
c0b0: 2b 20 2b 20 63 6f 6c 31 20 2a 20 31 39 20 41 53  + + col1 * 19 AS
c0c0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
c0d0: 0a 2d 2d 2d 2d 0d 0a 31 30 33 35 0d 0a 31 33 33  .----..1035..133
c0e0: 39 0d 0a 31 35 32 39 0d 0a 0d 0a 71 75 65 72 79  9..1529....query
c0f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c100: 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d 20  CT - col1 * + - 
c110: 37 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  7 + col1 FROM ta
c120: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 0d 0a 33  b1..----..112..3
c130: 37 36 0d 0a 34 30 0d 0a 0d 0a 71 75 65 72 79 20  76..40....query 
c140: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c150: 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2d 20 36  T ALL col2 + - 6
c160: 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  6 AS col1 FROM t
c170: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 0d 0a  ab2..----..-26..
c180: 2d 34 33 0d 0a 2d 38 0d 0a 0d 0a 71 75 65 72 79  -43..-8....query
c190: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
c1a0: 43 54 20 39 38 20 2b 20 2d 20 63 6f 6c 32 20 46  CT 98 + - col2 F
c1b0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28  ROM tab2 WHERE (
c1c0: 20 2b 20 31 20 29 20 49 53 20 4e 4f 54 20 4e 55   + 1 ) IS NOT NU
c1d0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 35 38  LL..----..40..58
c1e0: 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..75....query I 
c1f0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c200: 2b 20 39 31 20 2a 20 2d 20 63 6f 6c 32 20 2b 20  + 91 * - col2 + 
c210: 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
c220: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
c230: 32 33 30 0d 0a 2d 38 39 31 30 0d 0a 2d 39 30 30  230..-8910..-900
c240: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
c250: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
c260: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
c270: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
c280: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
c290: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c2a0: 4c 45 43 54 20 2b 20 37 35 20 2b 20 2b 20 2d 20  LECT + 75 + + - 
c2b0: 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col1 col0 FROM t
c2c0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 36  ab1..----..28..6
c2d0: 31 0d 0a 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49  1..70....query I
c2e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
c2f0: 20 41 4c 4c 20 2d 20 32 37 20 2b 20 2b 20 63 6f   ALL - 27 + + co
c300: 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
c310: 2d 2d 0d 0a 2d 34 0d 0a 31 33 0d 0a 33 31 0d 0a  --..-4..13..31..
c320: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c330: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
c340: 43 54 20 2b 20 28 20 2d 20 32 31 20 29 20 2b 20  CT + ( - 21 ) + 
c350: 37 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  71 FROM tab1..--
c360: 2d 2d 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..50....onlyif
c370: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
c380: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
c390: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
c3a0: 65 6c 2d 32 36 37 0d 0a 53 45 4c 45 43 54 20 41  el-267..SELECT A
c3b0: 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  LL + COUNT( * ) 
c3c0: 2a 20 2d 20 39 37 20 46 52 4f 4d 20 74 61 62 30  * - 97 FROM tab0
c3d0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 63   WHERE NULL <= c
c3e0: 6f 6c 32 20 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  ol2 * col2..----
c3f0: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
c400: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
c410: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
c420: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 37 0d  wsort label-267.
c430: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f  .SELECT ALL + CO
c440: 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 39 37  UNT ( * ) * - 97
c450: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
c460: 20 4e 55 4c 4c 20 3c 3d 20 63 6f 6c 32 20 2a 20   NULL <= col2 * 
c470: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  col2..----..0...
c480: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
c490: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
c4a0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
c4b0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
c4c0: 6c 2d 32 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-268..SELECT AL
c4d0: 4c 20 43 41 53 54 28 20 2d 20 2d 20 43 41 53 54  L CAST( - - CAST
c4e0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
c4f0: 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a   ) AS SIGNED ) *
c500: 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
c510: 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c 31   SIGNED ) + col1
c520: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
c530: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
c540: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
c550: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
c560: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
c570: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
c580: 65 6c 2d 32 36 38 0d 0a 53 45 4c 45 43 54 20 41  el-268..SELECT A
c590: 4c 4c 20 43 41 53 54 20 28 20 2d 20 2d 20 43 41  LL CAST ( - - CA
c5a0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
c5b0: 45 47 45 52 20 29 20 41 53 20 49 4e 54 45 47 45  EGER ) AS INTEGE
c5c0: 52 20 29 20 2a 20 2d 20 43 41 53 54 20 28 20 4e  R ) * - CAST ( N
c5d0: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
c5e0: 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
c5f0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
c600: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
c610: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
c620: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
c630: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
c640: 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 3e 3d 20   col0 * col0 >= 
c650: 2d 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d  - ( + col1 )..--
c660: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
c670: 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
c680: 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
c690: 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
c6a0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
c6b0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 30  ECT DISTINCT - 0
c6c0: 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 46 52 4f 4d   + - - col1 FROM
c6d0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
c6e0: 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d  ---..51..67..77.
c6f0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
c700: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
c710: 6f 6c 31 20 2a 20 33 32 20 2b 20 2d 20 63 6f 6c  ol1 * 32 + - col
c720: 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
c730: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
c740: 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42  E NOT NULL NOT B
c750: 45 54 57 45 45 4e 20 2d 20 39 30 20 41 4e 44 20  ETWEEN - 90 AND 
c760: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
c770: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
c780: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
c790: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
c7a0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
c7b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c7c0: 2d 32 37 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -272..SELECT DIS
c7d0: 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 2d 20  TINCT + CAST( - 
c7e0: 4d 41 58 28 20 41 4c 4c 20 2b 20 28 20 2b 20 63  MAX( ALL + ( + c
c7f0: 6f 6c 32 20 29 20 29 20 41 53 20 53 49 47 4e 45  ol2 ) ) AS SIGNE
c800: 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  D ) col2 FROM ta
c810: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
c820: 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  99....skipif mys
c830: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c840: 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
c850: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
c860: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
c870: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
c880: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
c890: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
c8a0: 62 65 6c 2d 32 37 32 0d 0a 53 45 4c 45 43 54 20  bel-272..SELECT 
c8b0: 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20  DISTINCT + CAST 
c8c0: 28 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20  ( - MAX ( ALL + 
c8d0: 28 20 2b 20 63 6f 6c 32 20 29 20 29 20 41 53 20  ( + col2 ) ) AS 
c8e0: 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 32 20 46  INTEGER ) col2 F
c8f0: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
c900: 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79  ---..-99....only
c910: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
c920: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
c930: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c940: 61 62 65 6c 2d 32 37 33 0d 0a 53 45 4c 45 43 54  abel-273..SELECT
c950: 20 2b 20 2b 20 4d 41 58 28 20 2b 20 2b 20 33 32   + + MAX( + + 32
c960: 20 29 20 2d 20 2b 20 36 36 20 41 53 20 63 6f 6c   ) - + 66 AS col
c970: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
c980: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 0d 0a  or0..----..-34..
c990: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
c9a0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
c9b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c9c0: 20 6c 61 62 65 6c 2d 32 37 33 0d 0a 53 45 4c 45   label-273..SELE
c9d0: 43 54 20 2b 20 2b 20 4d 41 58 20 28 20 2b 20 2b  CT + + MAX ( + +
c9e0: 20 33 32 20 29 20 2d 20 2b 20 36 36 20 41 53 20   32 ) - + 66 AS 
c9f0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
ca00: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
ca10: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
ca20: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
ca30: 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
ca40: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
ca50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ca60: 74 20 6c 61 62 65 6c 2d 32 37 34 0d 0a 53 45 4c  t label-274..SEL
ca70: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  ECT DISTINCT + +
ca80: 20 36 38 20 44 49 56 20 43 4f 55 4e 54 28 20 2a   68 DIV COUNT( *
ca90: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
caa0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
cab0: 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
cac0: 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 0d  cor1..----..7...
cad0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
cae0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
caf0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
cb00: 6c 61 62 65 6c 2d 32 37 34 0d 0a 53 45 4c 45 43  label-274..SELEC
cb10: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 36  T DISTINCT + + 6
cb20: 38 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  8 / COUNT ( * ) 
cb30: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
cb40: 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
cb50: 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
cb60: 31 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 0d 0a 6f 6e  1..----..7....on
cb70: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
cb80: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
cb90: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
cba0: 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45 4c 45   label-275..SELE
cbb0: 43 54 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 36 38  CT - MIN( ALL 68
cbc0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
cbd0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38 0d  cor0..----..-68.
cbe0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
cbf0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
cc00: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
cc10: 74 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45 4c  t label-275..SEL
cc20: 45 43 54 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20  ECT - MIN ( ALL 
cc30: 36 38 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  68 ) FROM tab0 A
cc40: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
cc50: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  8....query II ro
cc60: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
cc70: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 2c 20 2b  STINCT + col0, +
cc80: 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 41   col2 + + col1 A
cc90: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
cca0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
ccb0: 31 35 0d 0a 31 32 38 0d 0a 38 37 0d 0a 33 31 0d  15..128..87..31.
ccc0: 0a 39 37 0d 0a 31 30 30 0d 0a 0d 0a 71 75 65 72  .97..100....quer
ccd0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
cce0: 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63  ECT + col2 + - c
ccf0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
cd00: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
cd10: 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 33 20 41  NULL BETWEEN 3 A
cd20: 4e 44 20 2b 20 33 31 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND + 31..----...
cd30: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
cd40: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
cd50: 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
cd60: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
cd70: 65 6c 2d 32 37 38 0d 0a 53 45 4c 45 43 54 20 44  el-278..SELECT D
cd80: 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20  ISTINCT + CAST( 
cd90: 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
cda0: 29 20 2a 20 2b 20 63 6f 6c 30 20 2d 20 37 35 20  ) * + col0 - 75 
cdb0: 2d 20 2d 20 63 6f 6c 32 20 2a 20 35 35 20 46 52  - - col2 * 55 FR
cdc0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
cdd0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
cde0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
cdf0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
ce00: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
ce10: 62 65 6c 2d 32 37 38 0d 0a 53 45 4c 45 43 54 20  bel-278..SELECT 
ce20: 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20  DISTINCT + CAST 
ce30: 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
ce40: 20 2a 20 2b 20 63 6f 6c 30 20 2d 20 37 35 20 2d   * + col0 - 75 -
ce50: 20 2d 20 63 6f 6c 32 20 2a 20 35 35 20 46 52 4f   - col2 * 55 FRO
ce60: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
ce70: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
ce80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
ce90: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
cea0: 20 35 35 20 46 52 4f 4d 20 74 61 62 32 20 41 53   55 FROM tab2 AS
ceb0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
cec0: 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 49 53  - col0 + col0 IS
ced0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35   NULL..----..-55
cee0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
cef0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
cf00: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
cf10: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
cf20: 30 0d 0a 53 45 4c 45 43 54 20 34 39 20 41 53 20  0..SELECT 49 AS 
cf30: 63 6f 6c 32 2c 20 39 39 20 2a 20 2b 20 2d 20 43  col2, 99 * + - C
cf40: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
cf50: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
cf60: 2d 0d 0a 34 39 0d 0a 2d 32 39 37 0d 0a 0d 0a 73  -..49..-297....s
cf70: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
cf80: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
cf90: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
cfa0: 61 62 65 6c 2d 32 38 30 0d 0a 53 45 4c 45 43 54  abel-280..SELECT
cfb0: 20 34 39 20 41 53 20 63 6f 6c 32 2c 20 39 39 20   49 AS col2, 99 
cfc0: 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  * + - COUNT ( * 
cfd0: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
cfe0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 2d  or0..----..49..-
cff0: 32 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  297....onlyif my
d000: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
d010: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
d020: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d030: 32 38 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  281..SELECT ALL 
d040: 2b 20 38 20 2a 20 2d 20 43 4f 55 4e 54 28 20 44  + 8 * - COUNT( D
d050: 49 53 54 49 4e 43 54 20 2d 20 38 33 20 29 20 46  ISTINCT - 83 ) F
d060: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
d070: 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a 73 6b  ..----..-8....sk
d080: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
d090: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
d0a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d0b0: 65 6c 2d 32 38 31 0d 0a 53 45 4c 45 43 54 20 41  el-281..SELECT A
d0c0: 4c 4c 20 2b 20 38 20 2a 20 2d 20 43 4f 55 4e 54  LL + 8 * - COUNT
d0d0: 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 38 33   ( DISTINCT - 83
d0e0: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
d0f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a  cor0..----..-8..
d100: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
d110: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
d120: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
d130: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d140: 65 6c 2d 32 38 32 0d 0a 53 45 4c 45 43 54 20 43  el-282..SELECT C
d150: 41 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53  AST( + col0 AS S
d160: 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c 30 20 2b  IGNED ) * col0 +
d170: 20 35 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53   58 FROM tab2 AS
d180: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
d190: 38 39 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  89 IS NOT NULL..
d1a0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
d1b0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
d1c0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
d1d0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 32  owsort label-282
d1e0: 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20  ..SELECT CAST ( 
d1f0: 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  + col0 AS INTEGE
d200: 52 20 29 20 2a 20 63 6f 6c 30 20 2b 20 35 38 20  R ) * col0 + 58 
d210: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
d220: 30 20 57 48 45 52 45 20 4e 4f 54 20 38 39 20 49  0 WHERE NOT 89 I
d230: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
d240: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
d250: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
d260: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
d270: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 33  owsort label-283
d280: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
d290: 54 20 2d 20 53 55 4d 28 20 2d 20 2d 20 34 35 20  T - SUM( - - 45 
d2a0: 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
d2b0: 2d 0d 0a 2d 31 33 35 0d 0a 0d 0a 73 6b 69 70 69  -..-135....skipi
d2c0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
d2d0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
d2e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d2f0: 32 38 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  283..SELECT DIST
d300: 49 4e 43 54 20 2d 20 53 55 4d 20 28 20 2d 20 2d  INCT - SUM ( - -
d310: 20 34 35 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   45 ) FROM tab1.
d320: 0a 2d 2d 2d 2d 0d 0a 2d 31 33 35 0d 0a 0d 0a 6f  .----..-135....o
d330: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
d340: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
d350: 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20  D type: DIV for 
d360: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
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 32 38 34 0d 0a 53  ort label-284..S
d390: 45 4c 45 43 54 20 63 6f 6c 30 20 44 49 56 20 63  ELECT col0 DIV c
d3a0: 6f 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 2d 20 43  ol0 * col2 * - C
d3b0: 41 53 54 28 20 2d 20 63 6f 6c 32 20 41 53 20 53  AST( - col2 AS S
d3c0: 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
d3d0: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 36 30 30 0d 0a 33  2..----..1600..3
d3e0: 33 36 34 0d 0a 35 32 39 0d 0a 0d 0a 73 6b 69 70  364..529....skip
d3f0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
d400: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
d410: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d420: 2d 32 38 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -284..SELECT col
d430: 30 20 2f 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20  0 / col0 * col2 
d440: 2a 20 2d 20 43 41 53 54 20 28 20 2d 20 63 6f 6c  * - CAST ( - col
d450: 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  2 AS INTEGER ) F
d460: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
d470: 31 36 30 30 0d 0a 33 33 36 34 0d 0a 35 32 39 0d  1600..3364..529.
d480: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
d490: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
d4a0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
d4b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 35  owsort label-285
d4c0: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
d4d0: 2a 20 29 20 2a 20 31 37 20 41 53 20 63 6f 6c 32  * ) * 17 AS col2
d4e0: 2c 20 37 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  , 72 FROM tab0..
d4f0: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 37 32 0d 0a 0d 0a  ----..51..72....
d500: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
d510: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
d520: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
d530: 6c 61 62 65 6c 2d 32 38 35 0d 0a 53 45 4c 45 43  label-285..SELEC
d540: 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  T COUNT ( * ) * 
d550: 31 37 20 41 53 20 63 6f 6c 32 2c 20 37 32 20 46  17 AS col2, 72 F
d560: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
d570: 35 31 0d 0a 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  51..72....onlyif
d580: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
d590: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
d5a0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
d5b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 36  owsort label-286
d5c0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
d5d0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  T * FROM tab0 co
d5e0: 72 30 20 57 48 45 52 45 20 28 20 43 41 53 54 28  r0 WHERE ( CAST(
d5f0: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47   + + col0 AS SIG
d600: 4e 45 44 20 29 20 29 20 2a 20 2b 20 37 37 20 2b  NED ) ) * + 77 +
d610: 20 28 20 28 20 63 6f 6c 30 20 29 20 29 20 2a 20   ( ( col0 ) ) * 
d620: 63 6f 6c 32 20 49 4e 20 28 20 34 38 20 29 0d 0a  col2 IN ( 48 )..
d630: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
d640: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
d650: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
d660: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d670: 38 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  86..SELECT DISTI
d680: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
d690: 63 6f 72 30 20 57 48 45 52 45 20 28 20 43 41 53  cor0 WHERE ( CAS
d6a0: 54 20 28 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  T ( + + col0 AS 
d6b0: 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2b 20  INTEGER ) ) * + 
d6c0: 37 37 20 2b 20 28 20 28 20 63 6f 6c 30 20 29 20  77 + ( ( col0 ) 
d6d0: 29 20 2a 20 63 6f 6c 32 20 49 4e 20 28 20 34 38  ) * col2 IN ( 48
d6e0: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
d6f0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
d700: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
d710: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
d720: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
d730: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
d740: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
d750: 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  2 col0 FROM tab1
d760: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
d770: 4f 54 20 28 20 2b 20 39 35 20 2b 20 2d 20 2d 20  OT ( + 95 + - - 
d780: 28 20 2b 20 2d 20 32 31 20 29 20 2b 20 28 20 63  ( + - 21 ) + ( c
d790: 6f 6c 30 20 29 20 29 20 42 45 54 57 45 45 4e 20  ol0 ) ) BETWEEN 
d7a0: 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 31 20 2b 20  NULL AND col1 + 
d7b0: 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39  - col0..----..59
d7c0: 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79  ..68..96....only
d7d0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
d7e0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
d7f0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
d800: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 38  owsort label-288
d810: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 41 53  ..SELECT + - CAS
d820: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
d830: 44 20 29 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f  D ) * - col1 FRO
d840: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
d850: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
d860: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
d870: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
d880: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
d890: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d8a0: 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43  88..SELECT + - C
d8b0: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
d8c0: 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 31  TEGER ) * - col1
d8d0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
d8e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
d8f0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
d900: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
d910: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
d920: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
d930: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d940: 38 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  89..SELECT ALL -
d950: 20 36 38 20 44 49 56 20 2d 20 31 37 20 41 53 20   68 DIV - 17 AS 
d960: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
d970: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d  S cor0..----..4.
d980: 0a 34 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  .4..4....skipif 
d990: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
d9a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
d9b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
d9c0: 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
d9d0: 36 38 20 2f 20 2d 20 31 37 20 41 53 20 63 6f 6c  68 / - 17 AS col
d9e0: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
d9f0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 34 0d  or0..----..4..4.
da00: 0a 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .4....query I ro
da10: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
da20: 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 36 32 20  STINCT - ( + 62 
da30: 29 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  ) + + - col2 AS 
da40: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
da50: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
da60: 30 39 0d 0a 2d 31 36 31 0d 0a 2d 37 32 0d 0a 0d  09..-161..-72...
da70: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
da80: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
da90: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
daa0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
dab0: 6c 2d 32 39 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-291..SELECT - 
dac0: 38 31 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 28 20  81 * col1 + - ( 
dad0: 2d 20 2b 20 43 41 53 54 28 20 2b 20 2d 20 37 38  - + CAST( + - 78
dae0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41   AS SIGNED ) ) A
daf0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
db00: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
db10: 2d 31 35 39 0d 0a 2d 31 37 37 39 0d 0a 2d 36 36  -159..-1779..-66
db20: 33 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  39....skipif mys
db30: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
db40: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
db50: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 31 0d 0a  sort label-291..
db60: 53 45 4c 45 43 54 20 2d 20 38 31 20 2a 20 63 6f  SELECT - 81 * co
db70: 6c 31 20 2b 20 2d 20 28 20 2d 20 2b 20 43 41 53  l1 + - ( - + CAS
db80: 54 20 28 20 2b 20 2d 20 37 38 20 41 53 20 49 4e  T ( + - 78 AS IN
db90: 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c  TEGER ) ) AS col
dba0: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
dbb0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 39 0d  or0..----..-159.
dbc0: 0a 2d 31 37 37 39 0d 0a 2d 36 36 33 39 0d 0a 0d  .-1779..-6639...
dbd0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dbe0: 0d 0a 53 45 4c 45 43 54 20 2d 20 33 31 20 2b 20  ..SELECT - 31 + 
dbf0: 2d 20 2d 20 37 37 20 2b 20 63 6f 6c 32 20 2a 20  - - 77 + col2 * 
dc00: 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  + col2 AS col1 F
dc10: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
dc20: 2d 2d 2d 0d 0a 33 35 32 37 0d 0a 34 36 37 30 0d  ---..3527..4670.
dc30: 0a 39 32 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .9262....query I
dc40: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
dc50: 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f   DISTINCT + - co
dc60: 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2b 20  l1 * + col0 * + 
dc70: 2d 20 63 6f 6c 31 20 2b 20 2d 20 39 33 20 41 53  - col1 + - 93 AS
dc80: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
dc90: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
dca0: 38 32 37 34 0d 0a 34 0d 0a 39 38 33 32 32 0d 0a  8274..4..98322..
dcb0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
dcc0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
dcd0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
dce0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
dcf0: 65 6c 2d 32 39 34 0d 0a 53 45 4c 45 43 54 20 2d  el-294..SELECT -
dd00: 20 2b 20 28 20 2d 20 36 35 20 29 20 44 49 56 20   + ( - 65 ) DIV 
dd10: 2b 20 37 38 20 2b 20 2b 20 2d 20 34 37 20 41 53  + 78 + + - 47 AS
dd20: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
dd30: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
dd40: 34 37 0d 0a 2d 34 37 0d 0a 2d 34 37 0d 0a 0d 0a  47..-47..-47....
dd50: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
dd60: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
dd70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
dd80: 61 62 65 6c 2d 32 39 34 0d 0a 53 45 4c 45 43 54  abel-294..SELECT
dd90: 20 2d 20 2b 20 28 20 2d 20 36 35 20 29 20 2f 20   - + ( - 65 ) / 
dda0: 2b 20 37 38 20 2b 20 2b 20 2d 20 34 37 20 41 53  + 78 + + - 47 AS
ddb0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
ddc0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
ddd0: 34 37 0d 0a 2d 34 37 0d 0a 2d 34 37 0d 0a 0d 0a  47..-47..-47....
dde0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ddf0: 0a 53 45 4c 45 43 54 20 35 31 20 2a 20 2b 20 36  .SELECT 51 * + 6
de00: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
de10: 6f 72 30 20 57 48 45 52 45 20 2d 20 34 36 20 3e  or0 WHERE - 46 >
de20: 20 2d 20 35 31 20 2b 20 36 37 20 2b 20 2d 20 63   - 51 + 67 + - c
de30: 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 31 31 0d  ol0..----..3111.
de40: 0a 33 31 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .3111....query I
de50: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
de60: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
de70: 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63  S cor0 WHERE - c
de80: 6f 6c 30 20 2a 20 39 20 4e 4f 54 20 49 4e 20 28  ol0 * 9 NOT IN (
de90: 20 2d 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   - - col2 )..---
dea0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
deb0: 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
dec0: 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
ded0: 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
dee0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
def0: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
df00: 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 32 20  tab0 WHERE col2 
df10: 2b 20 2d 20 63 6f 6c 31 20 3c 3e 20 4e 55 4c 4c  + - col1 <> NULL
df20: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
df30: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
df40: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
df50: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
df60: 65 6c 2d 32 39 38 0d 0a 53 45 4c 45 43 54 20 2d  el-298..SELECT -
df70: 20 31 38 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a   18 * + COUNT( *
df80: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   ) FROM tab2 WHE
df90: 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
dfa0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
dfb0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
dfc0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
dfd0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
dfe0: 61 62 65 6c 2d 32 39 38 0d 0a 53 45 4c 45 43 54  abel-298..SELECT
dff0: 20 2d 20 31 38 20 2a 20 2b 20 43 4f 55 4e 54 20   - 18 * + COUNT 
e000: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
e010: 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
e020: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  T NULL..----..0.
e030: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
e040: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
e050: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
e060: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
e070: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
e080: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
e090: 45 4c 45 43 54 20 2d 20 63 6f 6c 30 2c 20 63 6f  ELECT - col0, co
e0a0: 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 31 30  l0 * - col2 + 10
e0b0: 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 2d 20   col2, + col2 - 
e0c0: 39 36 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  96 col2 FROM tab
e0d0: 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  2..----..9 value
e0e0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 38 39 30  s hashing to 890
e0f0: 32 63 31 38 66 30 64 62 31 33 66 64 34 62 38 34  2c18f0db13fd4b84
e100: 30 34 39 32 34 30 61 36 65 65 34 34 35 0d 0a 0d  049240a6ee445...
e110: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e120: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
e130: 2a 20 2b 20 2b 20 35 39 20 2d 20 2d 20 63 6f 6c  * + + 59 - - col
e140: 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
e150: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 32 32  ab1..----..-3422
e160: 0d 0a 2d 33 39 34 34 0d 0a 2d 35 35 36 38 0d 0a  ..-3944..-5568..
e170: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
e180: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
e190: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
e1a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
e1b0: 65 6c 2d 33 30 31 0d 0a 53 45 4c 45 43 54 20 41  el-301..SELECT A
e1c0: 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  LL CAST( NULL AS
e1d0: 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c 32   SIGNED ) + col2
e1e0: 20 2f 20 2d 20 63 6f 6c 32 20 63 6f 6c 32 20 46   / - col2 col2 F
e1f0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
e200: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
e210: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e220: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e230: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
e240: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
e250: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
e260: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
e270: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
e280: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e290: 6c 2d 33 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-301..SELECT AL
e2a0: 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  L CAST ( NULL AS
e2b0: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c   INTEGER ) + col
e2c0: 32 20 2f 20 2d 20 63 6f 6c 32 20 63 6f 6c 32 20  2 / - col2 col2 
e2d0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
e2e0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
e2f0: 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
e300: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
e310: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
e320: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
e330: 6c 61 62 65 6c 2d 33 30 32 0d 0a 53 45 4c 45 43  label-302..SELEC
e340: 54 20 44 49 53 54 49 4e 43 54 20 32 37 20 44 49  T DISTINCT 27 DI
e350: 56 20 2d 20 2d 20 35 37 20 2b 20 2d 20 2d 20 63  V - - 57 + - - c
e360: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
e370: 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d  ---..46..64..75.
e380: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
e390: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
e3a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e3b0: 74 20 6c 61 62 65 6c 2d 33 30 32 0d 0a 53 45 4c  t label-302..SEL
e3c0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 37 20  ECT DISTINCT 27 
e3d0: 2f 20 2d 20 2d 20 35 37 20 2b 20 2d 20 2d 20 63  / - - 57 + - - c
e3e0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
e3f0: 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d  ---..46..64..75.
e400: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
e410: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
e420: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
e430: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e440: 62 65 6c 2d 33 30 33 0d 0a 53 45 4c 45 43 54 20  bel-303..SELECT 
e450: 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ALL CAST( NULL A
e460: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 39 34 20  S SIGNED ) + 94 
e470: 2a 20 2d 20 31 39 20 41 53 20 63 6f 6c 30 20 46  * - 19 AS col0 F
e480: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
e490: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
e4a0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e4b0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e4c0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
e4d0: 72 74 20 6c 61 62 65 6c 2d 33 30 33 0d 0a 53 45  rt label-303..SE
e4e0: 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20  LECT ALL CAST ( 
e4f0: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
e500: 29 20 2b 20 39 34 20 2a 20 2d 20 31 39 20 41 53  ) + 94 * - 19 AS
e510: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
e520: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
e530: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
e540: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
e550: 43 54 20 2b 20 28 20 2d 20 2b 20 33 33 20 29 20  CT + ( - + 33 ) 
e560: 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30 20  FROM tab0, tab0 
e570: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
e580: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
e590: 74 6f 20 38 30 33 35 63 36 36 35 61 37 35 64 32  to 8035c665a75d2
e5a0: 32 62 65 35 39 32 32 62 65 31 61 34 65 35 37 34  2be5922be1a4e574
e5b0: 65 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  e03....query II 
e5c0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e5d0: 44 49 53 54 49 4e 43 54 20 35 32 20 2b 20 2b 20  DISTINCT 52 + + 
e5e0: 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f  col0 AS col0, co
e5f0: 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
e600: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d  tab1..----..103.
e610: 0a 39 36 0d 0a 31 33 37 0d 0a 35 39 0d 0a 31 34  .96..137..59..14
e620: 33 0d 0a 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49  3..68....query I
e630: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e640: 20 2d 20 39 31 20 2d 20 63 6f 6c 32 20 41 53 20   - 91 - col2 AS 
e650: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
e660: 2d 2d 2d 2d 0d 0a 2d 31 31 34 0d 0a 2d 31 33 31  ----..-114..-131
e670: 0d 0a 2d 31 34 39 0d 0a 0d 0a 71 75 65 72 79 20  ..-149....query 
e680: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
e690: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
e6a0: 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 2d 20 2d  WHERE + col0 - -
e6b0: 20 32 30 20 3c 3e 20 2d 20 63 6f 6c 31 20 2b 20   20 <> - col1 + 
e6c0: 2b 20 37 31 20 2d 20 28 20 2d 20 35 32 20 2b 20  + 71 - ( - 52 + 
e6d0: 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col0 )..----..
e6e0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
e6f0: 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
e700: 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
e710: 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  43b7....onlyif m
e720: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
e730: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
e740: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
e750: 6f 72 74 20 6c 61 62 65 6c 2d 33 30 38 0d 0a 53  ort label-308..S
e760: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a  ELECT ALL col0 *
e770: 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
e780: 20 53 49 47 4e 45 44 20 29 20 2d 20 2b 20 2b 20   SIGNED ) - + + 
e790: 37 38 20 2f 20 2b 20 2d 20 32 37 20 41 53 20 63  78 / + - 27 AS c
e7a0: 6f 6c 32 2c 20 36 20 41 53 20 63 6f 6c 32 20 46  ol2, 6 AS col2 F
e7b0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
e7c0: 4e 55 4c 4c 0d 0a 36 0d 0a 4e 55 4c 4c 0d 0a 36  NULL..6..NULL..6
e7d0: 0d 0a 4e 55 4c 4c 0d 0a 36 0d 0a 0d 0a 73 6b 69  ..NULL..6....ski
e7e0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
e7f0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
e800: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
e810: 65 6c 2d 33 30 38 0d 0a 53 45 4c 45 43 54 20 41  el-308..SELECT A
e820: 4c 4c 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54  LL col0 * - CAST
e830: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
e840: 45 52 20 29 20 2d 20 2b 20 2b 20 37 38 20 2f 20  ER ) - + + 78 / 
e850: 2b 20 2d 20 32 37 20 41 53 20 63 6f 6c 32 2c 20  + - 27 AS col2, 
e860: 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  6 AS col2 FROM t
e870: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
e880: 0a 36 0d 0a 4e 55 4c 4c 0d 0a 36 0d 0a 4e 55 4c  .6..NULL..6..NUL
e890: 4c 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  L..6....query I 
e8a0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e8b0: 2d 20 63 6f 6c 31 20 2a 20 34 31 20 41 53 20 63  - col1 * 41 AS c
e8c0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
e8d0: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 63 6f   cor0 WHERE ( co
e8e0: 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  l1 ) IS NOT NULL
e8f0: 20 4f 52 20 35 30 20 3e 20 28 20 4e 55 4c 4c 20   OR 50 > ( NULL 
e900: 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 32 37 0d 0a  )..----..-1927..
e910: 2d 32 30 35 0d 0a 2d 35 37 34 0d 0a 0d 0a 6f 6e  -205..-574....on
e920: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
e930: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
e940: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
e950: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e960: 31 30 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  10..SELECT + col
e970: 32 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b  2 * - + col1 * +
e980: 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 63 6f 6c 32   col2 - + + col2
e990: 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20   + + col1 * - + 
e9a0: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
e9b0: 47 4e 45 44 20 29 20 2a 20 2d 20 33 33 20 46 52  GNED ) * - 33 FR
e9c0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
e9d0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
e9e0: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
e9f0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
ea00: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ea10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ea20: 33 31 30 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  310..SELECT + co
ea30: 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20  l2 * - + col1 * 
ea40: 2b 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 63 6f 6c  + col2 - + + col
ea50: 32 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b  2 + + col1 * - +
ea60: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
ea70: 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 33 33  INTEGER ) * - 33
ea80: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
ea90: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
eaa0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
eab0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
eac0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ead0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
eae0: 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20  cor0 WHERE col1 
eaf0: 2f 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 33 39 20  / - - col0 * 39 
eb00: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
eb10: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
eb20: 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
eb30: 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
eb40: 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79  62d0a49....query
eb50: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
eb60: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
eb70: 6c 32 20 2a 20 2b 20 34 35 20 41 53 20 63 6f 6c  l2 * + 45 AS col
eb80: 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
eb90: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 35 35 0d 0a 2d  ..----..-2655..-
eba0: 33 30 36 30 0d 0a 2d 34 33 32 30 0d 0a 0d 0a 71  3060..-4320....q
ebb0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
ebc0: 53 45 4c 45 43 54 20 34 32 20 41 53 20 63 6f 6c  SELECT 42 AS col
ebd0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
ebe0: 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
ebf0: 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20   ) BETWEEN NULL 
ec00: 41 4e 44 20 2b 20 63 6f 6c 32 20 2a 20 35 37 0d  AND + col2 * 57.
ec10: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
ec20: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ec30: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f   + col2 + - - co
ec40: 6c 30 20 2a 20 2b 20 2b 20 32 30 20 46 52 4f 4d  l0 * + + 20 FROM
ec50: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
ec60: 0d 0a 31 37 35 30 0d 0a 32 30 33 39 0d 0a 33 34  ..1750..2039..34
ec70: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
ec80: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
ec90: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
eca0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
ecb0: 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 49 53 20  WHERE + col0 IS 
ecc0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
ecd0: 2d 35 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d  -51..-67..-77...
ece0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
ecf0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
ed00: 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
ed10: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
ed20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
ed30: 62 65 6c 2d 33 31 36 0d 0a 53 45 4c 45 43 54 20  bel-316..SELECT 
ed40: 2d 20 32 36 20 44 49 56 20 43 4f 55 4e 54 28 20  - 26 DIV COUNT( 
ed50: 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  * ) FROM tab1..-
ed60: 2d 2d 2d 0d 0a 2d 38 0d 0a 0d 0a 73 6b 69 70 69  ---..-8....skipi
ed70: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
ed80: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ed90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
eda0: 33 31 36 0d 0a 53 45 4c 45 43 54 20 2d 20 32 36  316..SELECT - 26
edb0: 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   / COUNT ( * ) F
edc0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
edd0: 2d 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -8....query I ro
ede0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
edf0: 53 54 49 4e 43 54 20 31 34 20 46 52 4f 4d 20 74  STINCT 14 FROM t
ee00: 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
ee10: 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
ee20: 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 0d  or1..----..14...
ee30: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
ee40: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
ee50: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
ee60: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
ee70: 6c 2d 33 31 38 0d 0a 53 45 4c 45 43 54 20 2d 20  l-318..SELECT - 
ee80: 2b 20 43 41 53 54 28 20 2b 20 33 31 20 41 53 20  + CAST( + 31 AS 
ee90: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
eea0: 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
eeb0: 54 20 4e 55 4c 4c 20 3e 3d 20 28 20 2d 20 2b 20  T NULL >= ( - + 
eec0: 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
eed0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
eee0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
eef0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
ef00: 61 62 65 6c 2d 33 31 38 0d 0a 53 45 4c 45 43 54  abel-318..SELECT
ef10: 20 2d 20 2b 20 43 41 53 54 20 28 20 2b 20 33 31   - + CAST ( + 31
ef20: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
ef30: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
ef40: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 28  RE NOT NULL >= (
ef50: 20 2d 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   - + col1 )..---
ef60: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
ef70: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
ef80: 54 49 4e 43 54 20 2b 20 32 37 20 46 52 4f 4d 20  TINCT + 27 FROM 
ef90: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
efa0: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
efb0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
efc0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
efd0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
efe0: 2b 20 36 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 63  + 6 - col1 - - c
eff0: 6f 6c 30 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f  ol0 * col2 AS co
f000: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
f010: 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 4f 54  cor0 WHERE ( NOT
f020: 20 28 20 4e 4f 54 20 31 34 20 49 53 20 4e 4f 54   ( NOT 14 IS NOT
f030: 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   NULL ) )..----.
f040: 0a 36 33 30 0d 0a 38 35 35 0d 0a 39 36 30 38 0d  .630..855..9608.
f050: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
f060: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
f070: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
f080: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f090: 62 65 6c 2d 33 32 31 0d 0a 53 45 4c 45 43 54 20  bel-321..SELECT 
f0a0: 2b 20 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  + ( + CAST( NULL
f0b0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 46   AS SIGNED ) ) F
f0c0: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
f0d0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
f0e0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
f0f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
f100: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
f110: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
f120: 31 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20  1..SELECT + ( + 
f130: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
f140: 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20  NTEGER ) ) FROM 
f150: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
f160: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
f170: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
f180: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
f190: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
f1a0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
f1b0: 45 20 28 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 33  E ( - col2 * - 3
f1c0: 33 20 29 20 3c 3d 20 2b 20 63 6f 6c 31 0d 0a 2d  3 ) <= + col1..-
f1d0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
f1e0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
f1f0: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
f200: 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
f210: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 33 0d 0a  sort label-323..
f220: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
f230: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
f240: 48 45 52 45 20 28 20 63 6f 6c 32 20 2f 20 2d 20  HERE ( col2 / - 
f250: 63 6f 6c 32 20 29 20 3c 20 28 20 2b 20 63 6f 6c  col2 ) < ( + col
f260: 30 20 2b 20 2b 20 43 41 53 54 28 20 2d 20 63 6f  0 + + CAST( - co
f270: 6c 30 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  l0 AS DECIMAL ) 
f280: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
f290: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
f2a0: 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
f2b0: 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
f2c0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
f2d0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
f2e0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
f2f0: 74 20 6c 61 62 65 6c 2d 33 32 33 0d 0a 53 45 4c  t label-323..SEL
f300: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
f310: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
f320: 45 20 28 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c  E ( col2 / - col
f330: 32 20 29 20 3c 20 28 20 2b 20 63 6f 6c 30 20 2b  2 ) < ( + col0 +
f340: 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30   + CAST ( - col0
f350: 20 41 53 20 52 45 41 4c 20 29 20 29 0d 0a 2d 2d   AS REAL ) )..--
f360: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
f370: 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
f380: 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
f390: 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79  e4d54cad....only
f3a0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
f3b0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
f3c0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
f3d0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f3e0: 32 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  24..SELECT * FRO
f3f0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
f400: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2a 20  HERE NOT col1 * 
f410: 43 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53 20  CAST( + col1 AS 
f420: 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55 4c 4c  SIGNED ) IS NULL
f430: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
f440: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
f450: 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
f460: 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
f470: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
f480: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
f490: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
f4a0: 20 6c 61 62 65 6c 2d 33 32 34 0d 0a 53 45 4c 45   label-324..SELE
f4b0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
f4c0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
f4d0: 20 63 6f 6c 31 20 2a 20 43 41 53 54 20 28 20 2b   col1 * CAST ( +
f4e0: 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
f4f0: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
f500: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
f510: 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
f520: 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
f530: 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  fb43b7....onlyif
f540: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
f550: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
f560: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
f570: 62 65 6c 2d 33 32 35 0d 0a 53 45 4c 45 43 54 20  bel-325..SELECT 
f580: 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
f590: 28 20 2a 20 29 2c 20 2b 20 53 55 4d 28 20 2d 20  ( * ), + SUM( - 
f5a0: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
f5b0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
f5c0: 2d 33 0d 0a 2d 31 38 35 0d 0a 0d 0a 73 6b 69 70  -3..-185....skip
f5d0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
f5e0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
f5f0: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
f600: 6c 2d 33 32 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-325..SELECT DI
f610: 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
f620: 20 2a 20 29 2c 20 2b 20 53 55 4d 20 28 20 2d 20   * ), + SUM ( - 
f630: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
f640: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
f650: 2d 33 0d 0a 2d 31 38 35 0d 0a 0d 0a 6f 6e 6c 79  -3..-185....only
f660: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
f670: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
f680: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
f690: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
f6a0: 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41  6..SELECT col2 A
f6b0: 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 44  S col1, + col0 D
f6c0: 49 56 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 63 6f  IV + + col0 + co
f6d0: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
f6e0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  tab2..----..23..
f6f0: 35 32 0d 0a 34 30 0d 0a 37 38 0d 0a 35 38 0d 0a  52..40..78..58..
f700: 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  68....skipif mys
f710: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f720: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
f730: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 36 0d  wsort label-326.
f740: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41 53 20  .SELECT col2 AS 
f750: 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 2f 20 2b  col1, + col0 / +
f760: 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 41   + col0 + col1 A
f770: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
f780: 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 35 32 0d 0a  ..----..23..52..
f790: 34 30 0d 0a 37 38 0d 0a 35 38 0d 0a 36 38 0d 0a  40..78..58..68..
f7a0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
f7b0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
f7c0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
f7d0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 37 0d 0a  sort label-327..
f7e0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
f7f0: 2b 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 32 20  + COUNT( + col2 
f800: 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  ) FROM tab0 WHER
f810: 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 30 20 2a  E NOT - + col0 *
f820: 20 2d 20 28 20 2d 20 28 20 63 6f 6c 32 20 29 20   - ( - ( col2 ) 
f830: 29 20 2d 20 2d 20 34 30 20 2d 20 63 6f 6c 31 20  ) - - 40 - col1 
f840: 2b 20 63 6f 6c 30 20 2a 20 2b 20 37 31 20 49 53  + col0 * + 71 IS
f850: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
f860: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
f870: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
f880: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
f890: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 37 0d 0a  sort label-327..
f8a0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
f8b0: 2b 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 32  + COUNT ( + col2
f8c0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
f8d0: 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 30 20  RE NOT - + col0 
f8e0: 2a 20 2d 20 28 20 2d 20 28 20 63 6f 6c 32 20 29  * - ( - ( col2 )
f8f0: 20 29 20 2d 20 2d 20 34 30 20 2d 20 63 6f 6c 31   ) - - 40 - col1
f900: 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 37 31 20 49   + col0 * + 71 I
f910: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
f920: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ..0....query II 
f930: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
f940: 44 49 53 54 49 4e 43 54 20 2b 20 33 31 2c 20 63  DISTINCT + 31, c
f950: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
f960: 2d 2d 2d 0d 0a 33 31 0d 0a 35 39 0d 0a 33 31 0d  ---..31..59..31.
f970: 0a 36 38 0d 0a 33 31 0d 0a 39 36 0d 0a 0d 0a 71  .68..31..96....q
f980: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
f990: 53 45 4c 45 43 54 20 2b 20 39 30 20 2a 20 2b 20  SELECT + 90 * + 
f9a0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
f9b0: 2d 2d 2d 2d 0d 0a 31 38 39 30 0d 0a 37 32 39 30  ----..1890..7290
f9c0: 0d 0a 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..90....query I 
f9d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
f9e0: 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 46 52  DISTINCT col0 FR
f9f0: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
fa00: 54 20 2d 20 63 6f 6c 32 20 42 45 54 57 45 45 4e  T - col2 BETWEEN
fa10: 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 28 20   - col2 * + + ( 
fa20: 2b 20 2d 20 28 20 63 6f 6c 31 20 29 20 29 20 41  + - ( col1 ) ) A
fa30: 4e 44 20 2b 20 2d 20 28 20 38 33 20 29 0d 0a 2d  ND + - ( 83 )..-
fa40: 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d  ---..46..64..75.
fa50: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
fa60: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 20 2b  rt..SELECT - 9 +
fa70: 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b 20   - - col1 * - + 
fa80: 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 2b 20  col1 * - col0 + 
fa90: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  - col2 AS col1 F
faa0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
fab0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 33 38 33  ..----..-11..383
fac0: 34 38 0d 0a 39 38 33 35 39 0d 0a 0d 0a 6f 6e 6c  48..98359....onl
fad0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
fae0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
faf0: 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e  type: DIV for in
fb00: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
fb10: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
fb20: 74 20 6c 61 62 65 6c 2d 33 33 32 0d 0a 53 45 4c  t label-332..SEL
fb30: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
fb40: 31 20 44 49 56 20 43 41 53 54 28 20 33 37 20 41  1 DIV CAST( 37 A
fb50: 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 30  S SIGNED ) * + 0
fb60: 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
fb70: 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
fb80: 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d  -51..-85..-91...
fb90: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
fba0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
fbb0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fbc0: 6c 61 62 65 6c 2d 33 33 32 0d 0a 53 45 4c 45 43  label-332..SELEC
fbd0: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
fbe0: 2f 20 43 41 53 54 20 28 20 33 37 20 41 53 20 49  / CAST ( 37 AS I
fbf0: 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 30 20 2b  NTEGER ) * + 0 +
fc00: 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
fc10: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  1 cor0..----..-5
fc20: 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 71  1..-85..-91....q
fc30: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
fc40: 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
fc50: 2a 20 33 34 20 46 52 4f 4d 20 74 61 62 30 20 41  * 34 FROM tab0 A
fc60: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
fc70: 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  L = NULL..----..
fc80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
fc90: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
fca0: 43 54 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20  CT - ( - - col2 
fcb0: 29 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 63  ) * - + col2 + c
fcc0: 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d  ol1 + + col1 * -
fcd0: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
fce0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
fcf0: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 38 0d 0a 2d 32  .----..-1058..-2
fd00: 30 32 31 0d 0a 2d 34 32 35 32 0d 0a 0d 0a 6f 6e  021..-4252....on
fd10: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
fd20: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
fd30: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
fd40: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
fd50: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
fd60: 2d 33 33 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -335..SELECT + C
fd70: 41 53 54 28 20 2b 20 4d 41 58 28 20 2d 20 2d 20  AST( + MAX( - - 
fd80: 63 6f 6c 31 20 29 20 41 53 20 53 49 47 4e 45 44  col1 ) AS SIGNED
fd90: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
fda0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a  cor0..----..81..
fdb0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
fdc0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
fdd0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
fde0: 20 6c 61 62 65 6c 2d 33 33 35 0d 0a 53 45 4c 45   label-335..SELE
fdf0: 43 54 20 2b 20 43 41 53 54 20 28 20 2b 20 4d 41  CT + CAST ( + MA
fe00: 58 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 41  X ( - - col1 ) A
fe10: 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
fe20: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
fe30: 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69  ---..81....onlyi
fe40: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
fe50: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
fe60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
fe70: 62 65 6c 2d 33 33 36 0d 0a 53 45 4c 45 43 54 20  bel-336..SELECT 
fe80: 41 4c 4c 20 2d 20 2d 20 4d 49 4e 28 20 41 4c 4c  ALL - - MIN( ALL
fe90: 20 2b 20 34 31 20 29 20 41 53 20 63 6f 6c 32 20   + 41 ) AS col2 
fea0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
feb0: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
fec0: 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  1 AS cor1..----.
fed0: 0a 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .41....skipif my
fee0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
fef0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
ff00: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 36 0d  wsort label-336.
ff10: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
ff20: 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 34 31 20 29  MIN ( ALL + 41 )
ff30: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
ff40: 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
ff50: 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
ff60: 72 31 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d 0a 0d 0a  r1..----..41....
ff70: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
ff80: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
ff90: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
ffa0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
ffb0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
ffc0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ffd0: 20 44 49 53 54 49 4e 43 54 20 2b 20 35 35 20 2a   DISTINCT + 55 *
ffe0: 20 2d 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 30 20   - + ( + - col0 
fff0: 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  ) col2 FROM tab2
10000 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
10010 32 35 33 30 0d 0a 33 35 32 30 0d 0a 34 31 32 35  2530..3520..4125
10020 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
10030 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
10040 6c 30 20 2b 20 2d 20 2b 20 34 37 20 46 52 4f 4d  l0 + - + 47 FROM
10050 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
10060 2d 2d 2d 0d 0a 33 38 0d 0a 34 0d 0a 34 34 0d 0a  ---..38..4..44..
10070 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
10080 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
10090 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
100a0 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42  WHERE NULL NOT B
100b0 45 54 57 45 45 4e 20 2d 20 63 6f 6c 30 20 41 4e  ETWEEN - col0 AN
100c0 44 20 2b 20 36 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D + 60..----....
100d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
100e0 0a 53 45 4c 45 43 54 20 34 35 20 41 53 20 63 6f  .SELECT 45 AS co
100f0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
10100 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
10110 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34  IS NULL..----..4
10120 35 0d 0a 34 35 0d 0a 34 35 0d 0a 0d 0a 71 75 65  5..45..45....que
10130 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
10140 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
10150 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
10160 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
10170 36 33 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  63 + - col0 * co
10180 6c 31 20 3e 3d 20 36 36 0d 0a 2d 2d 2d 2d 0d 0a  l1 >= 66..----..
10190 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
101a0 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
101b0 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
101c0 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4cad....query I 
101d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
101e0 41 4c 4c 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  ALL - col1 AS co
101f0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
10200 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 39  cor0 WHERE NOT 9
10210 32 20 3c 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a  2 < ( + col1 )..
10220 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d  ----..-1..-21..-
10230 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  81....onlyif mys
10240 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
10250 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
10260 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10270 34 33 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58  43..SELECT - MAX
10280 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20 43 4f 55  ( - col0 ) + COU
10290 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
102a0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
102b0 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 0d 0a 73  0..----..54....s
102c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
102d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
102e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
102f0 62 65 6c 2d 33 34 33 0d 0a 53 45 4c 45 43 54 20  bel-343..SELECT 
10300 2d 20 4d 41 58 20 28 20 2d 20 63 6f 6c 30 20 29  - MAX ( - col0 )
10310 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
10320 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
10330 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
10340 35 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  54....query II r
10350 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
10360 20 33 35 20 29 20 2b 20 63 6f 6c 32 2c 20 63 6f   35 ) + col2, co
10370 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
10380 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 34 0d  tab0..----..134.
10390 0a 39 37 0d 0a 34 35 0d 0a 38 37 0d 0a 38 32 0d  .97..45..87..82.
103a0 0a 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .15....onlyif my
103b0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
103c0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
103d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
103e0 74 20 6c 61 62 65 6c 2d 33 34 35 0d 0a 53 45 4c  t label-345..SEL
103f0 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 38 20 2d  ECT + col2 + 8 -
10400 20 63 6f 6c 31 20 2d 20 33 20 2a 20 35 32 20 44   col1 - 3 * 52 D
10410 49 56 20 2d 20 32 34 20 63 6f 6c 31 20 46 52 4f  IV - 24 col1 FRO
10420 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
10430 34 0d 0a 2d 32 33 0d 0a 35 0d 0a 0d 0a 73 6b 69  4..-23..5....ski
10440 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
10450 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
10460 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
10470 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
10480 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
10490 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
104a0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
104b0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 35 0d 0a  sort label-345..
104c0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20  SELECT + col2 + 
104d0 38 20 2d 20 63 6f 6c 31 20 2d 20 33 20 2a 20 35  8 - col1 - 3 * 5
104e0 32 20 2f 20 2d 20 32 34 20 63 6f 6c 31 20 46 52  2 / - 24 col1 FR
104f0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
10500 31 34 0d 0a 2d 32 33 0d 0a 35 0d 0a 0d 0a 6f 6e  14..-23..5....on
10510 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
10520 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
10530 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
10540 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
10550 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
10560 6c 2d 33 34 36 0d 0a 53 45 4c 45 43 54 20 2b 20  l-346..SELECT + 
10570 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 2b  COUNT( * ) * - +
10580 20 37 33 20 2b 20 34 32 2c 20 43 41 53 54 28 20   73 + 42, CAST( 
10590 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
105a0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
105b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 37 0d 0a  b2..----..-177..
105c0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
105d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
105e0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
105f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34  rowsort label-34
10600 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  6..SELECT + COUN
10610 54 20 28 20 2a 20 29 20 2a 20 2d 20 2b 20 37 33  T ( * ) * - + 73
10620 20 2b 20 34 32 2c 20 43 41 53 54 20 28 20 4e 55   + 42, CAST ( NU
10630 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
10640 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
10650 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 37 0d 0a 4e  2..----..-177..N
10660 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
10670 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
10680 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
10690 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
106a0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
106b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
106c0 0a 53 45 4c 45 43 54 20 28 20 2b 20 39 34 20 29  .SELECT ( + 94 )
106d0 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 37 30 20 63   + + col0 + 70 c
106e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
106f0 2d 2d 2d 0d 0a 31 37 39 0d 0a 32 35 31 0d 0a 32  ---..179..251..2
10700 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  61....onlyif mys
10710 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
10720 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
10730 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10740 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  48..SELECT ALL -
10750 20 38 32 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a   82 + + COUNT( *
10760 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
10770 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39 0d  tab0..----..-79.
10780 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10790 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
107a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
107b0 74 20 6c 61 62 65 6c 2d 33 34 38 0d 0a 53 45 4c  t label-348..SEL
107c0 45 43 54 20 41 4c 4c 20 2d 20 38 32 20 2b 20 2b  ECT ALL - 82 + +
107d0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
107e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
107f0 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a 0d 0a 71 75 65  ----..-79....que
10800 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
10810 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 37  LECT DISTINCT 17
10820 20 2a 20 38 37 20 2d 20 63 6f 6c 32 20 46 52 4f   * 87 - col2 FRO
10830 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33  M tab1..----..13
10840 38 33 0d 0a 31 34 31 31 0d 0a 31 34 32 30 0d 0a  83..1411..1420..
10850 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10860 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
10870 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
10880 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 30 0d 0a  sort label-350..
10890 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
108a0 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a  ( * ) + COUNT( *
108b0 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
108c0 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b  2..----..6....sk
108d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
108e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
108f0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
10900 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
10910 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
10920 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
10930 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
10940 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 30 0d  wsort label-350.
10950 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
10960 54 20 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 20  T ( * ) + COUNT 
10970 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ( * ) col2 FROM 
10980 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d  tab2..----..6...
10990 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
109a0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
109b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
109c0 6f 72 74 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53  ort label-351..S
109d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
109e0 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 35 20  OUNT( * ) - + 5 
109f0 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
10a00 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70  ----..-2....skip
10a10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
10a20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
10a30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10a40 2d 33 35 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -351..SELECT DIS
10a50 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
10a60 29 20 2d 20 2b 20 35 20 46 52 4f 4d 20 74 61 62  ) - + 5 FROM tab
10a70 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  1 cor0..----..-2
10a80 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
10a90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
10aa0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
10ab0 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 31 35   cor0 WHERE ( 15
10ac0 20 3c 3d 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d   <= NULL )..----
10ad0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
10ae0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
10af0 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
10b00 48 45 52 45 20 63 6f 6c 30 20 42 45 54 57 45 45  HERE col0 BETWEE
10b10 4e 20 2d 20 2b 20 38 36 20 41 4e 44 20 63 6f 6c  N - + 86 AND col
10b20 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34 0d  2..----..51..14.
10b30 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .96....onlyif my
10b40 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
10b50 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
10b60 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
10b70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
10b80 6f 72 74 20 6c 61 62 65 6c 2d 33 35 34 0d 0a 53  ort label-354..S
10b90 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
10ba0 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) * - COUNT( * 
10bb0 29 20 44 49 56 20 37 37 20 46 52 4f 4d 20 74 61  ) DIV 77 FROM ta
10bc0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  b2 cor0..----..0
10bd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
10be0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
10bf0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
10c00 72 74 20 6c 61 62 65 6c 2d 33 35 34 0d 0a 53 45  rt label-354..SE
10c10 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LECT + COUNT ( *
10c20 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ) * - COUNT ( *
10c30 20 29 20 2f 20 37 37 20 46 52 4f 4d 20 74 61 62   ) / 77 FROM tab
10c40 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  2 cor0..----..0.
10c50 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
10c60 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
10c70 49 4e 43 54 20 2d 20 63 6f 6c 31 2c 20 2d 20 35  INCT - col1, - 5
10c80 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
10c90 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  ab0..----..-1..-
10ca0 35 38 0d 0a 2d 32 31 0d 0a 2d 35 38 0d 0a 2d 38  58..-21..-58..-8
10cb0 31 0d 0a 2d 35 38 0d 0a 0d 0a 71 75 65 72 79 20  1..-58....query 
10cc0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
10cd0 43 54 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63  CT - - col1 AS c
10ce0 6f 6c 31 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ol1, col1 FROM t
10cf0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10d00 2d 0d 0a 31 34 0d 0a 31 34 0d 0a 34 37 0d 0a 34  -..14..14..47..4
10d10 37 0d 0a 35 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79  7..5..5....query
10d20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10d30 43 54 20 41 4c 4c 20 2b 20 2d 20 28 20 2d 20 2d  CT ALL + - ( - -
10d40 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20   col0 ) AS col0 
10d50 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
10d60 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36  0..----..-46..-6
10d70 34 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79 20  4..-75....query 
10d80 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
10d90 43 54 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c  CT - col1 AS col
10da0 30 2c 20 38 38 20 2a 20 63 6f 6c 31 20 41 53 20  0, 88 * col1 AS 
10db0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
10dc0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
10dd0 34 0d 0a 31 32 33 32 0d 0a 2d 34 37 0d 0a 34 31  4..1232..-47..41
10de0 33 36 0d 0a 2d 35 0d 0a 34 34 30 0d 0a 0d 0a 71  36..-5..440....q
10df0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
10e00 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63  SELECT ALL - + c
10e10 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol2 FROM tab0 co
10e20 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2d 20  r0 WHERE col2 - 
10e30 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  - col1 IS NULL..
10e40 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
10e50 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10e60 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 39   col0 AS col0, 9
10e70 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  8 AS col2 FROM t
10e80 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10e90 2d 0d 0a 35 31 0d 0a 39 38 0d 0a 38 35 0d 0a 39  -..51..98..85..9
10ea0 38 0d 0a 39 31 0d 0a 39 38 0d 0a 0d 0a 71 75 65  8..91..98....que
10eb0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
10ec0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
10ed0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2b   col2 AS col1, +
10ee0 20 34 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53   41 FROM tab2 AS
10ef0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   cor0..----..-23
10f00 0d 0a 34 31 0d 0a 2d 34 30 0d 0a 34 31 0d 0a 2d  ..41..-40..41..-
10f10 35 38 0d 0a 34 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  58..41....onlyif
10f20 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
10f30 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
10f40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10f50 65 6c 2d 33 36 32 0d 0a 53 45 4c 45 43 54 20 2d  el-362..SELECT -
10f60 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
10f70 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
10f80 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
10f90 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32 20 49 53  col2 / - col2 IS
10fa0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
10fb0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
10fc0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
10fd0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
10fe0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 32 0d 0a  sort label-362..
10ff0 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
11000 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
11010 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
11020 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2f 20  HERE NOT col2 / 
11030 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  - col2 IS NOT NU
11040 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  LL..----..0....q
11050 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
11060 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41  .SELECT + col1 A
11070 53 20 63 6f 6c 32 2c 20 32 39 20 46 52 4f 4d 20  S col2, 29 FROM 
11080 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
11090 2d 2d 0d 0a 31 0d 0a 32 39 0d 0a 32 31 0d 0a 32  --..1..29..21..2
110a0 39 0d 0a 38 31 0d 0a 32 39 0d 0a 0d 0a 71 75 65  9..81..29....que
110b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
110c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
110d0 2d 20 39 33 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 93 AS col2 FRO
110e0 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
110f0 45 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  E col1 IS NOT NU
11100 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a  LL..----..93....
11110 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
11120 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
11130 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
11140 72 74 20 6c 61 62 65 6c 2d 33 36 35 0d 0a 53 45  rt label-365..SE
11150 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 41 4c  LECT ALL SUM( AL
11160 4c 20 63 6f 6c 32 20 29 20 2b 20 2b 20 2b 20 35  L col2 ) + + + 5
11170 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
11180 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a  ab1..----..273..
11190 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
111a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
111b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
111c0 20 6c 61 62 65 6c 2d 33 36 35 0d 0a 53 45 4c 45   label-365..SELE
111d0 43 54 20 41 4c 4c 20 53 55 4d 20 28 20 41 4c 4c  CT ALL SUM ( ALL
111e0 20 63 6f 6c 32 20 29 20 2b 20 2b 20 2b 20 35 30   col2 ) + + + 50
111f0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
11200 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a 0d  b1..----..273...
11210 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
11220 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
11230 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
11240 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11250 6c 2d 33 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-366..SELECT - 
11260 63 6f 6c 30 20 44 49 56 20 2b 20 2b 20 63 6f 6c  col0 DIV + + col
11270 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
11280 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 32 0d 0a 0d  -..-1..-1..-2...
11290 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
112a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
112b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
112c0 6c 61 62 65 6c 2d 33 36 36 0d 0a 53 45 4c 45 43  label-366..SELEC
112d0 54 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 2b 20 63  T - col0 / + + c
112e0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
112f0 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 32 0d  ---..-1..-1..-2.
11300 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
11310 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 34 30 20  rt..SELECT - 40 
11320 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * - col2 FROM ta
11330 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 38 30 0d 0a  b0..----..1880..
11340 33 39 36 30 0d 0a 34 30 30 0d 0a 0d 0a 6f 6e 6c  3960..400....onl
11350 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
11360 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
11370 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
11380 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11390 33 36 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  368..SELECT DIST
113a0 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  INCT + col1 * co
113b0 6c 30 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  l0 + CAST( NULL 
113c0 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20  AS DECIMAL ) AS 
113d0 63 6f 6c 30 2c 20 36 32 20 41 53 20 63 6f 6c 31  col0, 62 AS col1
113e0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
113f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
11400 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  62....skipif mys
11410 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
11420 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
11430 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 38 0d  wsort label-368.
11440 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11450 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 20 2b   + col1 * col0 +
11460 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
11470 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 30 2c 20  REAL ) AS col0, 
11480 36 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  62 AS col1 FROM 
11490 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
114a0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 36 32 0d 0a 0d 0a  --..NULL..62....
114b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
114c0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
114d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
114e0 72 74 20 6c 61 62 65 6c 2d 33 36 39 0d 0a 53 45  rt label-369..SE
114f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
11500 55 4e 54 28 20 34 38 20 29 20 46 52 4f 4d 20 74  UNT( 48 ) FROM t
11510 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
11520 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
11530 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11540 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11550 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 39  owsort label-369
11560 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
11570 54 20 43 4f 55 4e 54 20 28 20 34 38 20 29 20 46  T COUNT ( 48 ) F
11580 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
11590 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
115a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
115b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
115c0 31 20 2a 20 2b 20 2b 20 35 33 20 2a 20 2d 20 2d  1 * + + 53 * - -
115d0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
115e0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 33  cor0 WHERE NOT 3
115f0 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  4 IS NOT NULL..-
11600 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
11610 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
11620 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
11630 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
11640 2d 20 39 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  - 9 ) IS NULL..-
11650 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
11660 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
11670 20 34 33 20 2b 20 2d 20 31 34 20 2b 20 63 6f 6c   43 + - 14 + col
11680 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
11690 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  or0..----..-10..
116a0 2d 34 37 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79  -47..42....query
116b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
116c0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2b 20  CT ALL - col0 + 
116d0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 46 52  col0 * + col2 FR
116e0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab0..----..6
116f0 39 30 0d 0a 37 38 33 0d 0a 39 35 30 36 0d 0a 0d  90..783..9506...
11700 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11710 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20  ..SELECT col0 + 
11720 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  + - col2 AS col1
11730 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
11740 0d 0a 2d 34 35 0d 0a 32 33 0d 0a 32 36 0d 0a 0d  ..-45..23..26...
11750 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
11760 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
11770 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
11780 6f 72 74 20 6c 61 62 65 6c 2d 33 37 35 0d 0a 53  ort label-375..S
11790 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 53  ELECT DISTINCT S
117a0 55 4d 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 46  UM( - - col2 ) F
117b0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
117c0 55 4c 4c 20 3e 3d 20 2b 20 2b 20 63 6f 6c 32 0d  ULL >= + + col2.
117d0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
117e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
117f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
11800 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11810 62 65 6c 2d 33 37 35 0d 0a 53 45 4c 45 43 54 20  bel-375..SELECT 
11820 44 49 53 54 49 4e 43 54 20 53 55 4d 20 28 20 2d  DISTINCT SUM ( -
11830 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   - col2 ) FROM t
11840 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e  ab2 WHERE NULL >
11850 3d 20 2b 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  = + + col2..----
11860 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
11870 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
11880 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20 2b  T ALL + col0 + +
11890 20 33 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   33 AS col2 FROM
118a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
118b0 2d 2d 2d 0d 0a 31 31 38 0d 0a 31 32 34 0d 0a 38  ---..118..124..8
118c0 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
118d0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
118e0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
118f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11900 37 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  77..SELECT DISTI
11910 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20  NCT COUNT( * ), 
11920 2d 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2d 20 63  - SUM( ALL - - c
11930 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
11940 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
11950 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 31 30 33 0d 0a  .----..3..-103..
11960 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11970 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11980 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
11990 74 20 6c 61 62 65 6c 2d 33 37 37 0d 0a 53 45 4c  t label-377..SEL
119a0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
119b0 4e 54 20 28 20 2a 20 29 2c 20 2d 20 53 55 4d 20  NT ( * ), - SUM 
119c0 28 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 31 20 29  ( ALL - - col1 )
119d0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
119e0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
119f0 0d 0a 33 0d 0a 2d 31 30 33 0d 0a 0d 0a 73 6b 69  ..3..-103....ski
11a00 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
11a10 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
11a20 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
11a30 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
11a40 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
11a50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
11a60 2b 20 31 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74  + 10 col1 FROM t
11a70 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
11a80 2d 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a 2d 31 30  -..-10..-10..-10
11a90 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
11aa0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
11ab0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
11ac0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
11ad0 20 6c 61 62 65 6c 2d 33 37 39 0d 0a 53 45 4c 45   label-379..SELE
11ae0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
11af0 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
11b00 4f 54 20 2b 20 2b 20 63 6f 6c 31 20 3e 20 2d 20  OT + + col1 > - 
11b10 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 2a 20  col0 + + col0 * 
11b20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
11b30 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2b 20 63  SIGNED ) * + + c
11b40 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 29 0d 0a  ol0 * + col1 )..
11b50 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
11b60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11b70 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
11b80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11b90 37 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  79..SELECT * FRO
11ba0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
11bb0 48 45 52 45 20 28 20 4e 4f 54 20 2b 20 2b 20 63  HERE ( NOT + + c
11bc0 6f 6c 31 20 3e 20 2d 20 63 6f 6c 30 20 2b 20 2b  ol1 > - col0 + +
11bd0 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 20 28   col0 * - CAST (
11be0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
11bf0 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a 20   ) * + + col0 * 
11c00 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
11c10 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
11c20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
11c30 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
11c40 52 45 20 4e 55 4c 4c 20 3d 20 28 20 35 32 20 29  RE NULL = ( 52 )
11c50 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
11c60 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
11c70 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
11c80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
11c90 65 6c 2d 33 38 31 0d 0a 53 45 4c 45 43 54 20 43  el-381..SELECT C
11ca0 4f 55 4e 54 28 20 2a 20 29 20 2a 20 53 55 4d 28  OUNT( * ) * SUM(
11cb0 20 37 20 29 20 2a 20 2b 20 34 31 20 2a 20 43 4f   7 ) * + 41 * CO
11cc0 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
11cd0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 34 39 0d 0a  b2..----..7749..
11ce0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11cf0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11d00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11d10 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45 4c 45   label-381..SELE
11d20 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  CT COUNT ( * ) *
11d30 20 53 55 4d 20 28 20 37 20 29 20 2a 20 2b 20 34   SUM ( 7 ) * + 4
11d40 31 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  1 * COUNT ( * ) 
11d50 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
11d60 0a 37 37 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .7749....onlyif 
11d70 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
11d80 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
11d90 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
11da0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 32 0d 0a  sort label-382..
11db0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
11dc0 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20 41  - CAST( + col2 A
11dd0 53 20 53 49 47 4e 45 44 20 29 2c 20 63 6f 6c 31  S SIGNED ), col1
11de0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
11df0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 32  b0..----..-10..2
11e00 31 0d 0a 2d 34 37 0d 0a 38 31 0d 0a 2d 39 39 0d  1..-47..81..-99.
11e10 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
11e20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
11e30 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
11e40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 32 0d  wsort label-382.
11e50 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11e60 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 32   - CAST ( + col2
11e70 20 41 53 20 49 4e 54 45 47 45 52 20 29 2c 20 63   AS INTEGER ), c
11e80 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
11e90 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab0..----..-10
11ea0 0d 0a 32 31 0d 0a 2d 34 37 0d 0a 38 31 0d 0a 2d  ..21..-47..81..-
11eb0 39 39 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  99..1....query I
11ec0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
11ed0 54 20 2b 20 28 20 2d 20 33 33 20 29 2c 20 2d 20  T + ( - 33 ), - 
11ee0 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
11ef0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
11f00 2d 2d 2d 2d 0d 0a 2d 33 33 0d 0a 2d 31 34 0d 0a  ----..-33..-14..
11f10 2d 33 33 0d 0a 2d 34 37 0d 0a 2d 33 33 0d 0a 2d  -33..-47..-33..-
11f20 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
11f30 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
11f40 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
11f50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
11f60 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 41  4..SELECT MAX( A
11f70 4c 4c 20 2b 20 2d 20 63 6f 6c 30 20 29 20 63 6f  LL + - col0 ) co
11f80 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
11f90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d  cor0..----..-15.
11fa0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11fb0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11fc0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
11fd0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
11fe0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
11ff0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
12000 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
12010 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12020 2d 33 38 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -384..SELECT MAX
12030 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30 20   ( ALL + - col0 
12040 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
12050 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12060 2d 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -15....query III
12070 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
12080 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   * FROM tab2 cor
12090 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
120a0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 63   NOT BETWEEN ( c
120b0 6f 6c 31 20 29 20 41 4e 44 20 2b 20 2d 20 63 6f  ol1 ) AND + - co
120c0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
120d0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
120e0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
120f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12100 61 62 65 6c 2d 33 38 36 0d 0a 53 45 4c 45 43 54  abel-386..SELECT
12110 20 2b 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20   + ( - COUNT( * 
12120 29 20 29 20 2b 20 2b 20 2b 20 28 20 43 4f 55 4e  ) ) + + + ( COUN
12130 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 36 20  T( DISTINCT + 6 
12140 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ) ) FROM tab1 WH
12150 45 52 45 20 4e 4f 54 20 28 20 2d 20 2b 20 63 6f  ERE NOT ( - + co
12160 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  l1 * + col2 + + 
12170 2d 20 39 37 20 2b 20 2b 20 63 6f 6c 32 20 2d 20  - 97 + + col2 - 
12180 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  col0 - + col2 + 
12190 2d 20 63 6f 6c 32 20 2b 20 35 38 20 29 20 42 45  - col2 + 58 ) BE
121a0 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e  TWEEN NULL AND N
121b0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
121c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
121d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
121e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
121f0 61 62 65 6c 2d 33 38 36 0d 0a 53 45 4c 45 43 54  abel-386..SELECT
12200 20 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a   + ( - COUNT ( *
12210 20 29 20 29 20 2b 20 2b 20 2b 20 28 20 43 4f 55   ) ) + + + ( COU
12220 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  NT ( DISTINCT + 
12230 36 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20  6 ) ) FROM tab1 
12240 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 2b 20  WHERE NOT ( - + 
12250 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2b 20  col1 * + col2 + 
12260 2b 20 2d 20 39 37 20 2b 20 2b 20 63 6f 6c 32 20  + - 97 + + col2 
12270 2d 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 20  - col0 - + col2 
12280 2b 20 2d 20 63 6f 6c 32 20 2b 20 35 38 20 29 20  + - col2 + 58 ) 
12290 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
122a0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
122b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
122c0 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 39 37  t..SELECT ( + 97
122d0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
122e0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
122f0 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab2 AS cor1..--
12300 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
12310 68 69 6e 67 20 74 6f 20 35 65 30 64 33 31 61 63  hing to 5e0d31ac
12320 34 31 39 38 31 62 63 64 66 36 61 36 36 35 35 33  41981bcdf6a66553
12330 38 61 37 31 61 30 39 63 0d 0a 0d 0a 71 75 65 72  8a71a09c....quer
12340 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
12350 45 43 54 20 2b 20 32 39 20 46 52 4f 4d 20 74 61  ECT + 29 FROM ta
12360 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b1 cor0 CROSS JO
12370 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d  IN tab2 AS cor1.
12380 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
12390 68 61 73 68 69 6e 67 20 74 6f 20 31 65 37 31 32  hashing to 1e712
123a0 30 62 61 38 65 39 31 39 31 30 38 34 31 37 32 64  0ba8e9191084172d
123b0 64 63 65 64 31 37 65 35 65 62 32 0d 0a 0d 0a 6f  dced17e5eb2....o
123c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
123d0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
123e0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
123f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12400 33 38 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  389..SELECT + + 
12410 35 32 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46 52  52 * - - col0 FR
12420 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
12430 57 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54  WHERE NOT + CAST
12440 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
12450 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
12460 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
12470 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
12480 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
12490 72 74 20 6c 61 62 65 6c 2d 33 38 39 0d 0a 53 45  rt label-389..SE
124a0 4c 45 43 54 20 2b 20 2b 20 35 32 20 2a 20 2d 20  LECT + + 52 * - 
124b0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  - col0 FROM tab0
124c0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
124d0 4f 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  OT + CAST ( NULL
124e0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 49 53   AS INTEGER ) IS
124f0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
12500 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
12510 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
12520 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12530 74 20 6c 61 62 65 6c 2d 33 39 30 0d 0a 53 45 4c  t label-390..SEL
12540 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d  ECT DISTINCT + M
12550 41 58 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31  AX( ALL + - col1
12560 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
12570 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d  cor0..----..-51.
12580 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
12590 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
125a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
125b0 74 20 6c 61 62 65 6c 2d 33 39 30 0d 0a 53 45 4c  t label-390..SEL
125c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d  ECT DISTINCT + M
125d0 41 58 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c  AX ( ALL + - col
125e0 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  1 ) FROM tab2 AS
125f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   cor0..----..-51
12600 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
12610 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
12620 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
12630 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
12640 20 35 34 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b   54 * - col1 * +
12650 20 38 35 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   85 IS NOT NULL.
12660 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
12670 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
12680 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
12690 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
126a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
126b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
126c0 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 28 20 2d 20   - + col0 * ( - 
126d0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 2c 20  col0 ) AS col0, 
126e0 38 35 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  85 FROM tab0 AS 
126f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 35 0d  cor0..----..225.
12700 0a 38 35 0d 0a 37 35 36 39 0d 0a 38 35 0d 0a 39  .85..7569..85..9
12710 34 30 39 0d 0a 38 35 0d 0a 0d 0a 71 75 65 72 79  409..85....query
12720 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
12730 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20  CT ALL col0 * + 
12740 36 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 41  6 + + ( col1 ) A
12750 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
12760 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12770 33 32 37 0d 0a 34 36 31 0d 0a 35 31 37 0d 0a 0d  327..461..517...
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 2a 20 46 52 4f  rt..SELECT * FRO
127a0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
127b0 20 2d 20 2b 20 63 6f 6c 30 20 3c 3d 20 2d 20 63   - + col0 <= - c
127c0 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
127d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
127e0 4c 45 43 54 20 2b 20 38 34 20 2b 20 2d 20 2d 20  LECT + 84 + - - 
127f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
12800 2d 2d 2d 2d 0d 0a 31 33 30 0d 0a 31 34 38 0d 0a  ----..130..148..
12810 31 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  159....query I r
12820 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
12830 20 63 6f 6c 32 20 2b 20 2d 20 39 36 20 46 52 4f   col2 + - 96 FRO
12840 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
12850 38 0d 0a 2d 33 37 0d 0a 30 0d 0a 0d 0a 71 75 65  8..-37..0....que
12860 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
12870 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
12880 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
12890 45 20 2d 20 2d 20 34 37 20 49 53 20 4e 55 4c 4c  E - - 47 IS NULL
128a0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
128b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
128c0 54 20 44 49 53 54 49 4e 43 54 20 34 20 2b 20 2b  T DISTINCT 4 + +
128d0 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52 4f   col1 + col2 FRO
128e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
128f0 34 0d 0a 31 33 32 0d 0a 33 35 0d 0a 0d 0a 73 6b  4..132..35....sk
12900 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
12910 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
12920 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
12930 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
12940 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
12950 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
12960 4c 4c 20 28 20 2b 20 34 31 20 29 20 63 6f 6c 30  LL ( + 41 ) col0
12970 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
12980 0d 0a 34 31 0d 0a 34 31 0d 0a 34 31 0d 0a 0d 0a  ..41..41..41....
12990 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
129a0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
129b0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
129c0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20  HERE NOT col2 * 
129d0 2b 20 2b 20 32 31 20 2b 20 2d 20 63 6f 6c 30 20  + + 21 + - col0 
129e0 3e 3d 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20  >= - - col1 * - 
129f0 2d 20 28 20 2b 20 2b 20 32 38 20 29 0d 0a 2d 2d  - ( + + 28 )..--
12a00 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
12a10 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
12a20 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
12a30 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79  962d0a49....only
12a40 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
12a50 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
12a60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12a70 61 62 65 6c 2d 34 30 31 0d 0a 53 45 4c 45 43 54  abel-401..SELECT
12a80 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   - SUM( DISTINCT
12a90 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
12aa0 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  2 FROM tab2 cor0
12ab0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 35 0d 0a 0d 0a  ..----..-185....
12ac0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
12ad0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
12ae0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12af0 61 62 65 6c 2d 34 30 31 0d 0a 53 45 4c 45 43 54  abel-401..SELECT
12b00 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   - SUM ( DISTINC
12b10 54 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  T + col0 ) AS co
12b20 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
12b30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 35 0d 0a 0d  0..----..-185...
12b40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
12b50 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
12b60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
12b70 6f 72 74 20 6c 61 62 65 6c 2d 34 30 32 0d 0a 53  ort label-402..S
12b80 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
12b90 20 29 20 2a 20 2d 20 32 36 20 46 52 4f 4d 20 74   ) * - 26 FROM t
12ba0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
12bb0 2d 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..78....skipif 
12bc0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
12bd0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
12be0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30  rowsort label-40
12bf0 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  2..SELECT - COUN
12c00 54 20 28 20 2a 20 29 20 2a 20 2d 20 32 36 20 46  T ( * ) * - 26 F
12c10 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
12c20 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 0d 0a 6f 6e  ..----..78....on
12c30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
12c40 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
12c50 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
12c60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12c70 30 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  03..SELECT ALL C
12c80 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
12c90 4e 45 44 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 32  NED ) + - + col2
12ca0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
12cb0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
12cc0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
12cd0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
12ce0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
12cf0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
12d00 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 33 0d 0a  sort label-403..
12d10 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20  SELECT ALL CAST 
12d20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
12d30 52 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 41  R ) + - + col2 A
12d40 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
12d50 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12d60 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
12d70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
12d80 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
12d90 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
12da0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
12db0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12dc0 20 6c 61 62 65 6c 2d 34 30 34 0d 0a 53 45 4c 45   label-404..SELE
12dd0 43 54 20 41 4c 4c 20 28 20 2b 20 43 41 53 54 28  CT ALL ( + CAST(
12de0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
12df0 20 53 49 47 4e 45 44 20 29 20 29 20 41 53 20 63   SIGNED ) ) AS c
12e00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
12e10 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
12e20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
12e30 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
12e40 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
12e50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12e60 6c 61 62 65 6c 2d 34 30 34 0d 0a 53 45 4c 45 43  label-404..SELEC
12e70 54 20 41 4c 4c 20 28 20 2b 20 43 41 53 54 20 28  T ALL ( + CAST (
12e80 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
12e90 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53  S INTEGER ) ) AS
12ea0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
12eb0 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
12ec0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  T NULL..----..0.
12ed0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12ee0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
12ef0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
12f00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12f10 62 65 6c 2d 34 30 35 0d 0a 53 45 4c 45 43 54 20  bel-405..SELECT 
12f20 2b 20 31 33 20 44 49 56 20 2d 20 2b 20 33 39 20  + 13 DIV - + 39 
12f30 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
12f40 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
12f50 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
12f60 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
12f70 73 20 68 61 73 68 69 6e 67 20 74 6f 20 38 62 37  s hashing to 8b7
12f80 35 31 33 36 62 32 62 35 31 63 37 37 33 34 35 63  5136b2b51c77345c
12f90 30 33 38 30 34 65 63 31 63 64 61 35 63 0d 0a 0d  03804ec1cda5c...
12fa0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
12fb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
12fc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12fd0 6c 61 62 65 6c 2d 34 30 35 0d 0a 53 45 4c 45 43  label-405..SELEC
12fe0 54 20 2b 20 31 33 20 2f 20 2d 20 2b 20 33 39 20  T + 13 / - + 39 
12ff0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
13000 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
13010 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
13020 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
13030 73 20 68 61 73 68 69 6e 67 20 74 6f 20 38 62 37  s hashing to 8b7
13040 35 31 33 36 62 32 62 35 31 63 37 37 33 34 35 63  5136b2b51c77345c
13050 30 33 38 30 34 65 63 31 63 64 61 35 63 0d 0a 0d  03804ec1cda5c...
13060 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
13070 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
13080 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
13090 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
130a0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
130b0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
130c0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
130d0 20 2d 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20   - + ( + col0 ) 
130e0 63 6f 6c 31 2c 20 2b 20 63 6f 6c 32 20 41 53 20  col1, + col2 AS 
130f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
13100 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
13110 37 0d 0a 35 38 0d 0a 2d 32 33 0d 0a 32 33 0d 0a  7..58..-23..23..
13120 2d 32 34 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69  -24..40....onlyi
13130 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
13140 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
13150 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
13160 62 65 6c 2d 34 30 37 0d 0a 53 45 4c 45 43 54 20  bel-407..SELECT 
13170 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20  DISTINCT COUNT( 
13180 32 35 20 29 20 2a 20 43 4f 55 4e 54 28 20 41 4c  25 ) * COUNT( AL
13190 4c 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  L - col1 ) AS co
131a0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
131b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor0..----..9...
131c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
131d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
131e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
131f0 6c 61 62 65 6c 2d 34 30 37 0d 0a 53 45 4c 45 43  label-407..SELEC
13200 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
13210 20 28 20 32 35 20 29 20 2a 20 43 4f 55 4e 54 20   ( 25 ) * COUNT 
13220 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41  ( ALL - col1 ) A
13230 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
13240 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
13250 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
13260 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
13270 20 2d 20 63 6f 6c 32 20 2a 20 33 35 20 2d 20 2d   - col2 * 35 - -
13280 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
13290 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
132a0 32 30 36 30 0d 0a 2d 32 33 33 33 0d 0a 2d 33 33  2060..-2333..-33
132b0 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  46....query I ro
132c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 30  wsort..SELECT 70
132d0 20 2b 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 31 20   + + - ( - col1 
132e0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
132f0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
13300 2d 0d 0a 31 35 31 0d 0a 37 31 0d 0a 39 31 0d 0a  -..151..71..91..
13310 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13320 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
13330 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
13340 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13350 65 6c 2d 34 31 30 0d 0a 53 45 4c 45 43 54 20 44  el-410..SELECT D
13360 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2d  ISTINCT + col0 -
13370 20 34 20 44 49 56 20 2b 20 39 36 20 41 53 20 63   4 DIV + 96 AS c
13380 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
13390 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   cor0..----..15.
133a0 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69  .87..97....skipi
133b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
133c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
133d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
133e0 34 31 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  410..SELECT DIST
133f0 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2d 20 34 20  INCT + col0 - 4 
13400 2f 20 2b 20 39 36 20 41 53 20 63 6f 6c 30 20 46  / + 96 AS col0 F
13410 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
13420 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a  ..----..15..87..
13430 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  97....query I ro
13440 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
13450 53 54 49 4e 43 54 20 2d 20 28 20 2d 20 28 20 2b  STINCT - ( - ( +
13460 20 33 38 20 29 20 29 20 2a 20 39 35 20 46 52 4f   38 ) ) * 95 FRO
13470 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
13480 2d 2d 2d 2d 0d 0a 33 36 31 30 0d 0a 0d 0a 71 75  ----..3610....qu
13490 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
134a0 45 4c 45 43 54 20 2d 20 28 20 2b 20 2d 20 63 6f  ELECT - ( + - co
134b0 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
134c0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
134d0 20 28 20 2b 20 36 32 20 29 20 3c 20 31 33 0d 0a   ( + 62 ) < 13..
134e0 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
134f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
13500 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
13510 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f  INCT col0 * + co
13520 6c 31 20 2a 20 34 34 20 46 52 4f 4d 20 74 61 62  l1 * 44 FROM tab
13530 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32 36 38 0d 0a 35  0..----..4268..5
13540 33 34 36 30 0d 0a 38 30 33 38 38 0d 0a 0d 0a 71  3460..80388....q
13550 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13560 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20  SELECT + col2 * 
13570 2d 20 2d 20 32 37 20 46 52 4f 4d 20 74 61 62 30  - - 27 FROM tab0
13580 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 39 0d 0a 32 36  ..----..1269..26
13590 37 33 0d 0a 32 37 30 0d 0a 0d 0a 71 75 65 72 79  73..270....query
135a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
135b0 43 54 20 41 4c 4c 20 2d 20 35 35 20 2a 20 2b 20  CT ALL - 55 * + 
135c0 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
135d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
135e0 31 35 35 0d 0a 2d 34 34 35 35 0d 0a 2d 35 35 0d  155..-4455..-55.
135f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13600 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
13610 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
13620 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
13630 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13640 20 6c 61 62 65 6c 2d 34 31 36 0d 0a 53 45 4c 45   label-416..SELE
13650 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41  CT DISTINCT + CA
13660 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
13670 4d 41 4c 20 29 20 2a 20 2b 20 4d 49 4e 28 20 41  MAL ) * + MIN( A
13680 4c 4c 20 2b 20 33 31 20 29 20 46 52 4f 4d 20 74  LL + 31 ) FROM t
13690 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
136a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
136b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
136c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
136d0 74 20 6c 61 62 65 6c 2d 34 31 36 0d 0a 53 45 4c  t label-416..SEL
136e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
136f0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
13700 41 4c 20 29 20 2a 20 2b 20 4d 49 4e 20 28 20 41  AL ) * + MIN ( A
13710 4c 4c 20 2b 20 33 31 20 29 20 46 52 4f 4d 20 74  LL + 31 ) FROM t
13720 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
13730 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13740 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
13750 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
13760 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 37 0d  wsort label-417.
13770 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
13780 20 53 55 4d 28 20 41 4c 4c 20 2b 20 63 6f 6c 31   SUM( ALL + col1
13790 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
137a0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
137b0 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 73 6b 69 70 69  --..195....skipi
137c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
137d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
137e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
137f0 34 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  417..SELECT DIST
13800 49 4e 43 54 20 53 55 4d 20 28 20 41 4c 4c 20 2b  INCT SUM ( ALL +
13810 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
13820 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
13830 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a  0..----..195....
13840 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
13850 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
13860 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
13870 30 20 57 48 45 52 45 20 38 30 20 3e 3d 20 39 32  0 WHERE 80 >= 92
13880 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
13890 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
138a0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
138b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
138c0 65 6c 2d 34 31 39 0d 0a 53 45 4c 45 43 54 20 4d  el-419..SELECT M
138d0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  IN( DISTINCT - -
138e0 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
138f0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
13900 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .59....skipif my
13910 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
13920 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
13930 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 39 0d  wsort label-419.
13940 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 44 49  .SELECT MIN ( DI
13950 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 32 20  STINCT - - col2 
13960 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
13970 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d  or0..----..59...
13980 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
13990 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
139a0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
139b0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
139c0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
139d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
139e0 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 31  T + col0 + - - 1
139f0 33 20 2b 20 2d 20 2b 20 36 33 20 2b 20 2d 20 36  3 + - + 63 + - 6
13a00 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 63 6f   + - - col2 + co
13a10 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l2 col0 FROM tab
13a20 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
13a30 0a 32 33 39 0d 0a 35 31 0d 0a 35 33 0d 0a 0d 0a  .239..51..53....
13a40 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
13a50 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
13a60 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
13a70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13a80 2d 34 32 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -421..SELECT ALL
13a90 20 36 38 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 44   68 * - - col2 D
13aa0 49 56 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74  IV - col2 FROM t
13ab0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
13ac0 2d 0d 0a 2d 36 38 0d 0a 2d 36 38 0d 0a 2d 36 38  -..-68..-68..-68
13ad0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
13ae0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
13af0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
13b00 72 74 20 6c 61 62 65 6c 2d 34 32 31 0d 0a 53 45  rt label-421..SE
13b10 4c 45 43 54 20 41 4c 4c 20 36 38 20 2a 20 2d 20  LECT ALL 68 * - 
13b20 2d 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32 20  - col2 / - col2 
13b30 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
13b40 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38 0d 0a 2d 36  0..----..-68..-6
13b50 38 0d 0a 2d 36 38 0d 0a 0d 0a 71 75 65 72 79 20  8..-68....query 
13b60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
13b70 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 39 37 20  T - col1 + + 97 
13b80 2a 20 2b 20 2b 20 38 39 20 2b 20 2d 20 35 33 20  * + + 89 + - 53 
13b90 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
13ba0 30 0d 0a 2d 2d 2d 2d 0d 0a 38 35 30 33 0d 0a 38  0..----..8503..8
13bb0 35 31 33 0d 0a 38 35 32 39 0d 0a 0d 0a 71 75 65  513..8529....que
13bc0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
13bd0 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 32 37 20  LECT ALL - + 27 
13be0 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
13bf0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
13c00 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 35 38 0d 0a  ..----..24..58..
13c10 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  64....onlyif mys
13c20 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
13c30 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
13c40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13c50 34 32 34 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28  424..SELECT MIN(
13c60 20 41 4c 4c 20 2b 20 32 37 20 29 20 41 53 20 63   ALL + 27 ) AS c
13c70 6f 6c 32 2c 20 2b 20 53 55 4d 28 20 2b 20 63 6f  ol2, + SUM( + co
13c80 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l0 ) FROM tab0 A
13c90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37  S cor0..----..27
13ca0 0d 0a 31 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..199....skipif 
13cb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13cc0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
13cd0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13ce0 32 34 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28  24..SELECT MIN (
13cf0 20 41 4c 4c 20 2b 20 32 37 20 29 20 41 53 20 63   ALL + 27 ) AS c
13d00 6f 6c 32 2c 20 2b 20 53 55 4d 20 28 20 2b 20 63  ol2, + SUM ( + c
13d10 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol0 ) FROM tab0 
13d20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
13d30 37 0d 0a 31 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..199....onlyif
13d40 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
13d50 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
13d60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13d70 65 6c 2d 34 32 35 0d 0a 53 45 4c 45 43 54 20 44  el-425..SELECT D
13d80 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 44  ISTINCT - MAX( D
13d90 49 53 54 49 4e 43 54 20 2d 20 28 20 63 6f 6c 31  ISTINCT - ( col1
13da0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   ) ) FROM tab0..
13db0 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  ----..1....skipi
13dc0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13dd0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13de0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13df0 34 32 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  425..SELECT DIST
13e00 49 4e 43 54 20 2d 20 4d 41 58 20 28 20 44 49 53  INCT - MAX ( DIS
13e10 54 49 4e 43 54 20 2d 20 28 20 63 6f 6c 31 20 29  TINCT - ( col1 )
13e20 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
13e30 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..1....onlyif 
13e40 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
13e50 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
13e60 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
13e70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 36 0d  wsort label-426.
13e80 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
13e90 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  ab1 WHERE - col0
13ea0 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
13eb0 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55 4c   SIGNED ) IS NUL
13ec0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
13ed0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
13ee0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
13ef0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
13f00 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
13f10 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
13f20 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
13f30 74 20 6c 61 62 65 6c 2d 34 32 36 0d 0a 53 45 4c  t label-426..SEL
13f40 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
13f50 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2d 20 43  WHERE - col0 - C
13f60 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
13f70 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d  TEGER ) IS NULL.
13f80 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
13f90 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
13fa0 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
13fb0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f  a11e4d54cad....o
13fc0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
13fd0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
13fe0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
13ff0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
14000 2d 34 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -427..SELECT ALL
14010 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
14020 49 47 4e 45 44 20 29 20 2a 20 2d 20 63 6f 6c 31  IGNED ) * - col1
14030 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53   + col2, col0 AS
14040 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
14050 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 31 0d  .----..NULL..51.
14060 0a 4e 55 4c 4c 0d 0a 38 35 0d 0a 4e 55 4c 4c 0d  .NULL..85..NULL.
14070 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .91....skipif my
14080 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
14090 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
140a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 37  owsort label-427
140b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
140c0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
140d0 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 31 20 2b  GER ) * - col1 +
140e0 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41 53 20 63   col2, col0 AS c
140f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
14100 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 31 0d 0a 4e  ---..NULL..51..N
14110 55 4c 4c 0d 0a 38 35 0d 0a 4e 55 4c 4c 0d 0a 39  ULL..85..NULL..9
14120 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
14130 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
14140 31 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63  1 * - + col1 * c
14150 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20  ol1 * - col0 AS 
14160 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
14170 2d 2d 2d 2d 0d 0a 37 39 37 31 36 31 35 0d 0a 38  ----..7971615..8
14180 30 35 37 30 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65  05707..97....que
14190 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
141a0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
141b0 2b 20 2d 20 39 35 20 46 52 4f 4d 20 74 61 62 31  + - 95 FROM tab1
141c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 36 0d 0a 2d 31  ..----..-146..-1
141d0 38 30 0d 0a 2d 31 38 36 0d 0a 0d 0a 71 75 65 72  80..-186....quer
141e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
141f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
14200 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2d 20   ( + + col2 ) - 
14210 37 37 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  77 * - col2 FROM
14220 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 28 20   tab0 WHERE - ( 
14230 63 6f 6c 32 20 29 20 42 45 54 57 45 45 4e 20 2d  col2 ) BETWEEN -
14240 20 2d 20 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c   - col0 AND NULL
14250 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
14260 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
14270 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  CT + col1 AS col
14280 31 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1, + col0 FROM t
14290 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 34  ab2..----..51..4
142a0 36 0d 0a 36 37 0d 0a 37 35 0d 0a 37 37 0d 0a 36  6..67..75..77..6
142b0 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
142c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
142d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
142e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
142f0 32 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28  2..SELECT + MIN(
14300 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30   DISTINCT + col0
14310 20 29 20 2a 20 2b 20 36 38 20 46 52 4f 4d 20 74   ) * + 68 FROM t
14320 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
14330 2d 0d 0a 33 34 36 38 0d 0a 0d 0a 73 6b 69 70 69  -..3468....skipi
14340 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
14350 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
14360 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14370 34 33 32 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  432..SELECT + MI
14380 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  N ( DISTINCT + c
14390 6f 6c 30 20 29 20 2a 20 2b 20 36 38 20 46 52 4f  ol0 ) * + 68 FRO
143a0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
143b0 2d 2d 2d 2d 0d 0a 33 34 36 38 0d 0a 0d 0a 6f 6e  ----..3468....on
143c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
143d0 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
143e0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
143f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14400 34 33 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  433..SELECT ALL 
14410 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
14420 44 45 43 49 4d 41 4c 20 29 20 2b 20 2d 20 63 6f  DECIMAL ) + - co
14430 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
14440 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
14450 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
14460 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
14470 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
14480 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 33  owsort label-433
14490 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43  ..SELECT ALL - C
144a0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
144b0 41 4c 20 29 20 2b 20 2d 20 63 6f 6c 31 20 46 52  AL ) + - col1 FR
144c0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
144d0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
144e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
144f0 72 74 0d 0a 53 45 4c 45 43 54 20 31 20 46 52 4f  rt..SELECT 1 FRO
14500 4d 20 74 61 62 32 2c 20 74 61 62 32 20 63 6f 72  M tab2, tab2 cor
14510 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
14520 73 20 68 61 73 68 69 6e 67 20 74 6f 20 30 30 31  s hashing to 001
14530 35 35 34 63 32 39 35 32 66 31 61 38 30 35 30 36  554c2952f1a80506
14540 62 31 38 32 65 65 30 34 36 38 36 66 35 0d 0a 0d  b182ee04686f5...
14550 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
14560 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
14570 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
14580 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45  HERE NULL BETWEE
14590 4e 20 63 6f 6c 32 20 41 4e 44 20 2d 20 63 6f 6c  N col2 AND - col
145a0 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  1..----....onlyi
145b0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
145c0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
145d0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
145e0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
145f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
14600 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
14610 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20  COUNT( DISTINCT 
14620 63 6f 6c 30 20 29 20 2b 20 2d 20 43 41 53 54 28  col0 ) + - CAST(
14630 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
14640 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
14650 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14660 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
14670 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
14680 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
14690 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
146a0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
146b0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
146c0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
146d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
146e0 6c 61 62 65 6c 2d 34 33 36 0d 0a 53 45 4c 45 43  label-436..SELEC
146f0 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20  T ALL + COUNT ( 
14700 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20  DISTINCT col0 ) 
14710 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
14720 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c  AS INTEGER ) col
14730 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
14740 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
14750 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
14760 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
14770 4e 43 54 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29  NCT - ( - col2 )
14780 20 2d 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   - - - col2 FROM
14790 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
147a0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
147b0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
147c0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
147d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
147e0 65 6c 2d 34 33 38 0d 0a 53 45 4c 45 43 54 20 41  el-438..SELECT A
147f0 4c 4c 20 2d 20 4d 41 58 28 20 38 33 20 29 20 46  LL - MAX( 83 ) F
14800 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
14810 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a 0d 0a 73  ..----..-83....s
14820 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
14830 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
14840 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14850 62 65 6c 2d 34 33 38 0d 0a 53 45 4c 45 43 54 20  bel-438..SELECT 
14860 41 4c 4c 20 2d 20 4d 41 58 20 28 20 38 33 20 29  ALL - MAX ( 83 )
14870 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
14880 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a 0d  r0..----..-83...
14890 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
148a0 0d 0a 53 45 4c 45 43 54 20 2d 20 41 56 47 20 28  ..SELECT - AVG (
148b0 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   - col2 ) FROM t
148c0 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
148d0 45 20 28 20 4e 55 4c 4c 20 29 20 3e 20 4e 55 4c  E ( NULL ) > NUL
148e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
148f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14900 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
14910 2d 20 2d 20 36 33 20 46 52 4f 4d 20 74 61 62 32  - - 63 FROM tab2
14920 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14930 2d 31 0d 0a 2d 31 32 0d 0a 31 37 0d 0a 0d 0a 6f  -1..-12..17....o
14940 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
14950 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
14960 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14970 74 20 6c 61 62 65 6c 2d 34 34 31 0d 0a 53 45 4c  t label-441..SEL
14980 45 43 54 20 4d 41 58 28 20 41 4c 4c 20 2b 20 2b  ECT MAX( ALL + +
14990 20 37 34 20 29 20 46 52 4f 4d 20 74 61 62 31 20   74 ) FROM tab1 
149a0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
149b0 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
149c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
149d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
149e0 6f 72 74 20 6c 61 62 65 6c 2d 34 34 31 0d 0a 53  ort label-441..S
149f0 45 4c 45 43 54 20 4d 41 58 20 28 20 41 4c 4c 20  ELECT MAX ( ALL 
14a00 2b 20 2b 20 37 34 20 29 20 46 52 4f 4d 20 74 61  + + 74 ) FROM ta
14a10 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
14a20 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..74....onlyif m
14a30 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
14a40 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
14a50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14a60 2d 34 34 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -442..SELECT DIS
14a70 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  TINCT COUNT( * )
14a80 20 2a 20 2d 20 2d 20 35 35 20 41 53 20 63 6f 6c   * - - 55 AS col
14a90 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
14aa0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 0d 0a  or0..----..165..
14ab0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
14ac0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14ad0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14ae0 20 6c 61 62 65 6c 2d 34 34 32 0d 0a 53 45 4c 45   label-442..SELE
14af0 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
14b00 54 20 28 20 2a 20 29 20 2a 20 2d 20 2d 20 35 35  T ( * ) * - - 55
14b10 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
14b20 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
14b30 0d 0a 31 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..165....query I
14b40 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
14b50 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
14b60 48 45 52 45 20 4e 4f 54 20 2d 20 31 31 20 2a 20  HERE NOT - 11 * 
14b70 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 49 53  col0 + - col0 IS
14b80 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
14b90 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
14ba0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
14bb0 6c 31 20 2a 20 63 6f 6c 31 2c 20 63 6f 6c 30 20  l1 * col1, col0 
14bc0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
14bd0 0a 31 39 36 0d 0a 35 31 0d 0a 32 32 30 39 0d 0a  .196..51..2209..
14be0 39 31 0d 0a 32 35 0d 0a 38 35 0d 0a 0d 0a 6f 6e  91..25..85....on
14bf0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
14c00 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
14c10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14c20 20 6c 61 62 65 6c 2d 34 34 35 0d 0a 53 45 4c 45   label-445..SELE
14c30 43 54 20 41 4c 4c 20 2b 20 4d 41 58 28 20 2d 20  CT ALL + MAX( - 
14c40 2b 20 28 20 63 6f 6c 31 20 29 20 29 20 46 52 4f  + ( col1 ) ) FRO
14c50 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
14c60 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
14c70 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
14c80 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
14c90 72 74 20 6c 61 62 65 6c 2d 34 34 35 0d 0a 53 45  rt label-445..SE
14ca0 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 20 28  LECT ALL + MAX (
14cb0 20 2d 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20   - + ( col1 ) ) 
14cc0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
14cd0 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .-1....query II 
14ce0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14cf0 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c  + col2 * + + col
14d00 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  2 AS col1, - col
14d10 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
14d20 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 36 30 30 0d  ab2..----..1600.
14d30 0a 2d 37 37 0d 0a 33 33 36 34 0d 0a 2d 36 37 0d  .-77..3364..-67.
14d40 0a 35 32 39 0d 0a 2d 35 31 0d 0a 0d 0a 71 75 65  .529..-51....que
14d50 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
14d60 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 39 34  LECT + col1 * 94
14d70 20 2a 20 2d 20 35 33 20 46 52 4f 4d 20 74 61 62   * - 53 FROM tab
14d80 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 34 30 38 32  2..----..-254082
14d90 0d 0a 2d 33 33 33 37 39 34 0d 0a 2d 33 38 33 36  ..-333794..-3836
14da0 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  14....onlyif mys
14db0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
14dc0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
14dd0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14de0 34 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  48..SELECT COUNT
14df0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
14e00 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 36 38  WHERE NOT ( - 68
14e10 20 29 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) >= NULL..----
14e20 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
14e30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
14e40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
14e50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 38 0d  wsort label-448.
14e60 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
14e70 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
14e80 45 52 45 20 4e 4f 54 20 28 20 2d 20 36 38 20 29  ERE NOT ( - 68 )
14e90 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
14ea0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
14eb0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
14ec0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  LL * FROM tab2 A
14ed0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
14ee0 32 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 3d 20 4e  2 * - + col0 = N
14ef0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
14f00 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
14f10 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
14f20 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
14f30 48 45 52 45 20 2b 20 63 6f 6c 31 20 3d 20 2b 20  HERE + col1 = + 
14f40 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
14f50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
14f60 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
14f70 6c 30 20 2a 20 2d 20 35 33 20 2b 20 2b 20 63 6f  l0 * - 53 + + co
14f80 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
14f90 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
14fa0 2d 2d 0d 0a 34 36 32 31 0d 0a 35 32 34 30 0d 0a  --..4621..5240..
14fb0 38 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  842....onlyif my
14fc0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
14fd0 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
14fe0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
14ff0 6f 72 74 20 6c 61 62 65 6c 2d 34 35 32 0d 0a 53  ort label-452..S
15000 45 4c 45 43 54 20 34 33 20 63 6f 6c 32 2c 20 2b  ELECT 43 col2, +
15010 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
15020 45 43 49 4d 41 4c 20 29 20 46 52 4f 4d 20 74 61  ECIMAL ) FROM ta
15030 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 4e 55  b2..----..43..NU
15040 4c 4c 0d 0a 34 33 0d 0a 4e 55 4c 4c 0d 0a 34 33  LL..43..NULL..43
15050 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
15060 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15070 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
15080 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
15090 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
150a0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
150b0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
150c0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
150d0 72 74 20 6c 61 62 65 6c 2d 34 35 32 0d 0a 53 45  rt label-452..SE
150e0 4c 45 43 54 20 34 33 20 63 6f 6c 32 2c 20 2b 20  LECT 43 col2, + 
150f0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
15100 45 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  EAL ) FROM tab2.
15110 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 4e 55 4c 4c 0d  .----..43..NULL.
15120 0a 34 33 0d 0a 4e 55 4c 4c 0d 0a 34 33 0d 0a 4e  .43..NULL..43..N
15130 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ULL....query II 
15140 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15150 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
15160 2a 20 2d 20 2d 20 34 39 20 2b 20 63 6f 6c 31 2c  * - - 49 + col1,
15170 20 2b 20 31 20 41 53 20 63 6f 6c 32 20 46 52 4f   + 1 AS col2 FRO
15180 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
15190 32 32 32 0d 0a 31 0d 0a 2d 34 36 39 0d 0a 31 0d  222..1..-469..1.
151a0 0a 2d 34 38 35 30 0d 0a 31 0d 0a 0d 0a 71 75 65  .-4850..1....que
151b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
151c0 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20  LECT ALL col0 + 
151d0 2d 20 38 38 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  - 88 + + col0 + 
151e0 38 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  83 AS col2 FROM 
151f0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 0d  tab2..----..123.
15200 0a 31 34 35 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c 79  .145..87....only
15210 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
15220 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
15230 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15240 61 62 65 6c 2d 34 35 35 0d 0a 53 45 4c 45 43 54  abel-455..SELECT
15250 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
15260 38 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  81 FROM tab2..--
15270 2d 2d 0d 0a 32 34 33 0d 0a 0d 0a 73 6b 69 70 69  --..243....skipi
15280 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
15290 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
152a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
152b0 34 35 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  455..SELECT + CO
152c0 55 4e 54 20 28 20 2a 20 29 20 2a 20 38 31 20 46  UNT ( * ) * 81 F
152d0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
152e0 32 34 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  243....query I r
152f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
15300 20 37 30 20 2a 20 2b 20 34 39 20 46 52 4f 4d 20   70 * + 49 FROM 
15310 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 33 30  tab0..----..3430
15320 0d 0a 33 34 33 30 0d 0a 33 34 33 30 0d 0a 0d 0a  ..3430..3430....
15330 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
15340 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
15350 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
15360 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20  ERE NOT NULL >= 
15370 63 6f 6c 30 20 2a 20 2b 20 39 39 0d 0a 2d 2d 2d  col0 * + 99..---
15380 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
15390 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
153a0 20 37 36 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20   76 * - col0 AS 
153b0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
153c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
153d0 31 34 30 0d 0a 2d 36 36 31 32 0d 0a 2d 37 33 37  140..-6612..-737
153e0 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
153f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
15400 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
15410 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
15420 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
15430 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 39 38 20  COUNT( * ) * 98 
15440 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15450 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
15460 0a 2d 32 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-294....skipif 
15470 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15480 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
15490 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
154a0 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
154b0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 39 38  COUNT ( * ) * 98
154c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
154d0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
154e0 0d 0a 2d 32 39 34 0d 0a 0d 0a 73 6b 69 70 69 66  ..-294....skipif
154f0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
15500 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
15510 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
15520 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
15530 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
15540 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
15550 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
15560 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
15570 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L <> NULL..----.
15580 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15590 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
155a0 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
155b0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
155c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
155d0 6c 61 62 65 6c 2d 34 36 31 0d 0a 53 45 4c 45 43  label-461..SELEC
155e0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38 37 20  T DISTINCT + 87 
155f0 44 49 56 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a  DIV - + COUNT( *
15600 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
15610 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 0d 0a 0d 0a  0..----..-29....
15620 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
15630 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
15640 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15650 61 62 65 6c 2d 34 36 31 0d 0a 53 45 4c 45 43 54  abel-461..SELECT
15660 20 44 49 53 54 49 4e 43 54 20 2b 20 38 37 20 2f   DISTINCT + 87 /
15670 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   - + COUNT ( * )
15680 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
15690 0a 2d 2d 2d 2d 0d 0a 2d 32 39 0d 0a 0d 0a 6f 6e  .----..-29....on
156a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
156b0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
156c0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
156d0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
156e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
156f0 2d 34 36 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -462..SELECT DIS
15700 54 49 4e 43 54 20 2d 20 31 37 20 44 49 56 20 2d  TINCT - 17 DIV -
15710 20 28 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d 20   ( + MAX( ALL - 
15720 2d 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20  - col2 ) ) FROM 
15730 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
15740 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
15750 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15760 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
15770 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36  rowsort label-46
15780 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
15790 43 54 20 2d 20 31 37 20 2f 20 2d 20 28 20 2b 20  CT - 17 / - ( + 
157a0 4d 41 58 20 28 20 41 4c 4c 20 2d 20 2d 20 63 6f  MAX ( ALL - - co
157b0 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  l2 ) ) FROM tab0
157c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
157d0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
157e0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
157f0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
15800 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
15810 74 20 6c 61 62 65 6c 2d 34 36 33 0d 0a 53 45 4c  t label-463..SEL
15820 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
15830 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
15840 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e  LL NOT BETWEEN N
15850 55 4c 4c 20 41 4e 44 20 2b 20 43 41 53 54 28 20  ULL AND + CAST( 
15860 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
15870 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
15880 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15890 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
158a0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
158b0 2d 34 36 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -463..SELECT * F
158c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
158d0 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
158e0 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
158f0 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
15900 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d  S INTEGER )..---
15910 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
15920 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
15930 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
15940 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15950 6c 61 62 65 6c 2d 34 36 34 0d 0a 53 45 4c 45 43  label-464..SELEC
15960 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 43 41 53  T - col0 + - CAS
15970 54 28 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47  T( - col2 AS SIG
15980 4e 45 44 20 29 20 2a 20 2b 20 63 6f 6c 31 20 63  NED ) * + col1 c
15990 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
159a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39   cor0..----..129
159b0 33 0d 0a 32 31 30 0d 0a 33 31 30 35 0d 0a 0d 0a  3..210..3105....
159c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
159d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
159e0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
159f0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
15a00 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
15a10 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
15a20 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
15a30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36  rowsort label-46
15a40 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  4..SELECT - col0
15a50 20 2b 20 2d 20 43 41 53 54 20 28 20 2d 20 63 6f   + - CAST ( - co
15a60 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
15a70 2a 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52  * + col1 col0 FR
15a80 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
15a90 0a 2d 2d 2d 2d 0d 0a 31 32 39 33 0d 0a 32 31 30  .----..1293..210
15aa0 0d 0a 33 31 30 35 0d 0a 0d 0a 71 75 65 72 79 20  ..3105....query 
15ab0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15ac0 54 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20  T col1 + - col0 
15ad0 2d 20 2b 20 2b 20 34 39 20 46 52 4f 4d 20 74 61  - + + 49 FROM ta
15ae0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
15af0 0d 0a 2d 33 36 0d 0a 2d 34 34 0d 0a 2d 35 37 0d  ..-36..-44..-57.
15b00 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15b10 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
15b20 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
15b30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15b40 62 65 6c 2d 34 36 36 0d 0a 53 45 4c 45 43 54 20  bel-466..SELECT 
15b50 2d 20 43 41 53 54 28 20 38 33 20 41 53 20 53 49  - CAST( 83 AS SI
15b60 47 4e 45 44 20 29 20 2b 20 2b 20 2d 20 63 6f 6c  GNED ) + + - col
15b70 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  0 col1 FROM tab1
15b80 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34 0d 0a 2d 31  ..----..-134..-1
15b90 36 38 0d 0a 2d 31 37 34 0d 0a 0d 0a 73 6b 69 70  68..-174....skip
15ba0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
15bb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
15bc0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
15bd0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
15be0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
15bf0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
15c00 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
15c10 6f 72 74 20 6c 61 62 65 6c 2d 34 36 36 0d 0a 53  ort label-466..S
15c20 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 38  ELECT - CAST ( 8
15c30 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  3 AS INTEGER ) +
15c40 20 2b 20 2d 20 63 6f 6c 30 20 63 6f 6c 31 20 46   + - col0 col1 F
15c50 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
15c60 2d 31 33 34 0d 0a 2d 31 36 38 0d 0a 2d 31 37 34  -134..-168..-174
15c70 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
15c80 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
15c90 32 20 2b 20 2d 20 2b 20 63 6f 6c 30 2c 20 63 6f  2 + - + col0, co
15ca0 6c 30 20 2b 20 2d 20 38 20 46 52 4f 4d 20 74 61  l0 + - 8 FROM ta
15cb0 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  b1 WHERE NULL IS
15cc0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
15cd0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15ce0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
15cf0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
15d00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 38 0d  wsort label-468.
15d10 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 30  .SELECT ALL + 90
15d20 20 2a 20 4d 49 4e 28 20 2b 20 33 31 20 29 20 2b   * MIN( + 31 ) +
15d30 20 2b 20 2b 20 53 55 4d 28 20 2b 20 2b 20 37 33   + + SUM( + + 73
15d40 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
15d50 2d 2d 0d 0a 33 30 30 39 0d 0a 0d 0a 73 6b 69 70  --..3009....skip
15d60 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
15d70 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
15d80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15d90 2d 34 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -468..SELECT ALL
15da0 20 2b 20 39 30 20 2a 20 4d 49 4e 20 28 20 2b 20   + 90 * MIN ( + 
15db0 33 31 20 29 20 2b 20 2b 20 2b 20 53 55 4d 20 28  31 ) + + + SUM (
15dc0 20 2b 20 2b 20 37 33 20 29 20 46 52 4f 4d 20 74   + + 73 ) FROM t
15dd0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 30 39 0d  ab0..----..3009.
15de0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15df0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
15e00 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
15e10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15e20 61 62 65 6c 2d 34 36 39 0d 0a 53 45 4c 45 43 54  abel-469..SELECT
15e30 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20   DISTINCT CAST( 
15e40 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
15e50 29 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20  ) + + + col2 AS 
15e60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
15e70 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
15e80 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
15e90 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
15ea0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15eb0 65 6c 2d 34 36 39 0d 0a 53 45 4c 45 43 54 20 44  el-469..SELECT D
15ec0 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e  ISTINCT CAST ( N
15ed0 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20  ULL AS REAL ) + 
15ee0 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  + + col2 AS col0
15ef0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
15f00 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
15f10 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
15f20 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
15f30 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
15f40 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
15f50 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
15f60 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
15f70 32 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63  2 * - col2 + - c
15f80 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 28  ol0 + + col1 + (
15f90 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d 20 63 6f   - col1 ) * - co
15fa0 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l1 col0 FROM tab
15fb0 32 0d 0a 2d 2d 2d 2d 0d 0a 33 31 33 35 0d 0a 37  2..----..3135..7
15fc0 35 34 32 0d 0a 37 38 34 35 0d 0a 0d 0a 73 6b 69  542..7845....ski
15fd0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
15fe0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
15ff0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
16000 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
16010 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
16020 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
16030 4c 20 2d 20 39 37 20 63 6f 6c 32 20 46 52 4f 4d  L - 97 col2 FROM
16040 20 74 61 62 32 2c 20 74 61 62 32 20 41 53 20 63   tab2, tab2 AS c
16050 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or0..----..9 val
16060 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65  ues hashing to e
16070 34 61 36 62 64 38 34 38 61 36 39 32 32 36 63 62  4a6bd848a69226cb
16080 62 37 61 64 33 64 31 35 34 62 65 33 32 31 62 0d  b7ad3d154be321b.
16090 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
160a0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
160b0 4e 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  NCT col2 FROM ta
160c0 62 32 20 57 48 45 52 45 20 2d 20 2b 20 33 20 2f  b2 WHERE - + 3 /
160d0 20 2b 20 63 6f 6c 30 20 2b 20 33 33 20 49 53 20   + col0 + 33 IS 
160e0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
160f0 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e  23..40..58....on
16100 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
16110 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
16120 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16130 20 6c 61 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45   label-473..SELE
16140 43 54 20 41 4c 4c 20 32 34 20 2b 20 2b 20 4d 41  CT ALL 24 + + MA
16150 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20  X( ALL + col2 ) 
16160 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  * - COUNT( * ) F
16170 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16180 2d 32 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -264....skipif m
16190 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
161a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
161b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 33  owsort label-473
161c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 34 20  ..SELECT ALL 24 
161d0 2b 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20  + + MAX ( ALL + 
161e0 63 6f 6c 32 20 29 20 2a 20 2d 20 43 4f 55 4e 54  col2 ) * - COUNT
161f0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
16200 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 34 0d 0a 0d 0a  ..----..-264....
16210 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
16220 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
16230 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
16240 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  0 WHERE NOT col1
16250 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 28 20   * - col0 * - ( 
16260 38 31 20 29 20 3d 20 32 33 20 2b 20 2b 20 2d 20  81 ) = 23 + + - 
16270 31 34 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  14..----..9 valu
16280 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
16290 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
162a0 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
162b0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
162c0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
162d0 4e 43 54 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  NCT col0 + - col
162e0 30 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c  0 AS col1, - col
162f0 32 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  2 * col0 FROM ta
16300 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
16310 0d 0a 30 0d 0a 2d 37 30 35 0d 0a 30 0d 0a 2d 38  ..0..-705..0..-8
16320 37 30 0d 0a 30 0d 0a 2d 39 36 30 33 0d 0a 0d 0a  70..0..-9603....
16330 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
16340 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
16350 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
16360 45 52 45 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29  ERE + ( - col1 )
16370 20 2f 20 2b 20 2d 20 33 36 20 49 53 20 4e 4f 54   / + - 36 IS NOT
16380 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
16390 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
163a0 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
163b0 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
163c0 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  d....query III r
163d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
163e0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
163f0 57 48 45 52 45 20 63 6f 6c 32 20 2b 20 2b 20 2b  WHERE col2 + + +
16400 20 37 32 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20   72 IN ( - col0 
16410 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
16420 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
16430 43 54 20 41 4c 4c 20 34 31 20 2b 20 63 6f 6c 32  CT ALL 41 + col2
16440 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * + col0 AS col
16450 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
16460 2d 0d 0a 37 34 36 0d 0a 39 31 31 0d 0a 39 36 34  -..746..911..964
16470 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
16480 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
16490 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
164a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37  rowsort label-47
164b0 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
164c0 43 54 20 4d 49 4e 28 20 2d 20 2d 20 63 6f 6c 31  CT MIN( - - col1
164d0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
164e0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
164f0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
16500 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
16510 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16520 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16530 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16540 34 37 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  479..SELECT DIST
16550 49 4e 43 54 20 4d 49 4e 20 28 20 2d 20 2d 20 63  INCT MIN ( - - c
16560 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol1 ) FROM tab1 
16570 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
16580 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
16590 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
165a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
165b0 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
165c0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
165d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
165e0 34 38 30 0d 0a 53 45 4c 45 43 54 20 2d 20 33 20  480..SELECT - 3 
165f0 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + + CAST( NULL A
16600 53 20 44 45 43 49 4d 41 4c 20 29 20 46 52 4f 4d  S DECIMAL ) FROM
16610 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
16620 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
16630 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
16640 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
16650 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
16660 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16670 20 6c 61 62 65 6c 2d 34 38 30 0d 0a 53 45 4c 45   label-480..SELE
16680 43 54 20 2d 20 33 20 2b 20 2b 20 43 41 53 54 20  CT - 3 + + CAST 
16690 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
166a0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
166b0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
166c0 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ULL ) IS NULL..-
166d0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
166e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
166f0 35 32 20 41 53 20 63 6f 6c 30 2c 20 38 35 20 2b  52 AS col0, 85 +
16700 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 30   + col0 - + col0
16710 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
16720 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 38 35  r0..----..52..85
16730 0d 0a 35 32 0d 0a 38 35 0d 0a 35 32 0d 0a 38 35  ..52..85..52..85
16740 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
16750 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
16760 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
16770 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
16780 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
16790 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
167a0 45 4c 45 43 54 20 2d 20 31 38 20 41 53 20 63 6f  ELECT - 18 AS co
167b0 6c 32 2c 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52  l2, col1 col1 FR
167c0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
167d0 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 31 0d 0a 2d  .----..-18..1..-
167e0 31 38 0d 0a 32 31 0d 0a 2d 31 38 0d 0a 38 31 0d  18..21..-18..81.
167f0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
16800 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 33  ort..SELECT - 53
16810 20 41 53 20 63 6f 6c 30 2c 20 2b 20 37 39 20 2a   AS col0, + 79 *
16820 20 2b 20 2b 20 38 20 41 53 20 63 6f 6c 30 20 46   + + 8 AS col0 F
16830 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
16840 2d 2d 2d 0d 0a 2d 35 33 0d 0a 36 33 32 0d 0a 2d  ---..-53..632..-
16850 35 33 0d 0a 36 33 32 0d 0a 2d 35 33 0d 0a 36 33  53..632..-53..63
16860 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  2....skipif post
16870 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
16880 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
16890 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
168a0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
168b0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
168c0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 35 20  SELECT ALL + 65 
168d0 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 63 6f  AS col1, col1 co
168e0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
168f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a  cor0..----..65..
16900 31 34 0d 0a 36 35 0d 0a 34 37 0d 0a 36 35 0d 0a  14..65..47..65..
16910 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
16920 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
16930 53 54 49 4e 43 54 20 2b 20 39 36 20 41 53 20 63  STINCT + 96 AS c
16940 6f 6c 30 2c 20 35 30 20 41 53 20 63 6f 6c 30 20  ol0, 50 AS col0 
16950 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
16960 0a 39 36 0d 0a 35 30 0d 0a 0d 0a 71 75 65 72 79  .96..50....query
16970 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
16980 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
16990 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab2 WHERE NOT +
169a0 20 39 33 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b   93 * + - col2 +
169b0 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   - col1 IS NOT N
169c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
169d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
169e0 4c 45 43 54 20 38 33 20 41 53 20 63 6f 6c 30 20  LECT 83 AS col0 
169f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
16a00 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
16a10 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
16a20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
16a30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
16a40 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
16a50 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a  WHERE NOT col2 *
16a60 20 2b 20 63 6f 6c 32 20 3d 20 4e 55 4c 4c 0d 0a   + col2 = NULL..
16a70 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
16a80 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
16a90 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
16aa0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
16ab0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
16ac0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 39 0d 0a  sort label-489..
16ad0 53 45 4c 45 43 54 20 2d 20 2d 20 28 20 43 4f 55  SELECT - - ( COU
16ae0 4e 54 28 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  NT( + + CAST( NU
16af0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
16b00 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
16b10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor0..----..0...
16b20 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
16b30 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
16b40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16b50 6c 61 62 65 6c 2d 34 38 39 0d 0a 53 45 4c 45 43  label-489..SELEC
16b60 54 20 2d 20 2d 20 28 20 43 4f 55 4e 54 20 28 20  T - - ( COUNT ( 
16b70 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
16b80 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 29  AS INTEGER ) ) )
16b90 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
16ba0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f  r0..----..0....o
16bb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
16bc0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
16bd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16be0 74 20 6c 61 62 65 6c 2d 34 39 30 0d 0a 53 45 4c  t label-490..SEL
16bf0 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d 28 20 2d  ECT ALL - SUM( -
16c00 20 63 6f 6c 30 20 29 20 2a 20 43 4f 55 4e 54 28   col0 ) * COUNT(
16c10 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
16c20 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
16c30 2d 2d 2d 2d 0d 0a 35 39 37 0d 0a 0d 0a 73 6b 69  ----..597....ski
16c40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
16c50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
16c60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
16c70 6c 2d 34 39 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-490..SELECT AL
16c80 4c 20 2d 20 53 55 4d 20 28 20 2d 20 63 6f 6c 30  L - SUM ( - col0
16c90 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) * COUNT ( * )
16ca0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
16cb0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
16cc0 0d 0a 35 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..597....query I
16cd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16ce0 20 44 49 53 54 49 4e 43 54 20 2d 20 32 38 20 41   DISTINCT - 28 A
16cf0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
16d00 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
16d10 4f 49 4e 20 74 61 62 31 20 63 6f 72 31 0d 0a 2d  OIN tab1 cor1..-
16d20 2d 2d 2d 0d 0a 2d 32 38 0d 0a 0d 0a 71 75 65 72  ---..-28....quer
16d30 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16d40 45 43 54 20 2b 20 28 20 2b 20 35 32 20 29 20 2d  ECT + ( + 52 ) -
16d50 20 2b 20 28 20 2d 20 32 36 20 29 20 41 53 20 63   + ( - 26 ) AS c
16d60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
16d70 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
16d80 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d   tab2 AS cor1..-
16d90 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
16da0 73 68 69 6e 67 20 74 6f 20 32 61 66 66 34 32 64  shing to 2aff42d
16db0 33 65 30 31 35 30 32 32 61 37 33 38 39 30 35 30  3e015022a7389050
16dc0 39 30 61 32 30 64 66 64 34 0d 0a 0d 0a 71 75 65  90a20dfd4....que
16dd0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
16de0 4c 45 43 54 20 2b 20 38 37 20 2b 20 63 6f 6c 30  LECT + 87 + col0
16df0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
16e00 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 31  b0..----..102..1
16e10 37 34 0d 0a 31 38 34 0d 0a 0d 0a 71 75 65 72 79  74..184....query
16e20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
16e30 43 54 20 2b 20 2d 20 38 35 20 41 53 20 63 6f 6c  CT + - 85 AS col
16e40 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
16e50 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
16e60 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
16e70 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
16e80 69 6e 67 20 74 6f 20 38 65 62 63 38 66 66 61 66  ing to 8ebc8ffaf
16e90 62 31 35 31 37 65 61 30 34 65 33 61 36 66 63 34  b1517ea04e3a6fc4
16ea0 30 35 39 64 38 38 61 0d 0a 0d 0a 71 75 65 72 79  059d88a....query
16eb0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
16ec0 43 54 20 63 6f 6c 31 20 2b 20 2b 20 36 32 20 46  CT col1 + + 62 F
16ed0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
16ee0 2d 2d 2d 0d 0a 31 30 39 0d 0a 36 37 0d 0a 37 36  ---..109..67..76
16ef0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
16f00 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
16f10 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
16f20 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
16f30 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
16f40 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
16f50 45 4c 45 43 54 20 2d 20 2d 20 36 38 20 2b 20 2b  ELECT - - 68 + +
16f60 20 2d 20 63 6f 6c 32 20 63 6f 6c 31 2c 20 34 31   - col2 col1, 41
16f70 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
16f80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 34  r0..----..-31..4
16f90 31 0d 0a 32 31 0d 0a 34 31 0d 0a 35 38 0d 0a 34  1..21..41..58..4
16fa0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
16fb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36  sort..SELECT - 6
16fc0 39 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 36  9 * + col0 + + 6
16fd0 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  6 AS col0 FROM t
16fe0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
16ff0 2d 0d 0a 2d 35 39 33 37 0d 0a 2d 36 36 32 37 0d  -..-5937..-6627.
17000 0a 2d 39 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49  .-969....query I
17010 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17020 20 2d 20 35 39 20 41 53 20 63 6f 6c 32 20 46 52   - 59 AS col2 FR
17030 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
17040 57 48 45 52 45 20 28 20 2d 20 63 6f 6c 31 20 29  WHERE ( - col1 )
17050 20 2f 20 33 39 20 2a 20 38 31 20 49 53 20 4e 55   / 39 * 81 IS NU
17060 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
17070 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
17080 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
17090 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 2c 20 2b  col2 * - col1, +
170a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
170b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
170c0 31 37 33 0d 0a 34 36 0d 0a 33 30 38 30 0d 0a 36  173..46..3080..6
170d0 34 0d 0a 33 38 38 36 0d 0a 37 35 0d 0a 0d 0a 6f  4..3886..75....o
170e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
170f0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
17100 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17110 74 20 6c 61 62 65 6c 2d 35 30 30 0d 0a 53 45 4c  t label-500..SEL
17120 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
17130 4e 54 28 20 2a 20 29 20 2b 20 2b 20 28 20 2b 20  NT( * ) + + ( + 
17140 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  ( + COUNT( * ) )
17150 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
17160 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..6....skipif 
17170 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
17180 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
17190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30  rowsort label-50
171a0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
171b0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b  CT COUNT ( * ) +
171c0 20 2b 20 28 20 2b 20 28 20 2b 20 43 4f 55 4e 54   + ( + ( + COUNT
171d0 20 28 20 2a 20 29 20 29 20 29 20 46 52 4f 4d 20   ( * ) ) ) FROM 
171e0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d  tab2..----..6...
171f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
17200 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
17210 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
17220 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 20   + col1 IS NULL 
17230 41 4e 44 20 4e 4f 54 20 33 37 20 4e 4f 54 20 49  AND NOT 37 NOT I
17240 4e 20 28 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d  N ( + col2 )..--
17250 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
17260 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
17270 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
17280 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
17290 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
172a0 72 74 20 6c 61 62 65 6c 2d 35 30 32 0d 0a 53 45  rt label-502..SE
172b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
172c0 35 34 20 2d 20 2d 20 4d 41 58 28 20 43 41 53 54  54 - - MAX( CAST
172d0 28 20 39 31 20 41 53 20 53 49 47 4e 45 44 20 29  ( 91 AS SIGNED )
172e0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
172f0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
17300 2d 2d 0d 0a 33 37 0d 0a 0d 0a 73 6b 69 70 69 66  --..37....skipif
17310 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
17320 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
17330 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
17340 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  02..SELECT DISTI
17350 4e 43 54 20 2d 20 35 34 20 2d 20 2d 20 4d 41 58  NCT - 54 - - MAX
17360 20 28 20 43 41 53 54 20 28 20 39 31 20 41 53 20   ( CAST ( 91 AS 
17370 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20 63  INTEGER ) ) AS c
17380 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
17390 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d   cor0..----..37.
173a0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
173b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
173c0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
173d0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
173e0 4e 4f 54 20 34 30 20 2b 20 2b 20 2d 20 63 6f 6c  NOT 40 + + - col
173f0 30 20 3c 3e 20 2b 20 32 38 0d 0a 2d 2d 2d 2d 0d  0 <> + 28..----.
17400 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17410 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
17420 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
17430 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 34 0d  wsort label-504.
17440 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
17450 20 2b 20 36 20 2a 20 2b 20 43 4f 55 4e 54 28 20   + 6 * + COUNT( 
17460 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
17470 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
17480 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a 73 6b 69 70 69  ---..18....skipi
17490 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
174a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
174b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
174c0 35 30 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  504..SELECT DIST
174d0 49 4e 43 54 20 2b 20 36 20 2a 20 2b 20 43 4f 55  INCT + 6 * + COU
174e0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
174f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
17500 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a  r0..----..18....
17510 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
17520 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
17530 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17540 72 74 20 6c 61 62 65 6c 2d 35 30 35 0d 0a 53 45  rt label-505..SE
17550 4c 45 43 54 20 28 20 2d 20 4d 41 58 28 20 41 4c  LECT ( - MAX( AL
17560 4c 20 2d 20 63 6f 6c 32 20 29 20 29 20 46 52 4f  L - col2 ) ) FRO
17570 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33  M tab2..----..23
17580 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
17590 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
175a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
175b0 72 74 20 6c 61 62 65 6c 2d 35 30 35 0d 0a 53 45  rt label-505..SE
175c0 4c 45 43 54 20 28 20 2d 20 4d 41 58 20 28 20 41  LECT ( - MAX ( A
175d0 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 29 20 46 52  LL - col2 ) ) FR
175e0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
175f0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
17600 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
17610 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
17620 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
17630 74 20 6c 61 62 65 6c 2d 35 30 36 0d 0a 53 45 4c  t label-506..SEL
17640 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
17650 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
17660 4f 54 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c  OT + + CAST( NUL
17670 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20  L AS SIGNED ) / 
17680 2d 20 37 37 20 2d 20 63 6f 6c 31 20 3c 3d 20 2d  - 77 - col1 <= -
17690 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   col1..----....s
176a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
176b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
176c0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
176d0 6c 61 62 65 6c 2d 35 30 36 0d 0a 53 45 4c 45 43  label-506..SELEC
176e0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
176f0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
17700 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
17710 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
17720 2d 20 37 37 20 2d 20 63 6f 6c 31 20 3c 3d 20 2d  - 77 - col1 <= -
17730 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col1..----....q
17740 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
17750 53 45 4c 45 43 54 20 41 4c 4c 20 37 30 20 46 52  SELECT ALL 70 FR
17760 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
17770 57 48 45 52 45 20 28 20 2d 20 35 32 20 29 20 2a  WHERE ( - 52 ) *
17780 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   + col1 IS NULL.
17790 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
177a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
177b0 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f   + col1 * + + co
177c0 6c 32 20 2a 20 2b 20 2d 20 28 20 38 30 20 29 20  l2 * + - ( 80 ) 
177d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
177e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 36 34 30 30  0..----..-246400
177f0 0d 0a 2d 33 31 30 38 38 30 0d 0a 2d 39 33 38 34  ..-310880..-9384
17800 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
17810 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
17820 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
17830 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
17840 3e 20 2b 20 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  > + 7..----....o
17850 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
17860 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
17870 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
17880 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
17890 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
178a0 65 6c 2d 35 31 30 0d 0a 53 45 4c 45 43 54 20 2b  el-510..SELECT +
178b0 20 33 38 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55   38 AS col0, COU
178c0 4e 54 28 20 2a 20 29 20 2f 20 2d 20 43 41 53 54  NT( * ) / - CAST
178d0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
178e0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
178f0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a  tab0..----..38..
17900 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
17910 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17920 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
17930 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
17940 30 0d 0a 53 45 4c 45 43 54 20 2b 20 33 38 20 41  0..SELECT + 38 A
17950 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20 28 20  S col0, COUNT ( 
17960 2a 20 29 20 2f 20 2d 20 43 41 53 54 20 28 20 4e  * ) / - CAST ( N
17970 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
17980 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
17990 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 4e 55  b0..----..38..NU
179a0 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  LL....query III 
179b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
179c0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
179d0 57 48 45 52 45 20 2d 20 32 34 20 49 53 20 4e 4f  WHERE - 24 IS NO
179e0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
179f0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
17a00 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
17a10 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
17a20 61 64 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ad....skipif pos
17a30 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
17a40 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
17a50 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
17a60 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
17a70 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
17a80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
17a90 20 2d 20 63 6f 6c 31 2c 20 2b 20 28 20 2b 20 2b   - col1, + ( + +
17aa0 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f   col2 ) col2 FRO
17ab0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
17ac0 0d 0a 39 39 0d 0a 2d 32 31 0d 0a 31 30 0d 0a 2d  ..99..-21..10..-
17ad0 38 31 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  81..47....onlyif
17ae0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
17af0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
17b00 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
17b10 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 33 0d 0a  sort label-513..
17b20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
17b30 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col1 col1 FROM t
17b40 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 37 38  ab2 WHERE NOT 78
17b50 20 3e 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   > CAST( NULL AS
17b60 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d   SIGNED )..----.
17b70 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
17b80 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
17b90 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
17ba0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
17bb0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
17bc0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
17bd0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
17be0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
17bf0 2d 35 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -513..SELECT DIS
17c00 54 49 4e 43 54 20 63 6f 6c 31 20 63 6f 6c 31 20  TINCT col1 col1 
17c10 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
17c20 4e 4f 54 20 37 38 20 3e 20 43 41 53 54 20 28 20  NOT 78 > CAST ( 
17c30 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
17c40 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
17c50 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
17c60 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
17c70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
17c80 62 65 6c 2d 35 31 34 0d 0a 53 45 4c 45 43 54 20  bel-514..SELECT 
17c90 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 2d 20  DISTINCT SUM( - 
17ca0 39 33 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  93 ) FROM tab1..
17cb0 2d 2d 2d 2d 0d 0a 2d 32 37 39 0d 0a 0d 0a 73 6b  ----..-279....sk
17cc0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17cd0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17ce0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17cf0 65 6c 2d 35 31 34 0d 0a 53 45 4c 45 43 54 20 44  el-514..SELECT D
17d00 49 53 54 49 4e 43 54 20 53 55 4d 20 28 20 2d 20  ISTINCT SUM ( - 
17d10 39 33 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  93 ) FROM tab1..
17d20 2d 2d 2d 2d 0d 0a 2d 32 37 39 0d 0a 0d 0a 71 75  ----..-279....qu
17d30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
17d40 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 2b  ELECT col1 * - +
17d50 20 63 6f 6c 31 20 2a 20 2d 20 33 38 20 41 53 20   col1 * - 38 AS 
17d60 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
17d70 48 45 52 45 20 4e 4f 54 20 2b 20 33 34 20 49 53  HERE NOT + 34 IS
17d80 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 37 30   NULL..----..170
17d90 35 38 32 0d 0a 32 32 35 33 30 32 0d 0a 39 38 38  582..225302..988
17da0 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  38....query I ro
17db0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
17dc0 4c 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63  L + - col0 + + c
17dd0 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
17de0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
17df0 0d 0a 2d 38 0d 0a 31 33 0d 0a 35 0d 0a 0d 0a 71  ..-8..13..5....q
17e00 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
17e10 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
17e20 74 61 62 32 20 57 48 45 52 45 20 36 38 20 4e 4f  tab2 WHERE 68 NO
17e30 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
17e40 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
17e50 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
17e60 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
17e70 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
17e80 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
17e90 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
17ea0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
17eb0 54 20 2b 20 36 20 2b 20 2d 20 63 6f 6c 31 20 2a  T + 6 + - col1 *
17ec0 20 2d 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f   - col1 col0 FRO
17ed0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
17ee0 2d 2d 2d 2d 0d 0a 34 34 37 0d 0a 36 35 36 37 0d  ----..447..6567.
17ef0 0a 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .7....query I ro
17f00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
17f10 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30 20  STINCT - + col0 
17f20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
17f30 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 35 20  0 WHERE NOT + 5 
17f40 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
17f50 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
17f60 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
17f70 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
17f80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
17f90 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
17fa0 43 54 20 2b 20 28 20 2d 20 2b 20 4d 41 58 28 20  CT + ( - + MAX( 
17fb0 2b 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20  + col2 ) ) FROM 
17fc0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
17fd0 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70 69  --..-58....skipi
17fe0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
17ff0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
18000 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18010 35 32 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  520..SELECT DIST
18020 49 4e 43 54 20 2b 20 28 20 2d 20 2b 20 4d 41 58  INCT + ( - + MAX
18030 20 28 20 2b 20 63 6f 6c 32 20 29 20 29 20 46 52   ( + col2 ) ) FR
18040 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
18050 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e  .----..-58....on
18060 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
18070 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
18080 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18090 20 6c 61 62 65 6c 2d 35 32 31 0d 0a 53 45 4c 45   label-521..SELE
180a0 43 54 20 2b 20 2b 20 33 38 20 2b 20 2d 20 32 35  CT + + 38 + - 25
180b0 20 2b 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20   + - + COUNT( * 
180c0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
180d0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
180e0 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..10....skipif 
180f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
18100 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
18110 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
18120 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 33 38  1..SELECT + + 38
18130 20 2b 20 2d 20 32 35 20 2b 20 2d 20 2b 20 43 4f   + - 25 + - + CO
18140 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
18150 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
18160 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d  or0..----..10...
18170 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18180 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
18190 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
181a0 30 20 57 48 45 52 45 20 28 20 63 6f 6c 32 20 42  0 WHERE ( col2 B
181b0 45 54 57 45 45 4e 20 63 6f 6c 30 20 2a 20 63 6f  ETWEEN col0 * co
181c0 6c 30 20 2b 20 63 6f 6c 31 20 41 4e 44 20 4e 55  l0 + col1 AND NU
181d0 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  LL )..----....on
181e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
181f0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
18200 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
18210 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
18220 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
18230 2d 35 32 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -523..SELECT DIS
18240 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 2b 20 43  TINCT - MAX( + C
18250 41 53 54 28 20 2b 20 2d 20 35 20 41 53 20 53 49  AST( + - 5 AS SI
18260 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 30  GNED ) ) AS col0
18270 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
18280 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73  r0..----..5....s
18290 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
182a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
182b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
182c0 62 65 6c 2d 35 32 33 0d 0a 53 45 4c 45 43 54 20  bel-523..SELECT 
182d0 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20 28  DISTINCT - MAX (
182e0 20 2b 20 43 41 53 54 20 28 20 2b 20 2d 20 35 20   + CAST ( + - 5 
182f0 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41  AS INTEGER ) ) A
18300 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
18310 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18320 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
18330 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18340 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
18350 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
18360 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
18370 43 54 20 2d 20 2d 20 36 33 20 2b 20 2d 20 2b 20  CT - - 63 + - + 
18380 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
18390 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
183a0 2d 2d 0d 0a 36 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..60....skipif
183b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
183c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
183d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
183e0 32 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  24..SELECT DISTI
183f0 4e 43 54 20 2d 20 2d 20 36 33 20 2b 20 2d 20 2b  NCT - - 63 + - +
18400 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
18410 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
18420 2d 2d 2d 2d 0d 0a 36 30 0d 0a 0d 0a 71 75 65 72  ----..60....quer
18430 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18440 45 43 54 20 2b 20 36 34 20 2b 20 2d 20 2d 20 63  ECT + 64 + - - c
18450 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
18460 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34   tab2..----..104
18470 0d 0a 31 32 32 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c  ..122..87....onl
18480 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
18490 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
184a0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
184b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
184c0 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  6..SELECT + CAST
184d0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
184e0 20 29 20 2b 20 2d 20 2d 20 28 20 36 35 20 29 20   ) + - - ( 65 ) 
184f0 2a 20 31 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  * 11 AS col0 FRO
18500 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
18510 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
18520 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
18530 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
18540 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18550 20 6c 61 62 65 6c 2d 35 32 36 0d 0a 53 45 4c 45   label-526..SELE
18560 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT + CAST ( NULL
18570 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
18580 2d 20 2d 20 28 20 36 35 20 29 20 2a 20 31 31 20  - - ( 65 ) * 11 
18590 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
185a0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
185b0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ULL..NULL....que
185c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
185d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
185e0 2b 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 29  + + ( - col0 ) )
185f0 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
18600 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
18610 2d 0d 0a 2d 31 30 34 0d 0a 2d 31 33 33 0d 0a 2d  -..-104..-133..-
18620 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  69....query I ro
18630 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
18640 4c 20 31 38 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  L 18 + + col1 * 
18650 2d 20 2b 20 38 31 20 2b 20 2d 20 63 6f 6c 31 20  - + 81 + - col1 
18660 2a 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  * + + col2 FROM 
18670 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 38  tab2..----..-528
18680 36 0d 0a 2d 39 32 39 35 0d 0a 2d 39 32 39 39 0d  6..-9295..-9299.
18690 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
186a0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
186b0 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 31 20 2a   col0 - + col1 *
186c0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
186d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
186e0 31 39 36 0d 0a 2d 32 39 37 0d 0a 2d 33 38 32 32  196..-297..-3822
186f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
18700 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
18710 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
18720 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 30  owsort label-530
18730 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
18740 4e 54 28 20 2a 20 29 20 2b 20 2d 20 36 37 20 2a  NT( * ) + - 67 *
18750 20 2d 20 35 35 20 41 53 20 63 6f 6c 32 20 46 52   - 55 AS col2 FR
18760 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
18770 36 38 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  688....skipif my
18780 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
18790 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
187a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 30 0d  wsort label-530.
187b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
187c0 54 20 28 20 2a 20 29 20 2b 20 2d 20 36 37 20 2a  T ( * ) + - 67 *
187d0 20 2d 20 35 35 20 41 53 20 63 6f 6c 32 20 46 52   - 55 AS col2 FR
187e0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
187f0 36 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  688....onlyif my
18800 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
18810 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
18820 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
18830 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
18840 6f 72 74 20 6c 61 62 65 6c 2d 35 33 31 0d 0a 53  ort label-531..S
18850 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
18860 41 53 54 28 20 2d 20 43 4f 55 4e 54 28 20 2a 20  AST( - COUNT( * 
18870 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20  ) AS SIGNED ) - 
18880 2d 20 34 33 20 2a 20 34 38 20 2b 20 37 36 20 46  - 43 * 48 + 76 F
18890 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
188a0 32 31 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  2137....skipif m
188b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
188c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
188d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 31  owsort label-531
188e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
188f0 54 20 43 41 53 54 20 28 20 2d 20 43 4f 55 4e 54  T CAST ( - COUNT
18900 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47 45   ( * ) AS INTEGE
18910 52 20 29 20 2d 20 2d 20 34 33 20 2a 20 34 38 20  R ) - - 43 * 48 
18920 2b 20 37 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 76 FROM tab2..
18930 2d 2d 2d 2d 0d 0a 32 31 33 37 0d 0a 0d 0a 6f 6e  ----..2137....on
18940 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
18950 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
18960 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18970 20 6c 61 62 65 6c 2d 35 33 32 0d 0a 53 45 4c 45   label-532..SELE
18980 43 54 20 41 4c 4c 20 2b 20 28 20 4d 49 4e 28 20  CT ALL + ( MIN( 
18990 44 49 53 54 49 4e 43 54 20 2b 20 32 37 20 29 20  DISTINCT + 27 ) 
189a0 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
189b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d  or0..----..27...
189c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
189d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
189e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
189f0 6c 61 62 65 6c 2d 35 33 32 0d 0a 53 45 4c 45 43  label-532..SELEC
18a00 54 20 41 4c 4c 20 2b 20 28 20 4d 49 4e 20 28 20  T ALL + ( MIN ( 
18a10 44 49 53 54 49 4e 43 54 20 2b 20 32 37 20 29 20  DISTINCT + 27 ) 
18a20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
18a30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d  or0..----..27...
18a40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18a50 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39  ..SELECT ALL + 9
18a60 37 20 2d 20 39 31 20 46 52 4f 4d 20 74 61 62 31  7 - 91 FROM tab1
18a70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18a80 36 0d 0a 36 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79  6..6..6....query
18a90 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
18aa0 4c 45 43 54 20 2b 20 32 34 20 2d 20 2d 20 63 6f  LECT + 24 - - co
18ab0 6c 31 2c 20 2b 20 63 6f 6c 30 2c 20 2d 20 63 6f  l1, + col0, - co
18ac0 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
18ad0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
18ae0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
18af0 68 69 6e 67 20 74 6f 20 66 31 62 30 37 37 31 33  hing to f1b07713
18b00 66 31 66 65 65 35 66 62 32 37 66 35 61 61 66 61  f1fee5fb27f5aafa
18b10 37 61 31 35 35 66 63 63 0d 0a 0d 0a 71 75 65 72  7a155fcc....quer
18b20 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
18b30 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20  LECT ALL col2 * 
18b40 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20  col2 AS col1, - 
18b50 31 38 20 2b 20 31 33 20 2a 20 2d 20 2b 20 63 6f  18 + 13 * - + co
18b60 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
18b70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 30 30  cor0..----..1600
18b80 0d 0a 2d 35 33 38 0d 0a 33 33 36 34 0d 0a 2d 37  ..-538..3364..-7
18b90 37 32 0d 0a 35 32 39 0d 0a 2d 33 31 37 0d 0a 0d  72..529..-317...
18ba0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18bb0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
18bc0 2a 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63  * + + col1 + + c
18bd0 6f 6c 32 20 2b 20 2d 20 2d 20 36 37 20 46 52 4f  ol2 + - - 67 FRO
18be0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
18bf0 2d 2d 2d 2d 0d 0a 2d 32 35 31 31 0d 0a 2d 34 33  ----..-2511..-43
18c00 36 34 0d 0a 2d 35 38 32 32 0d 0a 0d 0a 71 75 65  64..-5822....que
18c10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
18c20 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  LECT ALL - col1 
18c30 2a 20 2b 20 34 33 20 2d 20 2d 20 2d 20 63 6f 6c  * + 43 - - - col
18c40 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
18c50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33 39  or0..----..-2239
18c60 0d 0a 2d 32 39 35 36 0d 0a 2d 33 33 37 35 0d 0a  ..-2956..-3375..
18c70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
18c80 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
18c90 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
18ca0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
18cb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18cc0 61 62 65 6c 2d 35 33 38 0d 0a 53 45 4c 45 43 54  abel-538..SELECT
18cd0 20 41 4c 4c 20 43 41 53 54 28 20 2d 20 43 4f 55   ALL CAST( - COU
18ce0 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e 45  NT( * ) AS SIGNE
18cf0 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
18d00 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
18d10 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53  OSS JOIN tab0 AS
18d20 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   cor1..----..-9.
18d30 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
18d40 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
18d50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18d60 74 20 6c 61 62 65 6c 2d 35 33 38 0d 0a 53 45 4c  t label-538..SEL
18d70 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20 2d  ECT ALL CAST ( -
18d80 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
18d90 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
18da0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
18db0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
18dc0 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
18dd0 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-9....onlyif 
18de0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
18df0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
18e00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18e10 6c 2d 35 33 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-539..SELECT - 
18e20 2b 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2b 20 35  + SUM( ALL - + 5
18e30 37 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  7 ) AS col0 FROM
18e40 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
18e50 0d 0a 31 37 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..171....skipif 
18e60 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
18e70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
18e80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
18e90 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 53 55  9..SELECT - + SU
18ea0 4d 20 28 20 41 4c 4c 20 2d 20 2b 20 35 37 20 29  M ( ALL - + 57 )
18eb0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
18ec0 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b0 cor0..----..1
18ed0 37 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  71....query II r
18ee0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
18ef0 20 63 6f 6c 32 20 2a 20 2d 20 28 20 63 6f 6c 30   col2 * - ( col0
18f00 20 29 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f   ), + col1 AS co
18f10 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
18f20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 39 36  cor0..----..4896
18f30 0d 0a 31 34 0d 0a 35 30 31 35 0d 0a 35 0d 0a 36  ..14..5015..5..6
18f40 31 38 38 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79  188..47....query
18f50 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
18f60 45 43 54 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  ECT - col1 AS co
18f70 6c 31 2c 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20  l1, col1 * col1 
18f80 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
18f90 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 31 39  0..----..-14..19
18fa0 36 0d 0a 2d 34 37 0d 0a 32 32 30 39 0d 0a 2d 35  6..-47..2209..-5
18fb0 0d 0a 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..25....query II
18fc0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18fd0 20 2d 20 2d 20 38 38 2c 20 2b 20 63 6f 6c 31 20   - - 88, + col1 
18fe0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
18ff0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
19000 0a 38 38 0d 0a 31 34 0d 0a 38 38 0d 0a 34 37 0d  .88..14..88..47.
19010 0a 38 38 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20  .88..5....query 
19020 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19030 54 20 31 30 20 46 52 4f 4d 20 74 61 62 32 20 41  T 10 FROM tab2 A
19040 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
19050 20 4e 55 4c 4c 20 3c 20 63 6f 6c 32 20 2f 20 2d   NULL < col2 / -
19060 20 2d 20 34 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   - 45..----....o
19070 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
19080 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
19090 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
190a0 74 20 6c 61 62 65 6c 2d 35 34 34 0d 0a 53 45 4c  t label-544..SEL
190b0 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
190c0 20 2a 20 35 38 20 46 52 4f 4d 20 74 61 62 32 20   * 58 FROM tab2 
190d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34  cor0..----..-174
190e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
190f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
19100 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
19110 72 74 20 6c 61 62 65 6c 2d 35 34 34 0d 0a 53 45  rt label-544..SE
19120 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
19130 20 29 20 2a 20 35 38 20 46 52 4f 4d 20 74 61 62   ) * 58 FROM tab
19140 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  2 cor0..----..-1
19150 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  74....onlyif mys
19160 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
19170 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
19180 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
19190 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
191a0 72 74 20 6c 61 62 65 6c 2d 35 34 35 0d 0a 53 45  rt label-545..SE
191b0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28  LECT ALL + CAST(
191c0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
191d0 29 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 2d 20  ) * + - CAST( - 
191e0 43 4f 55 4e 54 28 20 2d 20 2d 20 35 36 20 29 20  COUNT( - - 56 ) 
191f0 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
19200 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
19210 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
19220 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
19230 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
19240 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
19250 6f 72 74 20 6c 61 62 65 6c 2d 35 34 35 0d 0a 53  ort label-545..S
19260 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54  ELECT ALL + CAST
19270 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
19280 45 52 20 29 20 2a 20 2b 20 2d 20 43 41 53 54 20  ER ) * + - CAST 
19290 28 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 2d 20  ( - COUNT ( - - 
192a0 35 36 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  56 ) AS INTEGER 
192b0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
192c0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
192d0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
192e0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
192f0 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
19300 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab2 WHERE NOT +
19310 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 32   col0 + + + col2
19320 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <= NULL..----..
19330 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
19340 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
19350 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
19360 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
19370 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19380 61 62 65 6c 2d 35 34 37 0d 0a 53 45 4c 45 43 54  abel-547..SELECT
19390 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54   - MIN( DISTINCT
193a0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
193b0 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74  IGNED ) ) FROM t
193c0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
193d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
193e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
193f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19400 74 20 6c 61 62 65 6c 2d 35 34 37 0d 0a 53 45 4c  t label-547..SEL
19410 45 43 54 20 2d 20 4d 49 4e 20 28 20 44 49 53 54  ECT - MIN ( DIST
19420 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  INCT CAST ( NULL
19430 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
19440 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
19450 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
19460 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19470 20 2b 20 2b 20 34 34 20 41 53 20 63 6f 6c 31 20   + + 44 AS col1 
19480 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
19490 2d 2d 2d 2d 0d 0a 34 34 0d 0a 34 34 0d 0a 34 34  ----..44..44..44
194a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
194b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 31  ort..SELECT + 81
194c0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
194d0 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 2a 20  r0 WHERE col1 * 
194e0 2d 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20  - - col2 + col0 
194f0 3c 20 2b 20 37 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  < + 70..----....
19500 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
19510 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19520 20 63 6f 6c 30 20 2b 20 2b 20 32 35 20 46 52 4f   col0 + + 25 FRO
19530 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab1..----..11
19540 30 0d 0a 31 31 36 0d 0a 37 36 0d 0a 0d 0a 6f 6e  0..116..76....on
19550 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
19560 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
19570 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
19580 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19590 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  51..SELECT ALL +
195a0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
195b0 49 47 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f  IGNED ) col1 FRO
195c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
195d0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 63  ROSS JOIN tab2 c
195e0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
195f0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
19600 64 37 61 37 39 30 31 65 34 37 63 31 35 31 35 35  d7a7901e47c15155
19610 34 30 34 61 66 66 30 64 32 31 36 66 65 30 62 0d  404aff0d216fe0b.
19620 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
19630 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
19640 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
19650 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
19660 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
19670 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
19680 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
19690 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
196a0 2d 35 35 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -551..SELECT ALL
196b0 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
196c0 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 31  S INTEGER ) col1
196d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
196e0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
196f0 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  b2 cor1..----..9
19700 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
19710 74 6f 20 63 64 37 61 37 39 30 31 65 34 37 63 31  to cd7a7901e47c1
19720 35 31 35 35 34 30 34 61 66 66 30 64 32 31 36 66  5155404aff0d216f
19730 65 30 62 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  e0b....query I r
19740 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
19750 20 2b 20 32 39 20 2a 20 2b 20 63 6f 6c 30 20 46   + 29 * + col0 F
19760 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
19770 0d 0a 2d 2d 2d 2d 0d 0a 31 33 33 34 0d 0a 31 38  ..----..1334..18
19780 35 36 0d 0a 32 31 37 35 0d 0a 0d 0a 71 75 65 72  56..2175....quer
19790 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
197a0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
197b0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
197c0 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 3c 3d  col2 + - col2 <=
197d0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
197e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
197f0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d  SELECT ALL - ( -
19800 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   + col2 ) AS col
19810 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
19820 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36  or0..----..59..6
19830 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  8..96....onlyif 
19840 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
19850 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
19860 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
19870 6f 72 74 20 6c 61 62 65 6c 2d 35 35 35 0d 0a 53  ort label-555..S
19880 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 34 20  ELECT CAST( + 4 
19890 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
198a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
198b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a   cor0..----..4..
198c0 34 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  4..4....skipif m
198d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
198e0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
198f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 35  owsort label-555
19900 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20  ..SELECT CAST ( 
19910 2b 20 34 20 41 53 20 49 4e 54 45 47 45 52 20 29  + 4 AS INTEGER )
19920 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
19930 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
19940 0d 0a 34 0d 0a 34 0d 0a 34 0d 0a 0d 0a 71 75 65  ..4..4..4....que
19950 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
19960 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
19970 20 28 20 63 6f 6c 30 20 29 2c 20 63 6f 6c 30 20   ( col0 ), col0 
19980 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
19990 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
199a0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
199b0 2d 2d 0d 0a 2d 31 35 0d 0a 31 35 0d 0a 2d 38 37  --..-15..15..-87
199c0 0d 0a 38 37 0d 0a 2d 39 37 0d 0a 39 37 0d 0a 0d  ..87..-97..97...
199d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
199e0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
199f0 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20  - col0 AS col2, 
19a00 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
19a10 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
19a20 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
19a30 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
19a40 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
19a50 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
19a60 45 44 20 74 79 70 65 3a 20 44 45 43 49 4d 41 4c  ED type: DECIMAL
19a70 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
19a80 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
19a90 2d 35 35 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -558..SELECT DIS
19aa0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
19ab0 31 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53 54  1 WHERE NOT CAST
19ac0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
19ad0 20 29 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   ) + CAST( NULL 
19ae0 41 53 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20  AS DECIMAL ) IS 
19af0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
19b00 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19b10 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19b20 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
19b30 61 62 65 6c 2d 35 35 38 0d 0a 53 45 4c 45 43 54  abel-558..SELECT
19b40 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
19b50 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
19b60 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
19b70 4e 54 45 47 45 52 20 29 20 2b 20 43 41 53 54 20  NTEGER ) + CAST 
19b80 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
19b90 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
19ba0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
19bb0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
19bc0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
19bd0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 39 0d 0a  sort label-559..
19be0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 37 36 20  SELECT ALL - 76 
19bf0 2d 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  - - + COUNT( * )
19c00 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
19c10 0d 0a 2d 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-73....skipif 
19c20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
19c30 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
19c40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
19c50 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
19c60 37 36 20 2d 20 2d 20 2b 20 43 4f 55 4e 54 20 28  76 - - + COUNT (
19c70 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   * ) FROM tab2..
19c80 2d 2d 2d 2d 0d 0a 2d 37 33 0d 0a 0d 0a 6f 6e 6c  ----..-73....onl
19c90 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
19ca0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
19cb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19cc0 6c 61 62 65 6c 2d 35 36 30 0d 0a 53 45 4c 45 43  label-560..SELEC
19cd0 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20  T DISTINCT MAX( 
19ce0 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 2d 20 37  ALL + col2 ) - 7
19cf0 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
19d00 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 0d  ab1..----..17...
19d10 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
19d20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
19d30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19d40 6c 61 62 65 6c 2d 35 36 30 0d 0a 53 45 4c 45 43  label-560..SELEC
19d50 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28  T DISTINCT MAX (
19d60 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 2d 20   ALL + col2 ) - 
19d70 37 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  79 AS col2 FROM 
19d80 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a  tab1..----..17..
19d90 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
19da0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
19db0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
19dc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19dd0 65 6c 2d 35 36 31 0d 0a 53 45 4c 45 43 54 20 63  el-561..SELECT c
19de0 6f 6c 31 20 2b 20 2d 20 36 20 44 49 56 20 2b 20  ol1 + - 6 DIV + 
19df0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
19e00 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d  ----..1..21..81.
19e10 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
19e20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
19e30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19e40 74 20 6c 61 62 65 6c 2d 35 36 31 0d 0a 53 45 4c  t label-561..SEL
19e50 45 43 54 20 63 6f 6c 31 20 2b 20 2d 20 36 20 2f  ECT col1 + - 6 /
19e60 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
19e70 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  0..----..1..21..
19e80 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  81....query II r
19e90 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
19ea0 20 2b 20 37 30 20 41 53 20 63 6f 6c 31 2c 20 63   + 70 AS col1, c
19eb0 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
19ec0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
19ed0 0d 0a 2d 37 30 0d 0a 31 34 0d 0a 2d 37 30 0d 0a  ..-70..14..-70..
19ee0 34 37 0d 0a 2d 37 30 0d 0a 35 0d 0a 0d 0a 71 75  47..-70..5....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 2d  ELECT DISTINCT -
19f10 20 35 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53   57 FROM tab1 AS
19f20 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
19f30 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
19f40 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
19f50 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
19f60 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
19f70 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
19f80 54 20 4e 55 4c 4c 20 3c 3e 20 36 35 20 2a 20 2d  T NULL <> 65 * -
19f90 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
19fa0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19fb0 0d 0a 53 45 4c 45 43 54 20 39 36 20 2a 20 2d 20  ..SELECT 96 * - 
19fc0 2d 20 39 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 96 FROM tab1..
19fd0 2d 2d 2d 2d 0d 0a 39 32 31 36 0d 0a 39 32 31 36  ----..9216..9216
19fe0 0d 0a 39 32 31 36 0d 0a 0d 0a 71 75 65 72 79 20  ..9216....query 
19ff0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1a000 54 20 44 49 53 54 49 4e 43 54 20 2b 20 37 32 20  T DISTINCT + 72 
1a010 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 31 36 20  * + col0 * - 16 
1a020 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1a030 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 39 39 32 0d  2..----..-52992.
1a040 0a 2d 37 33 37 32 38 0d 0a 2d 38 36 34 30 30 0d  .-73728..-86400.
1a050 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1a060 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
1a070 20 28 20 2b 20 38 38 20 29 20 46 52 4f 4d 20 74   ( + 88 ) FROM t
1a080 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
1a090 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
1a0a0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
1a0b0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 34  ues hashing to 4
1a0c0 36 37 33 30 31 66 38 38 37 36 31 34 65 62 37 62  67301f887614eb7b
1a0d0 65 64 61 32 32 63 35 36 31 62 30 66 61 64 32 0d  eda22c561b0fad2.
1a0e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a0f0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1a100 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
1a110 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1a120 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a130 6c 61 62 65 6c 2d 35 36 38 0d 0a 53 45 4c 45 43  label-568..SELEC
1a140 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 44 49 53  T ALL + SUM( DIS
1a150 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 29  TINCT - + col1 )
1a160 20 44 49 56 20 2d 20 39 37 20 41 53 20 63 6f 6c   DIV - 97 AS col
1a170 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
1a180 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
1a190 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1a1a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1a1b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 38  owsort label-568
1a1c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53  ..SELECT ALL + S
1a1d0 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UM ( DISTINCT - 
1a1e0 2b 20 63 6f 6c 31 20 29 20 2f 20 2d 20 39 37 20  + col1 ) / - 97 
1a1f0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1a200 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  1..----..0....on
1a210 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1a220 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1a230 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a240 20 6c 61 62 65 6c 2d 35 36 39 0d 0a 53 45 4c 45   label-569..SELE
1a250 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
1a260 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
1a270 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1a280 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 28 20 4e   NOT NULL >= ( N
1a290 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ULL )..----..0..
1a2a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1a2b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1a2c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a2d0 20 6c 61 62 65 6c 2d 35 36 39 0d 0a 53 45 4c 45   label-569..SELE
1a2e0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
1a2f0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
1a300 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1a310 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 28 20  E NOT NULL >= ( 
1a320 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  NULL )..----..0.
1a330 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1a340 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1a350 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
1a360 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1a370 28 20 63 6f 6c 31 20 29 20 2a 20 2d 20 63 6f 6c  ( col1 ) * - col
1a380 31 20 2b 20 2b 20 63 6f 6c 31 20 3c 3d 20 4e 55  1 + + col1 <= NU
1a390 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
1a3a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1a3b0 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2d  ECT ALL col0 * -
1a3c0 20 2b 20 37 34 20 2b 20 2b 20 28 20 63 6f 6c 32   + 74 + + ( col2
1a3d0 20 29 20 2b 20 31 20 2d 20 2d 20 63 6f 6c 31 20   ) + 1 - - col1 
1a3e0 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * - col0 FROM ta
1a3f0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1a400 0d 0a 2d 32 32 37 37 0d 0a 2d 37 31 37 35 0d 0a  ..-2277..-7175..
1a410 2d 38 32 35 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -8254....skipif 
1a420 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1a430 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1a440 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1a450 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1a460 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a470 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 34 33  t..SELECT - - 43
1a480 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1a490 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1a4a0 54 20 2b 20 63 6f 6c 30 20 3c 20 2d 20 2d 20 28  T + col0 < - - (
1a4b0 20 32 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d   21 )..----..43.
1a4c0 0a 34 33 0d 0a 34 33 0d 0a 0d 0a 71 75 65 72 79  .43..43....query
1a4d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1a4e0 43 54 20 2d 20 34 32 20 46 52 4f 4d 20 74 61 62  CT - 42 FROM tab
1a4f0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1a500 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3c 3d 20  NOT ( NULL ) <= 
1a510 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
1a520 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1a530 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1a540 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1a550 72 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53 45  rt label-574..SE
1a560 4c 45 43 54 20 2d 20 38 36 20 2a 20 43 4f 55 4e  LECT - 86 * COUN
1a570 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
1a580 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 0d 0a 0d 0a  ..----..-258....
1a590 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1a5a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1a5b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1a5c0 61 62 65 6c 2d 35 37 34 0d 0a 53 45 4c 45 43 54  abel-574..SELECT
1a5d0 20 2d 20 38 36 20 2a 20 43 4f 55 4e 54 20 28 20   - 86 * COUNT ( 
1a5e0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  * ) FROM tab0..-
1a5f0 2d 2d 2d 0d 0a 2d 32 35 38 0d 0a 0d 0a 73 6b 69  ---..-258....ski
1a600 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1a610 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1a620 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1a630 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1a640 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
1a650 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1a660 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 63 6f 6c  ISTINCT col2 col
1a670 30 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0, + col1 FROM t
1a680 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 32  ab0..----..10..2
1a690 31 0d 0a 34 37 0d 0a 38 31 0d 0a 39 39 0d 0a 31  1..47..81..99..1
1a6a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1a6b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1a6c0 28 20 31 39 20 29 20 46 52 4f 4d 20 74 61 62 32  ( 19 ) FROM tab2
1a6d0 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
1a6e0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
1a6f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1a700 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1a710 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1a720 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1a730 6c 2d 35 37 37 0d 0a 53 45 4c 45 43 54 20 33 31  l-577..SELECT 31
1a740 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2b   + col1 + col1 +
1a750 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
1a760 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2b 20   SIGNED ) * + + 
1a770 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
1a780 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1a790 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1a7a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a7b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1a7c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1a7d0 37 37 0d 0a 53 45 4c 45 43 54 20 33 31 20 2b 20  77..SELECT 31 + 
1a7e0 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  col1 + col1 + + 
1a7f0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
1a800 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 2b 20 63  NTEGER ) * + + c
1a810 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
1a820 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1a830 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
1a840 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1a850 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1a860 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
1a870 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 38 0d  wsort label-578.
1a880 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1a890 61 62 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3d  ab0 WHERE col1 =
1a8a0 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
1a8b0 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c 30   SIGNED ) + col0
1a8c0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
1a8d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a8e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1a8f0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1a900 2d 35 37 38 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -578..SELECT * F
1a910 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 63  ROM tab0 WHERE c
1a920 6f 6c 31 20 3d 20 2b 20 43 41 53 54 20 28 20 4e  ol1 = + CAST ( N
1a930 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
1a940 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
1a950 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1a960 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1a970 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1a980 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1a990 62 65 6c 2d 35 37 39 0d 0a 53 45 4c 45 43 54 20  bel-579..SELECT 
1a9a0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2b 20  col0 * + col2 + 
1a9b0 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  - - col0 AS col0
1a9c0 2c 20 2b 20 36 39 20 2f 20 2b 20 43 41 53 54 28  , + 69 / + CAST(
1a9d0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
1a9e0 29 20 2a 20 2d 20 63 6f 6c 30 20 63 6f 6c 30 2c  ) * - col0 col0,
1a9f0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
1aa00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor0..----..9 va
1aa10 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
1aa20 35 65 66 38 30 30 61 66 32 38 35 36 64 33 30 33  5ef800af2856d303
1aa30 38 66 31 66 35 64 39 32 61 37 63 31 64 61 33 61  8f1f5d92a7c1da3a
1aa40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1aa50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1aa60 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
1aa70 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1aa80 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1aa90 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1aaa0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1aab0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1aac0 62 65 6c 2d 35 37 39 0d 0a 53 45 4c 45 43 54 20  bel-579..SELECT 
1aad0 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2b 20  col0 * + col2 + 
1aae0 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  - - col0 AS col0
1aaf0 2c 20 2b 20 36 39 20 2f 20 2b 20 43 41 53 54 20  , + 69 / + CAST 
1ab00 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1ab10 52 20 29 20 2a 20 2d 20 63 6f 6c 30 20 63 6f 6c  R ) * - col0 col
1ab20 30 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  0, col2 FROM tab
1ab30 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20  0 cor0..----..9 
1ab40 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1ab50 6f 20 35 65 66 38 30 30 61 66 32 38 35 36 64 33  o 5ef800af2856d3
1ab60 30 33 38 66 31 66 35 64 39 32 61 37 63 31 64 61  038f1f5d92a7c1da
1ab70 33 61 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  3a....onlyif mys
1ab80 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1ab90 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1aba0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1abb0 38 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  80..SELECT - COU
1abc0 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20 28  NT( DISTINCT - (
1abd0 20 2b 20 2b 20 63 6f 6c 31 20 29 20 29 20 63 6f   + + col1 ) ) co
1abe0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
1abf0 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
1ac00 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ac10 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
1ac20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1ac30 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1ac40 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1ac50 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1ac60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1ac70 74 20 6c 61 62 65 6c 2d 35 38 30 0d 0a 53 45 4c  t label-580..SEL
1ac80 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 44 49  ECT - COUNT ( DI
1ac90 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 2b 20 63  STINCT - ( + + c
1aca0 6f 6c 31 20 29 20 29 20 63 6f 6c 30 20 46 52 4f  ol1 ) ) col0 FRO
1acb0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
1acc0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1acd0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1ace0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1acf0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1ad00 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1ad10 74 20 6c 61 62 65 6c 2d 35 38 31 0d 0a 53 45 4c  t label-581..SEL
1ad20 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20  ECT ALL - CAST( 
1ad30 2d 20 2d 20 43 41 53 54 28 20 2b 20 43 4f 55 4e  - - CAST( + COUN
1ad40 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e 45 44  T( * ) AS SIGNED
1ad50 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41   ) AS SIGNED ) A
1ad60 53 20 63 6f 6c 31 2c 20 38 39 20 41 53 20 63 6f  S col1, 89 AS co
1ad70 6c 30 20 46 52 4f 4d 20 74 61 62 30 2c 20 74 61  l0 FROM tab0, ta
1ad80 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1ad90 0d 0a 2d 39 0d 0a 38 39 0d 0a 0d 0a 73 6b 69 70  ..-9..89....skip
1ada0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1adb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1adc0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1add0 6c 2d 35 38 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-581..SELECT AL
1ade0 4c 20 2d 20 43 41 53 54 20 28 20 2d 20 2d 20 43  L - CAST ( - - C
1adf0 41 53 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20  AST ( + COUNT ( 
1ae00 2a 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  * ) AS INTEGER )
1ae10 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
1ae20 20 63 6f 6c 31 2c 20 38 39 20 41 53 20 63 6f 6c   col1, 89 AS col
1ae30 30 20 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62  0 FROM tab0, tab
1ae40 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1ae50 0a 2d 39 0d 0a 38 39 0d 0a 0d 0a 6f 6e 6c 79 69  .-9..89....onlyi
1ae60 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1ae70 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1ae80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1ae90 62 65 6c 2d 35 38 32 0d 0a 53 45 4c 45 43 54 20  bel-582..SELECT 
1aea0 44 49 53 54 49 4e 43 54 20 33 39 20 2a 20 43 4f  DISTINCT 39 * CO
1aeb0 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
1aec0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1aed0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
1aee0 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 33  b2 cor1..----..3
1aef0 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  51....skipif mys
1af00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1af10 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1af20 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 32 0d 0a  sort label-582..
1af30 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1af40 33 39 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29  39 * COUNT ( * )
1af50 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1af60 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
1af70 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31 0d   JOIN tab2 cor1.
1af80 0a 2d 2d 2d 2d 0d 0a 33 35 31 0d 0a 0d 0a 6f 6e  .----..351....on
1af90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1afa0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1afb0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1afc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1afd0 38 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  83..SELECT DISTI
1afe0 4e 43 54 20 63 6f 6c 32 20 44 49 56 20 2b 20 63  NCT col2 DIV + c
1aff0 6f 6c 30 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63  ol0 - col2 * + c
1b000 6f 6c 32 20 2a 20 33 39 20 46 52 4f 4d 20 74 61  ol2 * 39 FROM ta
1b010 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1b020 0d 0a 2d 31 33 35 37 35 39 0d 0a 2d 31 38 30 33  ..-135759..-1803
1b030 33 36 0d 0a 2d 33 35 39 34 32 33 0d 0a 0d 0a 73  36..-359423....s
1b040 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1b050 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1b060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b070 62 65 6c 2d 35 38 33 0d 0a 53 45 4c 45 43 54 20  bel-583..SELECT 
1b080 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f 20  DISTINCT col2 / 
1b090 2b 20 63 6f 6c 30 20 2d 20 63 6f 6c 32 20 2a 20  + col0 - col2 * 
1b0a0 2b 20 63 6f 6c 32 20 2a 20 33 39 20 46 52 4f 4d  + col2 * 39 FROM
1b0b0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1b0c0 2d 2d 2d 0d 0a 2d 31 33 35 37 35 39 0d 0a 2d 31  ---..-135759..-1
1b0d0 38 30 33 33 36 0d 0a 2d 33 35 39 34 32 33 0d 0a  80336..-359423..
1b0e0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1b0f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
1b100 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1b110 57 48 45 52 45 20 2b 20 28 20 2d 20 2d 20 63 6f  WHERE + ( - - co
1b120 6c 31 20 29 20 2a 20 63 6f 6c 31 20 2a 20 63 6f  l1 ) * col1 * co
1b130 6c 32 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 <> NULL..----
1b140 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1b150 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1b160 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1b170 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1b180 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b190 20 6c 61 62 65 6c 2d 35 38 35 0d 0a 53 45 4c 45   label-585..SELE
1b1a0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20  CT DISTINCT + - 
1b1b0 43 41 53 54 28 20 2d 20 53 55 4d 28 20 41 4c 4c  CAST( - SUM( ALL
1b1c0 20 2d 20 2b 20 36 32 20 29 20 41 53 20 53 49 47   - + 62 ) AS SIG
1b1d0 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20  NED ) FROM tab0 
1b1e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1b1f0 31 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  186....skipif my
1b200 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b210 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1b220 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 35 0d  wsort label-585.
1b230 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b240 20 2b 20 2d 20 43 41 53 54 20 28 20 2d 20 53 55   + - CAST ( - SU
1b250 4d 20 28 20 41 4c 4c 20 2d 20 2b 20 36 32 20 29  M ( ALL - + 62 )
1b260 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
1b270 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1b280 0a 2d 2d 2d 2d 0d 0a 2d 31 38 36 0d 0a 0d 0a 71  .----..-186....q
1b290 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1b2a0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1b2b0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
1b2c0 52 45 20 2b 20 38 36 20 2b 20 2b 20 2d 20 38 31  RE + 86 + + - 81
1b2d0 20 2a 20 63 6f 6c 31 20 3d 20 63 6f 6c 30 0d 0a   * col1 = col0..
1b2e0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
1b2f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b300 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c  DISTINCT - + col
1b310 32 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 33  2 - col0 + - - 3
1b320 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  6 AS col2 FROM t
1b330 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1b340 2d 0d 0a 2d 33 33 0d 0a 2d 36 38 0d 0a 2d 39 37  -..-33..-68..-97
1b350 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1b360 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
1b370 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20  l1 + - col2 + + 
1b380 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  - col2 AS col0 F
1b390 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1b3a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 33 0d 0a 2d 31  ..----..-123..-1
1b3b0 38 33 0d 0a 2d 32 30 36 0d 0a 0d 0a 71 75 65 72  83..-206....quer
1b3c0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1b3d0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
1b3e0 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 39 38   tab1 WHERE - 98
1b3f0 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20 41 4e   BETWEEN col1 AN
1b400 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
1b410 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1b420 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1b430 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 34 37   tab0 WHERE + 47
1b440 20 2a 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   * col2 IS NOT N
1b450 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
1b460 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
1b470 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
1b480 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
1b490 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1b4a0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
1b4b0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
1b4c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b4d0 62 65 6c 2d 35 39 31 0d 0a 53 45 4c 45 43 54 20  bel-591..SELECT 
1b4e0 63 6f 6c 32 20 44 49 56 20 33 20 2a 20 2b 20 63  col2 DIV 3 * + c
1b4f0 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol1 col1 FROM ta
1b500 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 35 0d 0a  b0..----..1215..
1b510 33 33 0d 0a 36 33 0d 0a 0d 0a 73 6b 69 70 69 66  33..63....skipif
1b520 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1b530 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
1b540 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1b550 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1b560 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1b570 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1b580 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b590 74 20 6c 61 62 65 6c 2d 35 39 31 0d 0a 53 45 4c  t label-591..SEL
1b5a0 45 43 54 20 63 6f 6c 32 20 2f 20 33 20 2a 20 2b  ECT col2 / 3 * +
1b5b0 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20   col1 col1 FROM 
1b5c0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 35  tab0..----..1215
1b5d0 0d 0a 33 33 0d 0a 36 33 0d 0a 0d 0a 6f 6e 6c 79  ..33..63....only
1b5e0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1b5f0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1b600 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1b610 61 62 65 6c 2d 35 39 32 0d 0a 53 45 4c 45 43 54  abel-592..SELECT
1b620 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20 41   DISTINCT MAX( A
1b630 4c 4c 20 2b 20 31 31 20 29 20 63 6f 6c 30 20 46  LL + 11 ) col0 F
1b640 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1b650 31 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  11....skipif mys
1b660 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1b670 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
1b680 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1b690 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1b6a0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1b6b0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1b6c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b6d0 62 65 6c 2d 35 39 32 0d 0a 53 45 4c 45 43 54 20  bel-592..SELECT 
1b6e0 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28 20 41  DISTINCT MAX ( A
1b6f0 4c 4c 20 2b 20 31 31 20 29 20 63 6f 6c 30 20 46  LL + 11 ) col0 F
1b700 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1b710 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  11....query III 
1b720 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b730 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1b740 45 20 4e 4f 54 20 2b 20 28 20 63 6f 6c 30 20 29  E NOT + ( col0 )
1b750 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <= NULL..----..
1b760 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1b770 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1b780 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66  GNED type: DIV f
1b790 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1b7a0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
1b7b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1b7c0 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  4..SELECT - col0
1b7d0 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 44   AS col2, col0 D
1b7e0 49 56 20 2d 20 43 41 53 54 28 20 63 6f 6c 31 20  IV - CAST( col1 
1b7f0 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
1b800 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1b810 2d 2d 2d 0d 0a 2d 31 35 0d 0a 30 0d 0a 2d 38 37  ---..-15..0..-87
1b820 0d 0a 2d 34 0d 0a 2d 39 37 0d 0a 2d 39 37 0d 0a  ..-4..-97..-97..
1b830 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1b840 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1b850 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1b860 74 20 6c 61 62 65 6c 2d 35 39 34 0d 0a 53 45 4c  t label-594..SEL
1b870 45 43 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ECT - col0 AS co
1b880 6c 32 2c 20 63 6f 6c 30 20 2f 20 2d 20 43 41 53  l2, col0 / - CAS
1b890 54 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  T ( col1 AS INTE
1b8a0 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20  GER ) FROM tab0 
1b8b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1b8c0 31 35 0d 0a 30 0d 0a 2d 38 37 0d 0a 2d 34 0d 0a  15..0..-87..-4..
1b8d0 2d 39 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79  -97..-97....only
1b8e0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1b8f0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1b900 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1b910 61 62 65 6c 2d 35 39 35 0d 0a 53 45 4c 45 43 54  abel-595..SELECT
1b920 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
1b930 54 28 20 2a 20 29 20 2a 20 2d 20 35 30 20 41 53  T( * ) * - 50 AS
1b940 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
1b950 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1b960 31 35 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  150....skipif my
1b970 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b980 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1b990 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 35 0d  wsort label-595.
1b9a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b9b0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
1b9c0 20 2d 20 35 30 20 41 53 20 63 6f 6c 30 20 46 52   - 50 AS col0 FR
1b9d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1b9e0 0a 2d 2d 2d 2d 0d 0a 2d 31 35 30 0d 0a 0d 0a 6f  .----..-150....o
1b9f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
1ba00 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
1ba10 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
1ba20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1ba30 2d 35 39 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  -596..SELECT col
1ba40 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 31 20  2 AS col1, col1 
1ba50 2a 20 2d 20 38 32 20 2a 20 2d 20 63 6f 6c 31 20  * - 82 * - col1 
1ba60 2b 20 2d 20 63 6f 6c 32 20 44 49 56 20 2d 20 2b  + - col2 DIV - +
1ba70 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
1ba80 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
1ba90 39 0d 0a 32 30 35 31 0d 0a 36 38 0d 0a 31 38 31  9..2051..68..181
1baa0 31 33 39 0d 0a 39 36 0d 0a 31 36 30 37 33 0d 0a  139..96..16073..
1bab0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1bac0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1bad0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1bae0 74 20 6c 61 62 65 6c 2d 35 39 36 0d 0a 53 45 4c  t label-596..SEL
1baf0 45 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  ECT col2 AS col1
1bb00 2c 20 63 6f 6c 31 20 2a 20 2d 20 38 32 20 2a 20  , col1 * - 82 * 
1bb10 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  - col1 + - col2 
1bb20 2f 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  / - + col2 AS co
1bb30 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
1bb40 2d 2d 0d 0a 35 39 0d 0a 32 30 35 31 0d 0a 36 38  --..59..2051..68
1bb50 0d 0a 31 38 31 31 33 39 0d 0a 39 36 0d 0a 31 36  ..181139..96..16
1bb60 30 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  073....query III
1bb70 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1bb80 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1bb90 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
1bba0 2d 20 39 31 20 2a 20 2b 20 38 38 20 49 53 20 4e  - 91 * + 88 IS N
1bbb0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
1bbc0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
1bbd0 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
1bbe0 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
1bbf0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1bc00 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1bc10 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1bc20 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1bc30 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1bc40 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1bc50 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2b  ECT + col2 + - +
1bc60 20 37 38 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   78 col0 FROM ta
1bc70 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1bc80 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45   NOT NULL NOT BE
1bc90 54 57 45 45 4e 20 63 6f 6c 31 20 2f 20 2b 20 63  TWEEN col1 / + c
1bca0 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol0 AND NULL..--
1bcb0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1bcc0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
1bcd0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1bce0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bcf0 20 6c 61 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45   label-599..SELE
1bd00 43 54 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b 20  CT + col2 DIV + 
1bd10 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2d 20  + col0 * col0 - 
1bd20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
1bd30 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
1bd40 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 73  1..-67..-77....s
1bd50 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1bd60 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1bd70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bd80 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45 43 54 20  bel-599..SELECT 
1bd90 2b 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c  + col2 / + + col
1bda0 30 20 2a 20 63 6f 6c 30 20 2d 20 63 6f 6c 31 20  0 * col0 - col1 
1bdb0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1bdc0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 36  0..----..-51..-6
1bdd0 37 0d 0a 2d 37 37 0d 0a 0d 0a 71 75 65 72 79 20  7..-77....query 
1bde0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1bdf0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
1be00 2c 20 36 32 20 2d 20 2b 20 2b 20 63 6f 6c 30 20  , 62 - + + col0 
1be10 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  + + + col0 AS co
1be20 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
1be30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 36  cor0..----..1..6
1be40 32 0d 0a 32 31 0d 0a 36 32 0d 0a 38 31 0d 0a 36  2..21..62..81..6
1be50 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
1be60 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1be70 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1be80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1be90 6c 61 62 65 6c 2d 36 30 31 0d 0a 53 45 4c 45 43  label-601..SELEC
1bea0 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20 31  T ALL col0 * + 1
1beb0 31 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 28  1 + + - col1 + (
1bec0 20 28 20 2b 20 63 6f 6c 32 20 29 20 29 20 2a 20   ( + col2 ) ) * 
1bed0 43 41 53 54 28 20 63 6f 6c 30 20 41 53 20 53 49  CAST( col0 AS SI
1bee0 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32  GNED ) FROM tab2
1bef0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1bf00 31 35 31 33 0d 0a 33 31 38 37 0d 0a 35 31 30 38  1513..3187..5108
1bf10 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1bf20 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1bf30 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1bf40 72 74 20 6c 61 62 65 6c 2d 36 30 31 0d 0a 53 45  rt label-601..SE
1bf50 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20  LECT ALL col0 * 
1bf60 2b 20 31 31 20 2b 20 2b 20 2d 20 63 6f 6c 31 20  + 11 + + - col1 
1bf70 2b 20 28 20 28 20 2b 20 63 6f 6c 32 20 29 20 29  + ( ( + col2 ) )
1bf80 20 2a 20 43 41 53 54 20 28 20 63 6f 6c 30 20 41   * CAST ( col0 A
1bf90 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
1bfa0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1bfb0 2d 2d 2d 0d 0a 31 35 31 33 0d 0a 33 31 38 37 0d  ---..1513..3187.
1bfc0 0a 35 31 30 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .5108....query I
1bfd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1bfe0 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d 20   + + col1 + + - 
1bff0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
1c000 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
1c010 38 0d 0a 31 31 0d 0a 33 34 0d 0a 0d 0a 71 75 65  8..11..34....que
1c020 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1c030 45 4c 45 43 54 20 2d 20 35 36 2c 20 63 6f 6c 30  ELECT - 56, col0
1c040 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1c050 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1c060 0d 0a 2d 35 36 0d 0a 34 36 0d 0a 2d 35 36 0d 0a  ..-56..46..-56..
1c070 36 34 0d 0a 2d 35 36 0d 0a 37 35 0d 0a 0d 0a 6f  64..-56..75....o
1c080 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1c090 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1c0a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c0b0 74 20 6c 61 62 65 6c 2d 36 30 34 0d 0a 53 45 4c  t label-604..SEL
1c0c0 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
1c0d0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
1c0e0 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31  WHERE NOT - col1
1c0f0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1c100 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
1c110 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c120 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1c130 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30  rowsort label-60
1c140 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  4..SELECT - COUN
1c150 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
1c160 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  0 cor0 WHERE NOT
1c170 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e   - col1 IS NOT N
1c180 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
1c190 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1c1a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31  ..SELECT ALL + 1
1c1b0 36 20 41 53 20 63 6f 6c 32 2c 20 2d 20 28 20 2d  6 AS col2, - ( -
1c1c0 20 31 30 20 29 20 2b 20 2d 20 2d 20 33 38 20 41   10 ) + - - 38 A
1c1d0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1c1e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1c1f0 31 36 0d 0a 34 38 0d 0a 31 36 0d 0a 34 38 0d 0a  16..48..16..48..
1c200 31 36 0d 0a 34 38 0d 0a 0d 0a 71 75 65 72 79 20  16..48....query 
1c210 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1c220 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
1c230 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48  ROM tab1 cor0 WH
1c240 45 52 45 20 4e 4f 54 20 2b 20 33 32 20 2d 20 31  ERE NOT + 32 - 1
1c250 37 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  7 >= NULL..----.
1c260 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1c270 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
1c280 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1c290 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
1c2a0 4c 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20 2b 20  LL ) NOT IN ( + 
1c2b0 36 2c 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d  6, + col0 )..---
1c2c0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
1c2d0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1c2e0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1c2f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c300 6c 61 62 65 6c 2d 36 30 38 0d 0a 53 45 4c 45 43  label-608..SELEC
1c310 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 2d 20  T ALL - CAST( - 
1c320 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44  + col0 AS SIGNED
1c330 20 29 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63   ) + + col1 AS c
1c340 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
1c350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38   cor0..----..138
1c360 0d 0a 36 35 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70  ..65..90....skip
1c370 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1c380 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1c390 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c3a0 2d 36 30 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -608..SELECT ALL
1c3b0 20 2d 20 43 41 53 54 20 28 20 2d 20 2b 20 63 6f   - CAST ( - + co
1c3c0 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
1c3d0 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + + col1 AS col2
1c3e0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1c3f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 36  r0..----..138..6
1c400 35 0d 0a 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49  5..90....query I
1c410 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1c420 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
1c430 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
1c440 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  + - col0 IS NULL
1c450 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1c460 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
1c470 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
1c480 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
1c490 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1c4a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1c4b0 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31   + col0 + + col1
1c4c0 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31   + col0 * - col1
1c4d0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1c4e0 0d 0a 2d 31 31 31 39 0d 0a 2d 31 37 31 39 0d 0a  ..-1119..-1719..
1c4f0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  1....query III r
1c500 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
1c510 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1c520 20 2b 20 63 6f 6c 30 20 2b 20 36 20 3e 3d 20 2d   + col0 + 6 >= -
1c530 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   col2..----..9 v
1c540 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1c550 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
1c560 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
1c570 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
1c580 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1c590 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1c5a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c5b0 6c 61 62 65 6c 2d 36 31 32 0d 0a 53 45 4c 45 43  label-612..SELEC
1c5c0 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53  T - col0 * - CAS
1c5d0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1c5e0 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  D ) AS col0 FROM
1c5f0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
1c600 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1c610 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1c620 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1c630 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c640 6c 61 62 65 6c 2d 36 31 32 0d 0a 53 45 4c 45 43  label-612..SELEC
1c650 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53  T - col0 * - CAS
1c660 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1c670 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52  GER ) AS col0 FR
1c680 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
1c690 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
1c6a0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1c6b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
1c6c0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28  ROM tab2 WHERE (
1c6d0 20 4e 55 4c 4c 20 3d 20 32 39 20 2d 20 2b 20 31   NULL = 29 - + 1
1c6e0 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  4 )..----....que
1c6f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1c700 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  LECT + + col2 + 
1c710 2b 20 39 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 99 AS col0 FRO
1c720 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
1c730 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 28 20 4e  HERE NULL >= ( N
1c740 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ULL )..----....o
1c750 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1c760 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
1c770 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20  D type: DIV for 
1c780 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1c790 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
1c7a0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 35 0d 0a  sort label-615..
1c7b0 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20  SELECT + + col1 
1c7c0 2a 20 2d 20 38 35 20 2b 20 2b 20 37 32 20 2a 20  * - 85 + + 72 * 
1c7d0 2b 20 33 31 20 2b 20 2b 20 2b 20 28 20 2b 20 35  + 31 + + + ( + 5
1c7e0 38 20 29 20 44 49 56 20 63 6f 6c 32 20 2a 20 2b  8 ) DIV col2 * +
1c7f0 20 36 32 20 2a 20 2d 20 28 20 2d 20 43 41 53 54   62 * - ( - CAST
1c800 28 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 53 49  ( + + col1 AS SI
1c810 47 4e 45 44 20 29 20 29 20 2b 20 63 6f 6c 31 2c  GNED ) ) + col1,
1c820 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   + col0 AS col1 
1c830 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1c840 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 34 38 0d 0a 39  0..----..2148..9
1c850 37 0d 0a 34 35 30 0d 0a 31 35 0d 0a 36 39 37 38  7..450..15..6978
1c860 0d 0a 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..87....skipif m
1c870 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1c880 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
1c890 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1c8a0 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  5..SELECT + + co
1c8b0 6c 31 20 2a 20 2d 20 38 35 20 2b 20 2b 20 37 32  l1 * - 85 + + 72
1c8c0 20 2a 20 2b 20 33 31 20 2b 20 2b 20 2b 20 28 20   * + 31 + + + ( 
1c8d0 2b 20 35 38 20 29 20 2f 20 63 6f 6c 32 20 2a 20  + 58 ) / col2 * 
1c8e0 2b 20 36 32 20 2a 20 2d 20 28 20 2d 20 43 41 53  + 62 * - ( - CAS
1c8f0 54 20 28 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20  T ( + + col1 AS 
1c900 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20 63 6f  INTEGER ) ) + co
1c910 6c 31 2c 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  l1, + col0 AS co
1c920 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
1c930 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 34 38  cor0..----..2148
1c940 0d 0a 39 37 0d 0a 34 35 30 0d 0a 31 35 0d 0a 36  ..97..450..15..6
1c950 39 37 38 0d 0a 38 37 0d 0a 0d 0a 71 75 65 72 79  978..87....query
1c960 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1c970 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2b  ECT ALL - col0 +
1c980 20 2d 20 63 6f 6c 32 2c 20 39 20 46 52 4f 4d 20   - col2, 9 FROM 
1c990 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
1c9a0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 63  RE NOT NULL <= c
1c9b0 6f 6c 30 20 2a 20 2d 20 2b 20 38 35 20 2a 20 2b  ol0 * - + 85 * +
1c9c0 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d   + ( - col0 )..-
1c9d0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
1c9e0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1c9f0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1ca00 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1ca10 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1ca20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ca30 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a  .SELECT + col0 *
1ca40 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 63   + col0 + col0 c
1ca50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
1ca60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 35   cor0..----..265
1ca70 32 0d 0a 37 33 31 30 0d 0a 38 33 37 32 0d 0a 0d  2..7310..8372...
1ca80 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ca90 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1caa0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1cab0 6f 72 74 20 6c 61 62 65 6c 2d 36 31 38 0d 0a 53  ort label-618..S
1cac0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1cad0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2f 20 2b 20   COUNT( * ) / + 
1cae0 2d 20 4d 41 58 28 20 2d 20 2d 20 63 6f 6c 31 20  - MAX( - - col1 
1caf0 29 20 2a 20 2d 20 32 30 20 46 52 4f 4d 20 74 61  ) * - 20 FROM ta
1cb00 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1cb10 20 4e 4f 54 20 39 33 20 2a 20 2b 20 2d 20 63 6f   NOT 93 * + - co
1cb20 6c 30 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  l0 < NULL..----.
1cb30 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
1cb40 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1cb50 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1cb60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31  rowsort label-61
1cb70 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
1cb80 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
1cb90 20 2f 20 2b 20 2d 20 4d 41 58 20 28 20 2d 20 2d   / + - MAX ( - -
1cba0 20 63 6f 6c 31 20 29 20 2a 20 2d 20 32 30 20 46   col1 ) * - 20 F
1cbb0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1cbc0 20 57 48 45 52 45 20 4e 4f 54 20 39 33 20 2a 20   WHERE NOT 93 * 
1cbd0 2b 20 2d 20 63 6f 6c 30 20 3c 20 4e 55 4c 4c 0d  + - col0 < NULL.
1cbe0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
1cbf0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1cc00 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1cc10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1cc20 74 20 6c 61 62 65 6c 2d 36 31 39 0d 0a 53 45 4c  t label-619..SEL
1cc30 45 43 54 20 41 4c 4c 20 2d 20 2b 20 4d 41 58 28  ECT ALL - + MAX(
1cc40 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 41 53   ALL + col0 ) AS
1cc50 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
1cc60 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1cc70 54 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20  T - col2 + col2 
1cc80 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
1cc90 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
1cca0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ccb0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1ccc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ccd0 36 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  619..SELECT ALL 
1cce0 2d 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20  - + MAX ( ALL + 
1ccf0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
1cd00 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1cd10 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
1cd20 32 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  2 + col2 IS NOT 
1cd30 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
1cd40 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1cd50 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1cd60 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1cd70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 30  owsort label-620
1cd80 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
1cd90 28 20 2a 20 29 20 2b 20 2b 20 2b 20 37 39 20 46  ( * ) + + + 79 F
1cda0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1cdb0 37 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  76....skipif mys
1cdc0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1cdd0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1cde0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 30 0d 0a  sort label-620..
1cdf0 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
1ce00 20 2a 20 29 20 2b 20 2b 20 2b 20 37 39 20 46 52   * ) + + + 79 FR
1ce10 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab1..----..7
1ce20 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
1ce30 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1ce40 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
1ce50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1ce60 20 6c 61 62 65 6c 2d 36 32 31 0d 0a 53 45 4c 45   label-621..SELE
1ce70 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  CT + col1 * - co
1ce80 6c 31 20 2f 20 2d 20 28 20 2b 20 63 6f 6c 32 20  l1 / - ( + col2 
1ce90 29 20 2a 20 2b 20 33 32 20 2b 20 2d 20 43 41 53  ) * + 32 + - CAS
1cea0 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
1ceb0 41 4c 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  AL ) AS col0 FRO
1cec0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1ced0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1cee0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1cef0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1cf00 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1cf10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1cf20 32 31 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  21..SELECT + col
1cf30 31 20 2a 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 28  1 * - col1 / - (
1cf40 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2b 20 33 32   + col2 ) * + 32
1cf50 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
1cf60 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f   AS REAL ) AS co
1cf70 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
1cf80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
1cf90 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
1cfa0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1cfb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 36 20 2d  .SELECT ALL 26 -
1cfc0 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
1cfd0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1cfe0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 37 37  0..----..103..77
1cff0 0d 0a 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..93....onlyif m
1d000 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1d010 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
1d020 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1d030 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
1d040 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 33 0d  wsort label-623.
1d050 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20  .SELECT + CAST( 
1d060 2d 20 41 56 47 20 28 20 41 4c 4c 20 2b 20 63 6f  - AVG ( ALL + co
1d070 6c 31 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  l1 ) AS SIGNED )
1d080 20 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 28 20   col1, + COUNT( 
1d090 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
1d0a0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1d0b0 2d 2d 2d 0d 0a 2d 36 35 0d 0a 33 0d 0a 0d 0a 73  ---..-65..3....s
1d0c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1d0d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..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 49 20  lumns..query II 
1d130 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1d140 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  3..SELECT + CAST
1d150 20 28 20 2d 20 41 56 47 20 28 20 41 4c 4c 20 2b   ( - AVG ( ALL +
1d160 20 63 6f 6c 31 20 29 20 41 53 20 49 4e 54 45 47   col1 ) AS INTEG
1d170 45 52 20 29 20 63 6f 6c 31 2c 20 2b 20 43 4f 55  ER ) col1, + COU
1d180 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
1d190 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1d1a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 33  r0..----..-65..3
1d1b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
1d1c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 30 20  sort..SELECT 60 
1d1d0 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 46 52  AS col1, col1 FR
1d1e0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
1d1f0 2d 2d 0d 0a 36 30 0d 0a 35 31 0d 0a 36 30 0d 0a  --..60..51..60..
1d200 36 37 0d 0a 36 30 0d 0a 37 37 0d 0a 0d 0a 71 75  67..60..77....qu
1d210 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1d220 45 4c 45 43 54 20 2d 20 31 30 20 2d 20 2b 20 2d  ELECT - 10 - + -
1d230 20 37 34 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 46   74 + - - col0 F
1d240 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1d250 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 0d 0a 31 34 39  ..----..115..149
1d260 0d 0a 31 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..155....query I
1d270 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1d280 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
1d290 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b2 cor0 WHERE NO
1d2a0 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63  T + col0 * - - c
1d2b0 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol0 IS NOT NULL.
1d2c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
1d2d0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1d2e0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1d2f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1d300 6c 2d 36 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-627..SELECT AL
1d310 4c 20 2d 20 43 4f 55 4e 54 28 20 2b 20 39 38 20  L - COUNT( + 98 
1d320 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1d330 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1d340 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
1d350 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1d360 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1d370 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1d380 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
1d390 43 4f 55 4e 54 20 28 20 2b 20 39 38 20 29 20 41  COUNT ( + 98 ) A
1d3a0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1d3b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1d3c0 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  -3....skipif pos
1d3d0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1d3e0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1d3f0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1d400 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1d410 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1d420 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1d430 2d 20 31 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74  - 12 col0 FROM t
1d440 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1d450 2d 0d 0a 2d 31 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-12....onlyif
1d460 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1d470 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1d480 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1d490 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 39 0d 0a  sort label-629..
1d4a0 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c  SELECT CAST( NUL
1d4b0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
1d4c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
1d4d0 57 48 45 52 45 20 4e 4f 54 20 2d 20 35 35 20 2b  WHERE NOT - 55 +
1d4e0 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54   + - col1 IS NOT
1d4f0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
1d500 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1d510 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1d520 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1d530 62 65 6c 2d 36 32 39 0d 0a 53 45 4c 45 43 54 20  bel-629..SELECT 
1d540 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
1d550 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
1d560 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
1d570 20 4e 4f 54 20 2d 20 35 35 20 2b 20 2b 20 2d 20   NOT - 55 + + - 
1d580 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
1d590 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1d5a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1d5b0 43 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53  CT ( - col1 ) AS
1d5c0 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46 52 4f 4d   col2, col0 FROM
1d5d0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   tab1..----..-14
1d5e0 0d 0a 35 31 0d 0a 2d 34 37 0d 0a 39 31 0d 0a 2d  ..51..-47..91..-
1d5f0 35 0d 0a 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49  5..85....query I
1d600 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d610 54 20 2d 20 28 20 2b 20 32 30 20 29 2c 20 2d 20  T - ( + 20 ), - 
1d620 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
1d630 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab2..----..-2
1d640 30 0d 0a 2d 35 31 0d 0a 2d 32 30 0d 0a 2d 36 37  0..-51..-20..-67
1d650 0d 0a 2d 32 30 0d 0a 2d 37 37 0d 0a 0d 0a 71 75  ..-20..-77....qu
1d660 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1d670 45 4c 45 43 54 20 39 39 20 2a 20 2b 20 2b 20 63  ELECT 99 * + + c
1d680 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
1d690 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 30 34   tab1..----..504
1d6a0 39 0d 0a 38 34 31 35 0d 0a 39 30 30 39 0d 0a 0d  9..8415..9009...
1d6b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1d6c0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1d6d0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1d6e0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1d6f0 65 6c 2d 36 33 33 0d 0a 53 45 4c 45 43 54 20 41  el-633..SELECT A
1d700 4c 4c 20 2d 20 43 41 53 54 28 20 2b 20 2b 20 63  LL - CAST( + + c
1d710 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol2 AS SIGNED ) 
1d720 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 41 53  AS col0, col2 AS
1d730 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
1d740 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 32 33 0d 0a  .----..-23..23..
1d750 2d 34 30 0d 0a 34 30 0d 0a 2d 35 38 0d 0a 35 38  -40..40..-58..58
1d760 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1d770 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1d780 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
1d790 6f 72 74 20 6c 61 62 65 6c 2d 36 33 33 0d 0a 53  ort label-633..S
1d7a0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54  ELECT ALL - CAST
1d7b0 20 28 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 49   ( + + col2 AS I
1d7c0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
1d7d0 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  , col2 AS col1 F
1d7e0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1d7f0 2d 32 33 0d 0a 32 33 0d 0a 2d 34 30 0d 0a 34 30  -23..23..-40..40
1d800 0d 0a 2d 35 38 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c  ..-58..58....onl
1d810 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1d820 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1d830 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1d840 20 6c 61 62 65 6c 2d 36 33 34 0d 0a 53 45 4c 45   label-634..SELE
1d850 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
1d860 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  T( DISTINCT - co
1d870 6c 31 20 29 2c 20 2b 20 4d 41 58 28 20 41 4c 4c  l1 ), + MAX( ALL
1d880 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20 29 20   - ( + col1 ) ) 
1d890 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  * - COUNT( * ) F
1d8a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1d8b0 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  3..3....skipif m
1d8c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1d8d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
1d8e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33  rowsort label-63
1d8f0 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
1d900 43 54 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49  CT COUNT ( DISTI
1d910 4e 43 54 20 2d 20 63 6f 6c 31 20 29 2c 20 2b 20  NCT - col1 ), + 
1d920 4d 41 58 20 28 20 41 4c 4c 20 2d 20 28 20 2b 20  MAX ( ALL - ( + 
1d930 63 6f 6c 31 20 29 20 29 20 2a 20 2d 20 43 4f 55  col1 ) ) * - COU
1d940 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
1d950 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a  b0..----..3..3..
1d960 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1d970 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1d980 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1d990 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 35 0d 0a  sort label-635..
1d9a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1d9b0 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  + MAX( DISTINCT 
1d9c0 28 20 2d 20 33 33 20 29 20 29 20 63 6f 6c 30 20  ( - 33 ) ) col0 
1d9d0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1d9e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 0d 0a 0d 0a  0..----..-33....
1d9f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1da00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
1da10 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1da20 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1da30 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1da40 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1da50 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1da60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33  rowsort label-63
1da70 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
1da80 43 54 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49  CT + MAX ( DISTI
1da90 4e 43 54 20 28 20 2d 20 33 33 20 29 20 29 20 63  NCT ( - 33 ) ) c
1daa0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
1dab0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33   cor0..----..-33
1dac0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1dad0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1dae0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
1daf0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1db00 20 4e 4f 54 20 38 20 3d 20 4e 55 4c 4c 0d 0a 2d   NOT 8 = NULL..-
1db10 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1db20 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1db30 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1db40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1db50 36 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  637..SELECT DIST
1db60 49 4e 43 54 20 4d 41 58 28 20 2b 20 2b 20 32 37  INCT MAX( + + 27
1db70 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
1db80 2d 2d 0d 0a 32 37 0d 0a 0d 0a 73 6b 69 70 69 66  --..27....skipif
1db90 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1dba0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1dbb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1dbc0 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  37..SELECT DISTI
1dbd0 4e 43 54 20 4d 41 58 20 28 20 2b 20 2b 20 32 37  NCT MAX ( + + 27
1dbe0 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
1dbf0 2d 2d 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..27....onlyif
1dc00 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1dc10 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
1dc20 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1dc30 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1dc40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 38  owsort label-638
1dc50 0d 0a 53 45 4c 45 43 54 20 31 36 20 44 49 56 20  ..SELECT 16 DIV 
1dc60 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 33  COUNT( * ) + - 3
1dc70 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
1dc80 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
1dc90 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63  S JOIN tab1 AS c
1dca0 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 0d 0a  or1..----..-33..
1dcb0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1dcc0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1dcd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1dce0 20 6c 61 62 65 6c 2d 36 33 38 0d 0a 53 45 4c 45   label-638..SELE
1dcf0 43 54 20 31 36 20 2f 20 43 4f 55 4e 54 20 28 20  CT 16 / COUNT ( 
1dd00 2a 20 29 20 2b 20 2d 20 33 34 20 41 53 20 63 6f  * ) + - 34 AS co
1dd10 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
1dd20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
1dd30 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab1 AS cor1..--
1dd40 2d 2d 0d 0a 2d 33 33 0d 0a 0d 0a 71 75 65 72 79  --..-33....query
1dd50 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1dd60 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
1dd70 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1dd80 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f  OT + col2 + - co
1dd90 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
1dda0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
1ddb0 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
1ddc0 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
1ddd0 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
1dde0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1ddf0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1de00 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1de10 45 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 49 53  E col1 + col2 IS
1de20 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1de30 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1de40 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
1de50 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
1de60 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
1de70 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1de80 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a   DISTINCT col1 *
1de90 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + + col0 FROM t
1dea0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1deb0 2d 0d 0a 32 33 34 36 0d 0a 34 39 32 38 0d 0a 35  -..2346..4928..5
1dec0 30 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  025....onlyif my
1ded0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
1dee0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1def0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1df00 74 20 6c 61 62 65 6c 2d 36 34 32 0d 0a 53 45 4c  t label-642..SEL
1df10 45 43 54 20 63 6f 6c 32 20 44 49 56 20 2d 20 28  ECT col2 DIV - (
1df20 20 2d 20 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 30   - + col2 ) col0
1df30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1df40 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  r0 WHERE NULL IS
1df50 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   NULL..----..1..
1df60 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1..1....skipif m
1df70 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1df80 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
1df90 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1dfa0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1dfb0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1dfc0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1dfd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1dfe0 6c 61 62 65 6c 2d 36 34 32 0d 0a 53 45 4c 45 43  label-642..SELEC
1dff0 54 20 63 6f 6c 32 20 2f 20 2d 20 28 20 2d 20 2b  T col2 / - ( - +
1e000 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f   col2 ) col0 FRO
1e010 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
1e020 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
1e030 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31  L..----..1..1..1
1e040 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
1e050 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
1e060 20 36 39 20 41 53 20 63 6f 6c 31 2c 20 2b 20 37   69 AS col1, + 7
1e070 30 20 2a 20 2d 20 2d 20 37 20 46 52 4f 4d 20 74  0 * - - 7 FROM t
1e080 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1e090 2d 0d 0a 36 39 0d 0a 34 39 30 0d 0a 36 39 0d 0a  -..69..490..69..
1e0a0 34 39 30 0d 0a 36 39 0d 0a 34 39 30 0d 0a 0d 0a  490..69..490....
1e0b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1e0c0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1e0d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1e0e0 72 74 20 6c 61 62 65 6c 2d 36 34 34 0d 0a 53 45  rt label-644..SE
1e0f0 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LECT + COUNT( * 
1e100 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
1e110 20 57 48 45 52 45 20 34 34 20 49 53 20 4e 4f 54   WHERE 44 IS NOT
1e120 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   NULL..----..3..
1e130 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1e140 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1e150 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e160 20 6c 61 62 65 6c 2d 36 34 34 0d 0a 53 45 4c 45   label-644..SELE
1e170 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
1e180 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
1e190 57 48 45 52 45 20 34 34 20 49 53 20 4e 4f 54 20  WHERE 44 IS NOT 
1e1a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  NULL..----..3...
1e1b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e1c0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1e1d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1e1e0 6f 72 74 20 6c 61 62 65 6c 2d 36 34 35 0d 0a 53  ort label-645..S
1e1f0 45 4c 45 43 54 20 2d 20 37 38 20 2b 20 2b 20 2d  ELECT - 78 + + -
1e200 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
1e210 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31   tab1..----..-81
1e220 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1e230 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1e240 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1e250 72 74 20 6c 61 62 65 6c 2d 36 34 35 0d 0a 53 45  rt label-645..SE
1e260 4c 45 43 54 20 2d 20 37 38 20 2b 20 2b 20 2d 20  LECT - 78 + + - 
1e270 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
1e280 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31   tab1..----..-81
1e290 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1e2a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1e2b0 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20  - col0 + - col2 
1e2c0 2a 20 31 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  * 10 FROM tab2..
1e2d0 2d 2d 2d 2d 0d 0a 2d 32 37 36 0d 0a 2d 34 36 34  ----..-276..-464
1e2e0 0d 0a 2d 36 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-655....onlyif
1e2f0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1e300 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1e310 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1e320 65 6c 2d 36 34 37 0d 0a 53 45 4c 45 43 54 20 38  el-647..SELECT 8
1e330 30 20 2b 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 63  0 + - MIN( ALL c
1e340 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ol2 ) FROM tab1.
1e350 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a 73 6b 69  .----..21....ski
1e360 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1e370 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1e380 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e390 6c 2d 36 34 37 0d 0a 53 45 4c 45 43 54 20 38 30  l-647..SELECT 80
1e3a0 20 2b 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 63   + - MIN ( ALL c
1e3b0 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ol2 ) FROM tab1.
1e3c0 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a 6f 6e 6c  .----..21....onl
1e3d0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1e3e0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
1e3f0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
1e400 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20  D type: DIV for 
1e410 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1e420 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1e430 6f 72 74 20 6c 61 62 65 6c 2d 36 34 38 0d 0a 53  ort label-648..S
1e440 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2b  ELECT ALL MIN( +
1e450 20 63 6f 6c 32 20 29 20 44 49 56 20 2d 20 28 20   col2 ) DIV - ( 
1e460 2b 20 33 31 20 29 20 2b 20 2b 20 2d 20 39 30 20  + 31 ) + + - 90 
1e470 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  - - COUNT( * ) +
1e480 20 2b 20 43 41 53 54 28 20 2b 20 2b 20 36 36 20   + CAST( + + 66 
1e490 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
1e4a0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32   tab1..----..-22
1e4b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1e4c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1e4d0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1e4e0 72 74 20 6c 61 62 65 6c 2d 36 34 38 0d 0a 53 45  rt label-648..SE
1e4f0 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 20 28 20 2b  LECT ALL MIN ( +
1e500 20 63 6f 6c 32 20 29 20 2f 20 2d 20 28 20 2b 20   col2 ) / - ( + 
1e510 33 31 20 29 20 2b 20 2b 20 2d 20 39 30 20 2d 20  31 ) + + - 90 - 
1e520 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  - COUNT ( * ) + 
1e530 2b 20 43 41 53 54 20 28 20 2b 20 2b 20 36 36 20  + CAST ( + + 66 
1e540 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
1e550 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
1e560 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
1e570 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 63  sort..SELECT ( c
1e580 6f 6c 32 20 29 20 2b 20 2d 20 34 30 20 41 53 20  ol2 ) + - 40 AS 
1e590 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
1e5a0 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a 30 0d 0a 31 38  ----..-17..0..18
1e5b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1e5c0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1e5d0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56  SIGNED type: DIV
1e5e0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1e5f0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1e600 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e610 36 35 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  650..SELECT DIST
1e620 49 4e 43 54 20 2b 20 37 38 20 44 49 56 20 43 41  INCT + 78 DIV CA
1e630 53 54 28 20 2d 20 31 37 20 41 53 20 53 49 47 4e  ST( - 17 AS SIGN
1e640 45 44 20 29 20 44 49 56 20 2d 20 63 6f 6c 31 20  ED ) DIV - col1 
1e650 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63  - + col2 + - - c
1e660 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c  ol0 AS col0, col
1e670 31 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20  1 * + - col1 AS 
1e680 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
1e690 2d 2d 2d 2d 0d 0a 2d 33 32 0d 0a 2d 36 35 36 31  ----..-32..-6561
1e6a0 0d 0a 32 0d 0a 2d 31 0d 0a 37 37 0d 0a 2d 34 34  ..2..-1..77..-44
1e6b0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
1e6c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1e6d0 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
1e6e0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 30 0d 0a  sort label-650..
1e6f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e700 2b 20 37 38 20 2f 20 43 41 53 54 20 28 20 2d 20  + 78 / CAST ( - 
1e710 31 37 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  17 AS INTEGER ) 
1e720 2f 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c  / - col1 - + col
1e730 32 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20  2 + - - col0 AS 
1e740 63 6f 6c 30 2c 20 63 6f 6c 31 20 2a 20 2b 20 2d  col0, col1 * + -
1e750 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
1e760 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
1e770 33 32 0d 0a 2d 36 35 36 31 0d 0a 32 0d 0a 2d 31  32..-6561..2..-1
1e780 0d 0a 37 37 0d 0a 2d 34 34 31 0d 0a 0d 0a 71 75  ..77..-441....qu
1e790 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1e7a0 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20 63  ELECT col1 + + c
1e7b0 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 41  ol0 + + + col0 A
1e7c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1e7d0 0d 0a 2d 2d 2d 2d 0d 0a 31 34 33 0d 0a 32 30 35  ..----..143..205
1e7e0 0d 0a 32 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..217....onlyif 
1e7f0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1e800 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1e810 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1e820 6f 72 74 20 6c 61 62 65 6c 2d 36 35 32 0d 0a 53  ort label-652..S
1e830 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
1e840 6f 6c 32 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ol2 + CAST( NULL
1e850 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
1e860 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
1e870 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1e880 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e890 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e8a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e8b0 62 65 6c 2d 36 35 32 0d 0a 53 45 4c 45 43 54 20  bel-652..SELECT 
1e8c0 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20  DISTINCT col2 + 
1e8d0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
1e8e0 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c  NTEGER ) + + col
1e8f0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
1e900 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
1e910 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1e920 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1e930 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1e940 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1e950 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1e960 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1e970 49 4e 43 54 20 2b 20 2b 20 33 37 20 2a 20 2d 20  INCT + + 37 * - 
1e980 2d 20 38 38 20 63 6f 6c 32 20 46 52 4f 4d 20 74  - 88 col2 FROM t
1e990 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
1e9a0 33 32 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3256....query I 
1e9b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1e9c0 2d 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 30 20  - col2 - - col0 
1e9d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1e9e0 30 20 57 48 45 52 45 20 33 39 20 49 53 20 4e 4f  0 WHERE 39 IS NO
1e9f0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 37  T NULL..----..17
1ea00 0d 0a 32 33 0d 0a 32 34 0d 0a 0d 0a 6f 6e 6c 79  ..23..24....only
1ea10 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1ea20 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1ea30 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1ea40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 35  owsort label-655
1ea50 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
1ea60 6f 6c 30 20 2a 20 2d 20 2d 20 37 38 20 2a 20 2d  ol0 * - - 78 * -
1ea70 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 32   col2 + + - col2
1ea80 20 44 49 56 20 2b 20 63 6f 6c 30 20 41 53 20 63   DIV + col0 AS c
1ea90 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
1eaa0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   cor0..----..-38
1eab0 31 38 38 39 0d 0a 2d 33 39 31 31 37 30 0d 0a 2d  1889..-391170..-
1eac0 34 38 32 36 36 34 0d 0a 0d 0a 73 6b 69 70 69 66  482664....skipif
1ead0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1eae0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1eaf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1eb00 35 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  55..SELECT ALL +
1eb10 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 37 38 20 2a   col0 * - - 78 *
1eb20 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f   - col2 + + - co
1eb30 6c 32 20 2f 20 2b 20 63 6f 6c 30 20 41 53 20 63  l2 / + col0 AS c
1eb40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
1eb50 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   cor0..----..-38
1eb60 31 38 38 39 0d 0a 2d 33 39 31 31 37 30 0d 0a 2d  1889..-391170..-
1eb70 34 38 32 36 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  482664....onlyif
1eb80 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1eb90 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1eba0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
1ebb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 36 0d  wsort label-656.
1ebc0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44  .SELECT + col0 D
1ebd0 49 56 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 46 52  IV col0, col1 FR
1ebe0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1ebf0 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 34 0d 0a 31 0d  .----..1..14..1.
1ec00 0a 34 37 0d 0a 31 0d 0a 35 0d 0a 0d 0a 73 6b 69  .47..1..5....ski
1ec10 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1ec20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1ec30 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1ec40 65 6c 2d 36 35 36 0d 0a 53 45 4c 45 43 54 20 2b  el-656..SELECT +
1ec50 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 2c 20 63 6f   col0 / col0, co
1ec60 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
1ec70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31  cor0..----..1..1
1ec80 34 0d 0a 31 0d 0a 34 37 0d 0a 31 0d 0a 35 0d 0a  4..1..47..1..5..
1ec90 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1eca0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
1ecb0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
1ecc0 2b 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 32 20  + col0 / + col2 
1ecd0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
1ece0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1ecf0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
1ed00 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
1ed10 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
1ed20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1ed30 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2b 20  CT ALL col2 + + 
1ed40 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 31 20 41 53  col0 - + col1 AS
1ed50 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
1ed60 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 32 37 0d 0a 36  .----..18..27..6
1ed70 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
1ed80 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1ed90 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1eda0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1edb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1edc0 74 20 6c 61 62 65 6c 2d 36 35 39 0d 0a 53 45 4c  t label-659..SEL
1edd0 45 43 54 20 2d 20 2d 20 28 20 31 36 20 29 20 2a  ECT - - ( 16 ) *
1ede0 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54   COUNT( DISTINCT
1edf0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1ee00 49 47 4e 45 44 20 29 20 29 20 2a 20 2d 20 35 30  IGNED ) ) * - 50
1ee10 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1ee20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
1ee30 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
1ee40 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
1ee50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1ee60 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1ee70 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1ee80 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1ee90 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1eea0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1eeb0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1eec0 6f 72 74 20 6c 61 62 65 6c 2d 36 35 39 0d 0a 53  ort label-659..S
1eed0 45 4c 45 43 54 20 2d 20 2d 20 28 20 31 36 20 29  ELECT - - ( 16 )
1eee0 20 2a 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49   * COUNT ( DISTI
1eef0 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  NCT CAST ( NULL 
1ef00 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a  AS INTEGER ) ) *
1ef10 20 2d 20 35 30 20 63 6f 6c 30 20 46 52 4f 4d 20   - 50 col0 FROM 
1ef20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
1ef30 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
1ef40 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor1..----..0...
1ef50 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1ef60 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
1ef70 6c 30 20 2d 20 2b 20 63 6f 6c 30 2c 20 2d 20 63  l0 - + col0, - c
1ef80 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
1ef90 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
1efa0 2d 31 35 0d 0a 30 0d 0a 2d 38 37 0d 0a 30 0d 0a  -15..0..-87..0..
1efb0 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  -97....skipif po
1efc0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1efd0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1efe0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1eff0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1f000 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1f010 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f020 54 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63  T - col2 - - - c
1f030 6f 6c 31 2c 20 28 20 63 6f 6c 31 20 29 20 63 6f  ol1, ( col1 ) co
1f040 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
1f050 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 31  0..----..-100..1
1f060 0d 0a 2d 31 32 38 0d 0a 38 31 0d 0a 2d 33 31 0d  ..-128..81..-31.
1f070 0a 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .21....query I r
1f080 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
1f090 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 39 36 20 41   - col0 * - 96 A
1f0a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
1f0b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 39   cor0..----..489
1f0c0 36 0d 0a 38 31 36 30 0d 0a 38 37 33 36 0d 0a 0d  6..8160..8736...
1f0d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1f0e0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1f0f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
1f100 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2f 20  HERE NOT col0 / 
1f110 2d 20 35 33 20 2b 20 63 6f 6c 32 20 49 53 20 4e  - 53 + col2 IS N
1f120 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
1f130 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
1f140 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
1f150 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
1f160 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1f170 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 31  rt..SELECT - + 1
1f180 35 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  5 FROM tab0 cor0
1f190 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 31 35  ..----..-15..-15
1f1a0 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-15....onlyif 
1f1b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1f1c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1f1d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f1e0 6c 2d 36 36 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-665..SELECT DI
1f1f0 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28 20 41 4c  STINCT + MIN( AL
1f200 4c 20 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  L + + col0 ) FRO
1f210 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1f220 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70  ----..51....skip
1f230 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1f240 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1f250 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f260 2d 36 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -665..SELECT DIS
1f270 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c  TINCT + MIN ( AL
1f280 4c 20 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  L + + col0 ) FRO
1f290 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1f2a0 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72  ----..51....quer
1f2b0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1f2c0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
1f2d0 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
1f2e0 32 30 20 2a 20 2b 20 63 6f 6c 31 20 49 53 20 4e  20 * + col1 IS N
1f2f0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
1f300 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1f310 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1f320 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
1f330 20 4e 55 4c 4c 20 3e 20 2b 20 2b 20 39 38 0d 0a   NULL > + + 98..
1f340 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
1f350 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1f360 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1f370 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f380 2d 36 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -668..SELECT ALL
1f390 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20   + COUNT( * ) - 
1f3a0 2d 20 2d 20 35 36 20 2b 20 2d 20 4d 49 4e 28 20  - - 56 + - MIN( 
1f3b0 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52  + col2 ) col2 FR
1f3c0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f  OM tab1 WHERE co
1f3d0 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
1f3e0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1f3f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1f400 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
1f410 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1f420 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1f430 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1f440 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1f450 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f460 74 20 6c 61 62 65 6c 2d 36 36 38 0d 0a 53 45 4c  t label-668..SEL
1f470 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20  ECT ALL + COUNT 
1f480 28 20 2a 20 29 20 2d 20 2d 20 2d 20 35 36 20 2b  ( * ) - - - 56 +
1f490 20 2d 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 32 20   - MIN ( + col2 
1f4a0 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  ) col2 FROM tab1
1f4b0 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53 20 4e   WHERE col0 IS N
1f4c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
1f4d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1f4e0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
1f4f0 4e 43 54 20 28 20 2b 20 28 20 2b 20 2d 20 63 6f  NCT ( + ( + - co
1f500 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46  l0 ) ) AS col0 F
1f510 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1f520 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
1f530 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
1f540 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f550 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f560 54 20 2b 20 63 6f 6c 30 20 2a 20 38 38 20 41 53  T + col0 * 88 AS
1f570 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
1f580 0a 2d 2d 2d 2d 0d 0a 34 30 34 38 0d 0a 35 36 33  .----..4048..563
1f590 32 0d 0a 36 36 30 30 0d 0a 0d 0a 71 75 65 72 79  2..6600....query
1f5a0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1f5b0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
1f5c0 20 57 48 45 52 45 20 32 31 20 49 4e 20 28 20 2d   WHERE 21 IN ( -
1f5d0 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
1f5e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f5f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f600 54 20 31 34 20 41 53 20 63 6f 6c 30 20 46 52 4f  T 14 AS col0 FRO
1f610 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
1f620 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
1f630 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
1f640 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1f650 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1f660 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1f670 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1f680 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1f690 0a 53 45 4c 45 43 54 20 2d 20 32 37 20 63 6f 6c  .SELECT - 27 col
1f6a0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
1f6b0 2d 0d 0a 2d 32 37 0d 0a 2d 32 37 0d 0a 2d 32 37  -..-27..-27..-27
1f6c0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1f6d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1f6e0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
1f6f0 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d  b2 WHERE NOT ( -
1f700 20 63 6f 6c 32 20 29 20 3d 20 28 20 4e 55 4c 4c   col2 ) = ( NULL
1f710 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
1f720 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1f730 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 33  ECT + col1 * + 3
1f740 32 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  2 + col1 FROM ta
1f750 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 37 33 0d 0a  b0..----..2673..
1f760 33 33 0d 0a 36 39 33 0d 0a 0d 0a 6f 6e 6c 79 69  33..693....onlyi
1f770 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1f780 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1f790 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f7a0 62 65 6c 2d 36 37 36 0d 0a 53 45 4c 45 43 54 20  bel-676..SELECT 
1f7b0 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20  DISTINCT COUNT( 
1f7c0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
1f7d0 45 52 45 20 4e 4f 54 20 28 20 2b 20 34 31 20 2a  ERE NOT ( + 41 *
1f7e0 20 32 39 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d   29 ) IS NULL..-
1f7f0 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
1f800 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1f810 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1f820 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1f830 37 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  76..SELECT DISTI
1f840 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  NCT COUNT ( * ) 
1f850 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1f860 4e 4f 54 20 28 20 2b 20 34 31 20 2a 20 32 39 20  NOT ( + 41 * 29 
1f870 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
1f880 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .3....query III 
1f890 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1f8a0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
1f8b0 45 20 4e 4f 54 20 2b 20 35 36 20 2a 20 63 6f 6c  E NOT + 56 * col
1f8c0 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
1f8d0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1f8e0 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
1f8f0 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
1f900 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
1f910 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1f920 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
1f930 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1f940 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 38 0d 0a  sort label-678..
1f950 53 45 4c 45 43 54 20 2b 20 28 20 43 41 53 54 28  SELECT + ( CAST(
1f960 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
1f970 20 29 20 29 20 2a 20 37 35 20 41 53 20 63 6f 6c   ) ) * 75 AS col
1f980 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
1f990 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
1f9a0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1f9b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1f9c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1f9d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 38 0d  wsort label-678.
1f9e0 0a 53 45 4c 45 43 54 20 2b 20 28 20 43 41 53 54  .SELECT + ( CAST
1f9f0 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
1fa00 29 20 29 20 2a 20 37 35 20 41 53 20 63 6f 6c 30  ) ) * 75 AS col0
1fa10 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1fa20 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
1fa30 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
1fa40 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1fa50 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1fa60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1fa70 37 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  79..SELECT DISTI
1fa80 4e 43 54 20 28 20 2b 20 53 55 4d 28 20 44 49 53  NCT ( + SUM( DIS
1fa90 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 29  TINCT - col1 ) )
1faa0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1fab0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 0d 0a  b2..----..-195..
1fac0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1fad0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1fae0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1faf0 20 6c 61 62 65 6c 2d 36 37 39 0d 0a 53 45 4c 45   label-679..SELE
1fb00 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20  CT DISTINCT ( + 
1fb10 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d  SUM ( DISTINCT -
1fb20 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f 6c   col1 ) ) AS col
1fb30 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
1fb40 2d 0d 0a 2d 31 39 35 0d 0a 0d 0a 6f 6e 6c 79 69  -..-195....onlyi
1fb50 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1fb60 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1fb70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1fb80 62 65 6c 2d 36 38 30 0d 0a 53 45 4c 45 43 54 20  bel-680..SELECT 
1fb90 2d 20 4d 49 4e 28 20 31 30 20 29 20 41 53 20 63  - MIN( 10 ) AS c
1fba0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
1fbb0 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  ERE NULL IS NULL
1fbc0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73  ..----..-10....s
1fbd0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1fbe0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1fbf0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1fc00 62 65 6c 2d 36 38 30 0d 0a 53 45 4c 45 43 54 20  bel-680..SELECT 
1fc10 2d 20 4d 49 4e 20 28 20 31 30 20 29 20 41 53 20  - MIN ( 10 ) AS 
1fc20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
1fc30 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
1fc40 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a  L..----..-10....
1fc50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1fc60 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f  .SELECT - col2 /
1fc70 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
1fc80 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
1fc90 4e 4f 54 20 34 37 20 2d 20 2d 20 36 32 20 49 53  NOT 47 - - 62 IS
1fca0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1fcb0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1fcc0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1fcd0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1fce0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1fcf0 62 65 6c 2d 36 38 32 0d 0a 53 45 4c 45 43 54 20  bel-682..SELECT 
1fd00 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
1fd10 47 4e 45 44 20 29 20 2f 20 63 6f 6c 32 20 2d 20  GNED ) / col2 - 
1fd20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d  + col1 col2 FROM
1fd30 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
1fd40 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1fd50 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1fd60 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1fd70 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1fd80 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1fd90 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1fda0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1fdb0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1fdc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1fdd0 38 32 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  82..SELECT CAST 
1fde0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1fdf0 52 20 29 20 2f 20 63 6f 6c 32 20 2d 20 2b 20 63  R ) / col2 - + c
1fe00 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol1 col2 FROM ta
1fe10 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
1fe20 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
1fe30 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1fe40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
1fe50 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20  OM tab2 WHERE - 
1fe60 39 20 2d 20 63 6f 6c 30 20 2a 20 36 32 20 49 4e  9 - col0 * 62 IN
1fe70 20 28 20 2b 20 31 37 20 29 0d 0a 2d 2d 2d 2d 0d   ( + 17 )..----.
1fe80 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1fe90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1fea0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
1feb0 52 45 20 28 20 28 20 63 6f 6c 30 20 29 20 29 20  RE ( ( col0 ) ) 
1fec0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
1fed0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
1fee0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
1fef0 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
1ff00 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69  7fb43b7....onlyi
1ff10 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1ff20 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1ff30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1ff40 62 65 6c 2d 36 38 35 0d 0a 53 45 4c 45 43 54 20  bel-685..SELECT 
1ff50 2d 20 4d 49 4e 28 20 2b 20 32 38 20 29 20 46 52  - MIN( + 28 ) FR
1ff60 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
1ff70 32 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  28....skipif mys
1ff80 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ff90 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1ffa0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a  sort label-685..
1ffb0 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28 20 2b  SELECT - MIN ( +
1ffc0 20 32 38 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   28 ) FROM tab1.
1ffd0 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 0d 0a 6f 6e  .----..-28....on
1ffe0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1fff0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
20000 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20010 20 6c 61 62 65 6c 2d 36 38 36 0d 0a 53 45 4c 45   label-686..SELE
20020 43 54 20 41 4c 4c 20 2d 20 34 34 20 2a 20 43 4f  CT ALL - 44 * CO
20030 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
20040 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 0d 0a  b0..----..-132..
20050 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
20060 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
20070 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20080 20 6c 61 62 65 6c 2d 36 38 36 0d 0a 53 45 4c 45   label-686..SELE
20090 43 54 20 41 4c 4c 20 2d 20 34 34 20 2a 20 43 4f  CT ALL - 44 * CO
200a0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
200b0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 0d  ab0..----..-132.
200c0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
200d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
200e0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
200f0 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
20100 20 49 4e 20 28 20 2b 20 39 39 20 2b 20 39 37 20   IN ( + 99 + 97 
20110 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
20120 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
20130 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
20140 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
20150 32 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c  2 * - col0 + col
20160 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f  1 NOT BETWEEN co
20170 6c 31 20 41 4e 44 20 36 32 20 2d 20 2d 20 63 6f  l1 AND 62 - - co
20180 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l1..----....quer
20190 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
201a0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
201b0 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 2b  1 WHERE NULL > +
201c0 20 32 37 20 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d   27 * col2..----
201d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
201e0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
201f0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
20200 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 30  owsort label-690
20210 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43  ..SELECT ALL - C
20220 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
20230 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
20240 2b 20 34 32 20 29 20 4e 4f 54 20 42 45 54 57 45  + 42 ) NOT BETWE
20250 45 4e 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 20 41  EN col1 * col0 A
20260 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  ND NULL..----..0
20270 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
20280 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
20290 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
202a0 72 74 20 6c 61 62 65 6c 2d 36 39 30 0d 0a 53 45  rt label-690..SE
202b0 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
202c0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
202d0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 34   WHERE NOT ( + 4
202e0 32 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  2 ) NOT BETWEEN 
202f0 63 6f 6c 31 20 2a 20 63 6f 6c 30 20 41 4e 44 20  col1 * col0 AND 
20300 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
20310 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20320 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
20330 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
20340 6f 72 74 20 6c 61 62 65 6c 2d 36 39 31 0d 0a 53  ort label-691..S
20350 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
20360 20 30 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20   0 - + COUNT( * 
20370 29 20 2a 20 2d 20 28 20 2b 20 43 4f 55 4e 54 28  ) * - ( + COUNT(
20380 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30   * ) ) FROM tab0
20390 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69  ..----..9....ski
203a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
203b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
203c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
203d0 6c 2d 36 39 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-691..SELECT DI
203e0 53 54 49 4e 43 54 20 2d 20 30 20 2d 20 2b 20 43  STINCT - 0 - + C
203f0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 28  OUNT ( * ) * - (
20400 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   + COUNT ( * ) )
20410 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
20420 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..9....onlyif my
20430 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
20440 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
20450 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20460 36 39 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  692..SELECT ALL 
20470 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 38 36 20  COUNT( * ) * 86 
20480 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
20490 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35 38 0d 0a 0d 0a  1..----..258....
204a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
204b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
204c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
204d0 61 62 65 6c 2d 36 39 32 0d 0a 53 45 4c 45 43 54  abel-692..SELECT
204e0 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29   ALL COUNT ( * )
204f0 20 2a 20 38 36 20 41 53 20 63 6f 6c 31 20 46 52   * 86 AS col1 FR
20500 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab1..----..2
20510 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
20520 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
20530 31 35 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  15 FROM tab0 WHE
20540 52 45 20 28 20 63 6f 6c 30 20 2a 20 35 39 20 29  RE ( col0 * 59 )
20550 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
20560 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
20570 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
20580 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
20590 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
205a0 65 6c 2d 36 39 34 0d 0a 53 45 4c 45 43 54 20 41  el-694..SELECT A
205b0 4c 4c 20 2b 20 63 6f 6c 31 20 44 49 56 20 2b 20  LL + col1 DIV + 
205c0 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  ( + col0 ) AS co
205d0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
205e0 2d 2d 0d 0a 30 0d 0a 30 0d 0a 35 0d 0a 0d 0a 73  --..0..0..5....s
205f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
20600 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
20610 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20620 62 65 6c 2d 36 39 34 0d 0a 53 45 4c 45 43 54 20  bel-694..SELECT 
20630 41 4c 4c 20 2b 20 63 6f 6c 31 20 2f 20 2b 20 28  ALL + col1 / + (
20640 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
20650 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
20660 2d 0d 0a 30 0d 0a 30 0d 0a 35 0d 0a 0d 0a 71 75  -..0..0..5....qu
20670 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20680 45 4c 45 43 54 20 2b 20 32 20 2a 20 31 31 20 2b  ELECT + 2 * 11 +
20690 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2b 20   ( + col2 ) * + 
206a0 38 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  82 FROM tab0 AS 
206b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 38 37 36  cor0..----..3876
206c0 0d 0a 38 31 34 30 0d 0a 38 34 32 0d 0a 0d 0a 71  ..8140..842....q
206d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
206e0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20  SELECT + col2 + 
206f0 39 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  96 FROM tab2 AS 
20700 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39 0d  cor0..----..119.
20710 0a 31 33 36 0d 0a 31 35 34 0d 0a 0d 0a 71 75 65  .136..154....que
20720 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
20730 4c 45 43 54 20 41 4c 4c 20 31 30 20 2a 20 63 6f  LECT ALL 10 * co
20740 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
20750 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
20760 20 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54   - col2 ) IS NOT
20770 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
20780 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
20790 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
207a0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
207b0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
207c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
207d0 6c 2d 36 39 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-698..SELECT DI
207e0 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55 4c  STINCT CAST( NUL
207f0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
20800 4d 41 58 28 20 33 31 20 2b 20 2d 20 31 35 20 29  MAX( 31 + - 15 )
20810 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
20820 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
20830 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
20840 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
20850 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
20860 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
20870 39 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  98..SELECT DISTI
20880 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  NCT CAST ( NULL 
20890 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 4d  AS INTEGER ) + M
208a0 41 58 20 28 20 33 31 20 2b 20 2d 20 31 35 20 29  AX ( 31 + - 15 )
208b0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
208c0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
208d0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
208e0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
208f0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
20900 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20910 65 6c 2d 36 39 39 0d 0a 53 45 4c 45 43 54 20 2b  el-699..SELECT +
20920 20 28 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20   ( - COUNT( ALL 
20930 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61  col0 ) ) FROM ta
20940 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
20950 20 28 20 30 20 29 20 3d 20 33 30 0d 0a 2d 2d 2d   ( 0 ) = 30..---
20960 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
20970 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
20980 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
20990 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 39  owsort label-699
209a0 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 43  ..SELECT + ( - C
209b0 4f 55 4e 54 20 28 20 41 4c 4c 20 63 6f 6c 30 20  OUNT ( ALL col0 
209c0 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ) ) FROM tab0 AS
209d0 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 30 20   cor0 WHERE ( 0 
209e0 29 20 3d 20 33 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  ) = 30..----..0.
209f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
20a00 72 74 0d 0a 53 45 4c 45 43 54 20 31 20 46 52 4f  rt..SELECT 1 FRO
20a10 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 2d  M tab2 WHERE ( -
20a20 20 38 34 20 29 20 42 45 54 57 45 45 4e 20 2d 20   84 ) BETWEEN - 
20a30 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 41 4e  col2 + - col2 AN
20a40 44 20 28 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  D ( col2 * + col
20a50 32 20 2b 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d  2 + - col0 )..--
20a60 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..1....onlyif 
20a70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
20a80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
20a90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
20aa0 6c 2d 37 30 31 0d 0a 53 45 4c 45 43 54 20 43 4f  l-701..SELECT CO
20ab0 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
20ac0 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b0 AS cor0 CROSS
20ad0 20 4a 4f 49 4e 20 74 61 62 30 0d 0a 2d 2d 2d 2d   JOIN tab0..----
20ae0 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..9....skipif my
20af0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
20b00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
20b10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 31 0d  wsort label-701.
20b20 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
20b30 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
20b40 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
20b50 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   tab0..----..9..
20b60 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
20b70 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
20b80 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
20b90 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 32 0d 0a  sort label-702..
20ba0 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
20bb0 29 20 2a 20 2b 20 33 33 20 46 52 4f 4d 20 74 61  ) * + 33 FROM ta
20bc0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
20bd0 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..99....skipif m
20be0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
20bf0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
20c00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 32  owsort label-702
20c10 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
20c20 20 2a 20 29 20 2a 20 2b 20 33 33 20 46 52 4f 4d   * ) * + 33 FROM
20c30 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
20c40 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  ---..99....onlyi
20c50 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
20c60 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
20c70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20c80 62 65 6c 2d 37 30 33 0d 0a 53 45 4c 45 43 54 20  bel-703..SELECT 
20c90 41 4c 4c 20 43 4f 55 4e 54 28 20 41 4c 4c 20 63  ALL COUNT( ALL c
20ca0 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol2 ) FROM tab0 
20cb0 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
20cc0 2d 20 2b 20 38 32 20 3e 20 28 20 4e 55 4c 4c 20  - + 82 > ( NULL 
20cd0 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  )..----..0....sk
20ce0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
20cf0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
20d00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20d10 65 6c 2d 37 30 33 0d 0a 53 45 4c 45 43 54 20 41  el-703..SELECT A
20d20 4c 4c 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 63  LL COUNT ( ALL c
20d30 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol2 ) FROM tab0 
20d40 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
20d50 2d 20 2b 20 38 32 20 3e 20 28 20 4e 55 4c 4c 20  - + 82 > ( NULL 
20d60 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  )..----..0....on
20d70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
20d80 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
20d90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20da0 20 6c 61 62 65 6c 2d 37 30 34 0d 0a 53 45 4c 45   label-704..SELE
20db0 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20  CT DISTINCT ( - 
20dc0 43 4f 55 4e 54 28 20 36 37 20 29 20 29 20 41 53  COUNT( 67 ) ) AS
20dd0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
20de0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
20df0 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
20e00 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
20e10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
20e20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
20e30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20e40 65 6c 2d 37 30 34 0d 0a 53 45 4c 45 43 54 20 44  el-704..SELECT D
20e50 49 53 54 49 4e 43 54 20 28 20 2d 20 43 4f 55 4e  ISTINCT ( - COUN
20e60 54 20 28 20 36 37 20 29 20 29 20 41 53 20 63 6f  T ( 67 ) ) AS co
20e70 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
20e80 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
20e90 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
20ea0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
20eb0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
20ec0 43 54 20 2d 20 28 20 2b 20 36 34 20 29 20 46 52  CT - ( + 64 ) FR
20ed0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
20ee0 2d 2d 0d 0a 2d 36 34 0d 0a 2d 36 34 0d 0a 2d 36  --..-64..-64..-6
20ef0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
20f00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
20f10 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
20f20 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
20f30 31 20 2a 20 39 34 20 3c 3d 20 36 0d 0a 2d 2d 2d  1 * 94 <= 6..---
20f40 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
20f50 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
20f60 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
20f70 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
20f80 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
20f90 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
20fa0 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
20fb0 2b 20 28 20 36 30 20 29 20 49 53 20 4e 55 4c 4c  + ( 60 ) IS NULL
20fc0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
20fd0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
20fe0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
20ff0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
21000 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
21010 42 45 54 57 45 45 4e 20 28 20 2d 20 63 6f 6c 31  BETWEEN ( - col1
21020 20 2a 20 2b 20 28 20 2b 20 63 6f 6c 32 20 2f 20   * + ( + col2 / 
21030 2b 20 63 6f 6c 32 20 29 20 29 20 41 4e 44 20 4e  + col2 ) ) AND N
21040 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
21050 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
21060 4c 45 43 54 20 28 20 63 6f 6c 32 20 29 20 2f 20  LECT ( col2 ) / 
21070 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
21080 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
21090 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 4e 4f 54  ERE NOT col0 NOT
210a0 20 42 45 54 57 45 45 4e 20 2d 20 31 37 20 2a 20   BETWEEN - 17 * 
210b0 2d 20 33 39 20 41 4e 44 20 2b 20 63 6f 6c 30 0d  - 39 AND + col0.
210c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
210d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
210e0 20 41 4c 4c 20 2d 20 38 38 20 2a 20 36 31 20 41   ALL - 88 * 61 A
210f0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
21100 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
21110 2d 35 33 36 38 0d 0a 2d 35 33 36 38 0d 0a 2d 35  -5368..-5368..-5
21120 33 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  368....onlyif my
21130 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
21140 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
21150 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21160 74 20 6c 61 62 65 6c 2d 37 31 31 0d 0a 53 45 4c  t label-711..SEL
21170 45 43 54 20 41 4c 4c 20 2d 20 2b 20 33 35 20 44  ECT ALL - + 35 D
21180 49 56 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c  IV - col1 AS col
21190 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
211a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  or0..----..0..1.
211b0 0a 33 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .35....skipif my
211c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
211d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
211e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 31 0d  wsort label-711.
211f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20  .SELECT ALL - + 
21200 33 35 20 2f 20 2d 20 63 6f 6c 31 20 41 53 20 63  35 / - col1 AS c
21210 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
21220 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
21230 31 0d 0a 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..35....onlyif 
21240 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
21250 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
21260 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
21270 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
21280 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 32 0d  wsort label-712.
21290 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
212a0 55 4e 54 28 20 2a 20 29 20 44 49 56 20 28 20 2b  UNT( * ) DIV ( +
212b0 20 28 20 2d 20 36 35 20 29 20 29 20 46 52 4f 4d   ( - 65 ) ) FROM
212c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
212d0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
212e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
212f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21300 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21310 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  12..SELECT ALL -
21320 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 28   COUNT ( * ) / (
21330 20 2b 20 28 20 2d 20 36 35 20 29 20 29 20 46 52   + ( - 65 ) ) FR
21340 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
21350 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
21360 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
21370 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
21380 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21390 61 62 65 6c 2d 37 31 33 0d 0a 53 45 4c 45 43 54  abel-713..SELECT
213a0 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 28   DISTINCT + SUM(
213b0 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 2a 20   ALL + col2 ) * 
213c0 2b 20 38 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 88 FROM tab0..
213d0 2d 2d 2d 2d 0d 0a 31 33 37 32 38 0d 0a 0d 0a 73  ----..13728....s
213e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
213f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21400 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21410 62 65 6c 2d 37 31 33 0d 0a 53 45 4c 45 43 54 20  bel-713..SELECT 
21420 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 20 28  DISTINCT + SUM (
21430 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 2a 20   ALL + col2 ) * 
21440 2b 20 38 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 88 FROM tab0..
21450 2d 2d 2d 2d 0d 0a 31 33 37 32 38 0d 0a 0d 0a 6f  ----..13728....o
21460 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
21470 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
21480 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
21490 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
214a0 37 31 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  714..SELECT ALL 
214b0 63 6f 6c 32 20 44 49 56 20 38 38 20 41 53 20 63  col2 DIV 88 AS c
214c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
214d0 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a  ---..0..0..1....
214e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
214f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
21500 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21510 61 62 65 6c 2d 37 31 34 0d 0a 53 45 4c 45 43 54  abel-714..SELECT
21520 20 41 4c 4c 20 63 6f 6c 32 20 2f 20 38 38 20 41   ALL col2 / 88 A
21530 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
21540 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d  ..----..0..0..1.
21550 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
21560 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
21570 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
21580 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20  RE NOT NULL NOT 
21590 42 45 54 57 45 45 4e 20 2d 20 31 31 20 2f 20 63  BETWEEN - 11 / c
215a0 6f 6c 31 20 41 4e 44 20 63 6f 6c 30 20 2d 20 63  ol1 AND col0 - c
215b0 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol1..----....que
215c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
215d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
215e0 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a 20  l2 * + + col2 * 
215f0 35 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  52 AS col0 FROM 
21600 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38 31 30  tab1..----..1810
21610 31 32 0d 0a 32 34 30 34 34 38 0d 0a 34 37 39 32  12..240448..4792
21620 33 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  32....onlyif mys
21630 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
21640 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
21650 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21660 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  17..SELECT DISTI
21670 4e 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49  NCT - SUM( DISTI
21680 4e 43 54 20 36 31 20 29 20 46 52 4f 4d 20 74 61  NCT 61 ) FROM ta
21690 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 31 0d 0a 0d  b0..----..-61...
216a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
216b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
216c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
216d0 6c 61 62 65 6c 2d 37 31 37 0d 0a 53 45 4c 45 43  label-717..SELEC
216e0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 53 55 4d  T DISTINCT - SUM
216f0 20 28 20 44 49 53 54 49 4e 43 54 20 36 31 20 29   ( DISTINCT 61 )
21700 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
21710 0d 0a 2d 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-61....onlyif 
21720 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
21730 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
21740 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21750 6c 2d 37 31 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-718..SELECT DI
21760 53 54 49 4e 43 54 20 2b 20 4d 41 58 28 20 41 4c  STINCT + MAX( AL
21770 4c 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  L - col0 ) FROM 
21780 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 32  tab1 WHERE NOT 2
21790 39 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 34 36 20  9 + col2 * - 46 
217a0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
217b0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
217c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
217d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
217e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
217f0 37 31 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  718..SELECT DIST
21800 49 4e 43 54 20 2b 20 4d 41 58 20 28 20 41 4c 4c  INCT + MAX ( ALL
21810 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   - col0 ) FROM t
21820 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 32 39  ab1 WHERE NOT 29
21830 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 34 36 20 49   + col2 * - 46 I
21840 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
21850 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
21860 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
21870 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
21880 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
21890 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 39 0d 0a  sort label-719..
218a0 53 45 4c 45 43 54 20 2b 20 37 33 20 2a 20 2b 20  SELECT + 73 * + 
218b0 2d 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 28  - col0 * - CAST(
218c0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
218d0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
218e0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
218f0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
21900 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
21910 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
21920 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 39 0d  wsort label-719.
21930 0a 53 45 4c 45 43 54 20 2b 20 37 33 20 2a 20 2b  .SELECT + 73 * +
21940 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54   - col0 * - CAST
21950 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
21960 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  ER ) FROM tab2..
21970 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
21980 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
21990 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
219a0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
219b0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
219c0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 30 0d 0a  sort label-720..
219d0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 44 49  SELECT - col1 DI
219e0 56 20 2d 20 28 20 63 6f 6c 30 20 29 20 41 53 20  V - ( col0 ) AS 
219f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
21a00 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 35 0d 0a 0d  ----..0..0..5...
21a10 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
21a20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
21a30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
21a40 6c 61 62 65 6c 2d 37 32 30 0d 0a 53 45 4c 45 43  label-720..SELEC
21a50 54 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 28 20 63  T - col1 / - ( c
21a60 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol0 ) AS col2 FR
21a70 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
21a80 0d 0a 30 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..5....skipif
21a90 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
21aa0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
21ab0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
21ac0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
21ad0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
21ae0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
21af0 30 20 2a 20 2b 20 36 37 20 63 6f 6c 32 20 46 52  0 * + 67 col2 FR
21b00 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
21b10 33 34 31 37 0d 0a 2d 35 36 39 35 0d 0a 2d 36 30  3417..-5695..-60
21b20 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  97....onlyif mys
21b30 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
21b40 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
21b50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21b60 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d  22..SELECT ALL M
21b70 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29  AX( ALL + col0 )
21b80 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
21b90 20 4e 4f 54 20 63 6f 6c 32 20 49 53 20 4e 4f 54   NOT col2 IS NOT
21ba0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
21bb0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
21bc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21bd0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21be0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 32 0d 0a 53  ort label-722..S
21bf0 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 20 28 20  ELECT ALL MAX ( 
21c00 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  ALL + col0 ) FRO
21c10 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
21c20 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
21c30 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
21c40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
21c50 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
21c60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
21c70 6f 72 74 20 6c 61 62 65 6c 2d 37 32 33 0d 0a 53  ort label-723..S
21c80 45 4c 45 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2b  ELECT MIN( ALL +
21c90 20 39 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20   92 ) FROM tab0 
21ca0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
21cb0 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
21cc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21cd0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
21ce0 6f 72 74 20 6c 61 62 65 6c 2d 37 32 33 0d 0a 53  ort label-723..S
21cf0 45 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20  ELECT MIN ( ALL 
21d00 2b 20 39 32 20 29 20 46 52 4f 4d 20 74 61 62 30  + 92 ) FROM tab0
21d10 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
21d20 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  92....onlyif mys
21d30 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
21d40 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
21d50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21d60 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  24..SELECT ALL +
21d70 20 4d 41 58 28 20 41 4c 4c 20 35 39 20 29 20 46   MAX( ALL 59 ) F
21d80 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
21d90 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
21da0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   cor1..----..59.
21db0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
21dc0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
21dd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21de0 74 20 6c 61 62 65 6c 2d 37 32 34 0d 0a 53 45 4c  t label-724..SEL
21df0 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 20 28 20  ECT ALL + MAX ( 
21e00 41 4c 4c 20 35 39 20 29 20 46 52 4f 4d 20 74 61  ALL 59 ) FROM ta
21e10 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
21e20 20 4a 4f 49 4e 20 74 61 62 31 20 63 6f 72 31 0d   JOIN tab1 cor1.
21e30 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 73 6b 69  .----..59....ski
21e40 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
21e50 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
21e60 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
21e70 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
21e80 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
21e90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
21ea0 4c 20 28 20 36 38 20 29 20 63 6f 6c 32 20 46 52  L ( 68 ) col2 FR
21eb0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
21ec0 54 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 4e  T ( + - col2 ) N
21ed0 4f 54 20 49 4e 20 28 20 63 6f 6c 32 20 29 0d 0a  OT IN ( col2 )..
21ee0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
21ef0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
21f00 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
21f10 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20   cor0 WHERE ( + 
21f20 34 34 20 29 20 3c 20 2d 20 39 39 20 2b 20 63 6f  44 ) < - 99 + co
21f30 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l0..----....quer
21f40 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
21f50 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63  ECT + col2 * - c
21f60 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f  ol0 + + col0 FRO
21f70 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
21f80 2d 2d 2d 2d 0d 0a 2d 36 39 30 0d 0a 2d 37 38 33  ----..-690..-783
21f90 0d 0a 2d 39 35 30 36 0d 0a 0d 0a 71 75 65 72 79  ..-9506....query
21fa0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21fb0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41 53  CT ALL - col0 AS
21fc0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
21fd0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 35 34  AS cor0 WHERE 54
21fe0 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   = NULL..----...
21ff0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
22000 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
22010 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
22020 6f 72 74 20 6c 61 62 65 6c 2d 37 32 39 0d 0a 53  ort label-729..S
22030 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 35  ELECT DISTINCT 5
22040 31 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  1 - - COUNT( * )
22050 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
22060 57 48 45 52 45 20 2d 20 34 38 20 49 53 20 4e 55  WHERE - 48 IS NU
22070 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a  LL..----..51....
22080 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
22090 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
220a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
220b0 61 62 65 6c 2d 37 32 39 0d 0a 53 45 4c 45 43 54  abel-729..SELECT
220c0 20 44 49 53 54 49 4e 43 54 20 35 31 20 2d 20 2d   DISTINCT 51 - -
220d0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
220e0 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
220f0 45 20 2d 20 34 38 20 49 53 20 4e 55 4c 4c 0d 0a  E - 48 IS NULL..
22100 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72  ----..51....quer
22110 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
22120 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 37  ECT - col0 + + 7
22130 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
22140 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a  ab1..----..-13..
22150 2d 37 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  -7..27....onlyif
22160 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
22170 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
22180 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
22190 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 31 0d  wsort label-731.
221a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
221b0 20 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 41 53 20   col0 / col2 AS 
221c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
221d0 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c  HERE NOT ( + col
221e0 31 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  1 + - CAST( NULL
221f0 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20   AS DECIMAL ) ) 
22200 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
22210 20 28 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   ( - col2 )..---
22220 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
22230 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
22240 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
22250 6f 72 74 20 6c 61 62 65 6c 2d 37 33 31 0d 0a 53  ort label-731..S
22260 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
22270 6f 6c 30 20 2f 20 63 6f 6c 32 20 41 53 20 63 6f  ol0 / col2 AS co
22280 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
22290 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 31 20  RE NOT ( + col1 
222a0 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
222b0 41 53 20 52 45 41 4c 20 29 20 29 20 42 45 54 57  AS REAL ) ) BETW
222c0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 2d  EEN NULL AND ( -
222d0 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
222e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
222f0 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 63  ..SELECT - ( - c
22300 6f 6c 31 20 29 20 2b 20 2b 20 63 6f 6c 30 20 46  ol1 ) + + col0 F
22310 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
22320 31 34 31 0d 0a 31 34 32 0d 0a 39 37 0d 0a 0d 0a  141..142..97....
22330 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
22340 0a 53 45 4c 45 43 54 20 28 20 63 6f 6c 30 20 29  .SELECT ( col0 )
22350 20 2b 20 2b 20 35 32 20 2d 20 2b 20 34 34 20 2a   + + 52 - + 44 *
22360 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
22370 0a 2d 2d 2d 2d 0d 0a 2d 32 31 34 36 0d 0a 2d 32  .----..-2146..-2
22380 38 32 31 0d 0a 2d 33 32 37 32 0d 0a 0d 0a 6f 6e  821..-3272....on
22390 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
223a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
223b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
223c0 20 6c 61 62 65 6c 2d 37 33 34 0d 0a 53 45 4c 45   label-734..SELE
223d0 43 54 20 2b 20 38 30 20 2b 20 2b 20 43 4f 55 4e  CT + 80 + + COUN
223e0 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
223f0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
22400 38 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  83....skipif mys
22410 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22420 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
22430 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 34 0d 0a  sort label-734..
22440 53 45 4c 45 43 54 20 2b 20 38 30 20 2b 20 2b 20  SELECT + 80 + + 
22450 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
22460 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
22470 2d 2d 2d 0d 0a 38 33 0d 0a 0d 0a 71 75 65 72 79  ---..83....query
22480 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
22490 43 54 20 37 32 20 2b 20 2b 20 2b 20 63 6f 6c 31  CT 72 + + + col1
224a0 20 2a 20 2b 20 2b 20 38 39 20 41 53 20 63 6f 6c   * + + 89 AS col
224b0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
224c0 2d 0d 0a 34 36 31 31 0d 0a 36 30 33 35 0d 0a 36  -..4611..6035..6
224d0 39 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  925....query I r
224e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
224f0 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 30   col2 + + - col0
22500 20 2a 20 33 39 20 2d 20 2b 20 28 20 2b 20 63 6f   * 39 - + ( + co
22510 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
22520 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab0..----..-3
22530 34 30 34 0d 0a 2d 33 36 38 35 0d 0a 2d 36 31 39  404..-3685..-619
22540 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
22550 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
22560 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
22570 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
22580 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
22590 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
225a0 4c 45 43 54 20 2d 20 34 36 20 2b 20 2d 20 2d 20  LECT - 46 + - - 
225b0 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col0 col2 FROM t
225c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 34  ab1..----..39..4
225d0 35 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5..5....onlyif m
225e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
225f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
22600 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22610 2d 37 33 38 0d 0a 53 45 4c 45 43 54 20 38 30 20  -738..SELECT 80 
22620 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
22630 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
22640 38 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  83....skipif mys
22650 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22660 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
22670 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 38 0d 0a  sort label-738..
22680 53 45 4c 45 43 54 20 38 30 20 2b 20 2b 20 43 4f  SELECT 80 + + CO
22690 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
226a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 33 0d 0a 0d  ab0..----..83...
226b0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
226c0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
226d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
226e0 6f 72 74 20 6c 61 62 65 6c 2d 37 33 39 0d 0a 53  ort label-739..S
226f0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 38  ELECT DISTINCT 8
22700 36 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  6 + + COUNT( * )
22710 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
22720 0d 0a 38 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..89....skipif m
22730 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
22740 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
22750 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 39  owsort label-739
22760 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
22770 54 20 38 36 20 2b 20 2b 20 43 4f 55 4e 54 20 28  T 86 + + COUNT (
22780 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   * ) FROM tab0..
22790 2d 2d 2d 2d 0d 0a 38 39 0d 0a 0d 0a 6f 6e 6c 79  ----..89....only
227a0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
227b0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
227c0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
227d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 30  owsort label-740
227e0 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b  ..SELECT CAST( +
227f0 20 39 30 20 41 53 20 53 49 47 4e 45 44 20 29 20   90 AS SIGNED ) 
22800 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  * + col2 AS col0
22810 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
22820 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d   NULL NOT IN ( -
22830 20 34 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   49 )..----....s
22840 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
22850 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
22860 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22870 62 65 6c 2d 37 34 30 0d 0a 53 45 4c 45 43 54 20  bel-740..SELECT 
22880 43 41 53 54 20 28 20 2b 20 39 30 20 41 53 20 49  CAST ( + 90 AS I
22890 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 63 6f 6c  NTEGER ) * + col
228a0 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
228b0 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  ab0 WHERE NULL N
228c0 4f 54 20 49 4e 20 28 20 2d 20 34 39 20 29 0d 0a  OT IN ( - 49 )..
228d0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
228e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
228f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
22900 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22910 2d 37 34 31 0d 0a 53 45 4c 45 43 54 20 2b 20 36  -741..SELECT + 6
22920 34 20 2b 20 2b 20 4d 49 4e 28 20 2d 20 63 6f 6c  4 + + MIN( - col
22930 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  0 ) FROM tab1..-
22940 2d 2d 2d 0d 0a 2d 32 37 0d 0a 0d 0a 73 6b 69 70  ---..-27....skip
22950 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
22960 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
22970 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22980 2d 37 34 31 0d 0a 53 45 4c 45 43 54 20 2b 20 36  -741..SELECT + 6
22990 34 20 2b 20 2b 20 4d 49 4e 20 28 20 2d 20 63 6f  4 + + MIN ( - co
229a0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  l0 ) FROM tab1..
229b0 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 0d 0a 6f 6e 6c  ----..-27....onl
229c0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
229d0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
229e0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
229f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
22a00 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
22a10 63 6f 6c 31 20 44 49 56 20 2b 20 63 6f 6c 31 20  col1 DIV + col1 
22a20 2b 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  + + ( + - col1 )
22a30 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 46   + col2 * col2 F
22a40 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
22a50 32 31 32 37 0d 0a 37 38 0d 0a 39 37 39 39 0d 0a  2127..78..9799..
22a60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
22a70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
22a80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22a90 20 6c 61 62 65 6c 2d 37 34 32 0d 0a 53 45 4c 45   label-742..SELE
22aa0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2f 20  CT ALL - col1 / 
22ab0 2b 20 63 6f 6c 31 20 2b 20 2b 20 28 20 2b 20 2d  + col1 + + ( + -
22ac0 20 63 6f 6c 31 20 29 20 2b 20 63 6f 6c 32 20 2a   col1 ) + col2 *
22ad0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
22ae0 0a 2d 2d 2d 2d 0d 0a 32 31 32 37 0d 0a 37 38 0d  .----..2127..78.
22af0 0a 39 37 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .9799....onlyif 
22b00 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
22b10 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
22b20 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
22b30 6f 72 74 20 6c 61 62 65 6c 2d 37 34 33 0d 0a 53  ort label-743..S
22b40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
22b50 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c 32 20 2d  ol0 DIV + col2 -
22b60 20 2d 20 2b 20 39 37 20 46 52 4f 4d 20 74 61 62   - + 97 FROM tab
22b70 32 0d 0a 2d 2d 2d 2d 0d 0a 39 38 0d 0a 39 39 0d  2..----..98..99.
22b80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22b90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22ba0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22bb0 74 20 6c 61 62 65 6c 2d 37 34 33 0d 0a 53 45 4c  t label-743..SEL
22bc0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
22bd0 30 20 2f 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2b  0 / + col2 - - +
22be0 20 39 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   97 FROM tab2..-
22bf0 2d 2d 2d 0d 0a 39 38 0d 0a 39 39 0d 0a 0d 0a 71  ---..98..99....q
22c00 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
22c10 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
22c20 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 30 20   - col2 + + + 0 
22c30 41 53 20 63 6f 6c 32 2c 20 28 20 2b 20 2d 20 31  AS col2, ( + - 1
22c40 36 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  6 ) FROM tab0..-
22c50 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 36 0d 0a 2d  ---..-10..-16..-
22c60 34 37 0d 0a 2d 31 36 0d 0a 2d 39 39 0d 0a 2d 31  47..-16..-99..-1
22c70 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
22c80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
22c90 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
22ca0 61 62 32 20 57 48 45 52 45 20 28 20 2b 20 63 6f  ab2 WHERE ( + co
22cb0 6c 31 20 2a 20 2d 20 28 20 2b 20 28 20 2b 20 63  l1 * - ( + ( + c
22cc0 6f 6c 30 20 29 20 29 20 2d 20 28 20 63 6f 6c 31  ol0 ) ) - ( col1
22cd0 20 29 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d   ) ) <> NULL..--
22ce0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
22cf0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
22d00 4c 20 2b 20 28 20 2b 20 37 37 20 29 20 2a 20 33  L + ( + 77 ) * 3
22d10 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  9 AS col1 FROM t
22d20 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
22d30 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 31 36 20  - + col1 * - 16 
22d40 29 20 4e 4f 54 20 49 4e 20 28 20 30 20 29 0d 0a  ) NOT IN ( 0 )..
22d50 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
22d60 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
22d70 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
22d80 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22d90 2d 37 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -747..SELECT ALL
22da0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
22db0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
22dc0 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
22dd0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
22de0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
22df0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
22e00 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
22e10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22e20 37 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  747..SELECT ALL 
22e30 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
22e40 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
22e50 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
22e60 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
22e70 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
22e80 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
22e90 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
22ea0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
22eb0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
22ec0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
22ed0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
22ee0 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 33 35 20  - col0 * - - 35 
22ef0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
22f00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
22f10 36 31 30 0d 0a 2d 32 32 34 30 0d 0a 2d 32 36 32  610..-2240..-262
22f20 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
22f30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
22f40 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
22f50 72 30 20 57 48 45 52 45 20 28 20 63 6f 6c 31 20  r0 WHERE ( col1 
22f60 29 20 4e 4f 54 20 49 4e 20 28 20 37 30 20 2a 20  ) NOT IN ( 70 * 
22f70 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d  col1 + col0 )..-
22f80 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
22f90 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
22fa0 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
22fb0 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
22fc0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
22fd0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
22fe0 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20 4e  M tab0 WHERE ( N
22ff0 55 4c 4c 20 29 20 3c 20 28 20 37 39 20 2a 20 2d  ULL ) < ( 79 * -
23000 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   + col2 )..----.
23010 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
23020 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
23030 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
23040 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
23050 62 65 6c 2d 37 35 31 0d 0a 53 45 4c 45 43 54 20  bel-751..SELECT 
23060 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20  DISTINCT col1 * 
23070 2b 20 2b 20 43 41 53 54 28 20 63 6f 6c 31 20 41  + + CAST( col1 A
23080 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
23090 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
230a0 2d 2d 0d 0a 32 36 30 31 0d 0a 34 34 38 39 0d 0a  --..2601..4489..
230b0 35 39 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  5929....skipif m
230c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
230d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
230e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 31  owsort label-751
230f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
23100 54 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 43 41 53  T col1 * + + CAS
23110 54 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  T ( col1 AS INTE
23120 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52  GER ) AS col1 FR
23130 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
23140 36 30 31 0d 0a 34 34 38 39 0d 0a 35 39 32 39 0d  601..4489..5929.
23150 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
23160 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
23170 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
23180 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 32 0d  wsort label-752.
23190 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
231a0 20 2d 20 53 55 4d 28 20 2d 20 2d 20 63 6f 6c 32   - SUM( - - col2
231b0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
231c0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36  tab0..----..-156
231d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
231e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
231f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
23200 72 74 20 6c 61 62 65 6c 2d 37 35 32 0d 0a 53 45  rt label-752..SE
23210 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
23220 53 55 4d 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29  SUM ( - - col2 )
23230 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
23240 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a  b0..----..-156..
23250 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23260 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 46  t..SELECT col0 F
23270 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
23280 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
23290 4c 20 29 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L ) = NULL..----
232a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
232b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
232c0 2b 20 63 6f 6c 32 20 2a 20 2d 20 38 34 20 46 52  + col2 * - 84 FR
232d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
232e0 0a 2d 2d 2d 2d 0d 0a 2d 33 39 34 38 0d 0a 2d 38  .----..-3948..-8
232f0 33 31 36 0d 0a 2d 38 34 30 0d 0a 0d 0a 6f 6e 6c  316..-840....onl
23300 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
23310 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
23320 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23330 6c 61 62 65 6c 2d 37 35 35 0d 0a 53 45 4c 45 43  label-755..SELEC
23340 54 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 37  T - COUNT( ALL 7
23350 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
23360 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
23370 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
23380 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
23390 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
233a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 35  owsort label-755
233b0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
233c0 20 28 20 41 4c 4c 20 37 32 20 29 20 41 53 20 63   ( ALL 72 ) AS c
233d0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol2 FROM tab0 co
233e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  r0..----..-3....
233f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
23400 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
23410 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
23420 72 74 20 6c 61 62 65 6c 2d 37 35 36 0d 0a 53 45  rt label-756..SE
23430 4c 45 43 54 20 4d 49 4e 28 20 44 49 53 54 49 4e  LECT MIN( DISTIN
23440 43 54 20 2b 20 2d 20 36 32 20 29 20 63 6f 6c 30  CT + - 62 ) col0
23450 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
23460 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d  r0..----..-62...
23470 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23480 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23490 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
234a0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
234b0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
234c0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
234d0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
234e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
234f0 35 36 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28  56..SELECT MIN (
23500 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 36 32   DISTINCT + - 62
23510 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
23520 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
23530 0a 2d 36 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-62....query I 
23540 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23550 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 34 37 20  - col2 * + + 47 
23560 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
23570 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
23580 0a 2d 32 37 37 33 0d 0a 2d 33 31 39 36 0d 0a 2d  .-2773..-3196..-
23590 34 35 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  4512....query II
235a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
235b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
235c0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
235d0 28 20 63 6f 6c 31 20 29 20 3c 3d 20 4e 55 4c 4c  ( col1 ) <= NULL
235e0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
235f0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
23600 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
23610 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
23620 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 39 0d 0a  sort label-759..
23630 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
23640 2b 20 28 20 43 41 53 54 28 20 2b 20 63 6f 6c 31  + ( CAST( + col1
23650 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a   AS SIGNED ) ) *
23660 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
23670 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
23680 0a 31 0d 0a 34 34 31 0d 0a 36 35 36 31 0d 0a 0d  .1..441..6561...
23690 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
236a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
236b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
236c0 6c 61 62 65 6c 2d 37 35 39 0d 0a 53 45 4c 45 43  label-759..SELEC
236d0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 43  T DISTINCT + ( C
236e0 41 53 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20  AST ( + col1 AS 
236f0 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2b 20  INTEGER ) ) * + 
23700 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
23710 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
23720 0a 34 34 31 0d 0a 36 35 36 31 0d 0a 0d 0a 6f 6e  .441..6561....on
23730 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
23740 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
23750 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
23760 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
23770 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  60..SELECT ALL -
23780 20 37 31 20 44 49 56 20 2d 20 37 32 20 46 52 4f   71 DIV - 72 FRO
23790 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
237a0 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
237b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
237c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
237d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
237e0 6c 61 62 65 6c 2d 37 36 30 0d 0a 53 45 4c 45 43  label-760..SELEC
237f0 54 20 41 4c 4c 20 2d 20 37 31 20 2f 20 2d 20 37  T ALL - 71 / - 7
23800 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
23810 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  or0..----..0..0.
23820 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .0....query III 
23830 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23840 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
23850 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
23860 52 45 20 4e 4f 54 20 2d 20 28 20 63 6f 6c 32 20  RE NOT - ( col2 
23870 29 20 2a 20 2b 20 28 20 2b 20 35 30 20 29 20 2b  ) * + ( + 50 ) +
23880 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
23890 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
238a0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
238b0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
238c0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
238d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 32  owsort label-762
238e0 0d 0a 53 45 4c 45 43 54 20 36 20 41 53 20 63 6f  ..SELECT 6 AS co
238f0 6c 30 2c 20 32 32 20 44 49 56 20 2b 20 32 35 20  l0, 22 DIV + 25 
23900 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
23910 0a 36 0d 0a 30 0d 0a 36 0d 0a 30 0d 0a 36 0d 0a  .6..0..6..0..6..
23920 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
23930 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23940 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
23950 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 32 0d 0a  sort label-762..
23960 53 45 4c 45 43 54 20 36 20 41 53 20 63 6f 6c 30  SELECT 6 AS col0
23970 2c 20 32 32 20 2f 20 2b 20 32 35 20 46 52 4f 4d  , 22 / + 25 FROM
23980 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a   tab0..----..6..
23990 30 0d 0a 36 0d 0a 30 0d 0a 36 0d 0a 30 0d 0a 0d  0..6..0..6..0...
239a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
239b0 0d 0a 53 45 4c 45 43 54 20 2d 20 33 37 20 41 53  ..SELECT - 37 AS
239c0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
239d0 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32  WHERE NOT + col2
239e0 20 2a 20 2b 20 63 6f 6c 32 20 4e 4f 54 20 42 45   * + col2 NOT BE
239f0 54 57 45 45 4e 20 2b 20 2b 20 36 38 20 41 4e 44  TWEEN + + 68 AND
23a00 20 2d 20 2d 20 33 37 20 2a 20 2b 20 38 30 0d 0a   - - 37 * + 80..
23a10 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 2d 33 37 0d 0a  ----..-37..-37..
23a20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23a30 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
23a40 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 41 53  col2 + + col2 AS
23a50 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
23a60 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63 6f  WHERE NOT + + co
23a70 6c 32 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 49 53  l2 - + + col2 IS
23a80 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
23a90 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0..0....onlyif m
23aa0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
23ab0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
23ac0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
23ad0 72 74 20 6c 61 62 65 6c 2d 37 36 35 0d 0a 53 45  rt label-765..SE
23ae0 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20 2b  LECT ALL CAST( +
23af0 20 38 34 20 41 53 20 53 49 47 4e 45 44 20 29 20   84 AS SIGNED ) 
23b00 46 52 4f 4d 20 74 61 62 32 2c 20 74 61 62 32 20  FROM tab2, tab2 
23b10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
23b20 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
23b30 74 6f 20 63 61 64 64 38 37 36 63 32 36 33 33 38  to cadd876c26338
23b40 66 63 35 38 62 39 32 39 37 65 37 34 66 63 33 32  fc58b9297e74fc32
23b50 34 64 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  4d8....skipif my
23b60 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
23b70 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
23b80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 35 0d  wsort label-765.
23b90 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
23ba0 20 28 20 2b 20 38 34 20 41 53 20 49 4e 54 45 47   ( + 84 AS INTEG
23bb0 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 2c 20  ER ) FROM tab2, 
23bc0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
23bd0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
23be0 68 69 6e 67 20 74 6f 20 63 61 64 64 38 37 36 63  hing to cadd876c
23bf0 32 36 33 33 38 66 63 35 38 62 39 32 39 37 65 37  26338fc58b9297e7
23c00 34 66 63 33 32 34 64 38 0d 0a 0d 0a 6f 6e 6c 79  4fc324d8....only
23c10 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
23c20 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
23c30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23c40 61 62 65 6c 2d 37 36 36 0d 0a 53 45 4c 45 43 54  abel-766..SELECT
23c50 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
23c60 2a 20 32 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a  * 26 FROM tab1..
23c70 2d 2d 2d 2d 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70  ----..78....skip
23c80 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23c90 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
23ca0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23cb0 2d 37 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -766..SELECT ALL
23cc0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 32   COUNT ( * ) * 2
23cd0 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  6 FROM tab1..---
23ce0 2d 0d 0a 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49  -..78....query I
23cf0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
23d00 20 38 35 20 46 52 4f 4d 20 74 61 62 32 20 57 48   85 FROM tab2 WH
23d10 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
23d20 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
23d30 2d 2d 0d 0a 38 35 0d 0a 38 35 0d 0a 38 35 0d 0a  --..85..85..85..
23d40 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
23d50 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 35 20  rt..SELECT - 55 
23d60 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 46 52  AS col2, col1 FR
23d70 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
23d80 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 31 0d 0a 2d  .----..-55..1..-
23d90 35 35 0d 0a 32 31 0d 0a 2d 35 35 0d 0a 38 31 0d  55..21..-55..81.
23da0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
23db0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39 34 20  rt..SELECT + 94 
23dc0 2a 20 37 32 20 46 52 4f 4d 20 74 61 62 30 20 41  * 72 FROM tab0 A
23dd0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 37  S cor0..----..67
23de0 36 38 0d 0a 36 37 36 38 0d 0a 36 37 36 38 0d 0a  68..6768..6768..
23df0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
23e00 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
23e10 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
23e20 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
23e30 61 62 65 6c 2d 37 37 30 0d 0a 53 45 4c 45 43 54  abel-770..SELECT
23e40 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
23e50 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
23e60 45 52 45 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ERE CAST( NULL A
23e70 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 2b  S SIGNED ) + + +
23e80 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 32   col0 + + + col2
23e90 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20   * - + col0 * - 
23ea0 28 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 29  ( + ( + col0 ) )
23eb0 20 3e 3d 20 2d 20 28 20 31 31 20 29 0d 0a 2d 2d   >= - ( 11 )..--
23ec0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
23ed0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23ee0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
23ef0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 30  owsort label-770
23f00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
23f10 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
23f20 20 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54   cor0 WHERE CAST
23f30 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
23f40 45 52 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 30 20  ER ) + + + col0 
23f50 2b 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2b  + + + col2 * - +
23f60 20 63 6f 6c 30 20 2a 20 2d 20 28 20 2b 20 28 20   col0 * - ( + ( 
23f70 2b 20 63 6f 6c 30 20 29 20 29 20 3e 3d 20 2d 20  + col0 ) ) >= - 
23f80 28 20 31 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  ( 11 )..----....
23f90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
23fa0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
23fb0 31 33 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f  13 + col2 * - co
23fc0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
23fd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 38  cor0..----..-158
23fe0 37 0d 0a 2d 33 33 35 31 0d 0a 2d 35 31 36 0d 0a  7..-3351..-516..
23ff0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
24000 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
24010 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
24020 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
24030 61 62 65 6c 2d 37 37 32 0d 0a 53 45 4c 45 43 54  abel-772..SELECT
24040 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
24050 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20 63  cor0 WHERE ( + c
24060 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 29 20 4e  ol2 + - col2 ) N
24070 4f 54 20 49 4e 20 28 20 28 20 43 41 53 54 28 20  OT IN ( ( CAST( 
24080 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
24090 20 29 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 34 38   ) * col2 + - 48
240a0 20 2a 20 2b 20 34 37 20 29 0d 0a 2d 2d 2d 2d 0d   * + 47 )..----.
240b0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
240c0 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
240d0 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
240e0 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  b43b7....skipif 
240f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
24100 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
24110 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24120 37 37 32 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  772..SELECT * FR
24130 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
24140 57 48 45 52 45 20 28 20 2b 20 63 6f 6c 32 20 2b  WHERE ( + col2 +
24150 20 2d 20 63 6f 6c 32 20 29 20 4e 4f 54 20 49 4e   - col2 ) NOT IN
24160 20 28 20 28 20 43 41 53 54 20 28 20 63 6f 6c 30   ( ( CAST ( col0
24170 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
24180 2a 20 63 6f 6c 32 20 2b 20 2d 20 34 38 20 2a 20  * col2 + - 48 * 
24190 2b 20 34 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  + 47 )..----..9 
241a0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
241b0 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
241c0 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
241d0 62 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  b7....skipif pos
241e0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
241f0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
24200 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
24210 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
24220 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
24230 53 45 4c 45 43 54 20 2b 20 38 36 20 2a 20 2b 20  SELECT + 86 * + 
24240 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20  - col1 + - col1 
24250 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
24260 2d 2d 2d 2d 0d 0a 2d 31 38 32 37 0d 0a 2d 37 30  ----..-1827..-70
24270 34 37 0d 0a 2d 38 37 0d 0a 0d 0a 71 75 65 72 79  47..-87....query
24280 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
24290 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  CT + - col0 * - 
242a0 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
242b0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
242c0 2d 0d 0a 32 31 31 36 0d 0a 34 30 39 36 0d 0a 35  -..2116..4096..5
242d0 36 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  625....onlyif my
242e0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
242f0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
24300 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24310 74 20 6c 61 62 65 6c 2d 37 37 35 0d 0a 53 45 4c  t label-775..SEL
24320 45 43 54 20 63 6f 6c 31 20 44 49 56 20 28 20 63  ECT col1 DIV ( c
24330 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
24340 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
24350 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a  .----..1..1..1..
24360 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
24370 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
24380 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24390 20 6c 61 62 65 6c 2d 37 37 35 0d 0a 53 45 4c 45   label-775..SELE
243a0 43 54 20 63 6f 6c 31 20 2f 20 28 20 63 6f 6c 31  CT col1 / ( col1
243b0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
243c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
243d0 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 71  --..1..1..1....q
243e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
243f0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
24400 30 20 2a 20 2d 20 28 20 2d 20 33 37 20 29 20 46  0 * - ( - 37 ) F
24410 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
24420 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 31 39 0d 0a 2d  ..----..-3219..-
24430 33 35 38 39 0d 0a 2d 35 35 35 0d 0a 0d 0a 6f 6e  3589..-555....on
24440 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
24450 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
24460 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24470 20 6c 61 62 65 6c 2d 37 37 37 0d 0a 53 45 4c 45   label-777..SELE
24480 43 54 20 2d 20 2b 20 53 55 4d 28 20 2b 20 28 20  CT - + SUM( + ( 
24490 2d 20 35 37 20 29 20 29 20 46 52 4f 4d 20 74 61  - 57 ) ) FROM ta
244a0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
244b0 0d 0a 31 37 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..171....skipif 
244c0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
244d0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
244e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
244f0 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 53 55  7..SELECT - + SU
24500 4d 20 28 20 2b 20 28 20 2d 20 35 37 20 29 20 29  M ( + ( - 57 ) )
24510 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
24520 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 31 0d 0a 0d  r0..----..171...
24530 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
24540 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
24550 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
24560 45 20 4e 55 4c 4c 20 3c 20 2d 20 63 6f 6c 32 0d  E NULL < - col2.
24570 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
24580 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24590 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
245a0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
245b0 31 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20 36 37  10 NOT IN ( - 67
245c0 20 2a 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   * + col2 )..---
245d0 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38 31 0d  -..-1..-21..-81.
245e0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
245f0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
24600 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
24610 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
24620 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45  E NULL NOT BETWE
24630 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 28 20  EN NULL AND ( ( 
24640 2b 20 38 37 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + 87 ) )..----..
24650 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24660 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
24670 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
24680 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
24690 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c  ( NULL ) IS NULL
246a0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 39 36 0d  ..----..108..96.
246b0 0a 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .98....onlyif my
246c0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
246d0 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
246e0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
246f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24700 6f 72 74 20 6c 61 62 65 6c 2d 37 38 32 0d 0a 53  ort label-782..S
24710 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
24720 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
24730 2d 20 2d 20 33 39 20 46 52 4f 4d 20 74 61 62 30  - - 39 FROM tab0
24740 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
24750 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
24760 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
24770 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
24780 6c 2d 37 38 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-782..SELECT DI
24790 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28  STINCT + COUNT (
247a0 20 2a 20 29 20 2f 20 2d 20 2d 20 33 39 20 46 52   * ) / - - 39 FR
247b0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
247c0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
247d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 56 47 20  ort..SELECT AVG 
247e0 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  ( - col0 ) FROM 
247f0 74 61 62 32 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab2 WHERE - col
24800 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  0 IS NULL..----.
24810 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
24820 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
24830 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
24840 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20  OM tab1 WHERE + 
24850 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2a 20  + col2 * col0 * 
24860 33 39 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  39 IS NOT NULL..
24870 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
24880 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
24890 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
248a0 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
248b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
248c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34  ELECT DISTINCT 4
248d0 33 20 2b 20 2b 20 32 35 20 46 52 4f 4d 20 74 61  3 + + 25 FROM ta
248e0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d 0a  b1..----..68....
248f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
24900 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
24910 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
24920 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
24930 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
24940 65 6c 2d 37 38 36 0d 0a 53 45 4c 45 43 54 20 2d  el-786..SELECT -
24950 20 38 33 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a   83 - + COUNT( *
24960 20 29 20 2d 20 2b 20 41 56 47 20 28 20 28 20 2d   ) - + AVG ( ( -
24970 20 2d 20 38 37 20 29 20 29 20 2f 20 43 41 53 54   - 87 ) ) / CAST
24980 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
24990 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
249a0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
249b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
249c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
249d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
249e0 2d 37 38 36 0d 0a 53 45 4c 45 43 54 20 2d 20 38  -786..SELECT - 8
249f0 33 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  3 - + COUNT ( * 
24a00 29 20 2d 20 2b 20 41 56 47 20 28 20 28 20 2d 20  ) - + AVG ( ( - 
24a10 2d 20 38 37 20 29 20 29 20 2f 20 43 41 53 54 20  - 87 ) ) / CAST 
24a20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
24a30 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  R ) FROM tab0..-
24a40 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
24a50 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
24a60 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24a70 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
24a80 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45  E NULL NOT BETWE
24a90 45 4e 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20  EN ( + + col1 ) 
24aa0 41 4e 44 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  AND col1..----..
24ab0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24ac0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
24ad0 36 38 20 2d 20 2d 20 35 36 20 46 52 4f 4d 20 74  68 - - 56 FROM t
24ae0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 0d 0a  ab0..----..124..
24af0 31 32 34 0d 0a 31 32 34 0d 0a 0d 0a 71 75 65 72  124..124....quer
24b00 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
24b10 4c 45 43 54 20 41 4c 4c 20 2b 20 35 2c 20 37 32  LECT ALL + 5, 72
24b20 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20   + - - col0 + + 
24b30 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20  + col2 * + col0 
24b40 2b 20 2b 20 2b 20 38 36 20 41 53 20 63 6f 6c 30  + + + 86 AS col0
24b50 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
24b60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 31 31 31  r0..----..5..111
24b70 35 0d 0a 35 0d 0a 38 37 38 0d 0a 35 0d 0a 39 38  5..5..878..5..98
24b80 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
24b90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
24ba0 4c 20 2d 20 28 20 2b 20 2b 20 31 38 20 29 20 2a  L - ( + + 18 ) *
24bb0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
24bc0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 32 0d 0a 2d  1..----..-252..-
24bd0 38 34 36 0d 0a 2d 39 30 0d 0a 0d 0a 6f 6e 6c 79  846..-90....only
24be0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
24bf0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
24c00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24c10 61 62 65 6c 2d 37 39 31 0d 0a 53 45 4c 45 43 54  abel-791..SELECT
24c20 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
24c30 20 33 20 29 20 2a 20 2d 20 2d 20 36 31 20 46 52   3 ) * - - 61 FR
24c40 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
24c50 31 38 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  183....skipif my
24c60 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
24c70 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
24c80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 31 0d  wsort label-791.
24c90 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 44 49  .SELECT MIN ( DI
24ca0 53 54 49 4e 43 54 20 2d 20 33 20 29 20 2a 20 2d  STINCT - 3 ) * -
24cb0 20 2d 20 36 31 20 46 52 4f 4d 20 74 61 62 30 0d   - 61 FROM tab0.
24cc0 0a 2d 2d 2d 2d 0d 0a 2d 31 38 33 0d 0a 0d 0a 71  .----..-183....q
24cd0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
24ce0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
24cf0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
24d00 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 2f 20  RE NOT + col1 / 
24d10 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20  - col0 * + col0 
24d20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44  BETWEEN col1 AND
24d30 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
24d40 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
24d50 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
24d60 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
24d70 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
24d80 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33  sort..SELECT - 3
24d90 31 20 2a 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29  1 * ( - - col0 )
24da0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
24db0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 32 36 0d  r0..----..-1426.
24dc0 0a 2d 31 39 38 34 0d 0a 2d 32 33 32 35 0d 0a 0d  .-1984..-2325...
24dd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24de0 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 2d  ..SELECT + ( - -
24df0 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 29 20   ( - + col2 ) ) 
24e00 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
24e10 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34  0..----..-10..-4
24e20 37 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20  7..-99....query 
24e30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
24e40 54 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 32 20 2a  T ALL - - col2 *
24e50 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 30   - + col2 * col0
24e60 20 2a 20 2d 20 34 32 20 2b 20 2d 20 63 6f 6c 30   * - 42 + - col0
24e70 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
24e80 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 34 32 37 30  r0..----..124270
24e90 38 35 0d 0a 31 37 36 37 32 38 33 37 0d 0a 31 39  85..17672837..19
24ea0 37 34 30 36 32 31 0d 0a 0d 0a 71 75 65 72 79 20  740621....query 
24eb0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
24ec0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
24ed0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
24ee0 54 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 4e  T col2 BETWEEN N
24ef0 55 4c 4c 20 41 4e 44 20 2d 20 39 30 0d 0a 2d 2d  ULL AND - 90..--
24f00 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
24f10 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
24f20 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
24f30 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
24f40 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
24f50 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
24f60 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
24f70 4e 4f 54 20 2b 20 35 32 20 49 53 20 4e 55 4c 4c  NOT + 52 IS NULL
24f80 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
24f90 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
24fa0 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
24fb0 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
24fc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
24fd0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28 20 2b 20  .SELECT - + ( + 
24fe0 31 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  10 ) FROM tab0 A
24ff0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
25000 30 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a 0d 0a 71  0..-10..-10....q
25010 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
25020 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
25030 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
25040 4f 54 20 2d 20 2b 20 35 31 20 49 53 20 4e 4f 54  OT - + 51 IS NOT
25050 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
25060 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
25070 53 45 4c 45 43 54 20 34 38 20 41 53 20 63 6f 6c  SELECT 48 AS col
25080 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
25090 45 20 4e 4f 54 20 28 20 2d 20 2d 20 38 36 20 2a  E NOT ( - - 86 *
250a0 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 30   - col0 / - col0
250b0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
250c0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
250d0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
250e0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
250f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25100 2d 38 30 31 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -801..SELECT + M
25110 49 4e 28 20 44 49 53 54 49 4e 43 54 20 28 20 63  IN( DISTINCT ( c
25120 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol0 ) ) FROM tab
25130 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73  1..----..51....s
25140 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
25150 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
25160 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25170 62 65 6c 2d 38 30 31 0d 0a 53 45 4c 45 43 54 20  bel-801..SELECT 
25180 2b 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  + MIN ( DISTINCT
25190 20 28 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d   ( col0 ) ) FROM
251a0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   tab1..----..51.
251b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
251c0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
251d0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
251e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 32 0d  wsort label-802.
251f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 34  .SELECT ALL + 34
25200 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   * + COUNT( * ) 
25210 2a 20 2d 20 2d 20 35 34 20 46 52 4f 4d 20 74 61  * - - 54 FROM ta
25220 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 35 30 38 0d 0a  b2..----..5508..
25230 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25240 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25250 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25260 20 6c 61 62 65 6c 2d 38 30 32 0d 0a 53 45 4c 45   label-802..SELE
25270 43 54 20 41 4c 4c 20 2b 20 33 34 20 2a 20 2b 20  CT ALL + 34 * + 
25280 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
25290 2d 20 35 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a  - 54 FROM tab2..
252a0 2d 2d 2d 2d 0d 0a 35 35 30 38 0d 0a 0d 0a 6f 6e  ----..5508....on
252b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
252c0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
252d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
252e0 20 6c 61 62 65 6c 2d 38 30 33 0d 0a 53 45 4c 45   label-803..SELE
252f0 43 54 20 44 49 53 54 49 4e 43 54 20 39 36 20 2b  CT DISTINCT 96 +
25300 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
25310 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
25320 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 28 20  WHERE NOT + + ( 
25330 2d 20 63 6f 6c 31 20 29 20 49 53 20 4e 4f 54 20  - col1 ) IS NOT 
25340 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a  NULL..----..96..
25350 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25360 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25370 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25380 20 6c 61 62 65 6c 2d 38 30 33 0d 0a 53 45 4c 45   label-803..SELE
25390 43 54 20 44 49 53 54 49 4e 43 54 20 39 36 20 2b  CT DISTINCT 96 +
253a0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
253b0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
253c0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 28   WHERE NOT + + (
253d0 20 2d 20 63 6f 6c 31 20 29 20 49 53 20 4e 4f 54   - col1 ) IS NOT
253e0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d   NULL..----..96.
253f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
25400 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
25410 2a 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b 20  * col2 * col1 + 
25420 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  + col1 FROM tab1
25430 0d 0a 2d 2d 2d 2d 0d 0a 32 35 30 38 30 0d 0a 32  ..----..25080..2
25440 39 30 38 38 33 0d 0a 36 38 35 35 38 0d 0a 0d 0a  90883..68558....
25450 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25460 0a 53 45 4c 45 43 54 20 2d 20 33 36 20 2b 20 2b  .SELECT - 36 + +
25470 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 28 20 31 36   col1 * - + ( 16
25480 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
25490 2d 2d 0d 0a 2d 31 31 30 38 0d 0a 2d 31 32 36 38  --..-1108..-1268
254a0 0d 0a 2d 38 35 32 0d 0a 0d 0a 71 75 65 72 79 20  ..-852....query 
254b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
254c0 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2b 20 2b  T ALL col0 * + +
254d0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
254e0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
254f0 31 31 36 0d 0a 34 30 39 36 0d 0a 35 36 32 35 0d  116..4096..5625.
25500 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
25510 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 37 20  rt..SELECT + 67 
25520 2b 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63  + - - col0 + + c
25530 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 46  ol1 * + + col2 F
25540 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
25550 32 36 33 0d 0a 33 36 34 0d 0a 33 38 38 39 0d 0a  263..364..3889..
25560 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
25570 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
25580 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
25590 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
255a0 65 6c 2d 38 30 38 0d 0a 53 45 4c 45 43 54 20 44  el-808..SELECT D
255b0 49 53 54 49 4e 43 54 20 28 20 43 41 53 54 28 20  ISTINCT ( CAST( 
255c0 2b 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  + + col2 AS SIGN
255d0 45 44 20 29 20 29 20 2a 20 2b 20 2d 20 31 20 41  ED ) ) * + - 1 A
255e0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
255f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38  ..----..-59..-68
25600 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-96....skipif 
25610 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
25620 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
25630 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30  rowsort label-80
25640 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
25650 43 54 20 28 20 43 41 53 54 20 28 20 2b 20 2b 20  CT ( CAST ( + + 
25660 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
25670 29 20 29 20 2a 20 2b 20 2d 20 31 20 41 53 20 63  ) ) * + - 1 AS c
25680 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
25690 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d  ---..-59..-68..-
256a0 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  96....query I ro
256b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
256c0 4c 20 2b 20 2b 20 31 39 20 2a 20 63 6f 6c 30 20  L + + 19 * col0 
256d0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
256e0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
256f0 0a 31 36 35 33 0d 0a 31 38 34 33 0d 0a 32 38 35  .1653..1843..285
25700 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
25710 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
25720 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
25730 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
25740 20 6c 61 62 65 6c 2d 38 31 30 0d 0a 53 45 4c 45   label-810..SELE
25750 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
25760 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
25770 57 48 45 52 45 20 63 6f 6c 30 20 2b 20 2d 20 2b  WHERE col0 + - +
25780 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32 20 2b   col1 / - col2 +
25790 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2f 20   ( - - col2 ) / 
257a0 32 37 20 2a 20 37 32 20 3c 3d 20 28 20 2b 20 43  27 * 72 <= ( + C
257b0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
257c0 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  NED ) )..----...
257d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
257e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
257f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
25800 74 20 6c 61 62 65 6c 2d 38 31 30 0d 0a 53 45 4c  t label-810..SEL
25810 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
25820 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
25830 20 57 48 45 52 45 20 63 6f 6c 30 20 2b 20 2d 20   WHERE col0 + - 
25840 2b 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32 20  + col1 / - col2 
25850 2b 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2f  + ( - - col2 ) /
25860 20 32 37 20 2a 20 37 32 20 3c 3d 20 28 20 2b 20   27 * 72 <= ( + 
25870 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
25880 4e 54 45 47 45 52 20 29 20 29 0d 0a 2d 2d 2d 2d  NTEGER ) )..----
25890 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
258a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
258b0 63 6f 6c 31 20 2a 20 2d 20 39 20 2d 20 2d 20 32  col1 * - 9 - - 2
258c0 39 20 2b 20 2d 20 36 33 20 2a 20 2d 20 2d 20 63  9 + - 63 * - - c
258d0 6f 6c 31 20 2a 20 2b 20 35 35 20 2f 20 2b 20 63  ol1 * + 55 / + c
258e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
258f0 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  r0 WHERE NULL NO
25900 54 20 49 4e 20 28 20 32 37 20 29 0d 0a 2d 2d 2d  T IN ( 27 )..---
25910 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
25920 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
25930 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
25940 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
25950 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  2..SELECT + COUN
25960 54 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53  T( + + col0 ) AS
25970 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
25980 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
25990 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
259a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
259b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
259c0 2d 38 31 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -812..SELECT + C
259d0 4f 55 4e 54 20 28 20 2b 20 2b 20 63 6f 6c 30 20  OUNT ( + + col0 
259e0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
259f0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab2..----..3....
25a00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25a10 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 32 36  .SELECT + ( + 26
25a20 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
25a30 2d 2d 0d 0a 32 36 0d 0a 32 36 0d 0a 32 36 0d 0a  --..26..26..26..
25a40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25a50 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
25a60 6c 32 20 2b 20 2d 20 33 31 20 41 53 20 63 6f 6c  l2 + - 31 AS col
25a70 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
25a80 2d 0d 0a 32 38 0d 0a 33 37 0d 0a 36 35 0d 0a 0d  -..28..37..65...
25a90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
25aa0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
25ab0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
25ac0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25ad0 65 6c 2d 38 31 35 0d 0a 53 45 4c 45 43 54 20 44  el-815..SELECT D
25ae0 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55  ISTINCT CAST( NU
25af0 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
25b00 2a 20 41 56 47 20 28 20 2b 20 33 31 20 29 20 46  * AVG ( + 31 ) F
25b10 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
25b20 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
25b30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
25b40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
25b50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 35  owsort label-815
25b60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
25b70 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  T CAST ( NULL AS
25b80 20 52 45 41 4c 20 29 20 2a 20 41 56 47 20 28 20   REAL ) * AVG ( 
25b90 2b 20 33 31 20 29 20 46 52 4f 4d 20 74 61 62 32  + 31 ) FROM tab2
25ba0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
25bb0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
25bc0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
25bd0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
25be0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
25bf0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
25c00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25c10 20 2b 20 34 20 2b 20 2d 20 2d 20 39 32 20 63 6f   + 4 + - - 92 co
25c20 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
25c30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a  cor0..----..96..
25c40 39 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20  96..96....query 
25c50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25c60 54 20 41 4c 4c 20 2b 20 2d 20 28 20 2b 20 63 6f  T ALL + - ( + co
25c70 6c 30 20 29 20 2b 20 2d 20 63 6f 6c 31 20 46 52  l0 ) + - col1 FR
25c80 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
25c90 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38 0d 0a 2d 36 35  .----..-138..-65
25ca0 0d 0a 2d 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-90....query I
25cb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25cc0 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2a   col2 * - col1 *
25cd0 20 2d 20 2d 20 35 32 20 2b 20 2d 20 36 20 46 52   - - 52 + - 6 FR
25ce0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
25cf0 31 36 30 31 36 36 0d 0a 2d 32 30 32 30 37 38 0d  160166..-202078.
25d00 0a 2d 36 31 30 30 32 0d 0a 0d 0a 71 75 65 72 79  .-61002....query
25d10 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
25d20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
25d30 6f 6c 30 20 2f 20 2b 20 63 6f 6c 31 20 41 53 20  ol0 / + col1 AS 
25d40 63 6f 6c 30 2c 20 2d 20 32 30 20 46 52 4f 4d 20  col0, - 20 FROM 
25d50 74 61 62 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  tab0 WHERE + col
25d60 32 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  2 > NULL..----..
25d70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
25d80 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
25d90 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
25da0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
25db0 61 62 65 6c 2d 38 32 30 0d 0a 53 45 4c 45 43 54  abel-820..SELECT
25dc0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
25dd0 20 57 48 45 52 45 20 2b 20 43 41 53 54 28 20 63   WHERE + CAST( c
25de0 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
25df0 2d 20 2b 20 36 32 20 49 53 20 4e 4f 54 20 4e 55  - + 62 IS NOT NU
25e00 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
25e10 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
25e20 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
25e30 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
25e40 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25e50 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25e60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
25e70 72 74 20 6c 61 62 65 6c 2d 38 32 30 0d 0a 53 45  rt label-820..SE
25e80 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
25e90 74 61 62 30 20 57 48 45 52 45 20 2b 20 43 41 53  tab0 WHERE + CAS
25ea0 54 20 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45  T ( col0 AS INTE
25eb0 47 45 52 20 29 20 2d 20 2b 20 36 32 20 49 53 20  GER ) - + 62 IS 
25ec0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
25ed0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
25ee0 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
25ef0 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
25f00 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  43b7....onlyif m
25f10 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
25f20 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
25f30 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
25f40 6f 72 74 20 6c 61 62 65 6c 2d 38 32 31 0d 0a 53  ort label-821..S
25f50 45 4c 45 43 54 20 41 4c 4c 20 34 39 20 2f 20 2b  ELECT ALL 49 / +
25f60 20 37 38 20 2b 20 2b 20 2b 20 43 41 53 54 28 20   78 + + + CAST( 
25f70 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
25f80 20 2b 20 2d 20 30 20 2f 20 2d 20 39 38 20 41 53   + - 0 / - 98 AS
25f90 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 2a 20   col1, + col0 * 
25fa0 2d 20 38 35 20 46 52 4f 4d 20 74 61 62 30 20 63  - 85 FROM tab0 c
25fb0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
25fc0 0a 2d 31 32 37 35 0d 0a 4e 55 4c 4c 0d 0a 2d 37  .-1275..NULL..-7
25fd0 33 39 35 0d 0a 4e 55 4c 4c 0d 0a 2d 38 32 34 35  395..NULL..-8245
25fe0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
25ff0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26000 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
26010 6f 72 74 20 6c 61 62 65 6c 2d 38 32 31 0d 0a 53  ort label-821..S
26020 45 4c 45 43 54 20 41 4c 4c 20 34 39 20 2f 20 2b  ELECT ALL 49 / +
26030 20 37 38 20 2b 20 2b 20 2b 20 43 41 53 54 20 28   78 + + + CAST (
26040 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
26050 20 29 20 2b 20 2d 20 30 20 2f 20 2d 20 39 38 20   ) + - 0 / - 98 
26060 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20  AS col1, + col0 
26070 2a 20 2d 20 38 35 20 46 52 4f 4d 20 74 61 62 30  * - 85 FROM tab0
26080 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
26090 4c 0d 0a 2d 31 32 37 35 0d 0a 4e 55 4c 4c 0d 0a  L..-1275..NULL..
260a0 2d 37 33 39 35 0d 0a 4e 55 4c 4c 0d 0a 2d 38 32  -7395..NULL..-82
260b0 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  45....skipif pos
260c0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
260d0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
260e0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
260f0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
26100 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26110 53 45 4c 45 43 54 20 2d 20 2d 20 39 20 63 6f 6c  SELECT - - 9 col
26120 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
26130 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 39 0d  or0..----..9..9.
26140 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .9....onlyif mys
26150 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
26160 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
26170 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26180 38 32 33 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55  823..SELECT - SU
26190 4d 28 20 63 6f 6c 30 20 29 2c 20 2d 20 31 20 41  M( col0 ), - 1 A
261a0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
261b0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
261c0 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
261d0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 39 0d  ULL..----..-199.
261e0 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-1....skipif my
261f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26200 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
26210 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 33  owsort label-823
26220 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
26230 20 63 6f 6c 30 20 29 2c 20 2d 20 31 20 41 53 20   col0 ), - 1 AS 
26240 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
26250 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
26260 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
26270 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 39 0d 0a 2d  L..----..-199..-
26280 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
26290 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
262a0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
262b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
262c0 6c 61 62 65 6c 2d 38 32 34 0d 0a 53 45 4c 45 43  label-824..SELEC
262d0 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41  T CAST( - col0 A
262e0 53 20 53 49 47 4e 45 44 20 29 20 63 6f 6c 30 20  S SIGNED ) col0 
262f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
26300 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  0 WHERE NOT ( NU
26310 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  LL ) IS NOT NULL
26320 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36 34  ..----..-46..-64
26330 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-75....skipif 
26340 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
26350 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
26360 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
26370 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
26380 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
26390 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
263a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
263b0 20 6c 61 62 65 6c 2d 38 32 34 0d 0a 53 45 4c 45   label-824..SELE
263c0 43 54 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30  CT CAST ( - col0
263d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f   AS INTEGER ) co
263e0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
263f0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
26400 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e   NULL ) IS NOT N
26410 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a  ULL..----..-46..
26420 2d 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 6f 6e 6c 79  -64..-75....only
26430 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
26440 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
26450 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
26460 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
26470 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
26480 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT - CAST( NULL 
26490 41 53 20 53 49 47 4e 45 44 20 29 2c 20 34 34 20  AS SIGNED ), 44 
264a0 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  * + col2 AS col2
264b0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
264c0 0d 0a 4e 55 4c 4c 0d 0a 31 30 31 32 0d 0a 4e 55  ..NULL..1012..NU
264d0 4c 4c 0d 0a 31 37 36 30 0d 0a 4e 55 4c 4c 0d 0a  LL..1760..NULL..
264e0 32 35 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  2552....skipif m
264f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26500 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
26510 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
26520 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
26530 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT - CAST ( NULL
26540 20 41 53 20 49 4e 54 45 47 45 52 20 29 2c 20 34   AS INTEGER ), 4
26550 34 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  4 * + col2 AS co
26560 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
26570 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31 30 31 32 0d 0a  --..NULL..1012..
26580 4e 55 4c 4c 0d 0a 31 37 36 30 0d 0a 4e 55 4c 4c  NULL..1760..NULL
26590 0d 0a 32 35 35 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..2552....onlyif
265a0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
265b0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
265c0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
265d0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 36 0d 0a  sort label-826..
265e0 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e  SELECT + CAST( N
265f0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
26600 2a 20 34 38 20 46 52 4f 4d 20 74 61 62 30 0d 0a  * 48 FROM tab0..
26610 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
26620 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
26630 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26640 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26650 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26660 32 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  26..SELECT + CAS
26670 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
26680 47 45 52 20 29 20 2a 20 34 38 20 46 52 4f 4d 20  GER ) * 48 FROM 
26690 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
266a0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
266b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
266c0 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
266d0 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
266e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
266f0 6c 2d 38 32 37 0d 0a 53 45 4c 45 43 54 20 63 6f  l-827..SELECT co
26700 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
26710 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
26720 52 45 20 4e 4f 54 20 2b 20 43 41 53 54 28 20 43  RE NOT + CAST( C
26730 41 53 54 28 20 2d 20 37 39 20 41 53 20 44 45 43  AST( - 79 AS DEC
26740 49 4d 41 4c 20 29 20 41 53 20 44 45 43 49 4d 41  IMAL ) AS DECIMA
26750 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
26760 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
26770 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
26780 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
26790 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
267a0 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 41  7..SELECT col1 A
267b0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
267c0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
267d0 4f 54 20 2b 20 43 41 53 54 20 28 20 43 41 53 54  OT + CAST ( CAST
267e0 20 28 20 2d 20 37 39 20 41 53 20 52 45 41 4c 20   ( - 79 AS REAL 
267f0 29 20 41 53 20 52 45 41 4c 20 29 20 49 53 20 4e  ) AS REAL ) IS N
26800 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
26810 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
26820 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
26830 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
26840 6f 72 74 20 6c 61 62 65 6c 2d 38 32 38 0d 0a 53  ort label-828..S
26850 45 4c 45 43 54 20 2b 20 2b 20 53 55 4d 28 20 41  ELECT + + SUM( A
26860 4c 4c 20 35 36 20 29 20 46 52 4f 4d 20 74 61 62  LL 56 ) FROM tab
26870 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
26880 0a 31 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .168....skipif m
26890 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
268a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
268b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 38  owsort label-828
268c0 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 53 55 4d  ..SELECT + + SUM
268d0 20 28 20 41 4c 4c 20 35 36 20 29 20 46 52 4f 4d   ( ALL 56 ) FROM
268e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
268f0 2d 2d 2d 0d 0a 31 36 38 0d 0a 0d 0a 6f 6e 6c 79  ---..168....only
26900 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
26910 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
26920 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26930 61 62 65 6c 2d 38 32 39 0d 0a 53 45 4c 45 43 54  abel-829..SELECT
26940 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28   DISTINCT + MIN(
26950 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
26960 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
26970 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
26980 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69  --..-75....skipi
26990 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
269a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
269b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
269c0 38 32 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  829..SELECT DIST
269d0 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 44 49 53  INCT + MIN ( DIS
269e0 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 41  TINCT - col0 ) A
269f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
26a00 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
26a10 2d 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -75....onlyif my
26a20 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
26a30 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
26a40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26a50 38 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  830..SELECT ALL 
26a60 2b 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  + - MIN( DISTINC
26a70 54 20 2b 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  T + - col1 ) FRO
26a80 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
26a90 2d 2d 2d 2d 0d 0a 34 37 0d 0a 0d 0a 73 6b 69 70  ----..47....skip
26aa0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
26ab0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
26ac0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26ad0 2d 38 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -830..SELECT ALL
26ae0 20 2b 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49   + - MIN ( DISTI
26af0 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20 29 20 46  NCT + - col1 ) F
26b00 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
26b10 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a 0d 0a 71 75  ..----..47....qu
26b20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
26b30 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f  ELECT ALL + - co
26b40 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
26b50 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
26b60 32 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 <> NULL..----.
26b70 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
26b80 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
26b90 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
26ba0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26bb0 61 62 65 6c 2d 38 33 32 0d 0a 53 45 4c 45 43 54  abel-832..SELECT
26bc0 20 41 4c 4c 20 2d 20 2d 20 28 20 2d 20 2b 20 43   ALL - - ( - + C
26bd0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
26be0 49 4d 41 4c 20 29 20 29 20 2a 20 2b 20 2d 20 63  IMAL ) ) * + - c
26bf0 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 63  ol2 + + col0 + c
26c00 6f 6c 31 20 2a 20 35 33 20 46 52 4f 4d 20 74 61  ol1 * 53 FROM ta
26c10 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  b1 cor0 WHERE + 
26c20 63 6f 6c 32 20 2d 20 2b 20 2d 20 63 6f 6c 32 20  col2 - + - col2 
26c30 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
26c40 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
26c50 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
26c60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26c70 61 62 65 6c 2d 38 33 32 0d 0a 53 45 4c 45 43 54  abel-832..SELECT
26c80 20 41 4c 4c 20 2d 20 2d 20 28 20 2d 20 2b 20 43   ALL - - ( - + C
26c90 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
26ca0 41 4c 20 29 20 29 20 2a 20 2b 20 2d 20 63 6f 6c  AL ) ) * + - col
26cb0 32 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  2 + + col0 + col
26cc0 31 20 2a 20 35 33 20 46 52 4f 4d 20 74 61 62 31  1 * 53 FROM tab1
26cd0 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
26ce0 6c 32 20 2d 20 2b 20 2d 20 63 6f 6c 32 20 3e 20  l2 - + - col2 > 
26cf0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
26d00 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
26d10 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
26d20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26d30 20 6c 61 62 65 6c 2d 38 33 33 0d 0a 53 45 4c 45   label-833..SELE
26d40 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 28  CT DISTINCT MAX(
26d50 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 30 20 29 20   ALL - + col0 ) 
26d60 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
26d70 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
26d80 0a 2d 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-46....skipif m
26d90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26da0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
26db0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 33  owsort label-833
26dc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26dd0 54 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 2b 20  T MAX ( ALL - + 
26de0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
26df0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
26e00 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d 0a 71  ..----..-46....q
26e10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26e20 53 45 4c 45 43 54 20 28 20 2b 20 2d 20 35 30 20  SELECT ( + - 50 
26e30 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
26e40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a  or0..----..-50..
26e50 2d 35 30 0d 0a 2d 35 30 0d 0a 0d 0a 71 75 65 72  -50..-50....quer
26e60 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
26e70 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
26e80 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
26e90 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f   - - col0 + + co
26ea0 6c 32 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 <> NULL..----
26eb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26ec0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
26ed0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
26ee0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 36  owsort label-836
26ef0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
26f00 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  NT( DISTINCT + -
26f10 20 28 20 2d 20 28 20 2d 20 28 20 2b 20 63 6f 6c   ( - ( - ( + col
26f20 30 20 29 20 29 20 29 20 29 20 46 52 4f 4d 20 74  0 ) ) ) ) FROM t
26f30 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab0..----..3....
26f40 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
26f50 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
26f60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26f70 61 62 65 6c 2d 38 33 36 0d 0a 53 45 4c 45 43 54  abel-836..SELECT
26f80 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 44 49 53   ALL COUNT ( DIS
26f90 54 49 4e 43 54 20 2b 20 2d 20 28 20 2d 20 28 20  TINCT + - ( - ( 
26fa0 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 20 29  - ( + col0 ) ) )
26fb0 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
26fc0 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
26fd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26fe0 20 63 6f 6c 32 20 2a 20 2b 20 28 20 2b 20 2d 20   col2 * + ( + - 
26ff0 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
27000 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 30 30 0d 0a 2d  ..----..-1600..-
27010 33 33 36 34 0d 0a 2d 35 32 39 0d 0a 0d 0a 6f 6e  3364..-529....on
27020 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
27030 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
27040 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
27050 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27060 38 33 38 0d 0a 53 45 4c 45 43 54 20 35 32 20 2a  838..SELECT 52 *
27070 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 43 41   - col0 - - + CA
27080 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
27090 45 44 20 29 20 2b 20 2d 20 32 35 2c 20 2b 20 63  ED ) + - 25, + c
270a0 6f 6c 31 20 2b 20 38 33 20 41 53 20 63 6f 6c 32  ol1 + 83 AS col2
270b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
270c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
270d0 31 33 30 0d 0a 4e 55 4c 4c 0d 0a 38 38 0d 0a 4e  130..NULL..88..N
270e0 55 4c 4c 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69  ULL..97....skipi
270f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
27100 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
27110 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
27120 2d 38 33 38 0d 0a 53 45 4c 45 43 54 20 35 32 20  -838..SELECT 52 
27130 2a 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 43  * - col0 - - + C
27140 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
27150 54 45 47 45 52 20 29 20 2b 20 2d 20 32 35 2c 20  TEGER ) + - 25, 
27160 2b 20 63 6f 6c 31 20 2b 20 38 33 20 41 53 20 63  + col1 + 83 AS c
27170 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
27180 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
27190 4c 0d 0a 31 33 30 0d 0a 4e 55 4c 4c 0d 0a 38 38  L..130..NULL..88
271a0 0d 0a 4e 55 4c 4c 0d 0a 39 37 0d 0a 0d 0a 6f 6e  ..NULL..97....on
271b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
271c0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
271d0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
271e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
271f0 33 39 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  39..SELECT + ( -
27200 20 28 20 2d 20 31 31 20 29 20 29 20 44 49 56 20   ( - 11 ) ) DIV 
27210 2d 20 2b 20 36 31 20 2b 20 2d 20 63 6f 6c 30 20  - + 61 + - col0 
27220 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
27230 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d 0a  ----..-15..-87..
27240 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -97....skipif my
27250 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27260 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
27270 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 39 0d  wsort label-839.
27280 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 28 20  .SELECT + ( - ( 
27290 2d 20 31 31 20 29 20 29 20 2f 20 2d 20 2b 20 36  - 11 ) ) / - + 6
272a0 31 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  1 + - col0 FROM 
272b0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
272c0 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a  .-15..-87..-97..
272d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
272e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
272f0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
27300 63 6f 6c 30 20 3c 20 63 6f 6c 32 20 2a 20 2d 20  col0 < col2 * - 
27310 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 0d  - col2 + - col2.
27320 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
27330 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
27340 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
27350 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71  feb962d0a49....q
27360 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
27370 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
27380 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  T * FROM tab0 co
27390 72 30 20 57 48 45 52 45 20 2b 20 38 31 20 2d 20  r0 WHERE + 81 - 
273a0 2d 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  - - col2 IS NOT 
273b0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
273c0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
273d0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
273e0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
273f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
27400 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
27410 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
27420 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 32  owsort label-842
27430 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
27440 2a 20 29 20 2b 20 28 20 2b 20 37 36 20 29 20 41  * ) + ( + 76 ) A
27450 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
27460 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
27470 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
27480 2d 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..79....skipif 
27490 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
274a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
274b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34  rowsort label-84
274c0 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  2..SELECT COUNT 
274d0 28 20 2a 20 29 20 2b 20 28 20 2b 20 37 36 20 29  ( * ) + ( + 76 )
274e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
274f0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
27500 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
27510 2d 2d 2d 0d 0a 37 39 0d 0a 0d 0a 71 75 65 72 79  ---..79....query
27520 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
27530 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
27540 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
27550 48 45 52 45 20 63 6f 6c 32 20 42 45 54 57 45 45  HERE col2 BETWEE
27560 4e 20 2d 20 34 35 20 41 4e 44 20 4e 55 4c 4c 0d  N - 45 AND NULL.
27570 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
27580 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27590 20 2d 20 36 34 20 2a 20 2b 20 63 6f 6c 30 20 2d   - 64 * + col0 -
275a0 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 28 20 63 6f   col1 + - - ( co
275b0 6c 31 20 29 20 2a 20 2d 20 63 6f 6c 32 20 41 53  l1 ) * - col2 AS
275c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
275d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
275e0 34 31 36 38 0d 0a 2d 37 32 35 33 0d 0a 2d 38 37  4168..-7253..-87
275f0 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  53....query I ro
27600 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
27610 53 54 49 4e 43 54 20 34 34 20 46 52 4f 4d 20 74  STINCT 44 FROM t
27620 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
27630 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f  E NOT NULL IS NO
27640 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 34  T NULL..----..44
27650 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
27660 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
27670 49 4e 43 54 20 63 6f 6c 30 20 2a 20 37 34 20 41  INCT col0 * 74 A
27680 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
27690 0d 0a 2d 2d 2d 2d 0d 0a 33 34 30 34 0d 0a 34 37  ..----..3404..47
276a0 33 36 0d 0a 35 35 35 30 0d 0a 0d 0a 6f 6e 6c 79  36..5550....only
276b0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
276c0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
276d0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
276e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
276f0 34 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  47..SELECT * FRO
27700 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
27710 20 36 31 20 2a 20 2d 20 2d 20 43 41 53 54 28 20   61 * - - CAST( 
27720 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
27730 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20   BETWEEN + col0 
27740 41 4e 44 20 4e 55 4c 4c 20 41 4e 44 20 4e 4f 54  AND NULL AND NOT
27750 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 30   - col1 - + col0
27760 20 2b 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c   + + col1 IS NUL
27770 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
27780 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
27790 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
277a0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
277b0 6c 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 2a 20  l-847..SELECT * 
277c0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
277d0 4e 4f 54 20 36 31 20 2a 20 2d 20 2d 20 43 41 53  NOT 61 * - - CAS
277e0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
277f0 47 45 52 20 29 20 42 45 54 57 45 45 4e 20 2b 20  GER ) BETWEEN + 
27800 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 20 41 4e  col0 AND NULL AN
27810 44 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2d 20 2b  D NOT - col1 - +
27820 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 49   col0 + + col1 I
27830 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
27840 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
27850 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a  .SELECT + col1 *
27860 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
27870 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
27880 2d 0d 0a 31 32 31 35 0d 0a 31 38 32 37 0d 0a 39  -..1215..1827..9
27890 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  7....query II ro
278a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
278b0 4c 20 2d 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 2a  L - col0, col1 *
278c0 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + + col2 AS col
278d0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
278e0 2d 0d 0a 2d 35 31 0d 0a 31 33 34 34 0d 0a 2d 38  -..-51..1344..-8
278f0 35 0d 0a 32 39 35 0d 0a 2d 39 31 0d 0a 33 31 39  5..295..-91..319
27900 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
27910 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
27920 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
27930 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
27940 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
27950 43 54 20 33 36 20 2a 20 28 20 2b 20 43 4f 55 4e  CT 36 * ( + COUN
27960 54 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61  T( * ) ) FROM ta
27970 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 0d  b0..----..108...
27980 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
27990 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
279a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
279b0 6c 61 62 65 6c 2d 38 35 30 0d 0a 53 45 4c 45 43  label-850..SELEC
279c0 54 20 44 49 53 54 49 4e 43 54 20 33 36 20 2a 20  T DISTINCT 36 * 
279d0 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
279e0 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
279f0 2d 0d 0a 31 30 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..108....onlyif
27a00 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
27a10 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
27a20 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
27a30 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 31 0d  wsort label-851.
27a40 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 63 6f  .SELECT col1, co
27a50 6c 31 20 44 49 56 20 2b 20 39 37 20 46 52 4f 4d  l1 DIV + 97 FROM
27a60 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   tab1..----..14.
27a70 0a 30 0d 0a 34 37 0d 0a 30 0d 0a 35 0d 0a 30 0d  .0..47..0..5..0.
27a80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
27a90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
27aa0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
27ab0 72 74 20 6c 61 62 65 6c 2d 38 35 31 0d 0a 53 45  rt label-851..SE
27ac0 4c 45 43 54 20 63 6f 6c 31 2c 20 63 6f 6c 31 20  LECT col1, col1 
27ad0 2f 20 2b 20 39 37 20 46 52 4f 4d 20 74 61 62 31  / + 97 FROM tab1
27ae0 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 30 0d 0a 34  ..----..14..0..4
27af0 37 0d 0a 30 0d 0a 35 0d 0a 30 0d 0a 0d 0a 73 6b  7..0..5..0....sk
27b00 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
27b10 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
27b20 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
27b30 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
27b40 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
27b50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
27b60 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 63  ISTINCT + col1 c
27b70 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
27b80 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
27b90 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
27ba0 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d  ----..1..21..81.
27bb0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
27bc0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
27bd0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
27be0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 33 0d  wsort label-853.
27bf0 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
27c00 20 29 20 2d 20 2d 20 38 37 20 41 53 20 63 6f 6c   ) - - 87 AS col
27c10 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
27c20 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
27c30 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
27c40 2d 2d 2d 2d 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70  ----..90....skip
27c50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
27c60 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
27c70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27c80 2d 38 35 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -853..SELECT COU
27c90 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20 38 37 20  NT ( * ) - - 87 
27ca0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
27cb0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
27cc0 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
27cd0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 30 0d 0a  NULL..----..90..
27ce0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
27cf0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
27d00 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66  GNED type: DIV f
27d10 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
27d20 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
27d30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
27d40 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
27d50 43 54 20 31 38 20 41 53 20 63 6f 6c 30 2c 20 63  CT 18 AS col0, c
27d60 6f 6c 30 20 44 49 56 20 63 6f 6c 32 20 2a 20 2d  ol0 DIV col2 * -
27d70 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2a   col2 * - col2 *
27d80 20 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20   - CAST( - col0 
27d90 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
27da0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
27db0 2d 2d 2d 0d 0a 31 38 0d 0a 31 30 32 34 30 30 0d  ---..18..102400.
27dc0 0a 31 38 0d 0a 32 35 32 33 30 30 0d 0a 31 38 0d  .18..252300..18.
27dd0 0a 34 38 36 36 38 0d 0a 0d 0a 73 6b 69 70 69 66  .48668....skipif
27de0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
27df0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
27e00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27e10 38 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  854..SELECT DIST
27e20 49 4e 43 54 20 31 38 20 41 53 20 63 6f 6c 30 2c  INCT 18 AS col0,
27e30 20 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 2a 20 2d   col0 / col2 * -
27e40 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2a   col2 * - col2 *
27e50 20 2d 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30   - CAST ( - col0
27e60 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
27e70 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
27e80 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 31 30 32 34 30  .----..18..10240
27e90 30 0d 0a 31 38 0d 0a 32 35 32 33 30 30 0d 0a 31  0..18..252300..1
27ea0 38 0d 0a 34 38 36 36 38 0d 0a 0d 0a 71 75 65 72  8..48668....quer
27eb0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
27ec0 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d  ECT + col1 * - -
27ed0 20 39 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   94 AS col1 FROM
27ee0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 37 39   tab2..----..479
27ef0 34 0d 0a 36 32 39 38 0d 0a 37 32 33 38 0d 0a 0d  4..6298..7238...
27f00 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
27f10 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
27f20 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27f30 6f 72 74 20 6c 61 62 65 6c 2d 38 35 36 0d 0a 53  ort label-856..S
27f40 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
27f50 20 29 20 2a 20 2d 20 53 55 4d 28 20 2d 20 63 6f   ) * - SUM( - co
27f60 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l1 ) FROM tab2 A
27f70 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
27f80 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
27f90 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27fa0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
27fb0 6f 72 74 20 6c 61 62 65 6c 2d 38 35 36 0d 0a 53  ort label-856..S
27fc0 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
27fd0 2a 20 29 20 2a 20 2d 20 53 55 4d 20 28 20 2d 20  * ) * - SUM ( - 
27fe0 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
27ff0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
28000 35 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  585....onlyif my
28010 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
28020 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
28030 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28040 74 20 6c 61 62 65 6c 2d 38 35 37 0d 0a 53 45 4c  t label-857..SEL
28050 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
28060 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b  2 * - - col1 + +
28070 20 63 6f 6c 32 20 44 49 56 20 2d 20 63 6f 6c 31   col2 DIV - col1
28080 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
28090 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
280a0 0d 0a 31 31 37 33 0d 0a 33 30 38 30 0d 0a 33 38  ..1173..3080..38
280b0 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  86....skipif mys
280c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
280d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
280e0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 37 0d 0a  sort label-857..
280f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
28100 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  col2 * - - col1 
28110 2b 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c  + + col2 / - col
28120 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
28130 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
28140 2d 0d 0a 31 31 37 33 0d 0a 33 30 38 30 0d 0a 33  -..1173..3080..3
28150 38 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  886....query I r
28160 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
28170 49 53 54 49 4e 43 54 20 2b 20 39 35 20 2a 20 2b  ISTINCT + 95 * +
28180 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
28190 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
281a0 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d  NULL >= NULL..--
281b0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
281c0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
281d0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
281e0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
281f0 72 74 20 6c 61 62 65 6c 2d 38 35 39 0d 0a 53 45  rt label-859..SE
28200 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
28210 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
28220 4f 54 20 2b 20 36 38 20 2a 20 2d 20 63 6f 6c 32  OT + 68 * - col2
28230 20 3e 3d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c   >= - CAST( NULL
28240 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d   AS SIGNED )..--
28250 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
28260 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28270 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
28280 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 39  owsort label-859
28290 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
282a0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
282b0 52 45 20 4e 4f 54 20 2b 20 36 38 20 2a 20 2d 20  RE NOT + 68 * - 
282c0 63 6f 6c 32 20 3e 3d 20 2d 20 43 41 53 54 20 28  col2 >= - CAST (
282d0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
282e0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
282f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
28300 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
28310 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28320 61 62 65 6c 2d 38 36 30 0d 0a 53 45 4c 45 43 54  abel-860..SELECT
28330 20 36 33 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a   63 + + COUNT( *
28340 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
28350 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..66....skipif
28360 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
28370 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
28380 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
28390 36 30 0d 0a 53 45 4c 45 43 54 20 36 33 20 2b 20  60..SELECT 63 + 
283a0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
283b0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab2..----..6
283c0 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
283d0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
283e0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
283f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
28400 74 20 6c 61 62 65 6c 2d 38 36 31 0d 0a 53 45 4c  t label-861..SEL
28410 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
28420 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42  WHERE NULL NOT B
28430 45 54 57 45 45 4e 20 2b 20 2b 20 36 33 20 2b 20  ETWEEN + + 63 + 
28440 2b 20 63 6f 6c 31 20 41 4e 44 20 2d 20 63 6f 6c  + col1 AND - col
28450 31 20 2a 20 2d 20 31 30 20 2a 20 2b 20 43 41 53  1 * - 10 * + CAS
28460 54 28 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 53  T( - - col1 AS S
28470 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  IGNED )..----...
28480 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
28490 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
284a0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
284b0 74 20 6c 61 62 65 6c 2d 38 36 31 0d 0a 53 45 4c  t label-861..SEL
284c0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
284d0 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42  WHERE NULL NOT B
284e0 45 54 57 45 45 4e 20 2b 20 2b 20 36 33 20 2b 20  ETWEEN + + 63 + 
284f0 2b 20 63 6f 6c 31 20 41 4e 44 20 2d 20 63 6f 6c  + col1 AND - col
28500 31 20 2a 20 2d 20 31 30 20 2a 20 2b 20 43 41 53  1 * - 10 * + CAS
28510 54 20 28 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  T ( - - col1 AS 
28520 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d  INTEGER )..----.
28530 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
28540 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
28550 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
28560 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
28570 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
28580 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
28590 45 4c 45 43 54 20 33 32 20 2b 20 2b 20 2d 20 63  ELECT 32 + + - c
285a0 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41  ol2 * + + col1 A
285b0 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 41 53 20  S col2, col1 AS 
285c0 63 6f 6c 32 2c 20 2b 20 2b 20 32 31 20 63 6f 6c  col2, + + 21 col
285d0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
285e0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
285f0 69 6e 67 20 74 6f 20 39 31 65 64 38 38 62 62 37  ing to 91ed88bb7
28600 34 31 39 36 37 35 34 34 34 61 34 65 61 35 36 33  419675444a4ea563
28610 61 64 39 61 62 65 39 0d 0a 0d 0a 73 6b 69 70 69  ad9abe9....skipi
28620 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
28630 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
28640 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
28650 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
28660 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
28670 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
28680 32 37 20 2b 20 2d 20 63 6f 6c 30 20 63 6f 6c 30  27 + - col0 col0
28690 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
286a0 0d 0a 2d 31 39 0d 0a 2d 33 37 0d 0a 2d 34 38 0d  ..-19..-37..-48.
286b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
286c0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
286d0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
286e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 34 0d  wsort label-864.
286f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
28700 54 28 20 41 4c 4c 20 2b 20 28 20 2b 20 63 6f 6c  T( ALL + ( + col
28710 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  0 ) ) FROM tab1.
28720 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
28730 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
28740 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
28750 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
28760 2d 38 36 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -864..SELECT ALL
28770 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 28   COUNT ( ALL + (
28780 20 2b 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d   + col0 ) ) FROM
28790 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab1..----..3..
287a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
287b0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
287c0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
287d0 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f   + + col0 + - co
287e0 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
287f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28800 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
28810 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
28820 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 36  owsort label-866
28830 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28840 54 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  T MAX( DISTINCT 
28850 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  + col1 ) FROM ta
28860 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
28870 20 4e 4f 54 20 2d 20 38 36 20 3c 3d 20 4e 55 4c   NOT - 86 <= NUL
28880 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
28890 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
288a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
288b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
288c0 6c 61 62 65 6c 2d 38 36 36 0d 0a 53 45 4c 45 43  label-866..SELEC
288d0 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58 20 28  T DISTINCT MAX (
288e0 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
288f0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
28900 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
28910 20 38 36 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d   86 <= NULL..---
28920 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  -..NULL....onlyi
28930 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
28940 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
28950 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
28960 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 37 0d  wsort label-867.
28970 0a 53 45 4c 45 43 54 20 2b 20 31 33 20 2a 20 63  .SELECT + 13 * c
28980 6f 6c 31 20 2d 20 2b 20 2b 20 31 38 20 44 49 56  ol1 - + + 18 DIV
28990 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20   col0 col1 FROM 
289a0 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
289b0 0a 31 38 32 0d 0a 36 31 31 0d 0a 36 35 0d 0a 0d  .182..611..65...
289c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
289d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
289e0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
289f0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
28a00 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
28a10 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
28a20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
28a30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
28a40 36 37 0d 0a 53 45 4c 45 43 54 20 2b 20 31 33 20  67..SELECT + 13 
28a50 2a 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 31 38 20  * col1 - + + 18 
28a60 2f 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d  / col0 col1 FROM
28a70 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
28a80 0d 0a 31 38 32 0d 0a 36 31 31 0d 0a 36 35 0d 0a  ..182..611..65..
28a90 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72  ..query IIIIII r
28aa0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
28ab0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
28ac0 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
28ad0 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
28ae0 6f 72 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or1 WHERE ( NULL
28af0 20 29 20 3e 3d 20 2d 20 38 31 0d 0a 2d 2d 2d 2d   ) >= - 81..----
28b00 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
28b10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
28b20 49 4e 43 54 20 32 31 20 2a 20 2b 20 2b 20 33 33  INCT 21 * + + 33
28b30 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20   * + + col1 + + 
28b40 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  + col1 FROM tab2
28b50 0d 0a 2d 2d 2d 2d 0d 0a 33 35 33 39 34 0d 0a 34  ..----..35394..4
28b60 36 34 39 38 0d 0a 35 33 34 33 38 0d 0a 0d 0a 71  6498..53438....q
28b70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28b80 53 45 4c 45 43 54 20 2b 20 39 35 20 2d 20 63 6f  SELECT + 95 - co
28b90 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 46 52  l1 + + + col1 FR
28ba0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab1..----..9
28bb0 35 0d 0a 39 35 0d 0a 39 35 0d 0a 0d 0a 6f 6e 6c  5..95..95....onl
28bc0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
28bd0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
28be0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
28bf0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
28c00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28c10 38 37 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  871..SELECT DIST
28c20 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c  INCT + CAST( NUL
28c30 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
28c40 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
28c50 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
28c60 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
28c70 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
28c80 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
28c90 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 31  owsort label-871
28ca0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28cb0 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T + CAST ( NULL 
28cc0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b  AS INTEGER ) + +
28cd0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
28ce0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
28cf0 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
28d00 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
28d10 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
28d20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
28d30 2d 38 37 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -872..SELECT - +
28d40 20 53 55 4d 28 20 2b 20 2b 20 63 6f 6c 30 20 29   SUM( + + col0 )
28d50 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
28d60 72 30 20 57 48 45 52 45 20 37 33 20 49 53 20 4e  r0 WHERE 73 IS N
28d70 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
28d80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
28d90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
28da0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28db0 74 20 6c 61 62 65 6c 2d 38 37 32 0d 0a 53 45 4c  t label-872..SEL
28dc0 45 43 54 20 2d 20 2b 20 53 55 4d 20 28 20 2b 20  ECT - + SUM ( + 
28dd0 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  + col0 ) FROM ta
28de0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
28df0 20 37 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   73 IS NULL..---
28e00 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
28e10 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
28e20 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 32 37  CT + col1 * - 27
28e30 20 2a 20 2b 20 36 39 20 46 52 4f 4d 20 74 61 62   * + 69 FROM tab
28e40 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
28e50 0a 2d 32 36 30 38 32 0d 0a 2d 38 37 35 36 31 0d  .-26082..-87561.
28e60 0a 2d 39 33 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-9315....onlyif
28e70 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
28e80 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
28e90 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
28ea0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 34 0d 0a  sort label-874..
28eb0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
28ec0 2d 20 38 31 20 2a 20 31 31 20 44 49 56 20 39 31  - 81 * 11 DIV 91
28ed0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
28ee0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  r0..----..-9....
28ef0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
28f00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
28f10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28f20 61 62 65 6c 2d 38 37 34 0d 0a 53 45 4c 45 43 54  abel-874..SELECT
28f30 20 44 49 53 54 49 4e 43 54 20 2d 20 38 31 20 2a   DISTINCT - 81 *
28f40 20 31 31 20 2f 20 39 31 20 46 52 4f 4d 20 74 61   11 / 91 FROM ta
28f50 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
28f60 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-9....query I 
28f70 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
28f80 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
28f90 2a 20 2d 20 35 31 20 46 52 4f 4d 20 74 61 62 30  * - 51 FROM tab0
28fa0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 33 37 0d 0a 2d  ..----..-4437..-
28fb0 34 39 34 37 0d 0a 2d 37 36 35 0d 0a 0d 0a 6f 6e  4947..-765....on
28fc0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
28fd0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
28fe0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
28ff0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
29000 37 36 0d 0a 53 45 4c 45 43 54 20 37 37 20 44 49  76..SELECT 77 DI
29010 56 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  V + + col2 AS co
29020 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
29030 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73  --..0..1..1....s
29040 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
29050 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
29060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
29070 62 65 6c 2d 38 37 36 0d 0a 53 45 4c 45 43 54 20  bel-876..SELECT 
29080 37 37 20 2f 20 2b 20 2b 20 63 6f 6c 32 20 41 53  77 / + + col2 AS
29090 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
290a0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a  .----..0..1..1..
290b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
290c0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
290d0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
290e0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
290f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29100 61 62 65 6c 2d 38 37 37 0d 0a 53 45 4c 45 43 54  abel-877..SELECT
29110 20 41 4c 4c 20 2d 20 38 30 20 2a 20 43 41 53 54   ALL - 80 * CAST
29120 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
29130 20 29 20 2f 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) / + COUNT( * 
29140 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
29150 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
29160 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29170 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
29180 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
29190 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
291a0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
291b0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
291c0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
291d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37  rowsort label-87
291e0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
291f0 38 30 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c  80 * CAST ( NULL
29200 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
29210 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f  + COUNT ( * ) co
29220 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
29230 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
29240 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
29250 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
29260 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20  1 WHERE NOT - + 
29270 35 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  51 IS NOT NULL..
29280 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
29290 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
292a0 41 4c 4c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ALL + col1 FROM 
292b0 74 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab1 WHERE - col
292c0 32 20 2b 20 2d 20 63 6f 6c 32 20 3e 3d 20 2d 20  2 + - col2 >= - 
292d0 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col1..----....
292e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
292f0 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
29300 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
29310 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29320 6c 2d 38 38 30 0d 0a 53 45 4c 45 43 54 20 44 49  l-880..SELECT DI
29330 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 30 20  STINCT - - col0 
29340 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
29350 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
29360 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 4e 20 28 20  NOT + col0 IN ( 
29370 28 20 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c 31  ( - CAST( + col1
29380 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20   AS DECIMAL ) ) 
29390 2f 20 2b 20 63 6f 6c 30 2c 20 2d 20 36 33 20 2b  / + col0, - 63 +
293a0 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   + col1 )..----.
293b0 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 73  .15..87..97....s
293c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
293d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
293e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
293f0 62 65 6c 2d 38 38 30 0d 0a 53 45 4c 45 43 54 20  bel-880..SELECT 
29400 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c  DISTINCT - - col
29410 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
29420 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
29430 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 4e 20  E NOT + col0 IN 
29440 28 20 28 20 2d 20 43 41 53 54 20 28 20 2b 20 63  ( ( - CAST ( + c
29450 6f 6c 31 20 41 53 20 52 45 41 4c 20 29 20 29 20  ol1 AS REAL ) ) 
29460 2f 20 2b 20 63 6f 6c 30 2c 20 2d 20 36 33 20 2b  / + col0, - 63 +
29470 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   + col1 )..----.
29480 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71  .15..87..97....q
29490 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
294a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
294b0 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c   - col2 AS col2,
294c0 20 2d 20 39 33 20 46 52 4f 4d 20 74 61 62 32 20   - 93 FROM tab2 
294d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
294e0 32 33 0d 0a 2d 39 33 0d 0a 2d 34 30 0d 0a 2d 39  23..-93..-40..-9
294f0 33 0d 0a 2d 35 38 0d 0a 2d 39 33 0d 0a 0d 0a 6f  3..-58..-93....o
29500 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
29510 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
29520 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29530 74 20 6c 61 62 65 6c 2d 38 38 32 0d 0a 53 45 4c  t label-882..SEL
29540 45 43 54 20 2d 20 2b 20 4d 41 58 28 20 41 4c 4c  ECT - + MAX( ALL
29550 20 2d 20 36 31 20 29 20 46 52 4f 4d 20 74 61 62   - 61 ) FROM tab
29560 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
29570 0a 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .61....skipif my
29580 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29590 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
295a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 32 0d  wsort label-882.
295b0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 41 58 20  .SELECT - + MAX 
295c0 28 20 41 4c 4c 20 2d 20 36 31 20 29 20 46 52 4f  ( ALL - 61 ) FRO
295d0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
295e0 2d 2d 2d 2d 0d 0a 36 31 0d 0a 0d 0a 6f 6e 6c 79  ----..61....only
295f0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
29600 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
29610 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
29620 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 33  owsort label-883
29630 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 20 46  ..SELECT ALL 2 F
29640 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
29650 20 57 48 45 52 45 20 43 41 53 54 28 20 2d 20 63   WHERE CAST( - c
29660 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol2 AS SIGNED ) 
29670 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
29680 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
29690 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
296a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
296b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
296c0 62 65 6c 2d 38 38 33 0d 0a 53 45 4c 45 43 54 20  bel-883..SELECT 
296d0 41 4c 4c 20 32 20 46 52 4f 4d 20 74 61 62 30 20  ALL 2 FROM tab0 
296e0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 43 41  AS cor0 WHERE CA
296f0 53 54 20 28 20 2d 20 63 6f 6c 32 20 41 53 20 49  ST ( - col2 AS I
29700 4e 54 45 47 45 52 20 29 20 42 45 54 57 45 45 4e  NTEGER ) BETWEEN
29710 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
29720 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
29730 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
29740 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
29750 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29760 2d 38 38 34 0d 0a 53 45 4c 45 43 54 20 2d 20 53  -884..SELECT - S
29770 55 4d 28 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31  UM( ALL - + col1
29780 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
29790 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
297a0 0a 31 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .195....skipif m
297b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
297c0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
297d0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
297e0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
297f0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
29800 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
29810 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
29820 6c 61 62 65 6c 2d 38 38 34 0d 0a 53 45 4c 45 43  label-884..SELEC
29830 54 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20  T - SUM ( ALL - 
29840 2b 20 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52  + col1 ) col2 FR
29850 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
29860 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 0d 0a 6f 6e  .----..195....on
29870 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
29880 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
29890 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
298a0 20 6c 61 62 65 6c 2d 38 38 35 0d 0a 53 45 4c 45   label-885..SELE
298b0 43 54 20 2b 20 2d 20 28 20 2d 20 43 4f 55 4e 54  CT + - ( - COUNT
298c0 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ( * ) ) AS col1 
298d0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
298e0 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2b 20 2d 20  NOT NULL >= + - 
298f0 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  col0..----..0...
29900 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
29910 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
29920 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
29930 6c 61 62 65 6c 2d 38 38 35 0d 0a 53 45 4c 45 43  label-885..SELEC
29940 54 20 2b 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20  T + - ( - COUNT 
29950 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ( * ) ) AS col1 
29960 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
29970 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2b 20 2d 20  NOT NULL >= + - 
29980 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  col0..----..0...
29990 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
299a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
299b0 54 20 2b 20 37 35 20 2b 20 2b 20 2d 20 63 6f 6c  T + 75 + + - col
299c0 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
299d0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
299e0 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  - col2 IS NOT NU
299f0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
29a00 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
29a10 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
29a20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29a30 61 62 65 6c 2d 38 38 37 0d 0a 53 45 4c 45 43 54  abel-887..SELECT
29a40 20 44 49 53 54 49 4e 43 54 20 2b 20 32 30 20 2a   DISTINCT + 20 *
29a50 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
29a60 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
29a70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
29a80 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a 0d 0a 73 6b 69  ----..-57....ski
29a90 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
29aa0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
29ab0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29ac0 6c 2d 38 38 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-887..SELECT DI
29ad0 53 54 49 4e 43 54 20 2b 20 32 30 20 2a 20 2d 20  STINCT + 20 * - 
29ae0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
29af0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
29b00 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
29b10 2d 2d 2d 0d 0a 2d 35 37 0d 0a 0d 0a 71 75 65 72  ---..-57....quer
29b20 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74  y IIIIII rowsort
29b30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29b40 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 2c 20 74  T * FROM tab2, t
29b50 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
29b60 45 20 4e 4f 54 20 2d 20 2d 20 32 31 20 49 53 20  E NOT - - 21 IS 
29b70 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
29b80 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
29b90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
29ba0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
29bb0 54 20 2d 20 31 34 20 2a 20 63 6f 6c 32 20 2a 20  T - 14 * col2 * 
29bc0 38 20 2f 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 63  8 / + col2 / - c
29bd0 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol2 IS NULL..---
29be0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
29bf0 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
29c00 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
29c10 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79  62d0a49....query
29c20 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
29c30 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38  ECT DISTINCT - 8
29c40 39 2c 20 39 37 20 41 53 20 63 6f 6c 32 20 46 52  9, 97 AS col2 FR
29c50 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
29c60 0a 2d 2d 2d 2d 0d 0a 2d 38 39 0d 0a 39 37 0d 0a  .----..-89..97..
29c70 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
29c80 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
29c90 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
29ca0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
29cb0 4c 4c 20 3c 3d 20 63 6f 6c 31 20 2f 20 2b 20 63  LL <= col1 / + c
29cc0 6f 6c 32 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  ol2 + col2..----
29cd0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
29ce0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
29cf0 6c 30 20 2b 20 32 32 20 41 53 20 63 6f 6c 30 20  l0 + 22 AS col0 
29d00 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
29d10 30 0d 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 38 36 0d  0..----..68..86.
29d20 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .97....onlyif my
29d30 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
29d40 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
29d50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29d60 38 39 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  893..SELECT DIST
29d70 49 4e 43 54 20 31 39 20 2d 20 2d 20 43 4f 55 4e  INCT 19 - - COUN
29d80 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
29d90 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
29da0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
29db0 32 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 <= NULL..----.
29dc0 0a 31 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .19....skipif my
29dd0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29de0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
29df0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 33 0d  wsort label-893.
29e00 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
29e10 20 31 39 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20   19 - - COUNT ( 
29e20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
29e30 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
29e40 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 3c  ERE NOT - col2 <
29e50 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 39  = NULL..----..19
29e60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29e70 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
29e80 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
29e90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
29ea0 34 0d 0a 53 45 4c 45 43 54 20 2b 20 31 32 2c 20  4..SELECT + 12, 
29eb0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
29ec0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
29ed0 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2d  S cor0 WHERE ( -
29ee0 20 63 6f 6c 30 20 29 20 2d 20 2d 20 63 6f 6c 30   col0 ) - - col0
29ef0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
29f00 44 20 2b 20 33 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  D + 30..----..12
29f10 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
29f20 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29f30 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
29f40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 34  owsort label-894
29f50 0d 0a 53 45 4c 45 43 54 20 2b 20 31 32 2c 20 2b  ..SELECT + 12, +
29f60 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
29f70 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
29f80 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2d  S cor0 WHERE ( -
29f90 20 63 6f 6c 30 20 29 20 2d 20 2d 20 63 6f 6c 30   col0 ) - - col0
29fa0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
29fb0 44 20 2b 20 33 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  D + 30..----..12
29fc0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
29fd0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
29fe0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
29ff0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a000 38 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  895..SELECT ALL 
2a010 2b 20 2b 20 35 20 2b 20 43 4f 55 4e 54 28 20 2a  + + 5 + COUNT( *
2a020 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
2a030 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2a040 2d 2d 0d 0a 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..8....skipif 
2a050 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2a060 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2a070 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
2a080 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
2a090 2b 20 35 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  + 5 + COUNT ( * 
2a0a0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2a0b0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2a0c0 2d 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..8....onlyif m
2a0d0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2a0e0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2a0f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a100 2d 38 39 36 0d 0a 53 45 4c 45 43 54 20 28 20 2d  -896..SELECT ( -
2a110 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   + COUNT( * ) ) 
2a120 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2a130 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  1 WHERE NULL IS 
2a140 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  NULL..----..-3..
2a150 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2a160 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2a170 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a180 20 6c 61 62 65 6c 2d 38 39 36 0d 0a 53 45 4c 45   label-896..SELE
2a190 43 54 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20 28  CT ( - + COUNT (
2a1a0 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46   * ) ) AS col1 F
2a1b0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
2a1c0 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
2a1d0 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-3....onlyif 
2a1e0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
2a1f0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
2a200 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2a210 6f 72 74 20 6c 61 62 65 6c 2d 38 39 37 0d 0a 53  ort label-897..S
2a220 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32  ELECT ALL + col2
2a230 20 2b 20 36 34 20 44 49 56 20 2b 20 63 6f 6c 30   + 64 DIV + col0
2a240 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
2a250 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39  .----..59..68..9
2a260 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
2a270 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2a280 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
2a290 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2a2a0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2a2b0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2a2c0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2a2d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a2e0 65 6c 2d 38 39 37 0d 0a 53 45 4c 45 43 54 20 41  el-897..SELECT A
2a2f0 4c 4c 20 2b 20 63 6f 6c 32 20 2b 20 36 34 20 2f  LL + col2 + 64 /
2a300 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f   + col0 col0 FRO
2a310 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39  M tab1..----..59
2a320 0d 0a 36 38 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72  ..68..97....quer
2a330 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2a340 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
2a350 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2a360 20 4e 55 4c 4c 20 3c 3d 20 2b 20 2d 20 28 20 2d   NULL <= + - ( -
2a370 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col1 )..----...
2a380 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2a390 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2a3a0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2a3b0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2a3c0 65 6c 2d 38 39 39 0d 0a 53 45 4c 45 43 54 20 2b  el-899..SELECT +
2a3d0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2a3e0 49 47 4e 45 44 20 29 20 2b 20 2d 20 2b 20 63 6f  IGNED ) + - + co
2a3f0 6c 32 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30  l2 AS col0, col0
2a400 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2a410 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2a420 0d 0a 4e 55 4c 4c 0d 0a 31 35 0d 0a 4e 55 4c 4c  ..NULL..15..NULL
2a430 0d 0a 38 37 0d 0a 4e 55 4c 4c 0d 0a 39 37 0d 0a  ..87..NULL..97..
2a440 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2a450 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2a460 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2a470 74 20 6c 61 62 65 6c 2d 38 39 39 0d 0a 53 45 4c  t label-899..SEL
2a480 45 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ECT + CAST ( NUL
2a490 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
2a4a0 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - + col2 AS col
2a4b0 30 2c 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20  0, col0 AS col0 
2a4c0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2a4d0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 31  0..----..NULL..1
2a4e0 35 0d 0a 4e 55 4c 4c 0d 0a 38 37 0d 0a 4e 55 4c  5..NULL..87..NUL
2a4f0 4c 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49  L..97....query I
2a500 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2a510 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
2a520 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
2a530 4c 20 42 45 54 57 45 45 4e 20 2d 20 35 39 20 41  L BETWEEN - 59 A
2a540 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
2a550 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a560 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 33 20  ..SELECT ALL 63 
2a570 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2a580 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
2a590 6c 30 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31  l0 NOT IN ( col1
2a5a0 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f   * - col2 + + co
2a5b0 6c 31 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 32 20  l1 + - ( - col2 
2a5c0 29 20 2a 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 32  ) * - col2, col2
2a5d0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
2a5e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2a5f0 45 43 54 20 41 4c 4c 20 39 36 20 2d 20 2d 20 63  ECT ALL 96 - - c
2a600 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
2a610 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37   cor0..----..117
2a620 0d 0a 31 37 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c  ..177..97....onl
2a630 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2a640 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2a650 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a660 6c 61 62 65 6c 2d 39 30 33 0d 0a 53 45 4c 45 43  label-903..SELEC
2a670 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
2a680 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
2a690 2d 20 39 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 93 AS col1 FRO
2a6a0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2a6b0 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 73 6b 69 70  ----..93....skip
2a6c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a6d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a6e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a6f0 2d 39 30 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -903..SELECT - C
2a700 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43 4f 55  OUNT ( * ) + COU
2a710 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20 39  NT ( * ) + - - 9
2a720 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  3 AS col1 FROM t
2a730 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2a740 2d 0d 0a 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..93....query I
2a750 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2a760 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
2a770 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2a780 57 48 45 52 45 20 4e 4f 54 20 2d 20 31 38 20 49  WHERE NOT - 18 I
2a790 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
2a7a0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2a7b0 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
2a7c0 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
2a7d0 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  49....query II r
2a7e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2a7f0 49 53 54 49 4e 43 54 20 28 20 63 6f 6c 30 20 29  ISTINCT ( col0 )
2a800 2c 20 2b 20 28 20 28 20 2b 20 63 6f 6c 32 20 29  , + ( ( + col2 )
2a810 20 29 20 2b 20 2d 20 28 20 36 37 20 29 20 41 53   ) + - ( 67 ) AS
2a820 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2a830 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
2a840 36 0d 0a 2d 34 34 0d 0a 36 34 0d 0a 2d 32 37 0d  6..-44..64..-27.
2a850 0a 37 35 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79  .75..-9....query
2a860 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2a870 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  CT + - col0 + + 
2a880 38 35 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  85 FROM tab1 cor
2a890 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 30 0d 0a  0..----..-6..0..
2a8a0 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  34....query I ro
2a8b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
2a8c0 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 46 52  l0 * - + col1 FR
2a8d0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
2a8e0 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  col2 * - - col1 
2a8f0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
2a900 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2a910 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2a920 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2a930 6f 72 74 20 6c 61 62 65 6c 2d 39 30 38 0d 0a 53  ort label-908..S
2a940 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2a950 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
2a960 2d 20 2b 20 4d 41 58 28 20 2b 20 31 20 29 20 2d  - + MAX( + 1 ) -
2a970 20 2b 20 28 20 35 32 20 29 20 41 53 20 63 6f 6c   + ( 52 ) AS col
2a980 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
2a990 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
2a9a0 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
2a9b0 2d 0d 0a 2d 34 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..-43....skipif
2a9c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2a9d0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2a9e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2a9f0 30 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  08..SELECT DISTI
2aa00 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  NCT - + COUNT ( 
2aa10 2a 20 29 20 2a 20 2d 20 2b 20 4d 41 58 20 28 20  * ) * - + MAX ( 
2aa20 2b 20 31 20 29 20 2d 20 2b 20 28 20 35 32 20 29  + 1 ) - + ( 52 )
2aa30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2aa40 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
2aa50 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
2aa60 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 0d 0a 0d  r1..----..-43...
2aa70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2aa80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2aa90 54 20 2d 20 2d 20 34 36 20 2d 20 63 6f 6c 32 20  T - - 46 - col2 
2aaa0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2aab0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 35 33  0..----..-1..-53
2aac0 0d 0a 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..36....query I 
2aad0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2aae0 2d 20 2d 20 63 6f 6c 30 20 2d 20 63 6f 6c 31 20  - - col0 - col1 
2aaf0 2b 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63  + + + col2 * + c
2ab00 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
2ab10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35   cor0..----..105
2ab20 33 0d 0a 32 35 34 37 0d 0a 34 33 35 38 0d 0a 0d  3..2547..4358...
2ab30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ab40 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 33 32 20  ..SELECT ( + 32 
2ab50 29 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ) - + col1 FROM 
2ab60 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2ab70 2d 2d 0d 0a 2d 31 35 0d 0a 31 38 0d 0a 32 37 0d  --..-15..18..27.
2ab80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2ab90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2aba0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2abb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 32 0d  wsort label-912.
2abc0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41  .SELECT ALL + MA
2abd0 58 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 2a 20  X( - + col2 ) * 
2abe0 34 37 20 2d 20 2d 20 31 38 20 2b 20 2b 20 30 20  47 - - 18 + + 0 
2abf0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
2ac00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2ac10 30 36 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  063....skipif my
2ac20 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2ac30 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
2ac40 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2ac50 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2ac60 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2ac70 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2ac80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2ac90 61 62 65 6c 2d 39 31 32 0d 0a 53 45 4c 45 43 54  abel-912..SELECT
2aca0 20 41 4c 4c 20 2b 20 4d 41 58 20 28 20 2d 20 2b   ALL + MAX ( - +
2acb0 20 63 6f 6c 32 20 29 20 2a 20 34 37 20 2d 20 2d   col2 ) * 47 - -
2acc0 20 31 38 20 2b 20 2b 20 30 20 63 6f 6c 31 20 46   18 + + 0 col1 F
2acd0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2ace0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 36 33 0d 0a 0d  ..----..-1063...
2acf0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2ad00 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2ad10 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
2ad20 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 33 0d 0a  sort label-913..
2ad30 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54  SELECT + - COUNT
2ad40 28 20 2a 20 29 2c 20 2d 20 37 31 20 63 6f 6c 31  ( * ), - 71 col1
2ad50 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2ad60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 37  r0..----..-3..-7
2ad70 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
2ad80 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2ad90 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
2ada0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2adb0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2adc0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2add0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2ade0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2adf0 62 65 6c 2d 39 31 33 0d 0a 53 45 4c 45 43 54 20  bel-913..SELECT 
2ae00 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c  + - COUNT ( * ),
2ae10 20 2d 20 37 31 20 63 6f 6c 31 20 46 52 4f 4d 20   - 71 col1 FROM 
2ae20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2ae30 2d 2d 0d 0a 2d 33 0d 0a 2d 37 31 0d 0a 0d 0a 6f  --..-3..-71....o
2ae40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2ae50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2ae60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ae70 74 20 6c 61 62 65 6c 2d 39 31 34 0d 0a 53 45 4c  t label-914..SEL
2ae80 45 43 54 20 41 4c 4c 20 2d 20 33 20 2a 20 2b 20  ECT ALL - 3 * + 
2ae90 2d 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 32 20 29  - MIN( ALL - 2 )
2aea0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2aeb0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a  r0..----..-6....
2aec0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2aed0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2aee0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2aef0 61 62 65 6c 2d 39 31 34 0d 0a 53 45 4c 45 43 54  abel-914..SELECT
2af00 20 41 4c 4c 20 2d 20 33 20 2a 20 2b 20 2d 20 4d   ALL - 3 * + - M
2af10 49 4e 20 28 20 41 4c 4c 20 2d 20 32 20 29 20 46  IN ( ALL - 2 ) F
2af20 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2af30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 71 75  ..----..-6....qu
2af40 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
2af50 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20  SELECT + col0 * 
2af60 2b 20 63 6f 6c 31 20 2b 20 2b 20 38 33 20 41 53  + col1 + + 83 AS
2af70 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 31 20 46 52   col1, - col1 FR
2af80 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2af90 0a 2d 2d 2d 2d 0d 0a 32 34 32 39 0d 0a 2d 35 31  .----..2429..-51
2afa0 0d 0a 35 30 31 31 0d 0a 2d 37 37 0d 0a 35 31 30  ..5011..-77..510
2afb0 38 0d 0a 2d 36 37 0d 0a 0d 0a 71 75 65 72 79 20  8..-67....query 
2afc0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2afd0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2afe0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
2aff0 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 3d 20 63  E NOT - col2 = c
2b000 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  ol2 * + col2..--
2b010 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
2b020 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
2b030 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
2b040 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72  962d0a49....quer
2b050 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2b060 45 43 54 20 2b 20 2d 20 28 20 2d 20 2b 20 63 6f  ECT + - ( - + co
2b070 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l0 ) AS col2 FRO
2b080 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2b090 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
2b0a0 54 57 45 45 4e 20 63 6f 6c 30 20 41 4e 44 20 2d  TWEEN col0 AND -
2b0b0 20 2b 20 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e   + 1..----....on
2b0c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b0d0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b0e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b0f0 20 6c 61 62 65 6c 2d 39 31 38 0d 0a 53 45 4c 45   label-918..SELE
2b100 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e  CT - MAX( DISTIN
2b110 43 54 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63  CT + col2 ) AS c
2b120 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
2b130 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70  ---..-99....skip
2b140 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b150 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b160 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b170 2d 39 31 38 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  -918..SELECT - M
2b180 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  AX ( DISTINCT + 
2b190 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
2b1a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2b1b0 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -99....onlyif my
2b1c0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2b1d0 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
2b1e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2b1f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2b200 6f 72 74 20 6c 61 62 65 6c 2d 39 31 39 0d 0a 53  ort label-919..S
2b210 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2b220 20 37 39 20 2a 20 2d 20 4d 49 4e 28 20 43 41 53   79 * - MIN( CAS
2b230 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47  T( - col0 AS SIG
2b240 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20  NED ) ) AS col1 
2b250 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2b260 0a 2d 37 31 38 39 0d 0a 0d 0a 73 6b 69 70 69 66  .-7189....skipif
2b270 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2b280 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2b290 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2b2a0 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  19..SELECT DISTI
2b2b0 4e 43 54 20 2d 20 37 39 20 2a 20 2d 20 4d 49 4e  NCT - 79 * - MIN
2b2c0 20 28 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30   ( CAST ( - col0
2b2d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
2b2e0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2b2f0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 31 38 39 0d 0a  1..----..-7189..
2b300 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b310 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
2b320 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2b330 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
2b340 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b350 6c 61 62 65 6c 2d 39 32 30 0d 0a 53 45 4c 45 43  label-920..SELEC
2b360 54 20 53 55 4d 28 20 41 4c 4c 20 63 6f 6c 31 20  T SUM( ALL col1 
2b370 29 20 2a 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  ) * + + CAST( NU
2b380 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
2b390 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2b3a0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2b3b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b3c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2b3d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32  rowsort label-92
2b3e0 30 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20  0..SELECT SUM ( 
2b3f0 41 4c 4c 20 63 6f 6c 31 20 29 20 2a 20 2b 20 2b  ALL col1 ) * + +
2b400 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2b410 52 45 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 30  REAL ) FROM tab0
2b420 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2b430 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2b440 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
2b450 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2b460 4e 4f 54 20 2d 20 2b 20 35 34 20 49 53 20 4e 4f  NOT - + 54 IS NO
2b470 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
2b480 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2b490 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b  ..SELECT ALL ( +
2b4a0 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 2c   col0 ) AS col2,
2b4b0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
2b4c0 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 35 31 0d 0a 36  .----..46..51..6
2b4d0 34 0d 0a 37 37 0d 0a 37 35 0d 0a 36 37 0d 0a 0d  4..77..75..67...
2b4e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b4f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2b500 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c  T - col1 * - col
2b510 32 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  2 + + col1 AS co
2b520 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
2b530 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d  cor0..----..100.
2b540 0a 32 33 31 0d 0a 33 38 38 38 0d 0a 0d 0a 6f 6e  .231..3888....on
2b550 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b560 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b570 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b580 20 6c 61 62 65 6c 2d 39 32 34 0d 0a 53 45 4c 45   label-924..SELE
2b590 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 44 49  CT - - COUNT( DI
2b5a0 53 54 49 4e 43 54 20 2b 20 2b 20 31 38 20 29 20  STINCT + + 18 ) 
2b5b0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2b5c0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b  0..----..1....sk
2b5d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2b5e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2b5f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2b600 65 6c 2d 39 32 34 0d 0a 53 45 4c 45 43 54 20 2d  el-924..SELECT -
2b610 20 2d 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49   - COUNT ( DISTI
2b620 4e 43 54 20 2b 20 2b 20 31 38 20 29 20 46 52 4f  NCT + + 18 ) FRO
2b630 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2b640 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79  ----..1....query
2b650 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2b660 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
2b670 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2b680 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20  OT ( NULL ) NOT 
2b690 42 45 54 57 45 45 4e 20 2d 20 31 36 20 41 4e 44  BETWEEN - 16 AND
2b6a0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
2b6b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2b6c0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2b6d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b6e0 74 20 6c 61 62 65 6c 2d 39 32 36 0d 0a 53 45 4c  t label-926..SEL
2b6f0 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
2b700 20 2a 20 29 20 2a 20 37 33 20 46 52 4f 4d 20 74   * ) * 73 FROM t
2b710 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2b720 2d 0d 0a 2d 32 31 39 0d 0a 0d 0a 73 6b 69 70 69  -..-219....skipi
2b730 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2b740 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2b750 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2b760 39 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  926..SELECT ALL 
2b770 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
2b780 37 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  73 FROM tab1 AS 
2b790 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 39  cor0..----..-219
2b7a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2b7b0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2b7c0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2b7d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2b7e0 61 62 65 6c 2d 39 32 37 0d 0a 53 45 4c 45 43 54  abel-927..SELECT
2b7f0 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 31 31   DISTINCT - + 11
2b800 20 2a 20 2b 20 2d 20 28 20 43 41 53 54 28 20 2b   * + - ( CAST( +
2b810 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
2b820 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ) ) FROM tab1 AS
2b830 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   cor0..----..100
2b840 31 0d 0a 35 36 31 0d 0a 39 33 35 0d 0a 0d 0a 73  1..561..935....s
2b850 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2b860 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2b870 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b880 62 65 6c 2d 39 32 37 0d 0a 53 45 4c 45 43 54 20  bel-927..SELECT 
2b890 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 31 31 20  DISTINCT - + 11 
2b8a0 2a 20 2b 20 2d 20 28 20 43 41 53 54 20 28 20 2b  * + - ( CAST ( +
2b8b0 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
2b8c0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   ) ) FROM tab1 A
2b8d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
2b8e0 30 31 0d 0a 35 36 31 0d 0a 39 33 35 0d 0a 0d 0a  01..561..935....
2b8f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2b900 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2b910 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2b920 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b930 2d 39 32 38 0d 0a 53 45 4c 45 43 54 20 2d 20 63  -928..SELECT - c
2b940 6f 6c 32 20 2b 20 37 33 20 46 52 4f 4d 20 74 61  ol2 + 73 FROM ta
2b950 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
2b960 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53 20 53   CAST( col2 AS S
2b970 49 47 4e 45 44 20 29 20 4e 4f 54 20 49 4e 20 28  IGNED ) NOT IN (
2b980 20 63 6f 6c 32 2c 20 63 6f 6c 32 2c 20 2d 20 2b   col2, col2, - +
2b990 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 32   col0 + - - col2
2b9a0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
2b9b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b9c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b9d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b9e0 2d 39 32 38 0d 0a 53 45 4c 45 43 54 20 2d 20 63  -928..SELECT - c
2b9f0 6f 6c 32 20 2b 20 37 33 20 46 52 4f 4d 20 74 61  ol2 + 73 FROM ta
2ba00 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
2ba10 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20   CAST ( col2 AS 
2ba20 49 4e 54 45 47 45 52 20 29 20 4e 4f 54 20 49 4e  INTEGER ) NOT IN
2ba30 20 28 20 63 6f 6c 32 2c 20 63 6f 6c 32 2c 20 2d   ( col2, col2, -
2ba40 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f   + col0 + - - co
2ba50 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  l2 )..----....qu
2ba60 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2ba70 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2ba80 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
2ba90 45 20 2d 20 63 6f 6c 30 20 42 45 54 57 45 45 4e  E - col0 BETWEEN
2baa0 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 30   - - col0 * col0
2bab0 20 41 4e 44 20 2d 20 2b 20 36 36 0d 0a 2d 2d 2d   AND - + 66..---
2bac0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2bad0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32  sort..SELECT + 2
2bae0 36 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f  6 + + + col2 FRO
2baf0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2bb00 2d 2d 2d 2d 0d 0a 31 32 32 0d 0a 38 35 0d 0a 39  ----..122..85..9
2bb10 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
2bb20 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2bb30 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2bb40 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2bb50 74 20 6c 61 62 65 6c 2d 39 33 31 0d 0a 53 45 4c  t label-931..SEL
2bb60 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
2bb70 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
2bb80 63 6f 6c 32 20 2a 20 2b 20 43 41 53 54 28 20 4e  col2 * + CAST( N
2bb90 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2bba0 4e 4f 54 20 49 4e 20 28 20 2b 20 2d 20 37 36 2c  NOT IN ( + - 76,
2bbb0 20 63 6f 6c 32 2c 20 63 6f 6c 31 2c 20 2d 20 63   col2, col1, - c
2bbc0 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  ol2 )..----....s
2bbd0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2bbe0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2bbf0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2bc00 6c 61 62 65 6c 2d 39 33 31 0d 0a 53 45 4c 45 43  label-931..SELEC
2bc10 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
2bc20 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
2bc30 6c 32 20 2a 20 2b 20 43 41 53 54 20 28 20 4e 55  l2 * + CAST ( NU
2bc40 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
2bc50 4e 4f 54 20 49 4e 20 28 20 2b 20 2d 20 37 36 2c  NOT IN ( + - 76,
2bc60 20 63 6f 6c 32 2c 20 63 6f 6c 31 2c 20 2d 20 63   col2, col1, - c
2bc70 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol2 )..----....q
2bc80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2bc90 53 45 4c 45 43 54 20 2d 20 2b 20 38 36 20 2b 20  SELECT - + 86 + 
2bca0 2d 20 28 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  - ( col1 ) AS co
2bcb0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
2bcc0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37 0d 0a 2d  0..----..-107..-
2bcd0 31 36 37 0d 0a 2d 38 37 0d 0a 0d 0a 6f 6e 6c 79  167..-87....only
2bce0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
2bcf0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2bd00 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2bd10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 33  owsort label-933
2bd20 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 63 6f 6c  ..SELECT ( + col
2bd30 32 20 29 20 44 49 56 20 2d 20 63 6f 6c 31 20 2b  2 ) DIV - col1 +
2bd40 20 31 30 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d   10 + col1 + + -
2bd50 20 38 20 44 49 56 20 2b 20 37 39 20 2a 20 2b 20   8 DIV + 79 * + 
2bd60 35 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  50 FROM tab1..--
2bd70 2d 2d 0d 0a 31 38 0d 0a 34 0d 0a 35 36 0d 0a 0d  --..18..4..56...
2bd80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2bd90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2bda0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2bdb0 6c 61 62 65 6c 2d 39 33 33 0d 0a 53 45 4c 45 43  label-933..SELEC
2bdc0 54 20 28 20 2b 20 63 6f 6c 32 20 29 20 2f 20 2d  T ( + col2 ) / -
2bdd0 20 63 6f 6c 31 20 2b 20 31 30 20 2b 20 63 6f 6c   col1 + 10 + col
2bde0 31 20 2b 20 2b 20 2d 20 38 20 2f 20 2b 20 37 39  1 + + - 8 / + 79
2bdf0 20 2a 20 2b 20 35 30 20 46 52 4f 4d 20 74 61 62   * + 50 FROM tab
2be00 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 34 0d 0a  1..----..18..4..
2be10 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  56....onlyif mys
2be20 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
2be30 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
2be40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2be50 20 6c 61 62 65 6c 2d 39 33 34 0d 0a 53 45 4c 45   label-934..SELE
2be60 43 54 20 2d 20 63 6f 6c 32 20 44 49 56 20 2d 20  CT - col2 DIV - 
2be70 33 36 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  36 + - col1 FROM
2be80 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab0..----..-21
2be90 0d 0a 2d 38 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  ..-80..1....skip
2bea0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2beb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2bec0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2bed0 2d 39 33 34 0d 0a 53 45 4c 45 43 54 20 2d 20 63  -934..SELECT - c
2bee0 6f 6c 32 20 2f 20 2d 20 33 36 20 2b 20 2d 20 63  ol2 / - 36 + - c
2bef0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2bf00 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 38 30 0d 0a 31  ---..-21..-80..1
2bf10 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2bf20 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2bf30 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2bf40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2bf50 61 62 65 6c 2d 39 33 35 0d 0a 53 45 4c 45 43 54  abel-935..SELECT
2bf60 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54   DISTINCT - CAST
2bf70 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
2bf80 20 29 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2b 20   ) * - col1 + + 
2bf90 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
2bfa0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
2bfb0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
2bfc0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2bfd0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2bfe0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 35 0d 0a  sort label-935..
2bff0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2c000 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
2c010 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 63   INTEGER ) * - c
2c020 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  ol1 + + col0 AS 
2c030 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2c040 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
2c050 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c060 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31  ELECT DISTINCT 1
2c070 35 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  5 + col0 AS col1
2c080 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2c090 0d 0a 36 31 0d 0a 37 39 0d 0a 39 30 0d 0a 0d 0a  ..61..79..90....
2c0a0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2c0b0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2c0c0 20 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 32   tab0 WHERE col2
2c0d0 20 2f 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32   / + col2 + col2
2c0e0 20 3e 3d 20 2b 20 2d 20 30 0d 0a 2d 2d 2d 2d 0d   >= + - 0..----.
2c0f0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2c100 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
2c110 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
2c120 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
2c130 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2c140 20 44 49 53 54 49 4e 43 54 20 2b 20 35 36 20 2b   DISTINCT + 56 +
2c150 20 34 32 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f   42 * + col0 FRO
2c160 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2c170 2d 2d 2d 2d 0d 0a 31 39 38 38 0d 0a 32 37 34 34  ----..1988..2744
2c180 0d 0a 33 32 30 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3206....onlyif
2c190 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2c1a0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2c1b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c1c0 65 6c 2d 39 33 39 0d 0a 53 45 4c 45 43 54 20 2b  el-939..SELECT +
2c1d0 20 34 39 20 2d 20 2b 20 2b 20 38 33 20 2d 20 2d   49 - + + 83 - -
2c1e0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f   + COUNT( * ) co
2c1f0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
2c200 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d  cor0..----..-31.
2c210 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2c220 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2c230 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2c240 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2c250 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2c260 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2c270 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2c280 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c290 2d 39 33 39 0d 0a 53 45 4c 45 43 54 20 2b 20 34  -939..SELECT + 4
2c2a0 39 20 2d 20 2b 20 2b 20 38 33 20 2d 20 2d 20 2b  9 - + + 83 - - +
2c2b0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
2c2c0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
2c2d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a  or0..----..-31..
2c2e0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2c2f0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2c300 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2c310 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 30 0d 0a  sort label-940..
2c320 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
2c330 2a 20 29 20 2b 20 2b 20 31 38 20 2b 20 2d 20 2d  * ) + + 18 + - -
2c340 20 34 36 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   46 col2 FROM ta
2c350 62 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b0 cor0 CROSS JO
2c360 49 4e 20 74 61 62 32 20 63 6f 72 31 20 57 48 45  IN tab2 cor1 WHE
2c370 52 45 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c 0d  RE NULL >= NULL.
2c380 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 73 6b 69  .----..64....ski
2c390 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2c3a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
2c3b0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2c3c0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2c3d0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2c3e0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2c3f0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2c400 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 30 0d 0a  sort label-940..
2c410 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
2c420 20 2a 20 29 20 2b 20 2b 20 31 38 20 2b 20 2d 20   * ) + + 18 + - 
2c430 2d 20 34 36 20 63 6f 6c 32 20 46 52 4f 4d 20 74  - 46 col2 FROM t
2c440 61 62 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab0 cor0 CROSS J
2c450 4f 49 4e 20 74 61 62 32 20 63 6f 72 31 20 57 48  OIN tab2 cor1 WH
2c460 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c  ERE NULL >= NULL
2c470 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 71 75  ..----..64....qu
2c480 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c490 45 4c 45 43 54 20 41 4c 4c 20 39 31 20 46 52 4f  ELECT ALL 91 FRO
2c4a0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  M tab0 AS cor0 C
2c4b0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
2c4c0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
2c4d0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2c4e0 6f 20 35 37 34 38 36 32 37 65 66 35 66 64 38 36  o 5748627ef5fd86
2c4f0 61 32 31 63 64 35 35 39 66 64 32 37 38 64 37 32  a21cd559fd278d72
2c500 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  77....onlyif mys
2c510 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2c520 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
2c530 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2c540 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2c550 72 74 20 6c 61 62 65 6c 2d 39 34 32 0d 0a 53 45  rt label-942..SE
2c560 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
2c570 28 20 2b 20 2b 20 43 41 53 54 28 20 2d 20 2b 20  ( + + CAST( - + 
2c580 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
2c590 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
2c5a0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2c5b0 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
2c5c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2c5d0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2c5e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2c5f0 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  42..SELECT ALL -
2c600 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20 43 41 53   COUNT ( + + CAS
2c610 54 20 28 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20  T ( - + col0 AS 
2c620 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20 63  INTEGER ) ) AS c
2c630 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
2c640 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
2c650 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c660 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2c670 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2c680 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c690 62 65 6c 2d 39 34 33 0d 0a 53 45 4c 45 43 54 20  bel-943..SELECT 
2c6a0 2d 20 2b 20 33 34 20 41 53 20 63 6f 6c 32 20 46  - + 34 AS col2 F
2c6b0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2c6c0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
2c6d0 3c 3d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  <= CAST( NULL AS
2c6e0 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c 31   SIGNED ) * col1
2c6f0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
2c700 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2c710 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2c720 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2c730 34 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 33  43..SELECT - + 3
2c740 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
2c750 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
2c760 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 43 41  E NOT NULL <= CA
2c770 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2c780 45 47 45 52 20 29 20 2a 20 63 6f 6c 31 0d 0a 2d  EGER ) * col1..-
2c790 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
2c7a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
2c7b0 20 2d 20 35 30 20 2a 20 63 6f 6c 30 20 41 53 20   - 50 * col0 AS 
2c7c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
2c7d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33  S cor0..----..43
2c7e0 35 30 0d 0a 34 38 35 30 0d 0a 37 35 30 0d 0a 0d  50..4850..750...
2c7f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c800 0d 0a 53 45 4c 45 43 54 20 2b 20 39 33 20 2a 20  ..SELECT + 93 * 
2c810 33 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  39 FROM tab2 AS 
2c820 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 32 37  cor0..----..3627
2c830 0d 0a 33 36 32 37 0d 0a 33 36 32 37 0d 0a 0d 0a  ..3627..3627....
2c840 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
2c850 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
2c860 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
2c870 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
2c880 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
2c890 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2c8a0 20 2d 20 28 20 2d 20 37 33 20 29 20 63 6f 6c 31   - ( - 73 ) col1
2c8b0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2c8c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 37 33  r0..----..73..73
2c8d0 0d 0a 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..73....query I 
2c8e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c8f0 2b 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c  + col2 * - - col
2c900 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
2c910 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 38 0d  ab2..----..1058.
2c920 0a 32 35 36 30 0d 0a 34 33 35 30 0d 0a 0d 0a 6f  .2560..4350....o
2c930 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2c940 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2c950 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c960 74 20 6c 61 62 65 6c 2d 39 34 38 0d 0a 53 45 4c  t label-948..SEL
2c970 45 43 54 20 2b 20 38 37 20 2a 20 2d 20 43 4f 55  ECT + 87 * - COU
2c980 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
2c990 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 31 0d 0a 0d  2..----..-261...
2c9a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2c9b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2c9c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c9d0 6c 61 62 65 6c 2d 39 34 38 0d 0a 53 45 4c 45 43  label-948..SELEC
2c9e0 54 20 2b 20 38 37 20 2a 20 2d 20 43 4f 55 4e 54  T + 87 * - COUNT
2c9f0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32   ( * ) FROM tab2
2ca00 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 31 0d 0a 0d 0a  ..----..-261....
2ca10 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2ca20 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2ca30 54 20 2b 20 2b 20 33 2c 20 2d 20 63 6f 6c 31 20  T + + 3, - col1 
2ca40 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2ca50 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  NOT NULL IS NULL
2ca60 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2ca70 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2ca80 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
2ca90 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32  WHERE NOT - col2
2caa0 20 3e 3d 20 2b 20 2b 20 32 38 0d 0a 2d 2d 2d 2d   >= + + 28..----
2cab0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2cac0 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
2cad0 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
2cae0 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
2caf0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2cb00 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
2cb10 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2cb20 54 20 2d 20 35 30 20 42 45 54 57 45 45 4e 20 2b  T - 50 BETWEEN +
2cb30 20 2b 20 32 37 20 41 4e 44 20 38 37 20 2a 20 63   + 27 AND 87 * c
2cb40 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ol2..----..9 val
2cb50 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2cb60 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
2cb70 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
2cb80 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2cb90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
2cba0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2cbb0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
2cbc0 30 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 30  0 BETWEEN - col0
2cbd0 20 41 4e 44 20 2b 20 63 6f 6c 31 20 2a 20 2b 20   AND + col1 * + 
2cbe0 2b 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 2a 20  + col0 - col0 * 
2cbf0 35 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  52..----..9 valu
2cc00 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
2cc10 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
2cc20 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
2cc30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2cc40 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2cc50 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
2cc60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 33 0d  wsort label-953.
2cc70 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
2cc80 20 2a 20 29 2c 20 2b 20 43 4f 55 4e 54 28 20 2a   * ), + COUNT( *
2cc90 20 29 20 2a 20 2b 20 2d 20 33 35 20 41 53 20 63   ) * + - 35 AS c
2cca0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
2ccb0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
2ccc0 2d 31 30 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -105....skipif m
2ccd0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2cce0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
2ccf0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2cd00 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  3..SELECT + COUN
2cd10 54 20 28 20 2a 20 29 2c 20 2b 20 43 4f 55 4e 54  T ( * ), + COUNT
2cd20 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 33 35 20   ( * ) * + - 35 
2cd30 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2cd40 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2cd50 0a 33 0d 0a 2d 31 30 35 0d 0a 0d 0a 6f 6e 6c 79  .3..-105....only
2cd60 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2cd70 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2cd80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2cd90 61 62 65 6c 2d 39 35 34 0d 0a 53 45 4c 45 43 54  abel-954..SELECT
2cda0 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 28   DISTINCT - MAX(
2cdb0 20 63 6f 6c 32 20 29 20 2a 20 2d 20 2b 20 43 4f   col2 ) * - + CO
2cdc0 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
2cdd0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2cde0 0d 0a 32 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..297....skipif 
2cdf0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2ce00 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2ce10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2ce20 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
2ce30 43 54 20 2d 20 4d 41 58 20 28 20 63 6f 6c 32 20  CT - MAX ( col2 
2ce40 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  ) * - + COUNT ( 
2ce50 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
2ce60 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 37   tab0..----..297
2ce70 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2ce80 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2ce90 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
2cea0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
2ceb0 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  L NOT BETWEEN + 
2cec0 36 34 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41 4e  64 * + + col1 AN
2ced0 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
2cee0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2cef0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2cf00 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2cf10 72 74 20 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45  rt label-956..SE
2cf20 4c 45 43 54 20 38 31 20 2b 20 2d 20 2d 20 43 4f  LECT 81 + - - CO
2cf30 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 53 55 4d  UNT( * ) * - SUM
2cf40 28 20 44 49 53 54 49 4e 43 54 20 2d 20 32 33 20  ( DISTINCT - 23 
2cf50 29 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) - - COUNT( * )
2cf60 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2cf70 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2cf80 0d 0a 31 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..153....skipif 
2cf90 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2cfa0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2cfb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2cfc0 36 0d 0a 53 45 4c 45 43 54 20 38 31 20 2b 20 2d  6..SELECT 81 + -
2cfd0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
2cfe0 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   - SUM ( DISTINC
2cff0 54 20 2d 20 32 33 20 29 20 2d 20 2d 20 43 4f 55  T - 23 ) - - COU
2d000 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
2d010 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2d020 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 33 0d 0a 0d  r0..----..153...
2d030 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d040 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2d050 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2d060 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2d070 6c 2d 39 35 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-957..SELECT - 
2d080 39 37 20 44 49 56 20 34 31 20 46 52 4f 4d 20 74  97 DIV 41 FROM t
2d090 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2d0a0 2d 0d 0a 2d 32 0d 0a 2d 32 0d 0a 2d 32 0d 0a 0d  -..-2..-2..-2...
2d0b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2d0c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2d0d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d0e0 6c 61 62 65 6c 2d 39 35 37 0d 0a 53 45 4c 45 43  label-957..SELEC
2d0f0 54 20 2d 20 39 37 20 2f 20 34 31 20 46 52 4f 4d  T - 97 / 41 FROM
2d100 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2d110 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 32 0d 0a 2d 32 0d  ---..-2..-2..-2.
2d120 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d130 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2d140 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 63  NCT + - col1 * c
2d150 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20  ol1 + - col0 AS 
2d160 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
2d170 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
2d180 36 34 37 0d 0a 2d 34 35 36 34 0d 0a 2d 35 39 39  647..-4564..-599
2d190 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
2d1a0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2d1b0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2d1c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d1d0 6c 61 62 65 6c 2d 39 35 39 0d 0a 53 45 4c 45 43  label-959..SELEC
2d1e0 54 20 41 4c 4c 20 2b 20 2d 20 34 34 20 2b 20 39  T ALL + - 44 + 9
2d1f0 33 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  3 - CAST( NULL A
2d200 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
2d210 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2d220 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
2d230 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
2d240 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d250 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2d260 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2d270 61 62 65 6c 2d 39 35 39 0d 0a 53 45 4c 45 43 54  abel-959..SELECT
2d280 20 41 4c 4c 20 2b 20 2d 20 34 34 20 2b 20 39 33   ALL + - 44 + 93
2d290 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
2d2a0 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
2d2b0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
2d2c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
2d2d0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
2d2e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d2f0 0d 0a 53 45 4c 45 43 54 20 2d 20 38 35 20 2a 20  ..SELECT - 85 * 
2d300 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  - - col1 AS col1
2d310 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2d320 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 38 35 0d  r0..----..-1785.
2d330 0a 2d 36 38 38 35 0d 0a 2d 38 35 0d 0a 0d 0a 71  .-6885..-85....q
2d340 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2d350 53 45 4c 45 43 54 20 41 4c 4c 20 39 37 20 2b 20  SELECT ALL 97 + 
2d360 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 41 53  col0 + + col1 AS
2d370 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
2d380 0a 2d 2d 2d 2d 0d 0a 31 39 33 0d 0a 31 39 35 0d  .----..193..195.
2d390 0a 32 30 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .205....query I 
2d3a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2d3b0 44 49 53 54 49 4e 43 54 20 2d 20 39 35 20 2a 20  DISTINCT - 95 * 
2d3c0 2b 20 2b 20 31 33 20 2a 20 2d 20 63 6f 6c 30 20  + + 13 * - col0 
2d3d0 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  - + col1 AS col0
2d3e0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2d3f0 0d 0a 35 36 37 35 39 0d 0a 37 38 39 36 33 0d 0a  ..56759..78963..
2d400 39 32 35 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  92558....onlyif 
2d410 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
2d420 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
2d430 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2d440 6f 72 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a 53  ort label-963..S
2d450 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30  ELECT ALL + col0
2d460 20 44 49 56 20 2d 20 63 6f 6c 31 20 2b 20 2b 20   DIV - col1 + + 
2d470 2d 20 28 20 2b 20 36 31 20 29 20 41 53 20 63 6f  - ( + 61 ) AS co
2d480 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
2d490 2d 2d 0d 0a 2d 31 35 38 0d 0a 2d 36 31 0d 0a 2d  --..-158..-61..-
2d4a0 36 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  65....skipif mys
2d4b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2d4c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2d4d0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a  sort label-963..
2d4e0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
2d4f0 30 20 2f 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d  0 / - col1 + + -
2d500 20 28 20 2b 20 36 31 20 29 20 41 53 20 63 6f 6c   ( + 61 ) AS col
2d510 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
2d520 2d 0d 0a 2d 31 35 38 0d 0a 2d 36 31 0d 0a 2d 36  -..-158..-61..-6
2d530 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
2d540 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2d550 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2d560 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2d570 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d580 74 20 6c 61 62 65 6c 2d 39 36 34 0d 0a 53 45 4c  t label-964..SEL
2d590 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
2d5a0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2d5b0 4e 45 44 20 29 20 2d 20 2b 20 28 20 2b 20 43 4f  NED ) - + ( + CO
2d5c0 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f  UNT( * ) ) AS co
2d5d0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
2d5e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
2d5f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2d600 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2d610 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d620 2d 39 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -964..SELECT DIS
2d630 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e  TINCT + CAST ( N
2d640 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2d650 20 2d 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28   - + ( + COUNT (
2d660 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46   * ) ) AS col0 F
2d670 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2d680 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
2d690 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2d6a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2d6b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d6c0 2d 39 36 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -965..SELECT ALL
2d6d0 20 2d 20 36 39 20 2d 20 2b 20 28 20 2d 20 4d 41   - 69 - + ( - MA
2d6e0 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  X( DISTINCT + co
2d6f0 6c 32 20 29 20 29 20 63 6f 6c 30 20 46 52 4f 4d  l2 ) ) col0 FROM
2d700 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
2d710 0d 0a 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..27....skipif m
2d720 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2d730 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
2d740 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2d750 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2d760 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2d770 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2d780 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d790 6c 61 62 65 6c 2d 39 36 35 0d 0a 53 45 4c 45 43  label-965..SELEC
2d7a0 54 20 41 4c 4c 20 2d 20 36 39 20 2d 20 2b 20 28  T ALL - 69 - + (
2d7b0 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   - MAX ( DISTINC
2d7c0 54 20 2b 20 63 6f 6c 32 20 29 20 29 20 63 6f 6c  T + col2 ) ) col
2d7d0 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
2d7e0 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 71 75  ..----..27....qu
2d7f0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2d800 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2d810 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2d820 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
2d830 55 4c 4c 20 3e 3d 20 37 33 20 2a 20 2b 20 2d 20  ULL >= 73 * + - 
2d840 37 38 20 2a 20 2b 20 36 33 20 2a 20 2d 20 33 37  78 * + 63 * - 37
2d850 20 2f 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d   / - - col1..---
2d860 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2d870 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2d880 20 2d 20 2b 20 28 20 2b 20 31 38 20 29 20 41 53   - + ( + 18 ) AS
2d890 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2d8a0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
2d8b0 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d  IN tab2 AS cor1.
2d8c0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
2d8d0 68 61 73 68 69 6e 67 20 74 6f 20 30 39 61 66 61  hashing to 09afa
2d8e0 66 65 63 36 35 37 61 35 65 39 66 30 38 32 62 65  fec657a5e9f082be
2d8f0 62 36 61 31 36 65 63 38 35 64 65 0d 0a 0d 0a 6f  b6a16ec85de....o
2d900 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2d910 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2d920 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d930 74 20 6c 61 62 65 6c 2d 39 36 38 0d 0a 53 45 4c  t label-968..SEL
2d940 45 43 54 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2b  ECT + SUM( ALL +
2d950 20 39 39 20 29 20 41 53 20 63 6f 6c 30 20 46 52   99 ) AS col0 FR
2d960 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2d970 0a 2d 2d 2d 2d 0d 0a 32 39 37 0d 0a 0d 0a 73 6b  .----..297....sk
2d980 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2d990 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2d9a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2d9b0 65 6c 2d 39 36 38 0d 0a 53 45 4c 45 43 54 20 2b  el-968..SELECT +
2d9c0 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 39 39 20   SUM ( ALL + 99 
2d9d0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2d9e0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2d9f0 2d 0d 0a 32 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..297....onlyif
2da00 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2da10 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2da20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2da30 65 6c 2d 39 36 39 0d 0a 53 45 4c 45 43 54 20 41  el-969..SELECT A
2da40 4c 4c 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e  LL - SUM( DISTIN
2da50 43 54 20 2d 20 2b 20 37 39 20 29 20 46 52 4f 4d  CT - + 79 ) FROM
2da60 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2da70 2d 2d 2d 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69  ---..79....skipi
2da80 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2da90 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2daa0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2dab0 39 36 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  969..SELECT ALL 
2dac0 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54  - SUM ( DISTINCT
2dad0 20 2d 20 2b 20 37 39 20 29 20 46 52 4f 4d 20 74   - + 79 ) FROM t
2dae0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2daf0 2d 0d 0a 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..79....onlyif 
2db00 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2db10 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
2db20 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
2db30 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
2db40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37  rowsort label-97
2db50 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
2db60 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
2db70 41 53 20 63 6f 6c 32 2c 20 2d 20 43 4f 55 4e 54  AS col2, - COUNT
2db80 28 20 2a 20 29 20 2a 20 2d 20 43 41 53 54 28 20  ( * ) * - CAST( 
2db90 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
2dba0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2dbb0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2dbc0 2d 0d 0a 2d 33 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  -..-3..NULL....s
2dbd0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2dbe0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2dbf0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2dc00 61 62 65 6c 2d 39 37 30 0d 0a 53 45 4c 45 43 54  abel-970..SELECT
2dc10 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e   DISTINCT - COUN
2dc20 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c  T ( * ) AS col2,
2dc30 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
2dc40 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
2dc50 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 31  S REAL ) AS col1
2dc60 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2dc70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 4e 55  r0..----..-3..NU
2dc80 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
2dc90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2dca0 4c 20 2d 20 37 20 46 52 4f 4d 20 74 61 62 31 20  L - 7 FROM tab1 
2dcb0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
2dcc0 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
2dcd0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
2dce0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2dcf0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2dd00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2dd10 37 32 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d  72..SELECT - SUM
2dd20 28 20 41 4c 4c 20 2d 20 32 20 29 20 2a 20 2d 20  ( ALL - 2 ) * - 
2dd30 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20  MAX( DISTINCT + 
2dd40 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
2dd50 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2dd60 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54   NOT NULL IS NOT
2dd70 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 37 36   NULL..----..276
2dd80 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2dd90 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2dda0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2ddb0 72 74 20 6c 61 62 65 6c 2d 39 37 32 0d 0a 53 45  rt label-972..SE
2ddc0 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 41 4c 4c  LECT - SUM ( ALL
2ddd0 20 2d 20 32 20 29 20 2a 20 2d 20 4d 41 58 20 28   - 2 ) * - MAX (
2dde0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f   DISTINCT + - co
2ddf0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l0 ) FROM tab2 A
2de00 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2de10 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
2de20 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 37 36 0d 0a 0d 0a  L..----..276....
2de30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2de40 0a 53 45 4c 45 43 54 20 2d 20 2b 20 30 20 46 52  .SELECT - + 0 FR
2de50 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2de60 57 48 45 52 45 20 4e 4f 54 20 31 38 20 2f 20 2b  WHERE NOT 18 / +
2de70 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
2de80 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
2de90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2dea0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2deb0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
2dec0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 34 0d 0a  sort label-974..
2ded0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2dee0 2d 20 4d 41 58 28 20 63 6f 6c 32 20 29 20 41 53  - MAX( col2 ) AS
2def0 20 63 6f 6c 31 2c 20 2d 20 28 20 2b 20 2d 20 43   col1, - ( + - C
2df00 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63  OUNT( * ) ) AS c
2df10 6f 6c 32 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20  ol2, COUNT( * ) 
2df20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2df30 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2df40 0a 2d 35 38 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b  .-58..3..3....sk
2df50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2df60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2df70 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
2df80 61 62 65 6c 2d 39 37 34 0d 0a 53 45 4c 45 43 54  abel-974..SELECT
2df90 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20   DISTINCT - MAX 
2dfa0 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31  ( col2 ) AS col1
2dfb0 2c 20 2d 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20  , - ( + - COUNT 
2dfc0 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 32 2c  ( * ) ) AS col2,
2dfd0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2dfe0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
2dff0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
2e000 38 0d 0a 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  8..3..3....query
2e010 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2e020 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20  CT ALL + - col2 
2e030 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2e040 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a  - col2 IS NULL..
2e050 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
2e060 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2e070 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2e080 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2e090 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2e0a0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2e0b0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2e0c0 43 54 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 2c  CT + ( - col2 ),
2e0d0 20 2d 20 35 34 20 63 6f 6c 32 20 46 52 4f 4d 20   - 54 col2 FROM 
2e0e0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  tab0..----..-10.
2e0f0 0a 2d 35 34 0d 0a 2d 34 37 0d 0a 2d 35 34 0d 0a  .-54..-47..-54..
2e100 2d 39 39 0d 0a 2d 35 34 0d 0a 0d 0a 71 75 65 72  -99..-54....quer
2e110 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2e120 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2e130 31 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2b 20  1 WHERE ( NOT + 
2e140 63 6f 6c 30 20 3c 20 2d 20 2b 20 63 6f 6c 32 20  col0 < - + col2 
2e150 29 20 4f 52 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  ) OR NOT NULL IS
2e160 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2e170 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2e180 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
2e190 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
2e1a0 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  54cad....onlyif 
2e1b0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
2e1c0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
2e1d0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
2e1e0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 38 0d 0a  sort label-978..
2e1f0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d  SELECT ALL + ( -
2e200 20 63 6f 6c 31 20 29 2c 20 2d 20 63 6f 6c 30 20   col1 ), - col0 
2e210 44 49 56 20 2d 20 39 33 20 41 53 20 63 6f 6c 30  DIV - 93 AS col0
2e220 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2e230 0d 0a 2d 35 31 0d 0a 30 0d 0a 2d 36 37 0d 0a 30  ..-51..0..-67..0
2e240 0d 0a 2d 37 37 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  ..-77..0....skip
2e250 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2e260 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2e270 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2e280 6c 2d 39 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-978..SELECT AL
2e290 4c 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 2c 20  L + ( - col1 ), 
2e2a0 2d 20 63 6f 6c 30 20 2f 20 2d 20 39 33 20 41 53  - col0 / - 93 AS
2e2b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2e2c0 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 30 0d 0a 2d  .----..-51..0..-
2e2d0 36 37 0d 0a 30 0d 0a 2d 37 37 0d 0a 30 0d 0a 0d  67..0..-77..0...
2e2e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e2f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
2e300 6f 6c 30 20 2f 20 2b 20 35 20 41 53 20 63 6f 6c  ol0 / + 5 AS col
2e310 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
2e320 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
2e330 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
2e340 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2e350 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2e360 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2e370 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2e380 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
2e390 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2e3a0 4c 20 31 36 20 2a 20 2d 20 2b 20 63 6f 6c 30 2c  L 16 * - + col0,
2e3b0 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a 20   + ( + col2 ) * 
2e3c0 2d 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d  - col2 col2 FROM
2e3d0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab1..----..-13
2e3e0 36 30 0d 0a 2d 33 34 38 31 0d 0a 2d 31 34 35 36  60..-3481..-1456
2e3f0 0d 0a 2d 34 36 32 34 0d 0a 2d 38 31 36 0d 0a 2d  ..-4624..-816..-
2e400 39 32 31 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  9216....query I 
2e410 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e420 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 28  DISTINCT + ( - (
2e430 20 2d 20 2b 20 32 39 20 29 20 29 20 41 53 20 63   - + 29 ) ) AS c
2e440 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
2e450 2d 2d 2d 0d 0a 32 39 0d 0a 0d 0a 71 75 65 72 79  ---..29....query
2e460 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2e470 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
2e480 6c 32 20 2b 20 2b 20 2b 20 35 30 20 46 52 4f 4d  l2 + + + 50 FROM
2e490 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2e4a0 2d 2d 2d 0d 0a 31 30 38 0d 0a 37 33 0d 0a 39 30  ---..108..73..90
2e4b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49  ....query IIIIII
2e4c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e4d0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
2e4e0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
2e4f0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
2e500 20 63 6f 72 31 20 57 48 45 52 45 20 4e 4f 54 20   cor1 WHERE NOT 
2e510 36 31 20 2b 20 2b 20 31 33 20 49 53 20 4e 55 4c  61 + + 13 IS NUL
2e520 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61 6c 75  L..----..54 valu
2e530 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 33 33  es hashing to 33
2e540 61 30 34 39 33 65 37 37 62 66 38 31 35 31 36 37  a0493e77bf815167
2e550 36 63 39 34 38 62 30 36 37 36 64 36 62 39 0d 0a  6c948b0676d6b9..
2e560 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2e570 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2e580 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2e590 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
2e5a0 61 62 65 6c 2d 39 38 34 0d 0a 53 45 4c 45 43 54  abel-984..SELECT
2e5b0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
2e5c0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
2e5d0 45 52 45 20 4e 4f 54 20 2b 20 39 20 2d 20 34 39  ERE NOT + 9 - 49
2e5e0 20 3c 20 43 41 53 54 28 20 2b 20 63 6f 6c 31 20   < CAST( + col1 
2e5f0 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
2e600 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  ( + col1 )..----
2e610 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2e620 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2e630 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
2e640 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 34 0d 0a  sort label-984..
2e650 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2e660 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
2e670 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
2e680 39 20 2d 20 34 39 20 3c 20 43 41 53 54 20 28 20  9 - 49 < CAST ( 
2e690 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  + col1 AS INTEGE
2e6a0 52 20 29 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 31  R ) + - ( + col1
2e6b0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
2e6c0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2e6d0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2e6e0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2e6f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 35  owsort label-985
2e700 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32  ..SELECT ALL + 2
2e710 34 20 2f 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d  4 / + + col1 * -
2e720 20 32 38 20 2a 20 2b 20 43 41 53 54 28 20 4e 55   28 * + CAST( NU
2e730 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
2e740 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   - col0 AS col2 
2e750 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2e760 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
2e770 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
2e780 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2e790 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2e7a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2e7b0 6c 2d 39 38 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-985..SELECT AL
2e7c0 4c 20 2b 20 32 34 20 2f 20 2b 20 2b 20 63 6f 6c  L + 24 / + + col
2e7d0 31 20 2a 20 2d 20 32 38 20 2a 20 2b 20 43 41 53  1 * - 28 * + CAS
2e7e0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
2e7f0 47 45 52 20 29 20 2b 20 2d 20 63 6f 6c 30 20 41  GER ) + - col0 A
2e800 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
2e810 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2e820 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
2e830 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2e840 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2e850 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
2e860 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2e870 4f 54 20 33 39 20 4e 4f 54 20 42 45 54 57 45 45  OT 39 NOT BETWEE
2e880 4e 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2f 20  N col2 * col2 / 
2e890 63 6f 6c 32 20 2b 20 39 37 20 41 4e 44 20 4e 55  col2 + 97 AND NU
2e8a0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
2e8b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2e8c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
2e8d0 20 32 33 20 2b 20 2d 20 35 31 20 46 52 4f 4d 20   23 + - 51 FROM 
2e8e0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2e8f0 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 6f 6e 6c 79 69  --..-74....onlyi
2e900 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2e910 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2e920 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2e930 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 38 0d  wsort label-988.
2e940 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 44  .SELECT + col2 D
2e950 49 56 20 2d 20 2b 20 39 38 20 2a 20 2b 20 63 6f  IV - + 98 * + co
2e960 6c 31 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  l1 + col2 AS col
2e970 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
2e980 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a  ..----..23..40..
2e990 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  58....skipif mys
2e9a0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e9b0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2e9c0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 38 0d 0a  sort label-988..
2e9d0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2f 20  SELECT + col2 / 
2e9e0 2d 20 2b 20 39 38 20 2a 20 2b 20 63 6f 6c 31 20  - + 98 * + col1 
2e9f0 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  + col2 AS col1 F
2ea00 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
2ea10 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d  ---..23..40..58.
2ea20 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2ea30 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 34  rt..SELECT + + 4
2ea40 36 20 2b 20 2b 20 2d 20 28 20 34 32 20 29 20 2a  6 + + - ( 42 ) *
2ea50 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
2ea60 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
2ea70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 39 36  or0..----..-2096
2ea80 0d 0a 2d 32 37 36 38 0d 0a 2d 33 31 38 38 0d 0a  ..-2768..-3188..
2ea90 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2eaa0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2eab0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
2eac0 45 20 4e 4f 54 20 2d 20 38 34 20 49 53 20 4e 4f  E NOT - 84 IS NO
2ead0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
2eae0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2eaf0 0a 53 45 4c 45 43 54 20 2d 20 34 30 20 2b 20 2b  .SELECT - 40 + +
2eb00 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
2eb10 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2eb20 32 35 0d 0a 34 37 0d 0a 35 37 0d 0a 0d 0a 71 75  25..47..57....qu
2eb30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2eb40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2eb50 6f 6c 30 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b  ol0 + col1 + + +
2eb60 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
2eb70 0a 2d 2d 2d 2d 0d 0a 31 34 33 0d 0a 32 30 35 0d  .----..143..205.
2eb80 0a 32 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .217....onlyif m
2eb90 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2eba0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2ebb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ebc0 2d 39 39 33 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -993..SELECT MIN
2ebd0 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  ( DISTINCT col2 
2ebe0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
2ebf0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d  ab0..----..10...
2ec00 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2ec10 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2ec20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2ec30 6c 61 62 65 6c 2d 39 39 33 0d 0a 53 45 4c 45 43  label-993..SELEC
2ec40 54 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  T MIN ( DISTINCT
2ec50 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
2ec60 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2ec70 0a 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .10....onlyif my
2ec80 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2ec90 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
2eca0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
2ecb0 6f 72 74 20 6c 61 62 65 6c 2d 39 39 34 0d 0a 53  ort label-994..S
2ecc0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32  ELECT ALL + col2
2ecd0 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 43 41 53 54   + - col1 * CAST
2ece0 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
2ecf0 4c 20 29 20 2d 20 2b 20 63 6f 6c 30 20 63 6f 6c  L ) - + col0 col
2ed00 30 2c 20 2b 20 32 38 20 41 53 20 63 6f 6c 30 20  0, + 28 AS col0 
2ed10 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2ed20 0a 4e 55 4c 4c 0d 0a 32 38 0d 0a 4e 55 4c 4c 0d  .NULL..28..NULL.
2ed30 0a 32 38 0d 0a 4e 55 4c 4c 0d 0a 32 38 0d 0a 0d  .28..NULL..28...
2ed40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2ed50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2ed60 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
2ed70 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
2ed80 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
2ed90 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
2eda0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
2edb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2edc0 39 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  994..SELECT ALL 
2edd0 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20  + col2 + - col1 
2ede0 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  * CAST ( NULL AS
2edf0 20 52 45 41 4c 20 29 20 2d 20 2b 20 63 6f 6c 30   REAL ) - + col0
2ee00 20 63 6f 6c 30 2c 20 2b 20 32 38 20 41 53 20 63   col0, + 28 AS c
2ee10 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2ee20 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 32 38 0d 0a 4e  ---..NULL..28..N
2ee30 55 4c 4c 0d 0a 32 38 0d 0a 4e 55 4c 4c 0d 0a 32  ULL..28..NULL..2
2ee40 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
2ee50 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2ee60 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2ee70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2ee80 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 31  5..SELECT ALL 41
2ee90 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20   + - - COUNT( * 
2eea0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2eeb0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 0d  ab1..----..44...
2eec0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2eed0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2eee0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2eef0 6c 61 62 65 6c 2d 39 39 35 0d 0a 53 45 4c 45 43  label-995..SELEC
2ef00 54 20 41 4c 4c 20 34 31 20 2b 20 2d 20 2d 20 43  T ALL 41 + - - C
2ef10 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
2ef20 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
2ef30 2d 2d 0d 0a 34 34 0d 0a 0d 0a 71 75 65 72 79 20  --..44....query 
2ef40 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ef50 54 20 41 4c 4c 20 39 33 20 2a 20 2b 20 2d 20 38  T ALL 93 * + - 8
2ef60 37 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  7 - col2 AS col2
2ef70 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2ef80 0d 0a 2d 38 31 30 31 0d 0a 2d 38 31 33 38 0d 0a  ..-8101..-8138..
2ef90 2d 38 31 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -8190....query I
2efa0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2efb0 20 44 49 53 54 49 4e 43 54 20 2d 20 32 20 2a 20   DISTINCT - 2 * 
2efc0 2b 20 2d 20 36 33 20 46 52 4f 4d 20 74 61 62 30  + - 63 FROM tab0
2efd0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2efe0 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
2eff0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a  ULL..----..126..
2f000 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f010 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 63 6f  t..SELECT - ( co
2f020 6c 31 20 29 20 2a 20 2d 20 28 20 2d 20 63 6f 6c  l1 ) * - ( - col
2f030 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  1 ) FROM tab1 AS
2f040 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39   cor0..----..-19
2f050 36 0d 0a 2d 32 32 30 39 0d 0a 2d 32 35 0d 0a 0d  6..-2209..-25...
2f060 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f070 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 2b 20 34  ..SELECT ( + + 4
2f080 33 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  3 ) AS col1 FROM
2f090 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d   tab0..----..43.
2f0a0 0a 34 33 0d 0a 34 33 0d 0a 0d 0a 73 6b 69 70 69  .43..43....skipi
2f0b0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
2f0c0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
2f0d0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
2f0e0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2f0f0 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
2f100 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
2f110 6f 6c 31 20 2b 20 38 36 20 63 6f 6c 31 2c 20 2d  ol1 + 86 col1, -
2f120 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
2f130 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
2f140 54 20 39 39 20 42 45 54 57 45 45 4e 20 4e 55 4c  T 99 BETWEEN NUL
2f150 4c 20 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  L AND col2..----
2f160 0d 0a 35 0d 0a 2d 38 31 0d 0a 36 35 0d 0a 2d 32  ..5..-81..65..-2
2f170 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
2f180 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2f190 20 2b 20 36 39 20 2a 20 2b 20 63 6f 6c 31 20 41   + 69 * + col1 A
2f1a0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2f1b0 0d 0a 2d 2d 2d 2d 0d 0a 33 35 31 39 0d 0a 34 36  ..----..3519..46
2f1c0 32 33 0d 0a 35 33 31 33 0d 0a 0d 0a 71 75 65 72  23..5313....quer
2f1d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2f1e0 45 43 54 20 41 4c 4c 20 2d 20 34 30 20 46 52 4f  ECT ALL - 40 FRO
2f1f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
2f200 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
2f210 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
2f220 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2f230 6f 20 66 30 32 66 31 37 65 39 62 63 31 37 65 35  o f02f17e9bc17e5
2f240 31 34 61 66 30 31 38 63 36 66 32 34 35 65 64 37  14af018c6f245ed7
2f250 61 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  a9....query III 
2f260 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f270 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
2f280 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2a 20 2b  E NOT - col2 * +
2f290 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   - col2 IS NOT N
2f2a0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2f2b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f2c0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  LECT ALL - col1 
2f2d0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2f2e0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  0 WHERE NULL BET
2f2f0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20  WEEN NULL AND - 
2f300 34 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  45..----....only
2f310 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2f320 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2f330 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f340 61 62 65 6c 2d 31 30 30 35 0d 0a 53 45 4c 45 43  abel-1005..SELEC
2f350 54 20 2b 20 2d 20 4d 41 58 28 20 44 49 53 54 49  T + - MAX( DISTI
2f360 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46  NCT - + col2 ) F
2f370 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
2f380 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69  ---..59....skipi
2f390 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2f3a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2f3b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f3c0 31 30 30 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  1005..SELECT + -
2f3d0 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20   MAX ( DISTINCT 
2f3e0 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  - + col2 ) FROM 
2f3f0 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
2f400 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .59....query II 
2f410 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f420 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20 41 53 20  col1, - col0 AS 
2f430 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
2f440 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
2f450 0a 2d 39 37 0d 0a 32 31 0d 0a 2d 38 37 0d 0a 38  .-97..21..-87..8
2f460 31 0d 0a 2d 31 35 0d 0a 0d 0a 71 75 65 72 79 20  1..-15....query 
2f470 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2f480 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 41 53  CT ALL - col1 AS
2f490 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 46 52   col0, + col1 FR
2f4a0 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
2f4b0 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55 4c  RE + col2 IS NUL
2f4c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
2f4d0 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d   IIIIII rowsort.
2f4e0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2f4f0 61 62 31 2c 20 74 61 62 31 20 41 53 20 63 6f 72  ab1, tab1 AS cor
2f500 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20  0 WHERE NULL >= 
2f510 2d 20 39 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  - 98..----....on
2f520 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2f530 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2f540 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f550 20 6c 61 62 65 6c 2d 31 30 30 39 0d 0a 53 45 4c   label-1009..SEL
2f560 45 43 54 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2b  ECT - MIN( ALL +
2f570 20 32 39 20 29 20 41 53 20 63 6f 6c 32 20 46 52   29 ) AS col2 FR
2f580 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2f590 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  29....skipif mys
2f5a0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2f5b0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2f5c0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 39 0d  sort label-1009.
2f5d0 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28 20  .SELECT - MIN ( 
2f5e0 41 4c 4c 20 2b 20 32 39 20 29 20 41 53 20 63 6f  ALL + 29 ) AS co
2f5f0 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
2f600 2d 2d 0d 0a 2d 32 39 0d 0a 0d 0a 6f 6e 6c 79 69  --..-29....onlyi
2f610 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2f620 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2f630 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2f640 62 65 6c 2d 31 30 31 30 0d 0a 53 45 4c 45 43 54  bel-1010..SELECT
2f650 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20   DISTINCT - ( + 
2f660 4d 49 4e 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20  MIN( - + col2 ) 
2f670 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2f680 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d  ab2..----..58...
2f690 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2f6a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2f6b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f6c0 6c 61 62 65 6c 2d 31 30 31 30 0d 0a 53 45 4c 45  label-1010..SELE
2f6d0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
2f6e0 2b 20 4d 49 4e 20 28 20 2d 20 2b 20 63 6f 6c 32  + MIN ( - + col2
2f6f0 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
2f700 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 38  M tab2..----..58
2f710 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2f720 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
2f730 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
2f740 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f750 61 62 65 6c 2d 31 30 31 31 0d 0a 53 45 4c 45 43  abel-1011..SELEC
2f760 54 20 2d 20 63 6f 6c 32 20 44 49 56 20 2b 20 63  T - col2 DIV + c
2f770 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 46  ol2 + + + col0 F
2f780 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2f790 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 38 36 0d 0a  ..----..14..86..
2f7a0 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
2f7b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2f7c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2f7d0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 31 0d  sort label-1011.
2f7e0 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f  .SELECT - col2 /
2f7f0 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f   + col2 + + + co
2f800 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
2f810 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  cor0..----..14..
2f820 38 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20  86..96....query 
2f830 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f840 54 20 41 4c 4c 20 2b 20 37 20 41 53 20 63 6f 6c  T ALL + 7 AS col
2f850 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
2f860 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53 20 4e   WHERE col0 IS N
2f870 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 37  OT NULL..----..7
2f880 0d 0a 37 0d 0a 37 0d 0a 0d 0a 71 75 65 72 79 20  ..7..7....query 
2f890 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f8a0 54 20 44 49 53 54 49 4e 43 54 20 37 37 20 41 53  T DISTINCT 77 AS
2f8b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2f8c0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
2f8d0 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL <> NULL..----
2f8e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2f8f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2f900 49 4e 43 54 20 2d 20 2d 20 37 38 20 46 52 4f 4d  INCT - - 78 FROM
2f910 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
2f920 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
2f930 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d   cor1..----..78.
2f940 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2f950 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
2f960 20 36 37 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f   67 + + col2 FRO
2f970 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
2f980 30 0d 0a 2d 35 37 0d 0a 33 32 0d 0a 0d 0a 6f 6e  0..-57..32....on
2f990 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2f9a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2f9b0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2f9c0 74 20 6c 61 62 65 6c 2d 31 30 31 36 0d 0a 53 45  t label-1016..SE
2f9d0 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
2f9e0 2b 20 2b 20 31 36 20 2a 20 2d 20 41 56 47 20 28  + + 16 * - AVG (
2f9f0 20 41 4c 4c 20 2b 20 2d 20 31 34 20 29 20 41 53   ALL + - 14 ) AS
2fa00 20 63 6f 6c 30 2c 20 33 34 20 2b 20 2d 20 2b 20   col0, 34 + - + 
2fa10 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
2fa20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2fa30 52 45 20 2b 20 36 20 2b 20 2b 20 63 6f 6c 32 20  RE + 6 + + col2 
2fa40 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
2fa50 55 4c 4c 0d 0a 33 34 0d 0a 0d 0a 73 6b 69 70 69  ULL..34....skipi
2fa60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2fa70 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2fa80 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2fa90 2d 31 30 31 36 0d 0a 53 45 4c 45 43 54 20 43 4f  -1016..SELECT CO
2faa0 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 31 36  UNT ( * ) + + 16
2fab0 20 2a 20 2d 20 41 56 47 20 28 20 41 4c 4c 20 2b   * - AVG ( ALL +
2fac0 20 2d 20 31 34 20 29 20 41 53 20 63 6f 6c 30 2c   - 14 ) AS col0,
2fad0 20 33 34 20 2b 20 2d 20 2b 20 43 4f 55 4e 54 20   34 + - + COUNT 
2fae0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
2faf0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
2fb00 36 20 2b 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  6 + + col2 IS NU
2fb10 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
2fb20 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  34....onlyif mys
2fb30 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2fb40 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2fb50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2fb60 30 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  017..SELECT - - 
2fb70 43 4f 55 4e 54 28 20 33 38 20 29 20 2a 20 2d 20  COUNT( 38 ) * - 
2fb80 35 30 20 2a 20 2d 20 36 37 20 41 53 20 63 6f 6c  50 * - 67 AS col
2fb90 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
2fba0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 35 30  or0..----..10050
2fbb0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2fbc0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2fbd0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2fbe0 72 74 20 6c 61 62 65 6c 2d 31 30 31 37 0d 0a 53  rt label-1017..S
2fbf0 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20  ELECT - - COUNT 
2fc00 28 20 33 38 20 29 20 2a 20 2d 20 35 30 20 2a 20  ( 38 ) * - 50 * 
2fc10 2d 20 36 37 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 67 AS col0 FRO
2fc20 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2fc30 2d 2d 2d 2d 0d 0a 31 30 30 35 30 0d 0a 0d 0a 71  ----..10050....q
2fc40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2fc50 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2fc60 2b 20 38 33 20 2d 20 63 6f 6c 32 20 41 53 20 63  + 83 - col2 AS c
2fc70 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
2fc80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   cor0..----..-13
2fc90 0d 0a 31 35 0d 0a 32 34 0d 0a 0d 0a 6f 6e 6c 79  ..15..24....only
2fca0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
2fcb0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2fcc0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2fcd0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2fce0 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d  9..SELECT col1 -
2fcf0 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f   + col1 + - - co
2fd00 6c 32 20 44 49 56 20 2b 20 2b 20 35 32 20 2b 20  l2 DIV + + 52 + 
2fd10 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
2fd20 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2fd30 35 32 0d 0a 38 36 0d 0a 39 32 0d 0a 0d 0a 73 6b  52..86..92....sk
2fd40 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2fd50 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2fd60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2fd70 65 6c 2d 31 30 31 39 0d 0a 53 45 4c 45 43 54 20  el-1019..SELECT 
2fd80 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 31 20 2b 20  col1 - + col1 + 
2fd90 2d 20 2d 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 35  - - col2 / + + 5
2fda0 32 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  2 + + col0 AS co
2fdb0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
2fdc0 2d 2d 0d 0a 35 32 0d 0a 38 36 0d 0a 39 32 0d 0a  --..52..86..92..
2fdd0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2fde0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2fdf0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2fe00 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 30 0d  sort label-1020.
2fe10 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 33 20 2d  .SELECT ALL 33 -
2fe20 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2fe30 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2fe40 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a 73 6b 69 70 69  ---..30....skipi
2fe50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2fe60 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2fe70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2fe80 31 30 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1020..SELECT ALL
2fe90 20 33 33 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20   33 - COUNT ( * 
2fea0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2feb0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d  ab2..----..30...
2fec0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2fed0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2fee0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2fef0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2ff00 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2ff10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ff20 54 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2b 20  T col2 * col2 + 
2ff30 2d 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d  - col2 col0 FROM
2ff40 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 36   tab0..----..216
2ff50 32 0d 0a 39 30 0d 0a 39 37 30 32 0d 0a 0d 0a 73  2..90..9702....s
2ff60 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2ff70 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2ff80 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2ff90 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2ffa0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2ffb0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2ffc0 44 49 53 54 49 4e 43 54 20 31 37 20 2d 20 2d 20  DISTINCT 17 - - 
2ffd0 2b 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d  + col1 col1 FROM
2ffe0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d   tab1..----..22.
2fff0 0a 33 31 0d 0a 36 34 0d 0a 0d 0a 71 75 65 72 79  .31..64....query
30000 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
30010 43 54 20 32 34 20 2b 20 39 38 20 46 52 4f 4d 20  CT 24 + 98 FROM 
30020 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32 0d  tab0..----..122.
30030 0a 31 32 32 0d 0a 31 32 32 0d 0a 0d 0a 71 75 65  .122..122....que
30040 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
30050 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2b 20 2d 20  LECT col2 * + - 
30060 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 46 52  col0 + + col0 FR
30070 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
30080 31 30 31 32 0d 0a 2d 32 34 39 36 0d 0a 2d 34 32  1012..-2496..-42
30090 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
300a0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
300b0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
300c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
300d0 30 32 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  025..SELECT DIST
300e0 49 4e 43 54 20 2d 20 2b 20 4d 49 4e 28 20 33 32  INCT - + MIN( 32
300f0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
30100 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d  cor0..----..-32.
30110 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
30120 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
30130 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30140 74 20 6c 61 62 65 6c 2d 31 30 32 35 0d 0a 53 45  t label-1025..SE
30150 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
30160 2b 20 4d 49 4e 20 28 20 33 32 20 29 20 46 52 4f  + MIN ( 32 ) FRO
30170 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
30180 2d 2d 2d 2d 0d 0a 2d 33 32 0d 0a 0d 0a 71 75 65  ----..-32....que
30190 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
301a0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
301b0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
301c0 54 20 2d 20 63 6f 6c 31 20 3c 3e 20 63 6f 6c 30  T - col1 <> col0
301d0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
301e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
301f0 54 20 2b 20 37 20 41 53 20 63 6f 6c 30 20 46 52  T + 7 AS col0 FR
30200 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
30210 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
30220 41 53 20 63 6f 72 31 20 57 48 45 52 45 20 4e 55  AS cor1 WHERE NU
30230 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  LL BETWEEN NULL 
30240 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  AND ( NULL )..--
30250 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
30260 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
30270 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
30280 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30290 30 32 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  028..SELECT ALL 
302a0 2b 20 39 37 20 2a 20 43 4f 55 4e 54 28 20 2a 20  + 97 * COUNT( * 
302b0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
302c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 31 0d 0a  ab1..----..291..
302d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
302e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
302f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30300 20 6c 61 62 65 6c 2d 31 30 32 38 0d 0a 53 45 4c   label-1028..SEL
30310 45 43 54 20 41 4c 4c 20 2b 20 39 37 20 2a 20 43  ECT ALL + 97 * C
30320 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
30330 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
30340 2d 2d 0d 0a 32 39 31 0d 0a 0d 0a 6f 6e 6c 79 69  --..291....onlyi
30350 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
30360 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
30370 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
30380 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
30390 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
303a0 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  29..SELECT - COU
303b0 4e 54 28 20 2a 20 29 20 44 49 56 20 2d 20 33 37  NT( * ) DIV - 37
303c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
303d0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  b1..----..0....s
303e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
303f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30400 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30410 62 65 6c 2d 31 30 32 39 0d 0a 53 45 4c 45 43 54  bel-1029..SELECT
30420 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f   - COUNT ( * ) /
30430 20 2d 20 33 37 20 41 53 20 63 6f 6c 32 20 46 52   - 37 AS col2 FR
30440 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab1..----..0
30450 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
30460 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
30470 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
30480 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33  owsort label-103
30490 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  0..SELECT ALL + 
304a0 4d 49 4e 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20  MIN( - + col1 ) 
304b0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
304c0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 0d 0a  1..----..-47....
304d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
304e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
304f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30500 61 62 65 6c 2d 31 30 33 30 0d 0a 53 45 4c 45 43  abel-1030..SELEC
30510 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2d 20  T ALL + MIN ( - 
30520 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30  + col1 ) AS col0
30530 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
30540 0d 0a 2d 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-47....onlyif 
30550 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
30560 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
30570 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30580 6c 2d 31 30 33 31 0d 0a 53 45 4c 45 43 54 20 44  l-1031..SELECT D
30590 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28  ISTINCT - COUNT(
305a0 20 2a 20 29 20 2a 20 2b 20 2d 20 37 32 20 41 53   * ) * + - 72 AS
305b0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
305c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
305d0 31 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  16....skipif mys
305e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
305f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
30600 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 31 0d  sort label-1031.
30610 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
30620 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
30630 20 2b 20 2d 20 37 32 20 41 53 20 63 6f 6c 32 20   + - 72 AS col2 
30640 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
30650 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 36 0d 0a 0d 0a  0..----..216....
30660 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
30670 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
30680 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
30690 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
306a0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
306b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
306c0 20 44 49 53 54 49 4e 43 54 20 28 20 63 6f 6c 30   DISTINCT ( col0
306d0 20 29 20 2a 20 28 20 28 20 2d 20 2b 20 63 6f 6c   ) * ( ( - + col
306e0 32 20 29 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  2 ) ) col2 FROM 
306f0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
30700 2d 2d 0d 0a 2d 31 30 35 38 0d 0a 2d 32 35 36 30  --..-1058..-2560
30710 0d 0a 2d 34 33 35 30 0d 0a 0d 0a 71 75 65 72 79  ..-4350....query
30720 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
30730 43 54 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  CT + col0 AS col
30740 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
30750 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
30760 63 6f 6c 31 20 2a 20 63 6f 6c 30 20 3e 3d 20 63  col1 * col0 >= c
30770 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36  ol1..----..46..6
30780 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  4..75....query I
30790 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
307a0 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a 20 2d 20   ALL - col0 * - 
307b0 35 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  52 AS col2 FROM 
307c0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
307d0 2d 2d 0d 0a 32 33 39 32 0d 0a 33 33 32 38 0d 0a  --..2392..3328..
307e0 33 39 30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  3900....skipif p
307f0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
30800 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
30810 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
30820 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
30830 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30840 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
30850 20 31 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f   1 - col2 + + co
30860 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l0 col2 FROM tab
30870 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
30880 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
30890 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 33 0d  ..----..-3..-33.
308a0 0a 37 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .76....query II 
308b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
308c0 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20  DISTINCT col1 * 
308d0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 2d 20  col2 AS col1, - 
308e0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
308f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
30900 2d 2d 2d 2d 0d 0a 31 33 34 34 0d 0a 2d 31 34 0d  ----..1344..-14.
30910 0a 32 39 35 0d 0a 2d 35 0d 0a 33 31 39 36 0d 0a  .295..-5..3196..
30920 2d 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -47....query I r
30930 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
30940 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20   - - col2 ) * + 
30950 2b 20 28 20 2d 20 2d 20 39 20 29 20 46 52 4f 4d  + ( - - 9 ) FROM
30960 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 32 33   tab0..----..423
30970 0d 0a 38 39 31 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c  ..891..90....onl
30980 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
30990 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
309a0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
309b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
309c0 30 33 38 0d 0a 53 45 4c 45 43 54 20 39 37 20 2b  038..SELECT 97 +
309d0 20 63 6f 6c 31 20 44 49 56 20 2d 20 63 6f 6c 30   col1 DIV - col0
309e0 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  , col0 FROM tab2
309f0 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 34 36 0d 0a  ..----..96..46..
30a00 39 36 0d 0a 36 34 0d 0a 39 37 0d 0a 37 35 0d 0a  96..64..97..75..
30a10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
30a20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
30a30 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
30a40 74 20 6c 61 62 65 6c 2d 31 30 33 38 0d 0a 53 45  t label-1038..SE
30a50 4c 45 43 54 20 39 37 20 2b 20 63 6f 6c 31 20 2f  LECT 97 + col1 /
30a60 20 2d 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 46 52   - col0, col0 FR
30a70 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab2..----..9
30a80 36 0d 0a 34 36 0d 0a 39 36 0d 0a 36 34 0d 0a 39  6..46..96..64..9
30a90 37 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  7..75....query I
30aa0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
30ab0 20 63 6f 6c 31 20 2a 20 2d 20 28 20 36 32 20 29   col1 * - ( 62 )
30ac0 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 2d 20 2b 20   + - + col2 - + 
30ad0 39 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  90 AS col0 FROM 
30ae0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35  tab1..----..-105
30af0 34 0d 0a 2d 33 30 37 32 0d 0a 2d 34 35 39 0d 0a  4..-3072..-459..
30b00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30b10 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
30b20 20 2b 20 2d 20 31 34 20 46 52 4f 4d 20 74 61 62   + - 14 FROM tab
30b30 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 2d 38  2..----..-65..-8
30b40 31 0d 0a 2d 39 31 0d 0a 0d 0a 71 75 65 72 79 20  1..-91....query 
30b50 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
30b60 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
30b70 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 3c 20 2d  WHERE + col0 < -
30b80 20 37 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   74..----....onl
30b90 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
30ba0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
30bb0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
30bc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30bd0 31 30 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1042..SELECT ALL
30be0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
30bf0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
30c00 55 4c 4c 20 3d 20 2b 20 35 36 20 2a 20 2d 20 43  ULL = + 56 * - C
30c10 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
30c20 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  NED )..----....s
30c30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30c40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30c50 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
30c60 6c 61 62 65 6c 2d 31 30 34 32 0d 0a 53 45 4c 45  label-1042..SELE
30c70 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
30c80 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
30c90 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 2b 20 35 36   NOT NULL = + 56
30ca0 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   * - CAST ( NULL
30cb0 20 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d   AS INTEGER )..-
30cc0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
30cd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
30ce0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
30cf0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
30d00 3c 3d 20 37 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  <= 72..----....q
30d10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
30d20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
30d30 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 2a 20  - col1 + col0 * 
30d40 2d 20 36 35 20 46 52 4f 4d 20 74 61 62 31 20 41  - 65 FROM tab1 A
30d50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
30d60 33 32 39 0d 0a 2d 35 35 33 30 0d 0a 2d 35 39 36  329..-5530..-596
30d70 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
30d80 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
30d90 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
30da0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30db0 34 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  45..SELECT DISTI
30dc0 4e 43 54 20 32 39 20 2b 20 43 4f 55 4e 54 28 20  NCT 29 + COUNT( 
30dd0 2a 20 29 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 28  * ) + + - COUNT(
30de0 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
30df0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39  M tab1..----..29
30e00 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
30e10 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
30e20 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
30e30 72 74 20 6c 61 62 65 6c 2d 31 30 34 35 0d 0a 53  rt label-1045..S
30e40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32  ELECT DISTINCT 2
30e50 39 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  9 + COUNT ( * ) 
30e60 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  + + - COUNT ( * 
30e70 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
30e80 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 0d  ab1..----..29...
30e90 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f  .query IIIIII ro
30ea0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
30eb0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L * FROM tab1 AS
30ec0 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
30ed0 20 74 61 62 32 20 41 53 20 63 6f 72 31 20 57 48   tab2 AS cor1 WH
30ee0 45 52 45 20 37 36 20 49 53 20 4e 4f 54 20 4e 55  ERE 76 IS NOT NU
30ef0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61 6c  LL..----..54 val
30f00 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
30f10 34 31 39 64 63 32 61 36 35 33 62 63 63 64 38 34  419dc2a653bccd84
30f20 66 37 61 32 64 61 31 30 33 33 31 35 31 38 37 0d  f7a2da103315187.
30f30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
30f40 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
30f50 20 36 38 20 2d 20 2d 20 31 39 20 41 53 20 63 6f   68 - - 19 AS co
30f60 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
30f70 2d 2d 0d 0a 38 37 0d 0a 38 37 0d 0a 38 37 0d 0a  --..87..87..87..
30f80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30f90 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
30fa0 2b 20 35 38 20 2b 20 2b 20 2b 20 63 6f 6c 32 20  + 58 + + + col2 
30fb0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
30fc0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
30fd0 31 0d 0a 2d 34 38 0d 0a 34 31 0d 0a 0d 0a 6f 6e  1..-48..41....on
30fe0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
30ff0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
31000 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31010 20 6c 61 62 65 6c 2d 31 30 34 39 0d 0a 53 45 4c   label-1049..SEL
31020 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 41  ECT ALL COUNT( A
31030 4c 4c 20 2b 20 38 39 20 29 20 2d 20 36 38 20 46  LL + 89 ) - 68 F
31040 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
31050 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 0d 0a 73  ..----..-65....s
31060 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
31070 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
31080 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31090 62 65 6c 2d 31 30 34 39 0d 0a 53 45 4c 45 43 54  bel-1049..SELECT
310a0 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 41 4c 4c   ALL COUNT ( ALL
310b0 20 2b 20 38 39 20 29 20 2d 20 36 38 20 46 52 4f   + 89 ) - 68 FRO
310c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
310d0 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 0d 0a 71 75 65  ----..-65....que
310e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
310f0 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2d 20 2d 20  LECT col0 + - - 
31100 35 33 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 41 53  53 + + + col1 AS
31110 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
31120 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
31130 31 38 0d 0a 31 34 33 0d 0a 31 39 31 0d 0a 0d 0a  18..143..191....
31140 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
31150 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
31160 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
31170 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31180 2d 31 30 35 31 0d 0a 53 45 4c 45 43 54 20 2b 20  -1051..SELECT + 
31190 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
311a0 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
311b0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
311c0 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 28 20   WHERE NULL < ( 
311d0 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
311e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
311f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31200 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31210 61 62 65 6c 2d 31 30 35 31 0d 0a 53 45 4c 45 43  abel-1051..SELEC
31220 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T + CAST ( NULL 
31230 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
31240 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
31250 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
31260 4c 20 3c 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d  L < ( NULL )..--
31270 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  --....skipif pos
31280 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
31290 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
312a0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
312b0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
312c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
312d0 53 45 4c 45 43 54 20 2d 20 31 35 20 2b 20 2b 20  SELECT - 15 + + 
312e0 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col0 col1 FROM t
312f0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
31300 2d 0d 0a 30 0d 0a 37 32 0d 0a 38 32 0d 0a 0d 0a  -..0..72..82....
31310 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
31320 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
31330 6c 31 20 2a 20 2b 20 2b 20 35 32 20 41 53 20 63  l1 * + + 52 AS c
31340 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
31350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
31360 39 32 0d 0a 2d 34 32 31 32 0d 0a 2d 35 32 0d 0a  92..-4212..-52..
31370 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
31380 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
31390 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
313a0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
313b0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
313c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
313d0 43 54 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20  CT + ( + col1 ) 
313e0 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  + - col2 + - col
313f0 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  2 col2 FROM tab1
31400 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
31410 33 0d 0a 2d 31 37 38 0d 0a 2d 38 39 0d 0a 0d 0a  3..-178..-89....
31420 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
31430 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
31440 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
31450 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
31460 6c 2d 31 30 35 35 0d 0a 53 45 4c 45 43 54 20 63  l-1055..SELECT c
31470 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b  ol0 + + col2 + +
31480 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 30 20 44 49   col1 + + - 0 DI
31490 56 20 2d 20 2b 20 35 20 2a 20 2d 20 63 6f 6c 31  V - + 5 * - col1
314a0 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  , + col0 FROM ta
314b0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
314c0 0d 0a 31 34 39 0d 0a 38 35 0d 0a 31 36 31 0d 0a  ..149..85..161..
314d0 35 31 0d 0a 32 30 36 0d 0a 39 31 0d 0a 0d 0a 73  51..206..91....s
314e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
314f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
31500 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
31510 61 62 65 6c 2d 31 30 35 35 0d 0a 53 45 4c 45 43  abel-1055..SELEC
31520 54 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20  T col0 + + col2 
31530 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 30  + + col1 + + - 0
31540 20 2f 20 2d 20 2b 20 35 20 2a 20 2d 20 63 6f 6c   / - + 5 * - col
31550 31 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1, + col0 FROM t
31560 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
31570 2d 0d 0a 31 34 39 0d 0a 38 35 0d 0a 31 36 31 0d  -..149..85..161.
31580 0a 35 31 0d 0a 32 30 36 0d 0a 39 31 0d 0a 0d 0a  .51..206..91....
31590 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
315a0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
315b0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
315c0 72 74 20 6c 61 62 65 6c 2d 31 30 35 36 0d 0a 53  rt label-1056..S
315d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
315e0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 43 4f   COUNT( * ) + CO
315f0 55 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52  UNT( * ) col1 FR
31600 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
31610 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..6....skipif 
31620 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
31630 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
31640 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
31650 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
31660 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
31670 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
31680 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31690 20 6c 61 62 65 6c 2d 31 30 35 36 0d 0a 53 45 4c   label-1056..SEL
316a0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
316b0 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43 4f 55  OUNT ( * ) + COU
316c0 4e 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52  NT ( * ) col1 FR
316d0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
316e0 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..6....onlyif 
316f0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
31700 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
31710 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31720 6c 2d 31 30 35 37 0d 0a 53 45 4c 45 43 54 20 2b  l-1057..SELECT +
31730 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
31740 2d 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  - ( COUNT( * ) )
31750 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
31760 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  r0..----..-9....
31770 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
31780 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31790 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
317a0 61 62 65 6c 2d 31 30 35 37 0d 0a 53 45 4c 45 43  abel-1057..SELEC
317b0 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T + + COUNT ( * 
317c0 29 20 2a 20 2d 20 28 20 43 4f 55 4e 54 20 28 20  ) * - ( COUNT ( 
317d0 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20  * ) ) FROM tab0 
317e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
317f0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
31800 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
31810 31 20 2a 20 2b 20 2b 20 37 34 20 41 53 20 63 6f  1 * + + 74 AS co
31820 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
31830 2d 2d 0d 0a 31 30 33 36 0d 0a 33 34 37 38 0d 0a  --..1036..3478..
31840 33 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  370....query II 
31850 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
31860 41 4c 4c 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20  ALL col1 + col2 
31870 41 53 20 63 6f 6c 31 2c 20 28 20 2d 20 63 6f 6c  AS col1, ( - col
31880 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
31890 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30   tab1..----..110
318a0 0d 0a 2d 31 34 0d 0a 31 31 35 0d 0a 2d 34 37 0d  ..-14..115..-47.
318b0 0a 36 34 0d 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69  .64..-5....onlyi
318c0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
318d0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
318e0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
318f0 61 62 65 6c 2d 31 30 36 30 0d 0a 53 45 4c 45 43  abel-1060..SELEC
31900 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 41 4c 4c  T ALL COUNT( ALL
31910 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 2c   col0 ) AS col1,
31920 20 2b 20 34 39 20 41 53 20 63 6f 6c 30 20 46 52   + 49 AS col0 FR
31930 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
31940 0d 0a 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..49....skipif m
31950 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
31960 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
31970 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
31980 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  60..SELECT ALL C
31990 4f 55 4e 54 20 28 20 41 4c 4c 20 63 6f 6c 30 20  OUNT ( ALL col0 
319a0 29 20 41 53 20 63 6f 6c 31 2c 20 2b 20 34 39 20  ) AS col1, + 49 
319b0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
319c0 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 34 39 0d 0a  1..----..3..49..
319d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
319e0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
319f0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
31a00 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c 30 20 49 53   NOT - - col0 IS
31a10 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
31a20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
31a30 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
31a40 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
31a50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 32  wsort label-1062
31a60 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 28  ..SELECT + ( - (
31a70 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 29 20   COUNT( * ) ) ) 
31a80 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
31a90 32 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  2, tab1 AS cor0.
31aa0 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69  .----..-9....ski
31ab0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
31ac0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
31ad0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31ae0 6c 2d 31 30 36 32 0d 0a 53 45 4c 45 43 54 20 2b  l-1062..SELECT +
31af0 20 28 20 2d 20 28 20 43 4f 55 4e 54 20 28 20 2a   ( - ( COUNT ( *
31b00 20 29 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46   ) ) ) AS col2 F
31b10 52 4f 4d 20 74 61 62 32 2c 20 74 61 62 31 20 41  ROM tab2, tab1 A
31b20 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
31b30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
31b40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
31b50 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20  - col1 + - col1 
31b60 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
31b70 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
31b80 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 30 20   BETWEEN - col0 
31b90 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  AND col2..----..
31ba0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31bb0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 34 37  t..SELECT - + 47
31bc0 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d 20   * - - col2 * - 
31bd0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
31be0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37  S cor0..----..17
31bf0 38 39 32 39 0d 0a 34 36 35 33 0d 0a 39 38 37 30  8929..4653..9870
31c00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31c10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
31c20 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
31c30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
31c40 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
31c50 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
31c60 32 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  20 AS col1 FROM 
31c70 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
31c80 2d 2d 0d 0a 36 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..60....skipif
31c90 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
31ca0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
31cb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31cc0 30 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  065..SELECT DIST
31cd0 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
31ce0 20 2a 20 32 30 20 41 53 20 63 6f 6c 31 20 46 52   * 20 AS col1 FR
31cf0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
31d00 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a 0d 0a 6f 6e 6c  .----..60....onl
31d10 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
31d20 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
31d30 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
31d40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31d50 31 30 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1066..SELECT ALL
31d60 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   * FROM tab1 cor
31d70 30 20 57 48 45 52 45 20 2d 20 32 32 20 2b 20 2d  0 WHERE - 22 + -
31d80 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2d   col0 * col0 + -
31d90 20 43 41 53 54 28 20 2d 20 37 31 20 41 53 20 53   CAST( - 71 AS S
31da0 49 47 4e 45 44 20 29 20 4e 4f 54 20 42 45 54 57  IGNED ) NOT BETW
31db0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c  EEN NULL AND col
31dc0 31 20 2a 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  1 * + col0..----
31dd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
31de0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
31df0 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
31e00 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 36 0d  sort label-1066.
31e10 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
31e20 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
31e30 52 45 20 2d 20 32 32 20 2b 20 2d 20 63 6f 6c 30  RE - 22 + - col0
31e40 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 43 41 53 54   * col0 + - CAST
31e50 20 28 20 2d 20 37 31 20 41 53 20 49 4e 54 45 47   ( - 71 AS INTEG
31e60 45 52 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e  ER ) NOT BETWEEN
31e70 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 31 20 2a   NULL AND col1 *
31e80 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
31e90 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
31ea0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
31eb0 43 54 20 32 30 20 41 53 20 63 6f 6c 31 2c 20 63  CT 20 AS col1, c
31ec0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
31ed0 2d 2d 2d 0d 0a 32 30 0d 0a 31 30 0d 0a 32 30 0d  ---..20..10..20.
31ee0 0a 34 37 0d 0a 32 30 0d 0a 39 39 0d 0a 0d 0a 6f  .47..20..99....o
31ef0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
31f00 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
31f10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31f20 74 20 6c 61 62 65 6c 2d 31 30 36 38 0d 0a 53 45  t label-1068..SE
31f30 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
31f40 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
31f50 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
31f60 20 74 61 62 31 20 41 53 20 63 6f 72 31 20 57 48   tab1 AS cor1 WH
31f70 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 4e  ERE NOT NULL = N
31f80 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
31f90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
31fa0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31fb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31fc0 61 62 65 6c 2d 31 30 36 38 0d 0a 53 45 4c 45 43  abel-1068..SELEC
31fd0 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20  T ALL COUNT ( * 
31fe0 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
31ff0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
32000 61 62 31 20 41 53 20 63 6f 72 31 20 57 48 45 52  ab1 AS cor1 WHER
32010 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 4e 55 4c  E NOT NULL = NUL
32020 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75  L..----..0....qu
32030 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
32040 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 63 6f 6c  ELECT col1 * col
32050 30 20 2a 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20  0 * col2 * col2 
32060 2b 20 2d 20 36 33 20 41 53 20 63 6f 6c 32 20 46  + - 63 AS col2 F
32070 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
32080 31 32 34 30 39 37 31 0d 0a 31 36 39 30 34 30 33  1240971..1690403
32090 37 0d 0a 37 38 38 34 37 33 37 0d 0a 0d 0a 6f 6e  7..7884737....on
320a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
320b0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
320c0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
320d0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
320e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
320f0 2d 31 30 37 30 0d 0a 53 45 4c 45 43 54 20 2d 20  -1070..SELECT - 
32100 28 20 2b 20 2d 20 43 41 53 54 28 20 2b 20 2b 20  ( + - CAST( + + 
32110 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49  COUNT( * ) AS SI
32120 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61  GNED ) ) FROM ta
32130 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
32140 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
32150 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32160 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
32170 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 30  wsort label-1070
32180 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 2d  ..SELECT - ( + -
32190 20 43 41 53 54 20 28 20 2b 20 2b 20 43 4f 55 4e   CAST ( + + COUN
321a0 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47  T ( * ) AS INTEG
321b0 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32  ER ) ) FROM tab2
321c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
321d0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  3....query II ro
321e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
321f0 63 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2d 20  col1 AS col0, - 
32200 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
32210 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d  or0..----..-1..-
32220 31 0d 0a 2d 32 31 0d 0a 2d 32 31 0d 0a 2d 38 31  1..-21..-21..-81
32230 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-81....query I
32240 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
32250 20 44 49 53 54 49 4e 43 54 20 2b 20 34 32 20 2a   DISTINCT + 42 *
32260 20 38 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53   82 FROM tab1 AS
32270 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 34   cor0..----..344
32280 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
32290 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
322a0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
322b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
322c0 6c 61 62 65 6c 2d 31 30 37 33 0d 0a 53 45 4c 45  label-1073..SELE
322d0 43 54 20 2b 20 36 20 44 49 56 20 2d 20 2b 20 36  CT + 6 DIV - + 6
322e0 31 20 2b 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52  1 + col0 col1 FR
322f0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
32300 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39  .----..51..85..9
32310 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
32320 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32330 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
32340 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
32350 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
32360 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
32370 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
32380 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32390 65 6c 2d 31 30 37 33 0d 0a 53 45 4c 45 43 54 20  el-1073..SELECT 
323a0 2b 20 36 20 2f 20 2d 20 2b 20 36 31 20 2b 20 63  + 6 / - + 61 + c
323b0 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol0 col1 FROM ta
323c0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
323d0 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a  ..51..85..91....
323e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
323f0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
32400 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
32410 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32420 2d 31 30 37 34 0d 0a 53 45 4c 45 43 54 20 44 49  -1074..SELECT DI
32430 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e  STINCT + CAST( N
32440 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
32450 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  * + col1 AS col0
32460 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
32470 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
32480 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32490 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
324a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
324b0 20 6c 61 62 65 6c 2d 31 30 37 34 0d 0a 53 45 4c   label-1074..SEL
324c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
324d0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
324e0 54 45 47 45 52 20 29 20 2a 20 2b 20 63 6f 6c 31  TEGER ) * + col1
324f0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
32500 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
32510 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
32520 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
32530 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
32540 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
32550 55 4c 4c 20 42 45 54 57 45 45 4e 20 2d 20 63 6f  ULL BETWEEN - co
32560 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2d 20 63 6f  l0 * + col1 - co
32570 6c 31 20 41 4e 44 20 2b 20 2b 20 31 36 0d 0a 2d  l1 AND + + 16..-
32580 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
32590 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
325a0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
325b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
325c0 74 20 6c 61 62 65 6c 2d 31 30 37 36 0d 0a 53 45  t label-1076..SE
325d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
325e0 2d 20 28 20 63 6f 6c 32 20 29 20 2b 20 43 41 53  - ( col2 ) + CAS
325f0 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47  T( - col0 AS SIG
32600 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20  NED ) FROM tab2 
32610 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 49  WHERE NOT col1 I
32620 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S NULL..----..-1
32630 37 0d 0a 2d 32 33 0d 0a 2d 32 34 0d 0a 0d 0a 73  7..-23..-24....s
32640 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
32650 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
32660 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32670 62 65 6c 2d 31 30 37 36 0d 0a 53 45 4c 45 43 54  bel-1076..SELECT
32680 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 28 20   DISTINCT - - ( 
32690 63 6f 6c 32 20 29 20 2b 20 43 41 53 54 20 28 20  col2 ) + CAST ( 
326a0 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  - col0 AS INTEGE
326b0 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  R ) FROM tab2 WH
326c0 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 49 53 20  ERE NOT col1 IS 
326d0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d  NULL..----..-17.
326e0 0a 2d 32 33 0d 0a 2d 32 34 0d 0a 0d 0a 6f 6e 6c  .-23..-24....onl
326f0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
32700 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
32710 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
32720 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32730 31 30 37 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46  1077..SELECT * F
32740 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
32750 20 63 6f 6c 30 20 2d 20 2b 20 43 41 53 54 28 20   col0 - + CAST( 
32760 2b 20 31 31 20 41 53 20 53 49 47 4e 45 44 20 29  + 11 AS SIGNED )
32770 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
32780 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
32790 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
327a0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
327b0 72 74 20 6c 61 62 65 6c 2d 31 30 37 37 0d 0a 53  rt label-1077..S
327c0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
327d0 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2d  0 WHERE - col0 -
327e0 20 2b 20 43 41 53 54 20 28 20 2b 20 31 31 20 41   + CAST ( + 11 A
327f0 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e  S INTEGER ) IS N
32800 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
32810 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
32820 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
32830 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
32840 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
32850 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32860 31 30 37 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1078..SELECT - C
32870 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
32880 4e 45 44 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28  NED ) * + COUNT(
32890 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   * ) FROM tab0..
328a0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
328b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
328c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
328d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
328e0 65 6c 2d 31 30 37 38 0d 0a 53 45 4c 45 43 54 20  el-1078..SELECT 
328f0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
32900 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 43   INTEGER ) * + C
32910 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
32920 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
32930 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
32940 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
32950 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
32960 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32970 61 62 65 6c 2d 31 30 37 39 0d 0a 53 45 4c 45 43  abel-1079..SELEC
32980 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2b 20 39  T ALL col1 * + 9
32990 33 20 2a 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c  3 * col0 DIV col
329a0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
329b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 34 33 0d  or0..----..4743.
329c0 0a 36 32 33 31 0d 0a 37 31 36 31 0d 0a 0d 0a 73  .6231..7161....s
329d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
329e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
329f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32a00 62 65 6c 2d 31 30 37 39 0d 0a 53 45 4c 45 43 54  bel-1079..SELECT
32a10 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2b 20 39 33   ALL col1 * + 93
32a20 20 2a 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 20 46   * col0 / col0 F
32a30 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
32a40 0d 0a 2d 2d 2d 2d 0d 0a 34 37 34 33 0d 0a 36 32  ..----..4743..62
32a50 33 31 0d 0a 37 31 36 31 0d 0a 0d 0a 6f 6e 6c 79  31..7161....only
32a60 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
32a70 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
32a80 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
32a90 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
32aa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32ab0 30 38 30 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55  080..SELECT - SU
32ac0 4d 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2a 20  M( + + col2 ) * 
32ad0 2b 20 32 39 20 46 52 4f 4d 20 74 61 62 30 20 57  + 29 FROM tab0 W
32ae0 48 45 52 45 20 2d 20 2b 20 63 6f 6c 32 20 3e 3d  HERE - + col2 >=
32af0 20 2b 20 43 41 53 54 28 20 36 31 20 41 53 20 53   + CAST( 61 AS S
32b00 49 47 4e 45 44 20 29 20 2f 20 2d 20 34 35 0d 0a  IGNED ) / - 45..
32b10 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
32b20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
32b30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
32b40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32b50 65 6c 2d 31 30 38 30 0d 0a 53 45 4c 45 43 54 20  el-1080..SELECT 
32b60 2d 20 53 55 4d 20 28 20 2b 20 2b 20 63 6f 6c 32  - SUM ( + + col2
32b70 20 29 20 2a 20 2b 20 32 39 20 46 52 4f 4d 20 74   ) * + 29 FROM t
32b80 61 62 30 20 57 48 45 52 45 20 2d 20 2b 20 63 6f  ab0 WHERE - + co
32b90 6c 32 20 3e 3d 20 2b 20 43 41 53 54 20 28 20 36  l2 >= + CAST ( 6
32ba0 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  1 AS INTEGER ) /
32bb0 20 2d 20 34 35 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   - 45..----..NUL
32bc0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
32bd0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
32be0 54 49 4e 43 54 20 2b 20 2d 20 32 31 20 46 52 4f  TINCT + - 21 FRO
32bf0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
32c00 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
32c10 0a 2d 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-21....skipif p
32c20 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
32c30 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
32c40 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
32c50 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
32c60 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
32c70 74 0d 0a 53 45 4c 45 43 54 20 2b 20 30 20 63 6f  t..SELECT + 0 co
32c80 6c 32 2c 20 34 35 20 46 52 4f 4d 20 74 61 62 32  l2, 45 FROM tab2
32c90 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 35 0d 0a 30  ..----..0..45..0
32ca0 0d 0a 34 35 0d 0a 30 0d 0a 34 35 0d 0a 0d 0a 6f  ..45..0..45....o
32cb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
32cc0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
32cd0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
32ce0 72 74 20 6c 61 62 65 6c 2d 31 30 38 33 0d 0a 53  rt label-1083..S
32cf0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39  ELECT DISTINCT 9
32d00 31 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2b 20 37  1 - - COUNT( + 7
32d10 30 20 29 20 41 53 20 63 6f 6c 31 2c 20 39 38 20  0 ) AS col1, 98 
32d20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
32d30 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
32d40 0a 39 34 0d 0a 39 38 0d 0a 0d 0a 73 6b 69 70 69  .94..98....skipi
32d50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
32d60 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
32d70 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
32d80 2d 31 30 38 33 0d 0a 53 45 4c 45 43 54 20 44 49  -1083..SELECT DI
32d90 53 54 49 4e 43 54 20 39 31 20 2d 20 2d 20 43 4f  STINCT 91 - - CO
32da0 55 4e 54 20 28 20 2b 20 37 30 20 29 20 41 53 20  UNT ( + 70 ) AS 
32db0 63 6f 6c 31 2c 20 39 38 20 41 53 20 63 6f 6c 31  col1, 98 AS col1
32dc0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
32dd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 39 38  r0..----..94..98
32de0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
32df0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
32e00 38 33 20 2a 20 2b 20 36 35 20 2d 20 2d 20 2d 20  83 * + 65 - - - 
32e10 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 46 52  col1 * + col0 FR
32e20 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
32e30 0a 2d 2d 2d 2d 0d 0a 31 31 31 38 0d 0a 34 36 38  .----..1118..468
32e40 31 0d 0a 34 39 37 30 0d 0a 0d 0a 71 75 65 72 79  1..4970....query
32e50 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
32e60 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 37 32  CT DISTINCT + 72
32e70 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
32e80 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
32e90 6f 6c 30 20 3c 3d 20 63 6f 6c 30 0d 0a 2d 2d 2d  ol0 <= col0..---
32ea0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
32eb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
32ec0 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53 20  TINCT - col2 AS 
32ed0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63  col0 FROM tab0 c
32ee0 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31  or0 WHERE + col1
32ef0 20 2a 20 38 32 20 49 53 20 4e 4f 54 20 4e 55 4c   * 82 IS NOT NUL
32f00 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34  L..----..-10..-4
32f10 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-99....onlyif
32f20 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
32f30 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
32f40 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
32f50 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 37 0d  sort label-1087.
32f60 0a 53 45 4c 45 43 54 20 2b 20 38 31 20 2d 20 2d  .SELECT + 81 - -
32f70 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c 32 20 2a   col2 DIV col2 *
32f80 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 2b 20 63 6f   - col2 - - + co
32f90 6c 30 20 2b 20 28 20 2d 20 38 33 20 29 20 2a 20  l0 + ( - 83 ) * 
32fa0 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  - col1 FROM tab0
32fb0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
32fc0 31 36 32 0d 0a 31 39 30 31 0d 0a 36 37 37 32 0d  162..1901..6772.
32fd0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
32fe0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
32ff0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33000 74 20 6c 61 62 65 6c 2d 31 30 38 37 0d 0a 53 45  t label-1087..SE
33010 4c 45 43 54 20 2b 20 38 31 20 2d 20 2d 20 63 6f  LECT + 81 - - co
33020 6c 32 20 2f 20 63 6f 6c 32 20 2a 20 2d 20 63 6f  l2 / col2 * - co
33030 6c 32 20 2d 20 2d 20 2b 20 63 6f 6c 30 20 2b 20  l2 - - + col0 + 
33040 28 20 2d 20 38 33 20 29 20 2a 20 2d 20 63 6f 6c  ( - 83 ) * - col
33050 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
33060 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a  or0..----..162..
33070 31 39 30 31 0d 0a 36 37 37 32 0d 0a 0d 0a 71 75  1901..6772....qu
33080 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
33090 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2f 20 32  ELECT + col0 / 2
330a0 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 63 6f 6c 32   + + col2 - col2
330b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
330c0 72 30 20 57 48 45 52 45 20 28 20 28 20 63 6f 6c  r0 WHERE ( ( col
330d0 31 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  1 ) ) IS NULL..-
330e0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
330f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
33100 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
33110 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
33120 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
33130 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
33140 0d 0a 53 45 4c 45 43 54 20 2d 20 32 36 20 63 6f  ..SELECT - 26 co
33150 6c 30 2c 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63  l0, - col1 + - c
33160 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
33170 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36   tab0..----..-26
33180 0d 0a 2d 31 30 38 0d 0a 2d 32 36 0d 0a 2d 39 36  ..-108..-26..-96
33190 0d 0a 2d 32 36 0d 0a 2d 39 38 0d 0a 0d 0a 6f 6e  ..-26..-98....on
331a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
331b0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
331c0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
331d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
331e0 30 39 30 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  090..SELECT + co
331f0 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
33200 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 37  tab0 WHERE NOT 7
33210 35 20 3d 20 2b 20 2d 20 43 41 53 54 28 20 2b 20  5 = + - CAST( + 
33220 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  - col1 AS SIGNED
33230 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37   )..----..15..87
33240 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..97....skipif m
33250 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33260 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33270 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39  owsort label-109
33280 30 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  0..SELECT + col0
33290 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
332a0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 37 35 20  b0 WHERE NOT 75 
332b0 3d 20 2b 20 2d 20 43 41 53 54 20 28 20 2b 20 2d  = + - CAST ( + -
332c0 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
332d0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37   )..----..15..87
332e0 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..97....query II
332f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
33300 20 41 4c 4c 20 2b 20 37 33 20 41 53 20 63 6f 6c   ALL + 73 AS col
33310 30 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0, + col1 FROM t
33320 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 31  ab1..----..73..1
33330 34 0d 0a 37 33 0d 0a 34 37 0d 0a 37 33 0d 0a 35  4..73..47..73..5
33340 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
33350 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
33360 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
33370 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
33380 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  92..SELECT DISTI
33390 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  NCT - COUNT( * )
333a0 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d  , COUNT( * ) * -
333b0 20 53 55 4d 28 20 2d 20 28 20 2d 20 63 6f 6c 32   SUM( - ( - col2
333c0 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
333d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab0..----..-3
333e0 0d 0a 2d 34 36 38 0d 0a 0d 0a 73 6b 69 70 69 66  ..-468....skipif
333f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
33400 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
33410 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33420 31 30 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  1092..SELECT DIS
33430 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
33440 2a 20 29 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29  * ), COUNT ( * )
33450 20 2a 20 2d 20 53 55 4d 20 28 20 2d 20 28 20 2d   * - SUM ( - ( -
33460 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c   col2 ) ) AS col
33470 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
33480 2d 0d 0a 2d 33 0d 0a 2d 34 36 38 0d 0a 0d 0a 73  -..-3..-468....s
33490 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
334a0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
334b0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
334c0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
334d0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
334e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
334f0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2d   col0 AS col1, -
33500 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20   col0 col2 FROM 
33510 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
33520 2d 2d 0d 0a 31 35 0d 0a 2d 31 35 0d 0a 38 37 0d  --..15..-15..87.
33530 0a 2d 38 37 0d 0a 39 37 0d 0a 2d 39 37 0d 0a 0d  .-87..97..-97...
33540 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
33550 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
33560 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
33570 48 45 52 45 20 4e 4f 54 20 2d 20 31 35 20 4e 4f  HERE NOT - 15 NO
33580 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
33590 4e 44 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d  ND + col1..----.
335a0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
335b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
335c0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f  col2 AS col1, co
335d0 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 53  l2 * - + col1 AS
335e0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
335f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  cor0..----..23..
33600 2d 31 31 37 33 0d 0a 34 30 0d 0a 2d 33 30 38 30  -1173..40..-3080
33610 0d 0a 35 38 0d 0a 2d 33 38 38 36 0d 0a 0d 0a 71  ..58..-3886....q
33620 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
33630 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
33640 6c 31 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30  l1 AS col0, col0
33650 20 2a 20 2b 20 37 31 20 46 52 4f 4d 20 74 61 62   * + 71 FROM tab
33660 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
33670 0a 31 34 0d 0a 33 36 32 31 0d 0a 34 37 0d 0a 36  .14..3621..47..6
33680 34 36 31 0d 0a 35 0d 0a 36 30 33 35 0d 0a 0d 0a  461..5..6035....
33690 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
336a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
336b0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
336c0 30 20 57 48 45 52 45 20 63 6f 6c 31 20 42 45 54  0 WHERE col1 BET
336d0 57 45 45 4e 20 2d 20 33 33 20 41 4e 44 20 63 6f  WEEN - 33 AND co
336e0 6c 31 20 2f 20 2b 20 2b 20 36 36 20 2b 20 2d 20  l1 / + + 66 + - 
336f0 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20  - col0 * - col2 
33700 2a 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 39  * + col0 + + - 9
33710 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  0..----....query
33720 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
33730 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
33740 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
33750 30 20 57 48 45 52 45 20 63 6f 6c 31 20 2b 20 2d  0 WHERE col1 + -
33760 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   + col0 IS NOT N
33770 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
33780 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
33790 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
337a0 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
337b0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
337c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
337d0 49 4e 43 54 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c  INCT - col1, col
337e0 31 20 2a 20 2d 20 33 35 20 41 53 20 63 6f 6c 30  1 * - 35 AS col0
337f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
33800 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 33  r0..----..-1..-3
33810 35 0d 0a 2d 32 31 0d 0a 2d 37 33 35 0d 0a 2d 38  5..-21..-735..-8
33820 31 0d 0a 2d 32 38 33 35 0d 0a 0d 0a 71 75 65 72  1..-2835....quer
33830 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
33840 4c 45 43 54 20 2d 20 2d 20 39 32 2c 20 63 6f 6c  LECT - - 92, col
33850 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
33860 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
33870 2d 0d 0a 39 32 0d 0a 35 31 0d 0a 39 32 0d 0a 36  -..92..51..92..6
33880 37 0d 0a 39 32 0d 0a 37 37 0d 0a 0d 0a 71 75 65  7..92..77....que
33890 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
338a0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  LECT ALL - col1 
338b0 2b 20 2d 20 31 33 20 41 53 20 63 6f 6c 31 20 46  + - 13 AS col1 F
338c0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
338d0 20 57 48 45 52 45 20 28 20 2b 20 63 6f 6c 31 20   WHERE ( + col1 
338e0 2a 20 33 34 20 29 20 3d 20 2b 20 63 6f 6c 32 20  * 34 ) = + col2 
338f0 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2b 20  + col1 * col1 + 
33900 2b 20 39 35 20 2a 20 2b 20 2b 20 38 32 0d 0a 2d  + 95 * + + 82..-
33910 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
33920 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
33930 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
33940 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33950 31 31 30 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1102..SELECT ALL
33960 20 2d 20 53 55 4d 28 20 63 6f 6c 31 20 29 20 63   - SUM( col1 ) c
33970 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
33980 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 73 6b 69 70  ---..-66....skip
33990 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
339a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
339b0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
339c0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
339d0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
339e0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
339f0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
33a00 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 32 0d 0a  ort label-1102..
33a10 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d  SELECT ALL - SUM
33a20 20 28 20 63 6f 6c 31 20 29 20 63 6f 6c 31 20 46   ( col1 ) col1 F
33a30 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
33a40 2d 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -66....onlyif my
33a50 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
33a60 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
33a70 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
33a80 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 33 0d 0a  ort label-1103..
33a90 53 45 4c 45 43 54 20 2d 20 38 34 20 2a 20 2b 20  SELECT - 84 * + 
33aa0 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20  - col2 AS col0, 
33ab0 63 6f 6c 30 20 2a 20 2b 20 2b 20 43 41 53 54 28  col0 * + + CAST(
33ac0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
33ad0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
33ae0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 39 33 32  tab2..----..1932
33af0 0d 0a 4e 55 4c 4c 0d 0a 33 33 36 30 0d 0a 4e 55  ..NULL..3360..NU
33b00 4c 4c 0d 0a 34 38 37 32 0d 0a 4e 55 4c 4c 0d 0a  LL..4872..NULL..
33b10 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
33b20 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
33b30 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
33b40 74 20 6c 61 62 65 6c 2d 31 31 30 33 0d 0a 53 45  t label-1103..SE
33b50 4c 45 43 54 20 2d 20 38 34 20 2a 20 2b 20 2d 20  LECT - 84 * + - 
33b60 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 63 6f  col2 AS col0, co
33b70 6c 30 20 2a 20 2b 20 2b 20 43 41 53 54 20 28 20  l0 * + + CAST ( 
33b80 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 41  NULL AS REAL ) A
33b90 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
33ba0 0d 0a 2d 2d 2d 2d 0d 0a 31 39 33 32 0d 0a 4e 55  ..----..1932..NU
33bb0 4c 4c 0d 0a 33 33 36 30 0d 0a 4e 55 4c 4c 0d 0a  LL..3360..NULL..
33bc0 34 38 37 32 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  4872..NULL....qu
33bd0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
33be0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
33bf0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
33c00 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
33c10 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 32 37  NOT BETWEEN + 27
33c20 20 2a 20 2d 20 63 6f 6c 32 20 41 4e 44 20 2d 20   * - col2 AND - 
33c30 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
33c40 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
33c50 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
33c60 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
33c70 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 35 0d 0a  ort label-1105..
33c80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33c90 2d 20 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 30 20  - + COUNT( col0 
33ca0 29 2c 20 37 30 20 41 53 20 63 6f 6c 30 20 46 52  ), 70 AS col0 FR
33cb0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
33cc0 2d 2d 0d 0a 2d 33 0d 0a 37 30 0d 0a 0d 0a 73 6b  --..-3..70....sk
33cd0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33ce0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33cf0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
33d00 62 65 6c 2d 31 31 30 35 0d 0a 53 45 4c 45 43 54  bel-1105..SELECT
33d10 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f   DISTINCT - + CO
33d20 55 4e 54 20 28 20 63 6f 6c 30 20 29 2c 20 37 30  UNT ( col0 ), 70
33d30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
33d40 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
33d50 33 0d 0a 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  3..70....onlyif 
33d60 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
33d70 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
33d80 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33d90 6c 2d 31 31 30 36 0d 0a 53 45 4c 45 43 54 20 2d  l-1106..SELECT -
33da0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20   COUNT( * ) + + 
33db0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
33dc0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
33dd0 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69 70  ----..-6....skip
33de0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
33df0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33e00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33e10 2d 31 31 30 36 0d 0a 53 45 4c 45 43 54 20 2d 20  -1106..SELECT - 
33e20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
33e30 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
33e40 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
33e50 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 71 75 65  .----..-6....que
33e60 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
33e70 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33e80 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
33e90 45 20 2d 20 2b 20 63 6f 6c 32 20 42 45 54 57 45  E - + col2 BETWE
33ea0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
33eb0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
33ec0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33ed0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b  T DISTINCT - ( +
33ee0 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2d 20 2d 20   + col2 ) * - - 
33ef0 38 38 20 2b 20 2d 20 37 20 2b 20 2d 20 2b 20 63  88 + - 7 + - + c
33f00 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
33f10 2d 2d 2d 0d 0a 2d 32 30 37 37 0d 0a 2d 33 35 39  ---..-2077..-359
33f20 31 0d 0a 2d 35 31 38 36 0d 0a 0d 0a 6f 6e 6c 79  1..-5186....only
33f30 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
33f40 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
33f50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33f60 61 62 65 6c 2d 31 31 30 39 0d 0a 53 45 4c 45 43  abel-1109..SELEC
33f70 54 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 63  T + MIN( ALL - c
33f80 6f 6c 30 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a  ol0 ) + COUNT( *
33f90 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
33fa0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 34 0d  tab0..----..-94.
33fb0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
33fc0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
33fd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33fe0 74 20 6c 61 62 65 6c 2d 31 31 30 39 0d 0a 53 45  t label-1109..SE
33ff0 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c 4c  LECT + MIN ( ALL
34000 20 2d 20 63 6f 6c 30 20 29 20 2b 20 43 4f 55 4e   - col0 ) + COUN
34010 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
34020 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
34030 0a 2d 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-94....query I 
34040 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34050 63 6f 6c 30 20 2a 20 63 6f 6c 31 20 2a 20 2d 20  col0 * col1 * - 
34060 33 36 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  36 * + + col0 + 
34070 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  + col2 FROM tab1
34080 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30 30 34 34 31  ..----..-1300441
34090 0d 0a 2d 31 33 31 30 38 30 38 0d 0a 2d 31 34 30  ..-1310808..-140
340a0 31 31 33 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  11384....onlyif 
340b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
340c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
340d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
340e0 6c 2d 31 31 31 31 0d 0a 53 45 4c 45 43 54 20 44  l-1111..SELECT D
340f0 49 53 54 49 4e 43 54 20 2b 20 32 39 20 2b 20 2d  ISTINCT + 29 + -
34100 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
34110 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
34120 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 73 6b 69 70 69  ---..26....skipi
34130 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
34140 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
34150 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34160 31 31 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1111..SELECT DIS
34170 54 49 4e 43 54 20 2b 20 32 39 20 2b 20 2d 20 43  TINCT + 29 + - C
34180 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
34190 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
341a0 2d 2d 0d 0a 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..26....onlyif
341b0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
341c0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
341d0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
341e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
341f0 32 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  2..SELECT * FROM
34200 20 74 61 62 30 20 57 48 45 52 45 20 43 41 53 54   tab0 WHERE CAST
34210 28 20 2d 20 32 30 20 41 53 20 53 49 47 4e 45 44  ( - 20 AS SIGNED
34220 20 29 20 2b 20 2d 20 63 6f 6c 31 20 4e 4f 54 20   ) + - col1 NOT 
34230 42 45 54 57 45 45 4e 20 2d 20 39 37 20 41 4e 44  BETWEEN - 97 AND
34240 20 2b 20 2b 20 39 32 20 2a 20 2d 20 37 36 20 2a   + + 92 * - 76 *
34250 20 35 30 20 2b 20 2b 20 2d 20 28 20 2d 20 63 6f   50 + + - ( - co
34260 6c 31 20 29 20 2b 20 2b 20 28 20 2d 20 2d 20 32  l1 ) + + ( - - 2
34270 32 20 29 20 2a 20 2d 20 2b 20 38 36 0d 0a 2d 2d  2 ) * - + 86..--
34280 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
34290 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
342a0 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
342b0 33 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70  37fb43b7....skip
342c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
342d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
342e0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
342f0 65 6c 2d 31 31 31 32 0d 0a 53 45 4c 45 43 54 20  el-1112..SELECT 
34300 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
34310 45 20 43 41 53 54 20 28 20 2d 20 32 30 20 41 53  E CAST ( - 20 AS
34320 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 63   INTEGER ) + - c
34330 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ol1 NOT BETWEEN 
34340 2d 20 39 37 20 41 4e 44 20 2b 20 2b 20 39 32 20  - 97 AND + + 92 
34350 2a 20 2d 20 37 36 20 2a 20 35 30 20 2b 20 2b 20  * - 76 * 50 + + 
34360 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2b  - ( - col1 ) + +
34370 20 28 20 2d 20 2d 20 32 32 20 29 20 2a 20 2d 20   ( - - 22 ) * - 
34380 2b 20 38 36 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  + 86..----..9 va
34390 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
343a0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
343b0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
343c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
343d0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
343e0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
343f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34400 61 62 65 6c 2d 31 31 31 33 0d 0a 53 45 4c 45 43  abel-1113..SELEC
34410 54 20 33 36 20 44 49 56 20 2b 20 63 6f 6c 30 20  T 36 DIV + col0 
34420 2a 20 38 32 20 46 52 4f 4d 20 74 61 62 32 20 41  * 82 FROM tab2 A
34430 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
34440 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
34450 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
34460 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
34470 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
34480 31 33 0d 0a 53 45 4c 45 43 54 20 33 36 20 2f 20  13..SELECT 36 / 
34490 2b 20 63 6f 6c 30 20 2a 20 38 32 20 46 52 4f 4d  + col0 * 82 FROM
344a0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
344b0 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
344c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
344d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
344e0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
344f0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 34 0d 0a  ort label-1114..
34500 53 45 4c 45 43 54 20 2d 20 2b 20 43 4f 55 4e 54  SELECT - + COUNT
34510 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 43  ( * ) AS col0, C
34520 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
34530 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
34540 2d 0d 0a 2d 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  -..-3..3....skip
34550 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
34560 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
34570 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
34580 6c 2d 31 31 31 34 0d 0a 53 45 4c 45 43 54 20 2d  l-1114..SELECT -
34590 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
345a0 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20 28 20  S col0, COUNT ( 
345b0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
345c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
345d0 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .3....onlyif mys
345e0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
345f0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
34600 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34610 20 6c 61 62 65 6c 2d 31 31 31 35 0d 0a 53 45 4c   label-1115..SEL
34620 45 43 54 20 37 20 2d 20 63 6f 6c 30 20 2b 20 38  ECT 7 - col0 + 8
34630 33 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d  3 + + + col1 + -
34640 20 38 39 20 44 49 56 20 28 20 28 20 63 6f 6c 31   89 DIV ( ( col1
34650 20 29 20 29 20 2b 20 2b 20 63 6f 6c 31 20 46 52   ) ) + + col1 FR
34660 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
34670 0a 2d 2d 2d 2d 0d 0a 2d 39 34 0d 0a 32 33 36 0d  .----..-94..236.
34680 0a 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .41....skipif my
34690 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
346a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
346b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 35  wsort label-1115
346c0 0d 0a 53 45 4c 45 43 54 20 37 20 2d 20 63 6f 6c  ..SELECT 7 - col
346d0 30 20 2b 20 38 33 20 2b 20 2b 20 2b 20 63 6f 6c  0 + 83 + + + col
346e0 31 20 2b 20 2d 20 38 39 20 2f 20 28 20 28 20 63  1 + - 89 / ( ( c
346f0 6f 6c 31 20 29 20 29 20 2b 20 2b 20 63 6f 6c 31  ol1 ) ) + + col1
34700 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
34710 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 34 0d 0a 32  r0..----..-94..2
34720 33 36 0d 0a 34 31 0d 0a 0d 0a 71 75 65 72 79 20  36..41....query 
34730 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34740 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  T DISTINCT col2 
34750 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
34760 30 20 57 48 45 52 45 20 38 20 49 53 20 4e 4f 54  0 WHERE 8 IS NOT
34770 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   NULL..----..10.
34780 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79  .47..99....query
34790 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
347a0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20  CT ALL + col1 * 
347b0 32 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  27 AS col2 FROM 
347c0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37 37  tab2..----..1377
347d0 0d 0a 31 38 30 39 0d 0a 32 30 37 39 0d 0a 0d 0a  ..1809..2079....
347e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
347f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
34800 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
34810 72 74 20 6c 61 62 65 6c 2d 31 31 31 38 0d 0a 53  rt label-1118..S
34820 45 4c 45 43 54 20 31 34 20 2b 20 2d 20 4d 41 58  ELECT 14 + - MAX
34830 28 20 41 4c 4c 20 2d 20 36 39 20 29 20 46 52 4f  ( ALL - 69 ) FRO
34840 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 33  M tab0..----..83
34850 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
34860 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
34870 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
34880 72 74 20 6c 61 62 65 6c 2d 31 31 31 38 0d 0a 53  rt label-1118..S
34890 45 4c 45 43 54 20 31 34 20 2b 20 2d 20 4d 41 58  ELECT 14 + - MAX
348a0 20 28 20 41 4c 4c 20 2d 20 36 39 20 29 20 46 52   ( ALL - 69 ) FR
348b0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38  OM tab0..----..8
348c0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
348d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
348e0 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2a 20 34  TINCT + col0 * 4
348f0 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
34900 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 33 39 37 0d  ab1..----..2397.
34910 0a 33 39 39 35 0d 0a 34 32 37 37 0d 0a 0d 0a 71  .3995..4277....q
34920 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34930 53 45 4c 45 43 54 20 33 38 20 2a 20 2b 20 63 6f  SELECT 38 * + co
34940 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
34950 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 30 36  tab0..----..3306
34960 0d 0a 33 36 38 36 0d 0a 35 37 30 0d 0a 0d 0a 6f  ..3686..570....o
34970 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
34980 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
34990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
349a0 74 20 6c 61 62 65 6c 2d 31 31 32 31 0d 0a 53 45  t label-1121..SE
349b0 4c 45 43 54 20 4d 41 58 28 20 2b 20 36 37 20 29  LECT MAX( + 67 )
349c0 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2b 20 28 20   - - COUNT( + ( 
349d0 63 6f 6c 32 20 29 20 2b 20 33 34 20 2a 20 2b 20  col2 ) + 34 * + 
349e0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
349f0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
34a00 37 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  70....skipif mys
34a10 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
34a20 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
34a30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 31 0d  sort label-1121.
34a40 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 2b 20  .SELECT MAX ( + 
34a50 36 37 20 29 20 2d 20 2d 20 43 4f 55 4e 54 20 28  67 ) - - COUNT (
34a60 20 2b 20 28 20 63 6f 6c 32 20 29 20 2b 20 33 34   + ( col2 ) + 34
34a70 20 2a 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63   * + col0 ) AS c
34a80 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
34a90 2d 2d 2d 0d 0a 37 30 0d 0a 0d 0a 71 75 65 72 79  ---..70....query
34aa0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
34ab0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
34ac0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
34ad0 32 20 2b 20 38 39 20 3c 3e 20 4e 55 4c 4c 0d 0a  2 + 89 <> NULL..
34ae0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
34af0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34b00 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( - col1 ) AS co
34b10 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l1 FROM tab0 WHE
34b20 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  RE NULL IS NOT N
34b30 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
34b40 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
34b50 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
34b60 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
34b70 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
34b80 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
34b90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
34ba0 53 54 49 4e 43 54 20 2d 20 28 20 2b 20 63 6f 6c  STINCT - ( + col
34bb0 30 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  0 ) col0 FROM ta
34bc0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d  b0..----..-15..-
34bd0 38 37 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79  87..-97....query
34be0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
34bf0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 33  CT DISTINCT - 83
34c00 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
34c10 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53   NOT ( NULL ) IS
34c20 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
34c30 0a 2d 38 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-83....onlyif m
34c40 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
34c50 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
34c60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34c70 2d 31 31 32 36 0d 0a 53 45 4c 45 43 54 20 4d 41  -1126..SELECT MA
34c80 58 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 33 37  X( col2 ) * + 37
34c90 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
34ca0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
34cb0 0a 2d 2d 2d 2d 0d 0a 32 31 34 33 0d 0a 0d 0a 73  .----..2143....s
34cc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34cd0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34ce0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34cf0 62 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45 43 54  bel-1126..SELECT
34d00 20 4d 41 58 20 28 20 63 6f 6c 32 20 29 20 2a 20   MAX ( col2 ) * 
34d10 2b 20 33 37 20 2d 20 43 4f 55 4e 54 20 28 20 2a  + 37 - COUNT ( *
34d20 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
34d30 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 34 33  tab2..----..2143
34d40 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
34d50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
34d60 49 4e 43 54 20 32 35 20 46 52 4f 4d 20 74 61 62  INCT 25 FROM tab
34d70 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  1 WHERE NOT ( NU
34d80 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  LL ) IS NULL..--
34d90 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
34da0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
34db0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20  STINCT + col1 + 
34dc0 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 41 53 20 63  col0 * col0 AS c
34dd0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
34de0 2d 2d 2d 0d 0a 32 31 36 37 0d 0a 34 31 37 33 0d  ---..2167..4173.
34df0 0a 35 36 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .5692....query I
34e00 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
34e10 20 44 49 53 54 49 4e 43 54 20 2d 20 38 36 20 2b   DISTINCT - 86 +
34e20 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
34e30 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 37 0d 0a 2d  1..----..-137..-
34e40 31 37 31 0d 0a 2d 31 37 37 0d 0a 0d 0a 6f 6e 6c  171..-177....onl
34e50 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
34e60 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
34e70 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  te syntax: DECIM
34e80 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
34e90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34ea0 2d 31 31 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c  -1130..SELECT AL
34eb0 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  L CAST( NULL AS 
34ec0 44 45 43 49 4d 41 4c 20 29 20 2a 20 2d 20 43 4f  DECIMAL ) * - CO
34ed0 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
34ee0 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20  b0 WHERE NULL < 
34ef0 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  - col2..----..NU
34f00 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
34f10 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
34f20 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
34f30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d  sort label-1130.
34f40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
34f50 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
34f60 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) * - COUNT ( * 
34f70 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  ) FROM tab0 WHER
34f80 45 20 4e 55 4c 4c 20 3c 20 2d 20 63 6f 6c 32 0d  E NULL < - col2.
34f90 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
34fa0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
34fb0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
34fc0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28  tab2 WHERE NOT (
34fd0 20 34 30 20 29 20 3c 3e 20 32 39 20 2b 20 2b 20   40 ) <> 29 + + 
34fe0 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col1..----....qu
34ff0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
35000 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
35010 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
35020 57 48 45 52 45 20 28 20 31 38 20 2a 20 2d 20 39  WHERE ( 18 * - 9
35030 32 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  2 ) NOT BETWEEN 
35040 2d 20 37 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  - 72 AND NULL..-
35050 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
35060 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
35070 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
35080 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b 69  1e4d54cad....ski
35090 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
350a0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
350b0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
350c0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
350d0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
350e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 36  wsort..SELECT 26
350f0 20 2a 20 2d 20 63 6f 6c 31 20 63 6f 6c 30 20 46   * - col1 col0 F
35100 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
35110 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 36 0d 0a 2d  ..----..-2106..-
35120 32 36 0d 0a 2d 35 34 36 0d 0a 0d 0a 71 75 65 72  26..-546....quer
35130 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
35140 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
35150 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
35160 20 38 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   86 IS NOT NULL.
35170 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
35180 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
35190 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
351a0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
351b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
351c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
351d0 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
351e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
351f0 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
35200 29 20 3c 3e 20 2b 20 63 6f 6c 30 20 2b 20 34 32  ) <> + col0 + 42
35210 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
35220 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
35230 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
35240 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
35250 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63   WHERE NOT ( + c
35260 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 29 20 3e  ol0 * - col0 ) >
35270 20 28 20 36 39 20 2a 20 34 33 20 29 0d 0a 2d 2d   ( 69 * 43 )..--
35280 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
35290 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
352a0 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
352b0 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
352c0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
352d0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
352e0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
352f0 33 31 20 2a 20 2b 20 63 6f 6c 32 20 49 53 20 4e  31 * + col2 IS N
35300 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
35310 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
35320 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
35330 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35340 6c 61 62 65 6c 2d 31 31 33 38 0d 0a 53 45 4c 45  label-1138..SELE
35350 43 54 20 2d 20 53 55 4d 28 20 37 35 20 29 20 46  CT - SUM( 75 ) F
35360 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
35370 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a 0d 0a  ..----..-225....
35380 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
35390 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
353a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
353b0 61 62 65 6c 2d 31 31 33 38 0d 0a 53 45 4c 45 43  abel-1138..SELEC
353c0 54 20 2d 20 53 55 4d 20 28 20 37 35 20 29 20 46  T - SUM ( 75 ) F
353d0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
353e0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a 0d 0a  ..----..-225....
353f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
35400 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
35410 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
35420 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
35430 6c 31 20 2f 20 2d 20 63 6f 6c 31 20 49 53 20 4e  l1 / - col1 IS N
35440 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
35450 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
35460 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
35470 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
35480 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
35490 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
354a0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
354b0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
354c0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
354d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
354e0 45 43 54 20 31 39 20 2a 20 2d 20 63 6f 6c 31 20  ECT 19 * - col1 
354f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
35500 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
35510 35 33 39 0d 0a 2d 31 39 0d 0a 2d 33 39 39 0d 0a  539..-19..-399..
35520 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35530 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
35540 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
35550 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
35560 65 6c 2d 31 31 34 31 0d 0a 53 45 4c 45 43 54 20  el-1141..SELECT 
35570 2b 20 2b 20 32 38 20 44 49 56 20 2b 20 63 6f 6c  + + 28 DIV + col
35580 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
35590 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  or0..----..0..0.
355a0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
355b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
355c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
355d0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 31 0d  sort label-1141.
355e0 0a 53 45 4c 45 43 54 20 2b 20 2b 20 32 38 20 2f  .SELECT + + 28 /
355f0 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
35600 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
35610 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .0..0..0....only
35620 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
35630 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
35640 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35650 61 62 65 6c 2d 31 31 34 32 0d 0a 53 45 4c 45 43  abel-1142..SELEC
35660 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 41  T ALL - COUNT( A
35670 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d  LL + col2 ) FROM
35680 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
35690 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f  ERE + col2 IS NO
356a0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  T NULL..----..-3
356b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
356c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
356d0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
356e0 72 74 20 6c 61 62 65 6c 2d 31 31 34 32 0d 0a 53  rt label-1142..S
356f0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
35700 54 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29  T ( ALL + col2 )
35710 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
35720 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20  r0 WHERE + col2 
35730 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
35740 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-3....onlyif 
35750 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
35760 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
35770 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
35780 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
35790 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 33  wsort label-1143
357a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
357b0 54 20 43 41 53 54 28 20 28 20 43 4f 55 4e 54 28  T CAST( ( COUNT(
357c0 20 2a 20 29 20 29 20 41 53 20 53 49 47 4e 45 44   * ) ) AS SIGNED
357d0 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) * + COUNT( * 
357e0 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
357f0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
35800 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
35810 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..9....skipif m
35820 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
35830 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
35840 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
35850 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
35860 43 54 20 43 41 53 54 20 28 20 28 20 43 4f 55 4e  CT CAST ( ( COUN
35870 54 20 28 20 2a 20 29 20 29 20 41 53 20 49 4e 54  T ( * ) ) AS INT
35880 45 47 45 52 20 29 20 2a 20 2b 20 43 4f 55 4e 54  EGER ) * + COUNT
35890 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
358a0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
358b0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
358c0 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c  ..----..9....onl
358d0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
358e0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
358f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35900 6c 61 62 65 6c 2d 31 31 34 34 0d 0a 53 45 4c 45  label-1144..SELE
35910 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20  CT - - COUNT( * 
35920 29 20 2a 20 39 30 20 41 53 20 63 6f 6c 31 20 46  ) * 90 AS col1 F
35930 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
35940 0d 0a 2d 2d 2d 2d 0d 0a 32 37 30 0d 0a 0d 0a 73  ..----..270....s
35950 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35960 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35970 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35980 62 65 6c 2d 31 31 34 34 0d 0a 53 45 4c 45 43 54  bel-1144..SELECT
35990 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   - - COUNT ( * )
359a0 20 2a 20 39 30 20 41 53 20 63 6f 6c 31 20 46 52   * 90 AS col1 FR
359b0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
359c0 0a 2d 2d 2d 2d 0d 0a 32 37 30 0d 0a 0d 0a 6f 6e  .----..270....on
359d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
359e0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
359f0 20 74 79 70 65 3a 20 44 45 43 49 4d 41 4c 20 74   type: DECIMAL t
35a00 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
35a10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
35a20 35 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 43 41  5..SELECT ( - CA
35a30 53 54 28 20 28 20 43 41 53 54 28 20 33 39 20 41  ST( ( CAST( 39 A
35a40 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20 41 53  S DECIMAL ) ) AS
35a50 20 53 49 47 4e 45 44 20 29 20 29 20 41 53 20 63   SIGNED ) ) AS c
35a60 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
35a70 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20  r0 WHERE - col0 
35a80 2a 20 63 6f 6c 31 20 3c 20 2d 20 63 6f 6c 31 20  * col1 < - col1 
35a90 2b 20 63 6f 6c 30 20 2a 20 43 41 53 54 28 20 2b  + col0 * CAST( +
35aa0 20 28 20 33 35 20 29 20 41 53 20 53 49 47 4e 45   ( 35 ) AS SIGNE
35ab0 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 0d 0a  D )..----..-39..
35ac0 2d 33 39 0d 0a 2d 33 39 0d 0a 0d 0a 73 6b 69 70  -39..-39....skip
35ad0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
35ae0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
35af0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35b00 2d 31 31 34 35 0d 0a 53 45 4c 45 43 54 20 28 20  -1145..SELECT ( 
35b10 2d 20 43 41 53 54 20 28 20 28 20 43 41 53 54 20  - CAST ( ( CAST 
35b20 28 20 33 39 20 41 53 20 52 45 41 4c 20 29 20 29  ( 39 AS REAL ) )
35b30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
35b40 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
35b50 32 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63  2 cor0 WHERE - c
35b60 6f 6c 30 20 2a 20 63 6f 6c 31 20 3c 20 2d 20 63  ol0 * col1 < - c
35b70 6f 6c 31 20 2b 20 63 6f 6c 30 20 2a 20 43 41 53  ol1 + col0 * CAS
35b80 54 20 28 20 2b 20 28 20 33 35 20 29 20 41 53 20  T ( + ( 35 ) AS 
35b90 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d  INTEGER )..----.
35ba0 0a 2d 33 39 0d 0a 2d 33 39 0d 0a 2d 33 39 0d 0a  .-39..-39..-39..
35bb0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35bc0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
35bd0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
35be0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
35bf0 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45 43 54 20  el-1146..SELECT 
35c00 41 4c 4c 20 38 39 20 44 49 56 20 2d 20 63 6f 6c  ALL 89 DIV - col
35c10 31 20 2b 20 2d 20 39 38 20 46 52 4f 4d 20 74 61  1 + - 98 FROM ta
35c20 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a  b0..----..-102..
35c30 2d 31 38 37 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69  -187..-99....ski
35c40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
35c50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
35c60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
35c70 6c 2d 31 31 34 36 0d 0a 53 45 4c 45 43 54 20 41  l-1146..SELECT A
35c80 4c 4c 20 38 39 20 2f 20 2d 20 63 6f 6c 31 20 2b  LL 89 / - col1 +
35c90 20 2d 20 39 38 20 46 52 4f 4d 20 74 61 62 30 0d   - 98 FROM tab0.
35ca0 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 2d 31 38  .----..-102..-18
35cb0 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-99....onlyif
35cc0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
35cd0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
35ce0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
35cf0 65 6c 2d 31 31 34 37 0d 0a 53 45 4c 45 43 54 20  el-1147..SELECT 
35d00 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
35d10 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c  M tab2 WHERE col
35d20 31 20 3c 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  1 < col1..----..
35d30 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
35d40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35d50 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35d60 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 37 0d 0a  ort label-1147..
35d70 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
35d80 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57   * ) FROM tab2 W
35d90 48 45 52 45 20 63 6f 6c 31 20 3c 20 63 6f 6c 31  HERE col1 < col1
35da0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
35db0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35dc0 4c 45 43 54 20 2d 20 31 39 20 2b 20 63 6f 6c 31  LECT - 19 + col1
35dd0 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   * col0 AS col0 
35de0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
35df0 0a 34 30 36 0d 0a 34 32 35 38 0d 0a 36 39 35 0d  .406..4258..695.
35e00 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
35e10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
35e20 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
35e30 52 45 20 63 6f 6c 32 20 3c 3d 20 4e 55 4c 4c 0d  RE col2 <= NULL.
35e40 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
35e50 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
35e60 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
35e70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
35e80 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 30 0d 0a  ort label-1150..
35e90 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
35ea0 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54 28 20 2d  col0 * + CAST( -
35eb0 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 41   col0 * + col0 A
35ec0 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
35ed0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
35ee0 2d 2d 0d 0a 2d 32 36 32 31 34 34 0d 0a 2d 34 32  --..-262144..-42
35ef0 31 38 37 35 0d 0a 2d 39 37 33 33 36 0d 0a 0d 0a  1875..-97336....
35f00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
35f10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
35f20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35f30 61 62 65 6c 2d 31 31 35 30 0d 0a 53 45 4c 45 43  abel-1150..SELEC
35f40 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
35f50 2a 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c  * + CAST ( - col
35f60 30 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e  0 * + col0 AS IN
35f70 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20  TEGER ) AS col2 
35f80 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
35f90 0a 2d 32 36 32 31 34 34 0d 0a 2d 34 32 31 38 37  .-262144..-42187
35fa0 35 0d 0a 2d 39 37 33 33 36 0d 0a 0d 0a 71 75 65  5..-97336....que
35fb0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35fc0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
35fd0 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
35fe0 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20 4e  M tab0 WHERE ( N
35ff0 55 4c 4c 20 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d  ULL ) < NULL..--
36000 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
36010 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
36020 63 6f 6c 30 20 2a 20 2b 20 28 20 2d 20 63 6f 6c  col0 * + ( - col
36030 31 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  1 ) FROM tab1..-
36040 2d 2d 2d 0d 0a 34 32 35 0d 0a 34 32 37 37 0d 0a  ---..425..4277..
36050 37 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  714....query III
36060 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36070 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
36080 52 45 20 2d 20 63 6f 6c 31 20 3e 3d 20 28 20 2b  RE - col1 >= ( +
36090 20 37 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   73 )..----....o
360a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
360b0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
360c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43  gate syntax: DEC
360d0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
360e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
360f0 65 6c 2d 31 31 35 34 0d 0a 53 45 4c 45 43 54 20  el-1154..SELECT 
36100 2d 20 53 55 4d 28 20 2b 20 43 41 53 54 28 20 4e  - SUM( + CAST( N
36110 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
36120 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
36130 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
36140 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
36150 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
36160 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
36170 72 74 20 6c 61 62 65 6c 2d 31 31 35 34 0d 0a 53  rt label-1154..S
36180 45 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 2b 20  ELECT - SUM ( + 
36190 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
361a0 45 41 4c 20 29 20 29 20 41 53 20 63 6f 6c 32 20  EAL ) ) AS col2 
361b0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
361c0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
361d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
361e0 20 41 4c 4c 20 63 6f 6c 32 20 46 52 4f 4d 20 74   ALL col2 FROM t
361f0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab1 WHERE NOT co
36200 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28  l1 NOT BETWEEN (
36210 20 2b 20 63 6f 6c 32 20 29 20 41 4e 44 20 63 6f   + col2 ) AND co
36220 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
36230 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
36240 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
36250 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 63  1 WHERE NULL > c
36260 6f 6c 31 20 2d 20 28 20 63 6f 6c 30 20 29 0d 0a  ol1 - ( col0 )..
36270 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
36280 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36290 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
362a0 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2b  ERE NOT + col2 +
362b0 20 2b 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28   + col0 NOT IN (
362c0 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   + col1 )..----.
362d0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
362e0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
362f0 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
36300 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
36310 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36320 6c 61 62 65 6c 2d 31 31 35 38 0d 0a 53 45 4c 45  label-1158..SELE
36330 43 54 20 41 4c 4c 20 2d 20 37 38 20 44 49 56 20  CT ALL - 78 DIV 
36340 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
36350 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 0d  tab2..----..-26.
36360 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36370 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36380 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36390 74 20 6c 61 62 65 6c 2d 31 31 35 38 0d 0a 53 45  t label-1158..SE
363a0 4c 45 43 54 20 41 4c 4c 20 2d 20 37 38 20 2f 20  LECT ALL - 78 / 
363b0 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
363c0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36   tab2..----..-26
363d0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
363e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
363f0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
36400 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 32 20 29  ERE NOT ( col2 )
36410 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a   IN ( + col1 )..
36420 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
36430 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
36440 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
36450 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
36460 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
36470 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
36480 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
36490 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
364a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
364b0 2d 31 31 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c  -1160..SELECT AL
364c0 4c 20 2b 20 53 55 4d 28 20 41 4c 4c 20 39 35 20  L + SUM( ALL 95 
364d0 29 20 44 49 56 20 2b 20 4d 49 4e 28 20 63 6f 6c  ) DIV + MIN( col
364e0 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  1 ) FROM tab2..-
364f0 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66  ---..5....skipif
36500 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
36510 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
36520 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36530 31 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  160..SELECT ALL 
36540 2b 20 53 55 4d 20 28 20 41 4c 4c 20 39 35 20 29  + SUM ( ALL 95 )
36550 20 2f 20 2b 20 4d 49 4e 20 28 20 63 6f 6c 31 20   / + MIN ( col1 
36560 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
36570 2d 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..5....query II
36580 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36590 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
365a0 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 34 20  1 WHERE NOT - 4 
365b0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
365c0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
365d0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
365e0 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
365f0 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
36600 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
36610 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
36620 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36630 31 31 36 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1162..SELECT + C
36640 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
36650 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
36660 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2d 20 63 6f  col2 * col1 - co
36670 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
36680 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
36690 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
366a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
366b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 32  wsort label-1162
366c0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
366d0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
366e0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
366f0 32 20 2a 20 63 6f 6c 31 20 2d 20 63 6f 6c 31 20  2 * col1 - col1 
36700 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33  IS NULL..----..3
36710 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
36720 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
36730 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
36740 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36750 61 62 65 6c 2d 31 31 36 33 0d 0a 53 45 4c 45 43  abel-1163..SELEC
36760 54 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20  T + col2 + col0 
36770 2f 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  / CAST( NULL AS 
36780 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
36790 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
367a0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
367b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
367c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
367d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
367e0 74 20 6c 61 62 65 6c 2d 31 31 36 33 0d 0a 53 45  t label-1163..SE
367f0 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 63 6f  LECT + col2 + co
36800 6c 30 20 2f 20 43 41 53 54 20 28 20 4e 55 4c 4c  l0 / CAST ( NULL
36810 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
36820 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
36830 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
36840 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
36850 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36860 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
36870 45 52 45 20 2d 20 36 36 20 49 53 20 4e 4f 54 20  ERE - 66 IS NOT 
36880 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
36890 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
368a0 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
368b0 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
368c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
368d0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
368e0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
368f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36900 61 62 65 6c 2d 31 31 36 35 0d 0a 53 45 4c 45 43  abel-1165..SELEC
36910 54 20 41 4c 4c 20 32 37 20 44 49 56 20 63 6f 6c  T ALL 27 DIV col
36920 31 20 2b 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c  1 + col2 DIV col
36930 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
36940 2d 0d 0a 31 0d 0a 32 0d 0a 32 38 0d 0a 0d 0a 73  -..1..2..28....s
36950 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36960 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
36970 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36980 62 65 6c 2d 31 31 36 35 0d 0a 53 45 4c 45 43 54  bel-1165..SELECT
36990 20 41 4c 4c 20 32 37 20 2f 20 63 6f 6c 31 20 2b   ALL 27 / col1 +
369a0 20 63 6f 6c 32 20 2f 20 63 6f 6c 32 20 46 52 4f   col2 / col2 FRO
369b0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab0..----..1.
369c0 0a 32 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72 79 20  .2..28....query 
369d0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
369e0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
369f0 61 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 31  ab1 WHERE + col1
36a00 20 2a 20 34 20 2b 20 2d 20 63 6f 6c 32 20 4e 4f   * 4 + - col2 NO
36a10 54 20 49 4e 20 28 20 2b 20 34 36 20 2b 20 28 20  T IN ( + 46 + ( 
36a20 2d 20 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d  - col2 ) )..----
36a30 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
36a40 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
36a50 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
36a60 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66  d54cad....onlyif
36a70 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
36a80 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
36a90 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
36aa0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
36ab0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36  owsort label-116
36ac0 37 0d 0a 53 45 4c 45 43 54 20 28 20 43 4f 55 4e  7..SELECT ( COUN
36ad0 54 28 20 2a 20 29 20 29 20 44 49 56 20 43 4f 55  T( * ) ) DIV COU
36ae0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
36af0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
36b00 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
36b10 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
36b20 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
36b30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 37 0d  sort label-1167.
36b40 0a 53 45 4c 45 43 54 20 28 20 43 4f 55 4e 54 20  .SELECT ( COUNT 
36b50 28 20 2a 20 29 20 29 20 2f 20 43 4f 55 4e 54 20  ( * ) ) / COUNT 
36b60 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
36b70 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
36b80 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
36b90 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
36ba0 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
36bb0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
36bc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36bd0 20 6c 61 62 65 6c 2d 31 31 36 38 0d 0a 53 45 4c   label-1168..SEL
36be0 45 43 54 20 2b 20 35 38 20 44 49 56 20 43 4f 55  ECT + 58 DIV COU
36bf0 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  NT( * ) col1 FRO
36c00 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  M tab0..----..19
36c10 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
36c20 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
36c30 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
36c40 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
36c50 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
36c60 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
36c70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
36c80 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36c90 6c 2d 31 31 36 38 0d 0a 53 45 4c 45 43 54 20 2b  l-1168..SELECT +
36ca0 20 35 38 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20   58 / COUNT ( * 
36cb0 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
36cc0 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 0d 0a 71 75  ..----..19....qu
36cd0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
36ce0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
36cf0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
36d00 36 37 20 2d 20 2b 20 63 6f 6c 31 20 49 53 20 4e  67 - + col1 IS N
36d10 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
36d20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36d30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39  ..SELECT ALL + 9
36d40 38 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  8 + col2 * + col
36d50 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
36d60 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 38 0d 0a  ab0..----..198..
36d70 32 33 30 37 0d 0a 39 38 39 39 0d 0a 0d 0a 6f 6e  2307..9899....on
36d80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
36d90 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
36da0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
36db0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36dc0 31 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  171..SELECT ALL 
36dd0 2d 20 28 20 43 41 53 54 28 20 2b 20 63 6f 6c 31  - ( CAST( + col1
36de0 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41   AS SIGNED ) ) A
36df0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
36e00 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 3c 3d   WHERE + col1 <=
36e10 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
36e20 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d   SIGNED )..----.
36e30 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36e40 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36e50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36e60 74 20 6c 61 62 65 6c 2d 31 31 37 31 0d 0a 53 45  t label-1171..SE
36e70 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 43 41 53  LECT ALL - ( CAS
36e80 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e  T ( + col1 AS IN
36e90 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c  TEGER ) ) AS col
36ea0 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
36eb0 45 20 2b 20 63 6f 6c 31 20 3c 3d 20 2d 20 43 41  E + col1 <= - CA
36ec0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
36ed0 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  EGER )..----....
36ee0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
36ef0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b  .SELECT + col0 +
36f00 20 2b 20 33 35 20 46 52 4f 4d 20 74 61 62 30 0d   + 35 FROM tab0.
36f10 0a 2d 2d 2d 2d 0d 0a 31 32 32 0d 0a 31 33 32 0d  .----..122..132.
36f20 0a 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .50....query I r
36f30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
36f40 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
36f50 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 4f  WHERE col2 IS NO
36f60 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  T NULL..----..-1
36f70 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 6f 6e  4..-47..-5....on
36f80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
36f90 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
36fa0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36fb0 20 6c 61 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c   label-1174..SEL
36fc0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d  ECT DISTINCT - M
36fd0 41 58 28 20 31 38 20 29 20 41 53 20 63 6f 6c 30  AX( 18 ) AS col0
36fe0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
36ff0 0d 0a 2d 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-18....skipif 
37000 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
37010 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
37020 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
37030 37 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  74..SELECT DISTI
37040 4e 43 54 20 2d 20 4d 41 58 20 28 20 31 38 20 29  NCT - MAX ( 18 )
37050 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
37060 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d 0a 0d  b2..----..-18...
37070 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37080 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
37090 37 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  73 AS col2 FROM 
370a0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
370b0 2d 2d 0d 0a 33 37 32 33 0d 0a 36 32 30 35 0d 0a  --..3723..6205..
370c0 36 36 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  6643....onlyif m
370d0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
370e0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
370f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
37100 72 74 20 6c 61 62 65 6c 2d 31 31 37 36 0d 0a 53  rt label-1176..S
37110 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 44 49 56  ELECT + col2 DIV
37120 20 35 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   50 AS col2 FROM
37130 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
37140 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a  ---..0..0..1....
37150 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37160 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37170 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
37180 61 62 65 6c 2d 31 31 37 36 0d 0a 53 45 4c 45 43  abel-1176..SELEC
37190 54 20 2b 20 63 6f 6c 32 20 2f 20 35 30 20 41 53  T + col2 / 50 AS
371a0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
371b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
371c0 0d 0a 30 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20  ..0..1....query 
371d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
371e0 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 32  T ALL - col1 * 2
371f0 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  5 AS col0 FROM t
37200 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
37210 2d 0d 0a 2d 32 30 32 35 0d 0a 2d 32 35 0d 0a 2d  -..-2025..-25..-
37220 35 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  525....onlyif my
37230 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
37240 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
37250 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37260 31 31 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1178..SELECT ALL
37270 20 2b 20 37 34 20 2a 20 2d 20 53 55 4d 28 20 44   + 74 * - SUM( D
37280 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 41  ISTINCT col1 ) A
37290 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
372a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
372b0 2d 31 34 34 33 30 0d 0a 0d 0a 73 6b 69 70 69 66  -14430....skipif
372c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
372d0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
372e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
372f0 31 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  178..SELECT ALL 
37300 2b 20 37 34 20 2a 20 2d 20 53 55 4d 20 28 20 44  + 74 * - SUM ( D
37310 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 41  ISTINCT col1 ) A
37320 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
37330 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
37340 2d 31 34 34 33 30 0d 0a 0d 0a 71 75 65 72 79 20  -14430....query 
37350 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
37360 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
37370 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
37380 54 20 2d 20 63 6f 6c 30 20 3c 3d 20 28 20 36 33  T - col0 <= ( 63
37390 20 2a 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   * + col0 )..---
373a0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
373b0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
373c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
373d0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
373e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
373f0 74 20 6c 61 62 65 6c 2d 31 31 38 30 0d 0a 53 45  t label-1180..SE
37400 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
37410 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
37420 47 4e 45 44 20 29 20 2a 20 2b 20 43 4f 55 4e 54  GNED ) * + COUNT
37430 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
37440 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
37450 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
37460 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
37470 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
37480 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 30  wsort label-1180
37490 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
374a0 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T - CAST ( NULL 
374b0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
374c0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
374d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
374e0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
374f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
37500 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
37510 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
37520 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
37530 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
37540 2d 31 31 38 31 0d 0a 53 45 4c 45 43 54 20 44 49  -1181..SELECT DI
37550 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 43 41  STINCT COUNT( CA
37560 53 54 28 20 2d 20 38 32 20 41 53 20 53 49 47 4e  ST( - 82 AS SIGN
37570 45 44 20 29 20 29 20 2a 20 2d 20 34 34 20 46 52  ED ) ) * - 44 FR
37580 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
37590 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 0d 0a 0d 0a 73  .----..-132....s
375a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
375b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
375c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
375d0 62 65 6c 2d 31 31 38 31 0d 0a 53 45 4c 45 43 54  bel-1181..SELECT
375e0 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
375f0 28 20 43 41 53 54 20 28 20 2d 20 38 32 20 41 53  ( CAST ( - 82 AS
37600 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2d   INTEGER ) ) * -
37610 20 34 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53   44 FROM tab2 AS
37620 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   cor0..----..-13
37630 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
37640 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
37650 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
37660 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
37670 38 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  82..SELECT + COU
37680 4e 54 28 20 2a 20 29 20 2a 20 2d 20 39 38 20 2b  NT( * ) * - 98 +
37690 20 38 32 20 2a 20 2b 20 38 30 20 41 53 20 63 6f   82 * + 80 AS co
376a0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
376b0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
376c0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 36 37 38  tab2..----..5678
376d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
376e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
376f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37700 72 74 20 6c 61 62 65 6c 2d 31 31 38 32 0d 0a 53  rt label-1182..S
37710 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
37720 2a 20 29 20 2a 20 2d 20 39 38 20 2b 20 38 32 20  * ) * - 98 + 82 
37730 2a 20 2b 20 38 30 20 41 53 20 63 6f 6c 30 20 46  * + 80 AS col0 F
37740 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
37750 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
37760 0d 0a 2d 2d 2d 2d 0d 0a 35 36 37 38 0d 0a 0d 0a  ..----..5678....
37770 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
37780 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
37790 20 2d 20 39 31 20 2a 20 36 35 20 46 52 4f 4d 20   - 91 * 65 FROM 
377a0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
377b0 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
377c0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
377d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
377e0 54 49 4e 43 54 20 2d 20 34 36 20 2a 20 39 31 20  TINCT - 46 * 91 
377f0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
37800 0a 2d 34 31 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-4186....onlyif
37810 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
37820 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
37830 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37840 65 6c 2d 31 31 38 35 0d 0a 53 45 4c 45 43 54 20  el-1185..SELECT 
37850 41 4c 4c 20 2b 20 4d 41 58 28 20 44 49 53 54 49  ALL + MAX( DISTI
37860 4e 43 54 20 2d 20 37 39 20 29 20 41 53 20 63 6f  NCT - 79 ) AS co
37870 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
37880 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 39 0d  cor0..----..-79.
37890 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
378a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
378b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
378c0 74 20 6c 61 62 65 6c 2d 31 31 38 35 0d 0a 53 45  t label-1185..SE
378d0 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 20 28  LECT ALL + MAX (
378e0 20 44 49 53 54 49 4e 43 54 20 2d 20 37 39 20 29   DISTINCT - 79 )
378f0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
37900 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
37910 0d 0a 2d 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-79....onlyif 
37920 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
37930 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
37940 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
37950 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 36 0d 0a  ort label-1186..
37960 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43  SELECT ALL - + C
37970 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47  AST( col1 AS SIG
37980 4e 45 44 20 29 20 2a 20 2b 20 63 6f 6c 32 20 41  NED ) * + col2 A
37990 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
379a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
379b0 2d 31 31 37 33 0d 0a 2d 33 30 38 30 0d 0a 2d 33  -1173..-3080..-3
379c0 38 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  886....skipif my
379d0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
379e0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
379f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 36  wsort label-1186
37a00 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
37a10 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41 53 20   CAST ( col1 AS 
37a20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 63 6f  INTEGER ) * + co
37a30 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
37a40 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
37a50 2d 2d 0d 0a 2d 31 31 37 33 0d 0a 2d 33 30 38 30  --..-1173..-3080
37a60 0d 0a 2d 33 38 38 36 0d 0a 0d 0a 6f 6e 6c 79 69  ..-3886....onlyi
37a70 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
37a80 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
37a90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37aa0 62 65 6c 2d 31 31 38 37 0d 0a 53 45 4c 45 43 54  bel-1187..SELECT
37ab0 20 2d 20 36 36 20 2a 20 43 4f 55 4e 54 28 20 2a   - 66 * COUNT( *
37ac0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
37ad0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38  cor0..----..-198
37ae0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37af0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37b00 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37b10 72 74 20 6c 61 62 65 6c 2d 31 31 38 37 0d 0a 53  rt label-1187..S
37b20 45 4c 45 43 54 20 2d 20 36 36 20 2a 20 43 4f 55  ELECT - 66 * COU
37b30 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
37b40 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
37b50 0d 0a 2d 31 39 38 0d 0a 0d 0a 71 75 65 72 79 20  ..-198....query 
37b60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37b70 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
37b80 2a 20 36 34 20 46 52 4f 4d 20 74 61 62 30 20 41  * 64 FROM tab0 A
37b90 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33  S cor0..----..13
37ba0 34 34 0d 0a 35 31 38 34 0d 0a 36 34 0d 0a 0d 0a  44..5184..64....
37bb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
37bc0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 36  .SELECT ALL + 16
37bd0 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
37be0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
37bf0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 38 0d 0a  or0..----..368..
37c00 36 34 30 0d 0a 39 32 38 0d 0a 0d 0a 71 75 65 72  640..928....quer
37c10 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
37c20 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
37c30 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
37c40 45 52 45 20 4e 4f 54 20 2b 20 32 30 20 2b 20 63  ERE NOT + 20 + c
37c50 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol1 IS NOT NULL.
37c60 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
37c70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
37c80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
37c90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37ca0 6c 2d 31 31 39 31 0d 0a 53 45 4c 45 43 54 20 44  l-1191..SELECT D
37cb0 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 28 20 44  ISTINCT + SUM( D
37cc0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29  ISTINCT + col0 )
37cd0 20 2a 20 37 35 20 46 52 4f 4d 20 74 61 62 31 20   * 75 FROM tab1 
37ce0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
37cf0 37 30 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  7025....skipif m
37d00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
37d10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
37d20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39  owsort label-119
37d30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
37d40 43 54 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49  CT + SUM ( DISTI
37d50 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 2a 20 37  NCT + col0 ) * 7
37d60 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  5 FROM tab1 AS c
37d70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 30 32 35  or0..----..17025
37d80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
37d90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
37da0 2b 20 28 20 39 39 20 29 20 46 52 4f 4d 20 74 61  + ( 99 ) FROM ta
37db0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  b1 cor0..----..9
37dc0 39 0d 0a 39 39 0d 0a 39 39 0d 0a 0d 0a 71 75 65  9..99..99....que
37dd0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
37de0 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41 53 20 63  LECT + col2 AS c
37df0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
37e00 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
37e10 4e 55 4c 4c 20 3e 20 28 20 2b 20 33 38 20 2a 20  NULL > ( + 38 * 
37e20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col2 )..----..
37e30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
37e40 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
37e50 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
37e60 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 34 0d  sort label-1194.
37e70 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
37e80 20 2d 20 31 34 20 29 20 41 53 20 63 6f 6c 32 20   - 14 ) AS col2 
37e90 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
37ea0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
37eb0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
37ec0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
37ed0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37ee0 31 31 39 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1194..SELECT + C
37ef0 4f 55 4e 54 20 28 20 2d 20 31 34 20 29 20 41 53  OUNT ( - 14 ) AS
37f00 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
37f10 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
37f20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37f30 0d 0a 53 45 4c 45 43 54 20 33 33 20 46 52 4f 4d  ..SELECT 33 FROM
37f40 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
37f50 45 52 45 20 4e 4f 54 20 32 35 20 2a 20 2b 20 63  ERE NOT 25 * + c
37f60 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
37f70 2d 0d 0a 33 33 0d 0a 33 33 0d 0a 33 33 0d 0a 0d  -..33..33..33...
37f80 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
37f90 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
37fa0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
37fb0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
37fc0 54 20 2b 20 28 20 2b 20 33 36 20 29 20 49 53 20  T + ( + 36 ) IS 
37fd0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
37fe0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37ff0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 38 33  t..SELECT - - 83
38000 20 2a 20 31 37 20 46 52 4f 4d 20 74 61 62 30 20   * 17 FROM tab0 
38010 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 31  cor0..----..1411
38020 0d 0a 31 34 31 31 0d 0a 31 34 31 31 0d 0a 0d 0a  ..1411..1411....
38030 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
38040 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41 53 20  .SELECT col2 AS 
38050 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
38060 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
38070 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b   NULL NOT IN ( +
38080 20 34 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   45 )..----....o
38090 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
380a0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
380b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
380c0 74 20 6c 61 62 65 6c 2d 31 31 39 39 0d 0a 53 45  t label-1199..SE
380d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
380e0 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 36 33 20  COUNT( * ) * 63 
380f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
38100 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
38110 20 28 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f   ( + col1 * - co
38120 6c 30 20 29 20 3e 20 2b 20 63 6f 6c 31 0d 0a 2d  l0 ) > + col1..-
38130 2d 2d 2d 0d 0a 2d 31 38 39 0d 0a 0d 0a 73 6b 69  ---..-189....ski
38140 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
38150 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
38160 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
38170 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
38180 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
38190 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
381a0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
381b0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 39 0d  sort label-1199.
381c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
381d0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
381e0 20 36 33 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   63 col1 FROM ta
381f0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
38200 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 31 20 2a 20   NOT ( + col1 * 
38210 2d 20 63 6f 6c 30 20 29 20 3e 20 2b 20 63 6f 6c  - col0 ) > + col
38220 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 39 0d 0a 0d  1..----..-189...
38230 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38240 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
38250 32 20 2a 20 2d 20 34 35 20 46 52 4f 4d 20 74 61  2 * - 45 FROM ta
38260 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
38270 0d 0a 2d 32 31 31 35 0d 0a 2d 34 34 35 35 0d 0a  ..-2115..-4455..
38280 2d 34 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -450....query II
38290 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
382a0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
382b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
382c0 48 45 52 45 20 28 20 2d 20 34 33 20 29 20 4e 4f  HERE ( - 43 ) NO
382d0 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
382e0 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
382f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
38300 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
38310 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
38320 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 2d 20 2b  WHERE + col1 - +
38330 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45   col1 NOT BETWEE
38340 4e 20 63 6f 6c 32 20 2d 20 2d 20 33 38 20 41 4e  N col2 - - 38 AN
38350 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  D ( NULL )..----
38360 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
38370 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
38380 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
38390 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
383a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
383b0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
383c0 2a 20 63 6f 6c 32 20 2b 20 39 38 20 41 53 20 63  * col2 + 98 AS c
383d0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
383e0 45 52 45 20 4e 4f 54 20 2b 20 36 37 20 3c 3e 20  ERE NOT + 67 <> 
383f0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
38400 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
38410 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28  ELECT DISTINCT (
38420 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20   + ( - col0 ) ) 
38430 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
38440 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38  1..----..-51..-8
38450 35 0d 0a 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  5..-91....onlyif
38460 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
38470 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
38480 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
38490 65 6c 2d 31 32 30 35 0d 0a 53 45 4c 45 43 54 20  el-1205..SELECT 
384a0 2b 20 35 38 20 2b 20 2b 20 28 20 4d 49 4e 28 20  + 58 + + ( MIN( 
384b0 2b 20 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20  + col1 ) ) FROM 
384c0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  tab0..----..59..
384d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
384e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
384f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38500 20 6c 61 62 65 6c 2d 31 32 30 35 0d 0a 53 45 4c   label-1205..SEL
38510 45 43 54 20 2b 20 35 38 20 2b 20 2b 20 28 20 4d  ECT + 58 + + ( M
38520 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29 20 29 20  IN ( + col1 ) ) 
38530 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
38540 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .59....onlyif my
38550 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
38560 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
38570 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
38580 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d 0a 53 45  t label-1206..SE
38590 4c 45 43 54 20 43 41 53 54 28 20 2b 20 63 6f 6c  LECT CAST( + col
385a0 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  1 AS SIGNED ) + 
385b0 2d 20 34 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 45 FROM tab1..
385c0 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 34 30 0d 0a  ----..-31..-40..
385d0 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
385e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
385f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
38600 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d 0a  ort label-1206..
38610 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 2b 20  SELECT CAST ( + 
38620 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
38630 29 20 2b 20 2d 20 34 35 20 46 52 4f 4d 20 74 61  ) + - 45 FROM ta
38640 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d  b1..----..-31..-
38650 34 30 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  40..2....onlyif 
38660 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
38670 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
38680 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
38690 6c 2d 31 32 30 37 0d 0a 53 45 4c 45 43 54 20 41  l-1207..SELECT A
386a0 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  LL COUNT( * ) * 
386b0 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 37 30 20  COUNT( * ) + 70 
386c0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
386d0 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .79....skipif my
386e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
386f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
38700 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 37  wsort label-1207
38710 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
38720 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54  NT ( * ) * COUNT
38730 20 28 20 2a 20 29 20 2b 20 37 30 20 46 52 4f 4d   ( * ) + 70 FROM
38740 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d   tab2..----..79.
38750 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
38760 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
38770 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
38780 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
38790 62 65 6c 2d 31 32 30 38 0d 0a 53 45 4c 45 43 54  bel-1208..SELECT
387a0 20 2d 20 32 34 20 2b 20 2b 20 43 41 53 54 28 20   - 24 + + CAST( 
387b0 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44  + col0 AS SIGNED
387c0 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
387d0 2d 2d 0d 0a 2d 39 0d 0a 36 33 0d 0a 37 33 0d 0a  --..-9..63..73..
387e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
387f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
38800 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38810 20 6c 61 62 65 6c 2d 31 32 30 38 0d 0a 53 45 4c   label-1208..SEL
38820 45 43 54 20 2d 20 32 34 20 2b 20 2b 20 43 41 53  ECT - 24 + + CAS
38830 54 20 28 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e  T ( + col0 AS IN
38840 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
38850 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 36 33 0d  0..----..-9..63.
38860 0a 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .73....query I r
38870 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
38880 20 28 20 2b 20 2b 20 36 37 20 29 20 2b 20 28 20   ( + + 67 ) + ( 
38890 34 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  43 ) AS col2 FRO
388a0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
388b0 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 31 30 0d 0a  ----..110..110..
388c0 31 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  110....query I r
388d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
388e0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2b  ISTINCT col0 + +
388f0 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
38900 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
38910 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 33  0..----..104..13
38920 33 0d 0a 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49  3..69....query I
38930 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
38940 20 41 4c 4c 20 28 20 31 38 20 29 20 46 52 4f 4d   ALL ( 18 ) FROM
38950 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
38960 45 52 45 20 2d 20 37 30 20 3d 20 28 20 4e 55 4c  ERE - 70 = ( NUL
38970 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  L )..----....onl
38980 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
38990 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
389a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
389b0 6c 61 62 65 6c 2d 31 32 31 32 0d 0a 53 45 4c 45  label-1212..SELE
389c0 43 54 20 41 4c 4c 20 2b 20 38 33 20 2b 20 2b 20  CT ALL + 83 + + 
389d0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
389e0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
389f0 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d 0a 73 6b 69 70  ----..80....skip
38a00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
38a10 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
38a20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38a30 2d 31 32 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c  -1212..SELECT AL
38a40 4c 20 2b 20 38 33 20 2b 20 2b 20 2d 20 43 4f 55  L + 83 + + - COU
38a50 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
38a60 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
38a70 0d 0a 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..80....query I 
38a80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
38a90 2b 20 33 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 35 AS col1 FRO
38aa0 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
38ab0 45 20 33 38 20 2b 20 63 6f 6c 31 20 49 53 20 4e  E 38 + col1 IS N
38ac0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33  OT NULL..----..3
38ad0 35 0d 0a 33 35 0d 0a 33 35 0d 0a 0d 0a 71 75 65  5..35..35....que
38ae0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
38af0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
38b00 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
38b10 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 39 20 29  HERE NOT ( + 9 )
38b20 20 3c 20 2d 20 28 20 63 6f 6c 32 20 29 0d 0a 2d   < - ( col2 )..-
38b30 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
38b40 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
38b50 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
38b60 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c  537fb43b7....onl
38b70 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
38b80 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
38b90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
38ba0 6c 61 62 65 6c 2d 31 32 31 35 0d 0a 53 45 4c 45  label-1215..SELE
38bb0 43 54 20 41 4c 4c 20 2d 20 33 36 20 2b 20 2d 20  CT ALL - 36 + - 
38bc0 31 39 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20  19 * + COUNT( * 
38bd0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
38be0 61 62 32 20 41 53 20 63 6f 72 30 20