sqllogictest
Hex Artifact Content
Not logged in

Artifact 3e7412a23018b55adba1c47aeb642630be027486:


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 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
02d0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
02e0: 49 4e 43 54 20 33 36 20 2d 20 32 20 46 52 4f 4d  INCT 36 - 2 FROM
02f0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
0300: 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 6f 6e 6c 79 69  ---..34....onlyi
0310: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
0320: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
0330: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
0340: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 0d 0a 53  wsort label-1..S
0350: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 44  ELECT ALL col1 D
0360: 49 56 20 2b 20 38 32 20 2b 20 2b 20 33 32 20 41  IV + 82 + + 32 A
0370: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
0380: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
0390: 33 32 0d 0a 33 32 0d 0a 33 32 0d 0a 0d 0a 73 6b  32..32..32....sk
03a0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
03b0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
03c0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
03d0: 65 6c 2d 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  el-1..SELECT ALL
03e0: 20 63 6f 6c 31 20 2f 20 2b 20 38 32 20 2b 20 2b   col1 / + 82 + +
03f0: 20 33 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   32 AS col1 FROM
0400: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
0410: 2d 2d 2d 0d 0a 33 32 0d 0a 33 32 0d 0a 33 32 0d  ---..32..32..32.
0420: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
0430: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
0440: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   * FROM tab2 cor
0450: 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20  0 WHERE NOT ( - 
0460: 2b 20 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c  + col1 ) IS NULL
0470: 20 41 4e 44 20 2d 20 2b 20 39 36 20 2a 20 33 36   AND - + 96 * 36
0480: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
0490: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
04a0: 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
04b0: 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
04c0: 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79  962d0a49....only
04d0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
04e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
04f0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
0500: 6c 61 62 65 6c 2d 33 0d 0a 53 45 4c 45 43 54 20  label-3..SELECT 
0510: 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20  ALL COUNT( * ), 
0520: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  + COUNT( * ) col
0530: 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
0540: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a  ..----..3..3....
0550: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
0560: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
0570: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
0580: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
0590: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
05a0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
05b0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
05c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
05d0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
05e0: 4e 54 20 28 20 2a 20 29 2c 20 2b 20 43 4f 55 4e  NT ( * ), + COUN
05f0: 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f  T ( * ) col1 FRO
0600: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
0610: 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  -..3..3....skipi
0620: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
0630: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
0640: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
0650: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
0660: 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
0670: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
0680: 6f 6c 30 20 2d 20 2d 20 63 6f 6c 31 20 63 6f 6c  ol0 - - col1 col
0690: 31 2c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1, + col0 FROM t
06a0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
06b0: 2d 0d 0a 2d 36 36 0d 0a 38 37 0d 0a 2d 39 36 0d  -..-66..87..-96.
06c0: 0a 39 37 0d 0a 36 36 0d 0a 31 35 0d 0a 0d 0a 71  .97..66..15....q
06d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
06e0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
06f0: 32 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  29 AS col0 FROM 
0700: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
0710: 0a 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .29....query III
0720: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
0730: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
0740: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
0750: 6f 6c 31 20 2a 20 2b 20 2b 20 32 30 20 2a 20 2d  ol1 * + + 20 * -
0760: 20 2d 20 31 37 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d   - 17 < NULL..--
0770: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49  --....query IIII
0780: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
0790: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 2c 20  CT * FROM tab0, 
07a0: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
07b0: 52 45 20 4e 4f 54 20 39 33 20 3d 20 4e 55 4c 4c  RE NOT 93 = NULL
07c0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
07d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
07e0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
07f0: 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
0800: 61 62 31 20 57 48 45 52 45 20 28 20 63 6f 6c 30  ab1 WHERE ( col0
0810: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
0820: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31  ----..51..85..91
0830: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
0840: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
0850: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
0860: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
0870: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
0880: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
0890: 4c 45 43 54 20 36 20 63 6f 6c 30 20 46 52 4f 4d  LECT 6 col0 FROM
08a0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a   tab1..----..6..
08b0: 36 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  6..6....query II
08c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
08d0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  T * FROM tab1 co
08e0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
08f0: 30 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55  0 + + col0 IS NU
0900: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
0910: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
0920: 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
0930: 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
0940: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
0950: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
0960: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
0970: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 0d 0a 53  sort label-11..S
0980: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
0990: 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 31 35 20 29   MIN( ALL - 15 )
09a0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
09b0: 0d 0a 2d 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-15....skipif 
09c0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
09d0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
09e0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
09f0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
0a00: 54 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20  T + MIN ( ALL - 
0a10: 31 35 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  15 ) FROM tab0..
0a20: 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 73 6b 69  ----..-15....ski
0a30: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
0a40: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
0a50: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
0a60: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
0a70: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
0a80: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
0a90: 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2a 20  STINCT - col1 * 
0aa0: 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20  - col0 * + col1 
0ab0: 2a 20 2d 20 35 20 63 6f 6c 30 20 46 52 4f 4d 20  * - 5 col0 FROM 
0ac0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30  tab1..----..-100
0ad0: 35 30 39 35 0d 0a 2d 31 30 36 32 35 0d 0a 2d 34  5095..-10625..-4
0ae0: 39 39 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  9980....query II
0af0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
0b00: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
0b10: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
0b20: 28 20 4e 55 4c 4c 20 29 20 49 4e 20 28 20 63 6f  ( NULL ) IN ( co
0b30: 6c 30 2c 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d  l0, - col0 )..--
0b40: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
0b50: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
0b60: 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
0b70: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
0b80: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
0b90: 72 74 20 6c 61 62 65 6c 2d 31 34 0d 0a 53 45 4c  rt label-14..SEL
0ba0: 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20 4e 55  ECT ALL CAST( NU
0bb0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
0bc0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
0bd0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
0be0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
0bf0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
0c00: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
0c10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0c20: 62 65 6c 2d 31 34 0d 0a 53 45 4c 45 43 54 20 41  bel-14..SELECT A
0c30: 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41  LL CAST ( NULL A
0c40: 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20  S INTEGER ) + - 
0c50: 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
0c60: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
0c70: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
0c80: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
0c90: 4c 45 43 54 20 41 4c 4c 20 37 31 20 41 53 20 63  LECT ALL 71 AS c
0ca0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol2 FROM tab2 co
0cb0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31 0d 0a 37 31  r0..----..71..71
0cc0: 0d 0a 37 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..71....onlyif m
0cd0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
0ce0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
0cf0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0d00: 2d 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -16..SELECT ALL 
0d10: 2b 20 2d 20 28 20 53 55 4d 28 20 44 49 53 54 49  + - ( SUM( DISTI
0d20: 4e 43 54 20 2d 20 2b 20 35 33 20 29 20 29 20 41  NCT - + 53 ) ) A
0d30: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
0d40: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
0d50: 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  53....skipif mys
0d60: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
0d70: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
0d80: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 0d 0a 53  sort label-16..S
0d90: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 28 20  ELECT ALL + - ( 
0da0: 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d  SUM ( DISTINCT -
0db0: 20 2b 20 35 33 20 29 20 29 20 41 53 20 63 6f 6c   + 53 ) ) AS col
0dc0: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
0dd0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 0d  or0..----..53...
0de0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
0df0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
0e00: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
0e10: 48 45 52 45 20 4e 55 4c 4c 20 3e 20 2d 20 39 34  HERE NULL > - 94
0e20: 20 2b 20 2b 20 31 20 2a 20 2d 20 63 6f 6c 32 20   + + 1 * - col2 
0e30: 2a 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  * + col0..----..
0e40: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
0e50: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
0e60: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
0e70: 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e  WHERE ( NULL ) N
0e80: 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
0e90: 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  AND col2..----..
0ea0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
0eb0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
0ec0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
0ed0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 0d 0a 53  sort label-19..S
0ee0: 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  ELECT COUNT( * )
0ef0: 20 2b 20 2d 20 2d 20 37 32 20 63 6f 6c 30 20 46   + - - 72 col0 F
0f00: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
0f10: 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a 73 6b  ..----..75....sk
0f20: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
0f30: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
0f40: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
0f50: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
0f60: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
0f70: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
0f80: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
0f90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 0d 0a  wsort label-19..
0fa0: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
0fb0: 20 29 20 2b 20 2d 20 2d 20 37 32 20 63 6f 6c 30   ) + - - 72 col0
0fc0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
0fd0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a  r0..----..75....
0fe0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
0ff0: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1000: 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 32 36   tab2 WHERE - 26
1010: 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
1020: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1030: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1040: 43 54 20 39 34 20 2b 20 2b 20 2b 20 63 6f 6c 30  CT 94 + + + col0
1050: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1060: 0d 0a 31 34 30 0d 0a 31 35 38 0d 0a 31 36 39 0d  ..140..158..169.
1070: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1080: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
1090: 2b 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29  + + + ( + col0 )
10a0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
10b0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 31  b1..----..144..1
10c0: 34 37 0d 0a 31 35 39 0d 0a 0d 0a 6f 6e 6c 79 69  47..159....onlyi
10d0: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
10e0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
10f0: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1100: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 0d 0a  wsort label-23..
1110: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1120: 2b 20 35 33 20 44 49 56 20 2d 20 2b 20 28 20 32  + 53 DIV - + ( 2
1130: 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  1 ) FROM tab0..-
1140: 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69  ---..-2....skipi
1150: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1160: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1170: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1180: 32 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  23..SELECT DISTI
1190: 4e 43 54 20 2b 20 35 33 20 2f 20 2d 20 2b 20 28  NCT + 53 / - + (
11a0: 20 32 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   21 ) FROM tab0.
11b0: 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69  .----..-2....ski
11c0: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
11d0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
11e0: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
11f0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1200: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
1210: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1220: 4c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 37 31 20  L - col2 * - 71 
1230: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
1240: 2d 2d 2d 2d 0d 0a 31 36 33 33 0d 0a 32 38 34 30  ----..1633..2840
1250: 0d 0a 34 31 31 38 0d 0a 0d 0a 71 75 65 72 79 20  ..4118....query 
1260: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1270: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
1280: 30 20 2b 20 2d 20 2d 20 32 31 20 41 53 20 63 6f  0 + - - 21 AS co
1290: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
12a0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 36 0d  cor0..----..106.
12b0: 0a 31 31 32 0d 0a 37 32 0d 0a 0d 0a 71 75 65 72  .112..72....quer
12c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
12d0: 45 43 54 20 41 4c 4c 20 2d 20 31 30 20 46 52 4f  ECT ALL - 10 FRO
12e0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
12f0: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
1300: 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
1310: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1320: 6f 20 66 36 38 66 33 33 30 33 32 38 34 36 65 32  o f68f33032846e2
1330: 31 65 65 36 62 32 63 36 36 38 66 63 31 30 33 35  1ee6b2c668fc1035
1340: 35 65 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  5e....onlyif mys
1350: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
1360: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1370: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1380: 20 6c 61 62 65 6c 2d 32 37 0d 0a 53 45 4c 45 43   label-27..SELEC
1390: 54 20 41 4c 4c 20 63 6f 6c 30 20 2d 20 2d 20 63  T ALL col0 - - c
13a0: 6f 6c 31 20 44 49 56 20 2b 20 32 32 20 41 53 20  ol1 DIV + 22 AS 
13b0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
13c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a 36  or0..----..48..6
13d0: 37 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  7..78....skipif 
13e0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13f0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1400: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37  rowsort label-27
1410: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
1420: 30 20 2d 20 2d 20 63 6f 6c 31 20 2f 20 2b 20 32  0 - - col1 / + 2
1430: 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
1440: 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
1450: 34 38 0d 0a 36 37 0d 0a 37 38 0d 0a 0d 0a 6f 6e  48..67..78....on
1460: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1470: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1480: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1490: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
14a0: 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 44  8..SELECT col2 D
14b0: 49 56 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  IV - col1 * - co
14c0: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
14d0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
14e0: 2d 2d 0d 0a 30 0d 0a 30 0d 0a 39 39 0d 0a 0d 0a  --..0..0..99....
14f0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1500: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1510: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1520: 61 62 65 6c 2d 32 38 0d 0a 53 45 4c 45 43 54 20  abel-28..SELECT 
1530: 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 31 20 2a 20  col2 / - col1 * 
1540: 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  - col1 AS col2 F
1550: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1560: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 39 39  ..----..0..0..99
1570: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1580: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1590: 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20  INCT - col0 * + 
15a0: 39 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  92 FROM tab2 AS 
15b0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 33  cor0..----..-423
15c0: 32 0d 0a 2d 35 38 38 38 0d 0a 2d 36 39 30 30 0d  2..-5888..-6900.
15d0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
15e0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
15f0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1600: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1610: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1620: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1630: 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b  ECT + + col1 * +
1640: 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20   col1 col0 FROM 
1650: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1660: 2d 2d 0d 0a 32 36 30 31 0d 0a 34 34 38 39 0d 0a  --..2601..4489..
1670: 35 39 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  5929....query II
1680: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1690: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
16a0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
16b0: 28 20 4e 55 4c 4c 20 29 20 3e 3d 20 28 20 4e 55  ( NULL ) >= ( NU
16c0: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  LL )..----....qu
16d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
16e0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 31 20 2a  ELECT ALL + 81 *
16f0: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1700: 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20  1 WHERE NOT ( - 
1710: 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  col1 ) IS NULL..
1720: 2d 2d 2d 2d 0d 0a 34 31 33 31 0d 0a 36 38 38 35  ----..4131..6885
1730: 0d 0a 37 33 37 31 0d 0a 0d 0a 71 75 65 72 79 20  ..7371....query 
1740: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1750: 54 20 38 32 20 2a 20 2d 20 35 36 20 46 52 4f 4d  T 82 * - 56 FROM
1760: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35   tab2..----..-45
1770: 39 32 0d 0a 2d 34 35 39 32 0d 0a 2d 34 35 39 32  92..-4592..-4592
1780: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1790: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
17a0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
17b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 0d  owsort label-34.
17c0: 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 2b  .SELECT + SUM( +
17d0: 20 2b 20 34 33 20 29 20 41 53 20 63 6f 6c 32 20   + 43 ) AS col2 
17e0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
17f0: 0a 31 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .129....skipif m
1800: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1810: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1820: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 0d  owsort label-34.
1830: 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20  .SELECT + SUM ( 
1840: 2b 20 2b 20 34 33 20 29 20 41 53 20 63 6f 6c 32  + + 43 ) AS col2
1850: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1860: 0d 0a 31 32 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..129....onlyif 
1870: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1880: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1890: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18a0: 6c 2d 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-35..SELECT ALL
18b0: 20 4d 49 4e 28 20 2b 20 2b 20 31 34 20 29 20 46   MIN( + + 14 ) F
18c0: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
18d0: 4f 54 20 4e 55 4c 4c 20 3e 20 2b 20 63 6f 6c 30  OT NULL > + col0
18e0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
18f0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1900: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1910: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1920: 61 62 65 6c 2d 33 35 0d 0a 53 45 4c 45 43 54 20  abel-35..SELECT 
1930: 41 4c 4c 20 4d 49 4e 20 28 20 2b 20 2b 20 31 34  ALL MIN ( + + 14
1940: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
1950: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 2b 20  RE NOT NULL > + 
1960: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  col0..----..NULL
1970: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
1980: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
1990: 30 2c 20 39 37 20 2a 20 2d 20 34 32 20 41 53 20  0, 97 * - 42 AS 
19a0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
19b0: 2d 2d 2d 2d 0d 0a 31 35 0d 0a 2d 34 30 37 34 0d  ----..15..-4074.
19c0: 0a 38 37 0d 0a 2d 34 30 37 34 0d 0a 39 37 0d 0a  .87..-4074..97..
19d0: 2d 34 30 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49  -4074....query I
19e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19f0: 54 20 41 4c 4c 20 63 6f 6c 32 20 41 53 20 63 6f  T ALL col2 AS co
1a00: 6c 31 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  l1, col1 FROM ta
1a10: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 0d  b1..----..59..5.
1a20: 0a 36 38 0d 0a 34 37 0d 0a 39 36 0d 0a 31 34 0d  .68..47..96..14.
1a30: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a40: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1a50: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1a60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1a70: 62 65 6c 2d 33 38 0d 0a 53 45 4c 45 43 54 20 41  bel-38..SELECT A
1a80: 4c 4c 20 28 20 2d 20 43 41 53 54 28 20 2d 20 38  LL ( - CAST( - 8
1a90: 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  7 AS SIGNED ) ) 
1aa0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
1ab0: 2d 2d 2d 2d 0d 0a 38 37 0d 0a 38 37 0d 0a 38 37  ----..87..87..87
1ac0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1ad0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1ae0: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
1af0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1b00: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1b10: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1b20: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1b30: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1b40: 6c 2d 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-38..SELECT ALL
1b50: 20 28 20 2d 20 43 41 53 54 20 28 20 2d 20 38 37   ( - CAST ( - 87
1b60: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
1b70: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
1b80: 2d 2d 2d 2d 0d 0a 38 37 0d 0a 38 37 0d 0a 38 37  ----..87..87..87
1b90: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
1ba0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1bb0: 20 63 6f 6c 31 2c 20 2b 20 32 30 20 41 53 20 63   col1, + 20 AS c
1bc0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
1bd0: 2d 2d 2d 0d 0a 31 34 0d 0a 32 30 0d 0a 34 37 0d  ---..14..20..47.
1be0: 0a 32 30 0d 0a 35 0d 0a 32 30 0d 0a 0d 0a 73 6b  .20..5..20....sk
1bf0: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1c00: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1c10: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1c20: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1c30: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
1c40: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1c50: 41 4c 4c 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31  ALL col2, - col1
1c60: 20 2a 20 38 36 20 2d 20 63 6f 6c 30 20 63 6f 6c   * 86 - col0 col
1c70: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
1c80: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 2d  or0..----..23..-
1c90: 34 34 33 32 0d 0a 34 30 0d 0a 2d 36 36 38 36 0d  4432..40..-6686.
1ca0: 0a 35 38 0d 0a 2d 35 38 33 37 0d 0a 0d 0a 71 75  .58..-5837....qu
1cb0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1cc0: 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 41 53 20  ELECT - col1 AS 
1cd0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1ce0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1cf0: 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 49 4e   ( NULL ) NOT IN
1d00: 20 28 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   ( + - col1 * + 
1d10: 31 32 20 2b 20 2b 20 63 6f 6c 30 2c 20 63 6f 6c  12 + + col0, col
1d20: 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  2 )..----....que
1d30: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1d40: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1d50: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1d60: 20 4e 4f 54 20 2d 20 37 33 20 3d 20 4e 55 4c 4c   NOT - 73 = NULL
1d70: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1d80: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1d90: 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
1da0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
1db0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
1dc0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1dd0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
1de0: 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2b  ERE NOT - col1 +
1df0: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 43 41   - col2 + + - CA
1e00: 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
1e10: 4d 41 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  MAL ) IS NULL..-
1e20: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
1e30: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1e40: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
1e50: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
1e60: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1e70: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
1e80: 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2b  ERE NOT - col1 +
1e90: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 43 41   - col2 + + - CA
1ea0: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
1eb0: 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  L ) IS NULL..---
1ec0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
1ed0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1ee0: 20 63 6f 6c 31 20 2b 20 38 39 20 2a 20 2b 20 63   col1 + 89 * + c
1ef0: 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
1f00: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 39   tab0..----..189
1f10: 30 0d 0a 37 32 39 30 0d 0a 39 30 0d 0a 0d 0a 6f  0..7290..90....o
1f20: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1f30: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
1f40: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
1f50: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1f60: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f70: 6c 2d 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-45..SELECT ALL
1f80: 20 2b 20 43 4f 55 4e 54 28 20 2b 20 2d 20 43 41   + COUNT( + - CA
1f90: 53 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49  ST( - col0 AS SI
1fa0: 47 4e 45 44 20 29 20 29 20 2b 20 2d 20 31 37 20  GNED ) ) + - 17 
1fb0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1fc0: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
1fd0: 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
1fe0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1ff0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2000: 6f 72 74 20 6c 61 62 65 6c 2d 34 35 0d 0a 53 45  ort label-45..SE
2010: 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
2020: 20 28 20 2b 20 2d 20 43 41 53 54 20 28 20 2d 20   ( + - CAST ( - 
2030: 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
2040: 29 20 29 20 2b 20 2d 20 31 37 20 41 53 20 63 6f  ) ) + - 17 AS co
2050: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
2060: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 0d 0a  0..----..-14....
2070: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2080: 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30  .SELECT + + col0
2090: 20 2b 20 2d 20 33 32 20 46 52 4f 4d 20 74 61 62   + - 32 FROM tab
20a0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
20b0: 0a 31 34 0d 0a 33 32 0d 0a 34 33 0d 0a 0d 0a 6f  .14..32..43....o
20c0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
20d0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
20e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20f0: 74 20 6c 61 62 65 6c 2d 34 37 0d 0a 53 45 4c 45  t label-47..SELE
2100: 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20  CT ALL - COUNT( 
2110: 2b 20 63 6f 6c 31 20 29 20 2b 20 53 55 4d 28 20  + col1 ) + SUM( 
2120: 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46  col2 ) AS col1 F
2130: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2140: 0d 0a 2d 2d 2d 2d 0d 0a 32 32 30 0d 0a 0d 0a 73  ..----..220....s
2150: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2160: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2170: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2180: 62 65 6c 2d 34 37 0d 0a 53 45 4c 45 43 54 20 41  bel-47..SELECT A
2190: 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 63  LL - COUNT ( + c
21a0: 6f 6c 31 20 29 20 2b 20 53 55 4d 20 28 20 63 6f  ol1 ) + SUM ( co
21b0: 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l2 ) AS col1 FRO
21c0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
21d0: 2d 2d 2d 2d 0d 0a 32 32 30 0d 0a 0d 0a 71 75 65  ----..220....que
21e0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
21f0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30  ELECT ALL - col0
2200: 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63   + - + col0 AS c
2210: 6f 6c 32 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c  ol2, col1 AS col
2220: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
2230: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d  or0..----..-102.
2240: 0a 31 34 0d 0a 2d 31 37 30 0d 0a 35 0d 0a 2d 31  .14..-170..5..-1
2250: 38 32 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  82..47....onlyif
2260: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2270: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2280: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2290: 65 6c 2d 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20  el-49..SELECT + 
22a0: 43 4f 55 4e 54 28 20 63 6f 6c 32 20 29 20 63 6f  COUNT( col2 ) co
22b0: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
22c0: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
22d0: 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  < NULL..----..0.
22e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2300: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2310: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2320: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2330: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2340: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2350: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2360: 2d 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  -49..SELECT + CO
2370: 55 4e 54 20 28 20 63 6f 6c 32 20 29 20 63 6f 6c  UNT ( col2 ) col
2380: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
2390: 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  or0 WHERE NULL <
23a0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
23b0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
23c0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
23d0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
23e0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
23f0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2400: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2410: 43 54 20 2d 20 41 56 47 20 28 20 2b 20 38 31 20  CT - AVG ( + 81 
2420: 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
2430: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
2440: 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32 20 2a 20 63  ol1 / - col2 * c
2450: 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
2460: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
2470: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2480: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32 35  CT DISTINCT + 25
2490: 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20   + - ( + col1 ) 
24a0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
24b0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 32 34  0..----..-56..24
24c0: 0d 0a 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..4....onlyif my
24d0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
24e0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
24f0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2500: 2d 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  -52..SELECT + CO
2510: 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  UNT( * ) AS col2
2520: 2c 20 36 37 20 41 53 20 63 6f 6c 31 20 46 52 4f  , 67 AS col1 FRO
2530: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab2..----..3.
2540: 0a 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .67....skipif my
2550: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2560: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
2570: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 0d  owsort label-52.
2580: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
2590: 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 36  ( * ) AS col2, 6
25a0: 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
25b0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 36 37  ab2..----..3..67
25c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
25d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
25e0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
25f0: 62 32 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28  b2 WHERE ( NOT (
2600: 20 4e 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20   NULL ) BETWEEN 
2610: 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 37 34 20  - + col0 * + 74 
2620: 2a 20 2b 20 39 39 20 2f 20 32 20 41 4e 44 20 28  * + 99 / 2 AND (
2630: 20 2d 20 2d 20 63 6f 6c 30 20 29 20 29 0d 0a 2d   - - col0 ) )..-
2640: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
2650: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2660: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2670: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2680: 35 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  54..SELECT + COU
2690: 4e 54 28 20 2a 20 29 20 2a 20 2b 20 36 33 20 41  NT( * ) * + 63 A
26a0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
26b0: 0d 0a 2d 2d 2d 2d 0d 0a 31 38 39 0d 0a 0d 0a 73  ..----..189....s
26c0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
26d0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
26e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
26f0: 62 65 6c 2d 35 34 0d 0a 53 45 4c 45 43 54 20 2b  bel-54..SELECT +
2700: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
2710: 20 36 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   63 AS col0 FROM
2720: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38 39   tab1..----..189
2730: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2740: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
2750: 6c 31 20 2d 20 2d 20 2b 20 63 6f 6c 31 20 41 53  l1 - - + col1 AS
2760: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2770: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
2780: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2790: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2d  t..SELECT col0 -
27a0: 20 2b 20 34 35 20 2b 20 2b 20 2b 20 63 6f 6c 30   + 45 + + + col0
27b0: 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   * + + col0 FROM
27c0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35   tab0..----..195
27d0: 0d 0a 37 36 31 31 0d 0a 39 34 36 31 0d 0a 0d 0a  ..7611..9461....
27e0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
27f0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2800: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2810: 72 74 20 6c 61 62 65 6c 2d 35 37 0d 0a 53 45 4c  rt label-57..SEL
2820: 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
2830: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2840: 20 2d 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54   - + col1 IS NOT
2850: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   NULL..----..3..
2860: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2870: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2880: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2890: 20 6c 61 62 65 6c 2d 35 37 0d 0a 53 45 4c 45 43   label-57..SELEC
28a0: 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
28b0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
28c0: 2d 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20  - + col1 IS NOT 
28d0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  NULL..----..3...
28e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28f0: 0d 0a 53 45 4c 45 43 54 20 2d 20 32 31 20 2b 20  ..SELECT - 21 + 
2900: 34 38 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  48 FROM tab1 AS 
2910: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a  cor0..----..27..
2920: 32 37 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  27..27....onlyif
2930: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2940: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2950: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2960: 65 6c 2d 35 39 0d 0a 53 45 4c 45 43 54 20 44 49  el-59..SELECT DI
2970: 53 54 49 4e 43 54 20 2b 20 38 36 20 2a 20 2d 20  STINCT + 86 * - 
2980: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  + COUNT( * ) col
2990: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
29a0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 0d  or0..----..-258.
29b0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
29c0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
29d0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
29e0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
29f0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2a00: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2a10: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2a20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a30: 2d 35 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -59..SELECT DIST
2a40: 49 4e 43 54 20 2b 20 38 36 20 2a 20 2d 20 2b 20  INCT + 86 * - + 
2a50: 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 31  COUNT ( * ) col1
2a60: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2a70: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 0d 0a  r0..----..-258..
2a80: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2a90: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2aa0: 4e 43 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  NCT - col0 AS co
2ab0: 6c 31 2c 20 2b 20 31 36 20 2a 20 2d 20 37 38 20  l1, + 16 * - 78 
2ac0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2ad0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2ae0: 0a 2d 35 31 0d 0a 2d 31 32 34 38 0d 0a 2d 38 35  .-51..-1248..-85
2af0: 0d 0a 2d 31 32 34 38 0d 0a 2d 39 31 0d 0a 2d 31  ..-1248..-91..-1
2b00: 32 34 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  248....query II 
2b10: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b20: 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20  + col1 + + col0 
2b30: 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20  * col1 AS col0, 
2b40: 36 35 20 2b 20 2d 20 2b 20 39 20 41 53 20 63 6f  65 + - + 9 AS co
2b50: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
2b60: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 30 0d  cor0..----..430.
2b70: 0a 35 36 0d 0a 34 33 32 34 0d 0a 35 36 0d 0a 37  .56..4324..56..7
2b80: 32 38 0d 0a 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  28..56....onlyif
2b90: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2ba0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2bb0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2bc0: 65 6c 2d 36 32 0d 0a 53 45 4c 45 43 54 20 2d 20  el-62..SELECT - 
2bd0: 2b 20 31 33 20 2b 20 2b 20 43 4f 55 4e 54 28 20  + 13 + + COUNT( 
2be0: 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
2bf0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
2c00: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2c10: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2c20: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2c30: 72 74 20 6c 61 62 65 6c 2d 36 32 0d 0a 53 45 4c  rt label-62..SEL
2c40: 45 43 54 20 2d 20 2b 20 31 33 20 2b 20 2b 20 43  ECT - + 13 + + C
2c50: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
2c60: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2c70: 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79  --..-10....query
2c80: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c90: 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2b 20  CT ALL col0 + + 
2ca0: 2d 20 28 20 30 20 29 20 2b 20 2b 20 2b 20 63 6f  - ( 0 ) + + + co
2cb0: 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63  l1 * + col2 AS c
2cc0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
2cd0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31   cor0..----..121
2ce0: 39 0d 0a 33 31 34 34 0d 0a 33 39 36 31 0d 0a 0d  9..3144..3961...
2cf0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d00: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2d10: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2d20: 6f 72 74 20 6c 61 62 65 6c 2d 36 34 0d 0a 53 45  ort label-64..SE
2d30: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49  LECT DISTINCT MI
2d40: 4e 28 20 35 32 20 29 20 2d 20 2b 20 38 30 20 41  N( 52 ) - + 80 A
2d50: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
2d60: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 0d 0a 73  ..----..-28....s
2d70: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2d80: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2d90: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2da0: 62 65 6c 2d 36 34 0d 0a 53 45 4c 45 43 54 20 44  bel-64..SELECT D
2db0: 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 35 32  ISTINCT MIN ( 52
2dc0: 20 29 20 2d 20 2b 20 38 30 20 41 53 20 63 6f 6c   ) - + 80 AS col
2dd0: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
2de0: 2d 0d 0a 2d 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-28....onlyif
2df0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2e00: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2e10: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2e20: 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 0d 0a 53  sort label-65..S
2e30: 45 4c 45 43 54 20 2d 20 2b 20 28 20 2b 20 43 41  ELECT - + ( + CA
2e40: 53 54 28 20 31 30 20 41 53 20 53 49 47 4e 45 44  ST( 10 AS SIGNED
2e50: 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
2e60: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2e70: 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 30 0d 0a  ----..-10..-10..
2e80: 2d 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -10....skipif my
2e90: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2ea0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2eb0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 0d 0a  wsort label-65..
2ec0: 53 45 4c 45 43 54 20 2d 20 2b 20 28 20 2b 20 43  SELECT - + ( + C
2ed0: 41 53 54 20 28 20 31 30 20 41 53 20 49 4e 54 45  AST ( 10 AS INTE
2ee0: 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 31 20  GER ) ) AS col1 
2ef0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2f00: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31  0..----..-10..-1
2f10: 30 0d 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79 20  0..-10....query 
2f20: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f30: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 35  T DISTINCT - - 5
2f40: 31 20 2a 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20  1 * col1 * col1 
2f50: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2f60: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2f70: 0a 31 31 32 36 35 39 0d 0a 31 32 37 35 0d 0a 39  .112659..1275..9
2f80: 39 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  996....onlyif my
2f90: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
2fa0: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
2fb0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2fc0: 74 20 6c 61 62 65 6c 2d 36 37 0d 0a 53 45 4c 45  t label-67..SELE
2fd0: 43 54 20 41 4c 4c 20 2b 20 33 33 20 44 49 56 20  CT ALL + 33 DIV 
2fe0: 2d 20 2d 20 32 39 20 46 52 4f 4d 20 74 61 62 30  - - 29 FROM tab0
2ff0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
3000: 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  1..1..1....skipi
3010: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
3020: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
3030: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
3040: 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  67..SELECT ALL +
3050: 20 33 33 20 2f 20 2d 20 2d 20 32 39 20 46 52 4f   33 / - - 29 FRO
3060: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
3070: 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d  ----..1..1..1...
3080: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
3090: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
30a0: 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
30b0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
30c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30d0: 62 65 6c 2d 36 38 0d 0a 53 45 4c 45 43 54 20 41  bel-68..SELECT A
30e0: 4c 4c 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2b 20  LL + SUM( ALL + 
30f0: 63 6f 6c 32 20 29 20 44 49 56 20 2d 20 38 37 20  col2 ) DIV - 87 
3100: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
3110: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
3120: 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-1....skipif my
3130: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
3140: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
3150: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 0d 0a  wsort label-68..
3160: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d  SELECT ALL + SUM
3170: 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20   ( ALL + col2 ) 
3180: 2f 20 2d 20 38 37 20 41 53 20 63 6f 6c 32 20 46  / - 87 AS col2 F
3190: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
31a0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 6f 6e  ..----..-1....on
31b0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
31c0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
31d0: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
31e0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
31f0: 2d 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -69..SELECT DIST
3200: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
3210: 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
3220: 49 4e 20 28 20 2b 20 2d 20 63 6f 6c 30 20 2a 20  IN ( + - col0 * 
3230: 2b 20 2b 20 32 30 20 2b 20 63 6f 6c 30 2c 20 2d  + + 20 + col0, -
3240: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
3250: 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d  IGNED ) )..----.
3260: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
3270: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
3280: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
3290: 6f 72 74 20 6c 61 62 65 6c 2d 36 39 0d 0a 53 45  ort label-69..SE
32a0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
32b0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
32c0: 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20  NULL NOT IN ( + 
32d0: 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 32 30 20  - col0 * + + 20 
32e0: 2b 20 63 6f 6c 30 2c 20 2d 20 43 41 53 54 20 28  + col0, - CAST (
32f0: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
3300: 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e   ) )..----....on
3310: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
3320: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
3330: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
3340: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
3350: 2d 37 30 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  -70..SELECT * FR
3360: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
3370: 54 20 2b 20 43 41 53 54 28 20 2b 20 2d 20 43 41  T + CAST( + - CA
3380: 53 54 28 20 2d 20 36 34 20 41 53 20 53 49 47 4e  ST( - 64 AS SIGN
3390: 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  ED ) AS SIGNED )
33a0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
33b0: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
33c0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
33d0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
33e0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 0d  owsort label-70.
33f0: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
3400: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
3410: 43 41 53 54 20 28 20 2b 20 2d 20 43 41 53 54 20  CAST ( + - CAST 
3420: 28 20 2d 20 36 34 20 41 53 20 49 4e 54 45 47 45  ( - 64 AS INTEGE
3430: 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  R ) AS INTEGER )
3440: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
3450: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
3460: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
3470: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
3480: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
3490: 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
34a0: 4d 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  MAX( ALL + col2 
34b0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
34c0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d  ab2..----..58...
34d0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34e0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3500: 6c 61 62 65 6c 2d 37 31 0d 0a 53 45 4c 45 43 54  label-71..SELECT
3510: 20 41 4c 4c 20 2b 20 4d 41 58 20 28 20 41 4c 4c   ALL + MAX ( ALL
3520: 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   + col2 ) AS col
3530: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
3540: 2d 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..58....onlyif 
3550: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
3560: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
3570: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3580: 6c 2d 37 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55  l-72..SELECT COU
3590: 4e 54 28 20 2a 20 29 20 2a 20 39 30 20 46 52 4f  NT( * ) * 90 FRO
35a0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 37  M tab2..----..27
35b0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
35c0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35d0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35e0: 6f 72 74 20 6c 61 62 65 6c 2d 37 32 0d 0a 53 45  ort label-72..SE
35f0: 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
3600: 20 2a 20 39 30 20 46 52 4f 4d 20 74 61 62 32 0d   * 90 FROM tab2.
3610: 0a 2d 2d 2d 2d 0d 0a 32 37 30 0d 0a 0d 0a 71 75  .----..270....qu
3620: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
3630: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
3640: 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
3650: 36 35 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  65 IS NOT NULL..
3660: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
3670: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3680: 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2b 20 36  DISTINCT + ( + 6
3690: 34 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  4 ) AS col1 FROM
36a0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d   tab0..----..64.
36b0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
36c0: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
36d0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
36e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36f0: 62 65 6c 2d 37 35 0d 0a 53 45 4c 45 43 54 20 63  bel-75..SELECT c
3700: 6f 6c 32 20 44 49 56 20 63 6f 6c 30 20 2a 20 2b  ol2 DIV col0 * +
3710: 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
3720: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
3730: 0a 2d 31 34 31 0d 0a 2d 39 39 0d 0a 30 0d 0a 0d  .-141..-99..0...
3740: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
3750: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
3760: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3770: 6c 61 62 65 6c 2d 37 35 0d 0a 53 45 4c 45 43 54  label-75..SELECT
3780: 20 63 6f 6c 32 20 2f 20 63 6f 6c 30 20 2a 20 2b   col2 / col0 * +
3790: 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
37a0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
37b0: 0a 2d 31 34 31 0d 0a 2d 39 39 0d 0a 30 0d 0a 0d  .-141..-99..0...
37c0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
37d0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
37e0: 43 54 20 2d 20 38 33 20 41 53 20 63 6f 6c 32 2c  CT - 83 AS col2,
37f0: 20 2b 20 35 34 20 46 52 4f 4d 20 74 61 62 31 20   + 54 FROM tab1 
3800: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d  cor0..----..-83.
3810: 0a 35 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .54....query II 
3820: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3830: 28 20 2b 20 28 20 63 6f 6c 32 20 29 20 29 2c 20  ( + ( col2 ) ), 
3840: 39 37 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  97 + + col1 FROM
3850: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
3860: 2d 2d 2d 0d 0a 35 39 0d 0a 31 30 32 0d 0a 36 38  ---..59..102..68
3870: 0d 0a 31 34 34 0d 0a 39 36 0d 0a 31 31 31 0d 0a  ..144..96..111..
3880: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3890: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  t..SELECT + - co
38a0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
38b0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
38c0: 20 4e 55 4c 4c 20 29 20 3e 3d 20 4e 55 4c 4c 0d   NULL ) >= NULL.
38d0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
38e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
38f0: 20 2d 20 2d 20 31 38 20 2d 20 2d 20 2b 20 28 20   - - 18 - - + ( 
3900: 36 35 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  65 ) AS col2 FRO
3910: 4d 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53  M tab2 cor0 CROS
3920: 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63  S JOIN tab1 AS c
3930: 6f 72 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e  or1 WHERE NULL >
3940: 20 38 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65   85..----....que
3950: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
3960: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
3970: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
3980: 4c 20 3e 3d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d  L >= + col2..---
3990: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
39a0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
39b0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
39c0: 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20  r0 WHERE + col2 
39d0: 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20  NOT IN ( + col1 
39e0: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
39f0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
3a00: 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
3a10: 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
3a20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
3a30: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
3a40: 20 31 37 20 2b 20 2b 20 33 36 20 46 52 4f 4d 20   17 + + 36 FROM 
3a50: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
3a60: 0a 35 33 0d 0a 35 33 0d 0a 35 33 0d 0a 0d 0a 71  .53..53..53....q
3a70: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
3a80: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
3a90: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
3aa0: 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 28 20   cor0 WHERE - ( 
3ab0: 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e 55  col2 ) IS NOT NU
3ac0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
3ad0: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
3ae0: 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
3af0: 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
3b00: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
3b10: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
3b20: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
3b30: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 0d 0a 53  sort label-84..S
3b40: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
3b50: 54 28 20 41 4c 4c 20 2d 20 28 20 63 6f 6c 32 20  T( ALL - ( col2 
3b60: 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ) ) FROM tab0 AS
3b70: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
3b80: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
3b90: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
3ba0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
3bb0: 20 6c 61 62 65 6c 2d 38 34 0d 0a 53 45 4c 45 43   label-84..SELEC
3bc0: 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20  T ALL + COUNT ( 
3bd0: 41 4c 4c 20 2d 20 28 20 63 6f 6c 32 20 29 20 29  ALL - ( col2 ) )
3be0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
3bf0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f  r0..----..3....o
3c00: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
3c10: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
3c20: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3c30: 74 20 6c 61 62 65 6c 2d 38 35 0d 0a 53 45 4c 45  t label-85..SELE
3c40: 43 54 20 2b 20 2d 20 30 20 2b 20 2d 20 2d 20 43  CT + - 0 + - - C
3c50: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
3c60: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
3c70: 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
3c80: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3c90: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
3ca0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 0d  owsort label-85.
3cb0: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 30 20 2b 20  .SELECT + - 0 + 
3cc0: 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - - COUNT ( * ) 
3cd0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
3ce0: 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
3cf0: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
3d00: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
3d10: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
3d20: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
3d30: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
3d40: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
3d50: 4c 4c 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  LL + + col0 + + 
3d60: 63 6f 6c 30 20 2d 20 2d 20 2d 20 63 6f 6c 30 20  col0 - - - col0 
3d70: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
3d80: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S cor0..----..51
3d90: 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79  ..85..91....only
3da0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
3db0: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
3dc0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
3dd0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 0d  owsort label-87.
3de0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3df0: 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 43 41   + col1 + - - CA
3e00: 53 54 28 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  ST( - - col1 AS 
3e10: 53 49 47 4e 45 44 20 29 20 2d 20 2d 20 31 35 20  SIGNED ) - - 15 
3e20: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
3e30: 0a 31 37 0d 0a 31 37 37 0d 0a 35 37 0d 0a 0d 0a  .17..177..57....
3e40: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3e50: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3e60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
3e70: 61 62 65 6c 2d 38 37 0d 0a 53 45 4c 45 43 54 20  abel-87..SELECT 
3e80: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
3e90: 2b 20 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 2d  + - - CAST ( - -
3ea0: 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
3eb0: 20 29 20 2d 20 2d 20 31 35 20 46 52 4f 4d 20 74   ) - - 15 FROM t
3ec0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 31  ab0..----..17..1
3ed0: 37 37 0d 0a 35 37 0d 0a 0d 0a 71 75 65 72 79 20  77..57....query 
3ee0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3ef0: 54 20 41 4c 4c 20 38 34 20 2a 20 63 6f 6c 30 20  T ALL 84 * col0 
3f00: 2a 20 2d 20 32 20 2b 20 2b 20 63 6f 6c 32 20 46  * - 2 + + col2 F
3f10: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
3f20: 2d 31 34 32 32 31 0d 0a 2d 31 35 32 32 30 0d 0a  -14221..-15220..
3f30: 2d 38 34 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49  -8472....query I
3f40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
3f50: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
3f60: 32 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  2 + + col2 AS co
3f70: 6c 32 2c 20 2d 20 31 37 20 2b 20 63 6f 6c 32 20  l2, - 17 + col2 
3f80: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
3f90: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 37 0d 0a  0..----..0..-7..
3fa0: 30 0d 0a 33 30 0d 0a 30 0d 0a 38 32 0d 0a 0d 0a  0..30..0..82....
3fb0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
3fc0: 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 2d 20  .SELECT - ( - - 
3fd0: 38 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  80 ) FROM tab2..
3fe0: 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 2d 38 30 0d 0a  ----..-80..-80..
3ff0: 2d 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -80....onlyif my
4000: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
4010: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
4020: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4030: 39 31 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58  91..SELECT - MAX
4040: 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 43 4f 55  ( col2 ) * + COU
4050: 4e 54 28 20 2d 20 35 36 20 29 20 63 6f 6c 30 20  NT( - 56 ) col0 
4060: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
4070: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 37 0d 0a 0d  0..----..-297...
4080: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4090: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
40a0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
40b0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
40c0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
40d0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
40e0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
40f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
4100: 31 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20  1..SELECT - MAX 
4110: 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 43 4f 55  ( col2 ) * + COU
4120: 4e 54 20 28 20 2d 20 35 36 20 29 20 63 6f 6c 30  NT ( - 56 ) col0
4130: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
4140: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 37 0d 0a  r0..----..-297..
4150: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4160: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
4170: 43 54 20 33 30 20 41 53 20 63 6f 6c 32 20 46 52  CT 30 AS col2 FR
4180: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
4190: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
41a0: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
41b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
41c0: 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 63 6f  .SELECT - ( + co
41d0: 6c 31 20 29 20 2d 20 2b 20 63 6f 6c 32 20 2a 20  l1 ) - + col2 * 
41e0: 2d 20 32 31 20 46 52 4f 4d 20 74 61 62 30 20 41  - 21 FROM tab0 A
41f0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38  S cor0..----..18
4200: 39 0d 0a 32 30 37 38 0d 0a 39 30 36 0d 0a 0d 0a  9..2078..906....
4210: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
4220: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2d 20 2d  .SELECT col2 - -
4230: 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20   + ( - + col2 ) 
4240: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
4250: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
4260: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .0..0..0....quer
4270: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
4280: 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  ECT - col2 AS co
4290: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
42a0: 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 3c 20  RE NOT + col1 < 
42b0: 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  - col0..----..-5
42c0: 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 71  9..-68..-96....q
42d0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
42e0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
42f0: 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2d 20  l1 * + + col0 - 
4300: 2d 20 63 6f 6c 32 2c 20 31 37 20 2a 20 33 33 20  - col2, 17 * 33 
4310: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
4320: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
4330: 0a 31 32 36 32 0d 0a 35 36 31 0d 0a 31 38 33 37  .1262..561..1837
4340: 0d 0a 35 36 31 0d 0a 31 39 36 0d 0a 35 36 31 0d  ..561..196..561.
4350: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4360: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
4370: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
4380: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 0d 0a  wsort label-97..
4390: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
43a0: 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 36 39 20  COUNT( * ) * 69 
43b0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
43c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 37 0d 0a 0d 0a  0..----..207....
43d0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
43e0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
43f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
4400: 61 62 65 6c 2d 39 37 0d 0a 53 45 4c 45 43 54 20  abel-97..SELECT 
4410: 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
4420: 20 2a 20 29 20 2a 20 36 39 20 46 52 4f 4d 20 74   * ) * 69 FROM t
4430: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
4440: 2d 0d 0a 32 30 37 0d 0a 0d 0a 71 75 65 72 79 20  -..207....query 
4450: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4460: 54 20 41 4c 4c 20 2d 20 36 35 20 2a 20 2d 20 2d  T ALL - 65 * - -
4470: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
4480: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
4490: 33 30 35 35 0d 0a 2d 36 34 33 35 0d 0a 2d 36 35  3055..-6435..-65
44a0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  0....skipif post
44b0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
44c0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
44d0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
44e0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
44f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4500: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 31 36  ELECT ALL - + 16
4510: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
4520: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
4530: 31 36 0d 0a 2d 31 36 0d 0a 2d 31 36 0d 0a 0d 0a  16..-16..-16....
4540: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
4550: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
4560: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
4570: 72 74 20 6c 61 62 65 6c 2d 31 30 30 0d 0a 53 45  rt label-100..SE
4580: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
4590: 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 37  COUNT( * ) * + 7
45a0: 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
45b0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
45c0: 2d 0d 0a 32 33 37 0d 0a 0d 0a 73 6b 69 70 69 66  -..237....skipif
45d0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
45e0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
45f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
4600: 30 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  00..SELECT DISTI
4610: 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  NCT + COUNT ( * 
4620: 29 20 2a 20 2b 20 37 39 20 41 53 20 63 6f 6c 30  ) * + 79 AS col0
4630: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
4640: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 37 0d 0a 0d  r0..----..237...
4650: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4660: 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 39 36 20  ..SELECT - - 96 
4670: 2a 20 2d 20 2d 20 31 34 20 2a 20 2b 20 34 37 20  * - - 14 * + 47 
4680: 2a 20 2b 20 2d 20 36 34 20 46 52 4f 4d 20 74 61  * + - 64 FROM ta
4690: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
46a0: 0d 0a 2d 34 30 34 32 37 35 32 0d 0a 2d 34 30 34  ..-4042752..-404
46b0: 32 37 35 32 0d 0a 2d 34 30 34 32 37 35 32 0d 0a  2752..-4042752..
46c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
46d0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
46e0: 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
46f0: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
4700: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
4710: 61 62 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43 54  abel-102..SELECT
4720: 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54   + SUM( DISTINCT
4730: 20 2b 20 2d 20 34 38 20 29 20 44 49 56 20 28 20   + - 48 ) DIV ( 
4740: 2d 20 33 39 20 29 20 2a 20 39 33 20 41 53 20 63  - 39 ) * 93 AS c
4750: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol2 FROM tab0 co
4760: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a  r0..----..93....
4770: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
4780: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
4790: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
47a0: 61 62 65 6c 2d 31 30 32 0d 0a 53 45 4c 45 43 54  abel-102..SELECT
47b0: 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   + SUM ( DISTINC
47c0: 54 20 2b 20 2d 20 34 38 20 29 20 2f 20 28 20 2d  T + - 48 ) / ( -
47d0: 20 33 39 20 29 20 2a 20 39 33 20 41 53 20 63 6f   39 ) * 93 AS co
47e0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l2 FROM tab0 cor
47f0: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 6f  0..----..93....o
4800: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
4810: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
4820: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
4830: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4840: 31 30 33 0d 0a 53 45 4c 45 43 54 20 38 36 20 2f  103..SELECT 86 /
4850: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
4860: 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 30  IGNED ) + + col0
4870: 20 2a 20 2b 20 31 35 20 46 52 4f 4d 20 74 61 62   * + 15 FROM tab
4880: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
4890: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
48a0: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
48b0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
48c0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
48d0: 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 0d 0a 53  ort label-103..S
48e0: 45 4c 45 43 54 20 38 36 20 2f 20 43 41 53 54 20  ELECT 86 / CAST 
48f0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
4900: 52 20 29 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b  R ) + + col0 * +
4910: 20 31 35 20 46 52 4f 4d 20 74 61 62 32 20 41 53   15 FROM tab2 AS
4920: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
4930: 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
4940: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
4950: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
4960: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
4970: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
4980: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4990: 62 65 6c 2d 31 30 34 0d 0a 53 45 4c 45 43 54 20  bel-104..SELECT 
49a0: 41 4c 4c 20 53 55 4d 28 20 44 49 53 54 49 4e 43  ALL SUM( DISTINC
49b0: 54 20 2d 20 43 41 53 54 28 20 35 39 20 41 53 20  T - CAST( 59 AS 
49c0: 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20  SIGNED ) ) FROM 
49d0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
49e0: 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69  --..-59....skipi
49f0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
4a00: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
4a10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4a20: 31 30 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  104..SELECT ALL 
4a30: 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d  SUM ( DISTINCT -
4a40: 20 43 41 53 54 20 28 20 35 39 20 41 53 20 49 4e   CAST ( 59 AS IN
4a50: 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74  TEGER ) ) FROM t
4a60: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
4a70: 2d 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72 79 20  -..-59....query 
4a80: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
4a90: 54 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c  T - - col2 * col
4aa0: 32 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  2 * - col1 FROM 
4ab0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
4ac0: 2d 2d 0d 0a 2d 31 32 33 32 30 30 0d 0a 2d 32 32  --..-123200..-22
4ad0: 35 33 38 38 0d 0a 2d 32 36 39 37 39 0d 0a 0d 0a  5388..-26979....
4ae0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
4af0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
4b00: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
4b10: 72 74 20 6c 61 62 65 6c 2d 31 30 36 0d 0a 53 45  rt label-106..SE
4b20: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
4b30: 36 38 20 2a 20 2d 20 2b 20 28 20 2d 20 43 4f 55  68 * - + ( - COU
4b40: 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c  NT( * ) ) AS col
4b50: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
4b60: 2d 0d 0a 32 30 34 0d 0a 0d 0a 73 6b 69 70 69 66  -..204....skipif
4b70: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
4b80: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
4b90: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
4ba0: 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  06..SELECT DISTI
4bb0: 4e 43 54 20 2b 20 36 38 20 2a 20 2d 20 2b 20 28  NCT + 68 * - + (
4bc0: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   - COUNT ( * ) )
4bd0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
4be0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34 0d 0a 0d  b1..----..204...
4bf0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
4c00: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
4c10: 43 54 20 2b 20 28 20 2d 20 33 37 20 29 20 41 53  CT + ( - 37 ) AS
4c20: 20 63 6f 6c 31 2c 20 32 35 20 46 52 4f 4d 20 74   col1, 25 FROM t
4c30: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a  ab0..----..-37..
4c40: 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  25....query I ro
4c50: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
4c60: 4c 20 2b 20 28 20 35 36 20 29 20 2a 20 2d 20 63  L + ( 56 ) * - c
4c70: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
4c80: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
4c90: 0d 0a 2d 33 33 30 34 0d 0a 2d 33 38 30 38 0d 0a  ..-3304..-3808..
4ca0: 2d 35 33 37 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -5376....query I
4cb0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4cc0: 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
4cd0: 20 2b 20 2d 20 33 36 20 41 53 20 63 6f 6c 30 20   + - 36 AS col0 
4ce0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
4cf0: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 33 32 0d  0..----..23..32.
4d00: 0a 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .60....query I r
4d10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
4d20: 49 53 54 49 4e 43 54 20 2b 20 2b 20 33 31 20 2a  ISTINCT + + 31 *
4d30: 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
4d40: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
4d50: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 34 30  or0..----..-1240
4d60: 0d 0a 2d 31 37 39 38 0d 0a 2d 37 31 33 0d 0a 0d  ..-1798..-713...
4d70: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
4d80: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
4d90: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4da0: 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53  ort label-111..S
4db0: 45 4c 45 43 54 20 41 4c 4c 20 39 38 20 2b 20 2d  ELECT ALL 98 + -
4dc0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
4dd0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
4de0: 2d 2d 2d 0d 0a 39 35 0d 0a 0d 0a 73 6b 69 70 69  ---..95....skipi
4df0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
4e00: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
4e10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4e20: 31 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  111..SELECT ALL 
4e30: 39 38 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  98 + - COUNT ( *
4e40: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
4e50: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 35 0d 0a  cor0..----..95..
4e60: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
4e70: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
4e80: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
4e90: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 0d 0a  sort label-112..
4ea0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
4eb0: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d  - COUNT( * ) + -
4ec0: 20 2d 20 28 20 2d 20 32 32 20 29 20 46 52 4f 4d   - ( - 22 ) FROM
4ed0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
4ee0: 2d 2d 2d 0d 0a 2d 32 35 0d 0a 0d 0a 73 6b 69 70  ---..-25....skip
4ef0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4f00: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4f10: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4f20: 2d 31 31 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -112..SELECT DIS
4f30: 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
4f40: 2a 20 29 20 2b 20 2d 20 2d 20 28 20 2d 20 32 32  * ) + - - ( - 22
4f50: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
4f60: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d  cor0..----..-25.
4f70: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4f80: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
4f90: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
4fa0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 0d  wsort label-113.
4fb0: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e  .SELECT + - COUN
4fc0: 54 28 20 2a 20 29 20 2a 20 2d 20 28 20 43 4f 55  T( * ) * - ( COU
4fd0: 4e 54 28 20 2a 20 29 20 29 20 2b 20 43 4f 55 4e  NT( * ) ) + COUN
4fe0: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
4ff0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
5000: 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b 69 70 69  ---..12....skipi
5010: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5020: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
5030: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5040: 31 31 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  113..SELECT + - 
5050: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
5060: 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
5070: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
5080: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
5090: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a  cor0..----..12..
50a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
50b0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b  t..SELECT col1 +
50c0: 20 2b 20 2b 20 31 31 20 2b 20 2b 20 63 6f 6c 32   + + 11 + + col2
50d0: 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * + col0 AS col
50e0: 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
50f0: 2d 0d 0a 34 39 32 31 0d 0a 35 30 33 31 0d 0a 36  -..4921..5031..6
5100: 32 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  246....query I r
5110: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
5120: 49 53 54 49 4e 43 54 20 2b 20 31 37 20 41 53 20  ISTINCT + 17 AS 
5130: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57  col1 FROM tab0 W
5140: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
5150: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
5160: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
5170: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
5180: 2b 20 34 36 20 2a 20 36 36 20 46 52 4f 4d 20 74  + 46 * 66 FROM t
5190: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 30 33 36 0d  ab2..----..3036.
51a0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
51b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
51c0: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
51d0: 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63 6f  1 WHERE NOT ( co
51e0: 6c 31 20 2b 20 39 36 20 29 20 3c 20 2d 20 28 20  l1 + 96 ) < - ( 
51f0: 28 20 33 33 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( 33 ) )..----..
5200: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
5210: 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
5220: 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
5230: 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49  4cad....query II
5240: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5250: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
5260: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
5270: 20 3c 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   < - col0 * + co
5280: 6c 30 20 2d 20 2b 20 39 34 20 2b 20 2b 20 2b 20  l0 - + 94 + + + 
5290: 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 31 20 2a 20  col2 / - col1 * 
52a0: 2b 20 35 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  + 54..----....qu
52b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
52c0: 45 4c 45 43 54 20 2d 20 28 20 2d 20 39 34 20 29  ELECT - ( - 94 )
52d0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
52e0: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
52f0: 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57   - col0 NOT BETW
5300: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63  EEN NULL AND + c
5310: 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
5320: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5330: 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20 39  LECT ALL + ( + 9
5340: 33 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  3 ) FROM tab0 AS
5350: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d   cor0..----..93.
5360: 0a 39 33 0d 0a 39 33 0d 0a 0d 0a 6f 6e 6c 79 69  .93..93....onlyi
5370: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
5380: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
5390: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
53a0: 61 62 65 6c 2d 31 32 31 0d 0a 53 45 4c 45 43 54  abel-121..SELECT
53b0: 20 36 30 20 2a 20 2b 20 4d 49 4e 28 20 2d 20 63   60 * + MIN( - c
53c0: 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d  ol0 ) AS col1, -
53d0: 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 31   COUNT( * ) col1
53e0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
53f0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 30 30 0d  r0..----..-4500.
5400: 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
5410: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
5420: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
5430: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
5440: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
5450: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
5460: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
5470: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
5480: 6c 61 62 65 6c 2d 31 32 31 0d 0a 53 45 4c 45 43  label-121..SELEC
5490: 54 20 36 30 20 2a 20 2b 20 4d 49 4e 20 28 20 2d  T 60 * + MIN ( -
54a0: 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 2c   col0 ) AS col1,
54b0: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63   - COUNT ( * ) c
54c0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
54d0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35   cor0..----..-45
54e0: 30 30 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  00..-3....onlyif
54f0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
5500: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
5510: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5520: 65 6c 2d 31 32 32 0d 0a 53 45 4c 45 43 54 20 2d  el-122..SELECT -
5530: 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c 32   + MIN( ALL col2
5540: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
5550: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
5560: 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73 6b 69 70 69  --..-10....skipi
5570: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5580: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
5590: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
55a0: 31 32 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  122..SELECT - + 
55b0: 4d 49 4e 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29  MIN ( ALL col2 )
55c0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
55d0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
55e0: 0d 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-10....query I
55f0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5600: 54 20 2d 20 34 37 20 41 53 20 63 6f 6c 31 2c 20  T - 47 AS col1, 
5610: 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  - col1 FROM tab0
5620: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
5630: 2d 34 37 0d 0a 2d 31 0d 0a 2d 34 37 0d 0a 2d 32  -47..-1..-47..-2
5640: 31 0d 0a 2d 34 37 0d 0a 2d 38 31 0d 0a 0d 0a 6f  1..-47..-81....o
5650: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
5660: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
5670: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5680: 74 20 6c 61 62 65 6c 2d 31 32 34 0d 0a 53 45 4c  t label-124..SEL
5690: 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
56a0: 20 2a 20 29 20 2a 20 2b 20 33 32 20 2d 20 2b 20   * ) * + 32 - + 
56b0: 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 38  COUNT( * ) + + 8
56c0: 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  8 AS col2 FROM t
56d0: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
56e0: 45 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  E col1 IS NULL..
56f0: 2d 2d 2d 2d 0d 0a 38 38 0d 0a 0d 0a 73 6b 69 70  ----..88....skip
5700: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
5710: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
5720: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5730: 2d 31 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -124..SELECT ALL
5740: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
5750: 20 2b 20 33 32 20 2d 20 2b 20 43 4f 55 4e 54 20   + 32 - + COUNT 
5760: 28 20 2a 20 29 20 2b 20 2b 20 38 38 20 41 53 20  ( * ) + + 88 AS 
5770: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
5780: 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
5790: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
57a0: 0a 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .88....onlyif my
57b0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
57c0: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
57d0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
57e0: 72 74 20 6c 61 62 65 6c 2d 31 32 35 0d 0a 53 45  rt label-125..SE
57f0: 4c 45 43 54 20 41 4c 4c 20 2b 20 37 38 20 2b 20  LECT ALL + 78 + 
5800: 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
5810: 44 45 43 49 4d 41 4c 20 29 20 46 52 4f 4d 20 74  DECIMAL ) FROM t
5820: 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
5830: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
5840: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
5850: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
5860: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
5870: 72 74 20 6c 61 62 65 6c 2d 31 32 35 0d 0a 53 45  rt label-125..SE
5880: 4c 45 43 54 20 41 4c 4c 20 2b 20 37 38 20 2b 20  LECT ALL + 78 + 
5890: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
58a0: 20 52 45 41 4c 20 29 20 46 52 4f 4d 20 74 61 62   REAL ) FROM tab
58b0: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  0 cor0..----..NU
58c0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
58d0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
58e0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
58f0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
5900: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5910: 65 6c 2d 31 32 36 0d 0a 53 45 4c 45 43 54 20 43  el-126..SELECT C
5920: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
5930: 4e 45 44 20 29 20 2d 20 63 6f 6c 32 20 41 53 20  NED ) - col2 AS 
5940: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
5950: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
5960: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
5970: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
5980: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
5990: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
59a0: 32 36 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  26..SELECT CAST 
59b0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
59c0: 52 20 29 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  R ) - col2 AS co
59d0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
59e0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
59f0: 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
5a00: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
5a10: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
5a20: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
5a30: 6c 2d 31 32 37 0d 0a 53 45 4c 45 43 54 20 34 32  l-127..SELECT 42
5a40: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 32   + COUNT( * ), 2
5a50: 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  5 AS col1 FROM t
5a60: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 32  ab2..----..45..2
5a70: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
5a80: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
5a90: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
5aa0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 0d 0a  sort label-127..
5ab0: 53 45 4c 45 43 54 20 34 32 20 2b 20 43 4f 55 4e  SELECT 42 + COUN
5ac0: 54 20 28 20 2a 20 29 2c 20 32 35 20 41 53 20 63  T ( * ), 25 AS c
5ad0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
5ae0: 2d 2d 2d 0d 0a 34 35 0d 0a 32 35 0d 0a 0d 0a 71  ---..45..25....q
5af0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
5b00: 53 45 4c 45 43 54 20 2b 20 33 39 20 2a 20 2b 20  SELECT + 39 * + 
5b10: 39 36 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  96 + - col2 FROM
5b20: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
5b30: 2d 2d 2d 0d 0a 33 36 34 35 0d 0a 33 36 39 37 0d  ---..3645..3697.
5b40: 0a 33 37 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .3734....onlyif 
5b50: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
5b60: 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
5b70: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
5b80: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
5b90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 39 0d  wsort label-129.
5ba0: 0a 53 45 4c 45 43 54 20 2d 20 2d 20 4d 41 58 28  .SELECT - - MAX(
5bb0: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
5bc0: 20 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d   SIGNED ) ) FROM
5bd0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
5be0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
5bf0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
5c00: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
5c10: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5c20: 6c 2d 31 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-129..SELECT - 
5c30: 2d 20 4d 41 58 20 28 20 2b 20 43 41 53 54 20 28  - MAX ( + CAST (
5c40: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
5c50: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   ) ) FROM tab0 A
5c60: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
5c70: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
5c80: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
5c90: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 41 53  STINCT + col0 AS
5ca0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
5cb0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
5cc0: 54 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c 0d 0a 2d  T col1 > NULL..-
5cd0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
5ce0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
5cf0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
5d00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5d10: 31 33 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  131..SELECT DIST
5d20: 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  INCT - COUNT( * 
5d30: 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) * - COUNT( * )
5d40: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
5d50: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73  b2..----..9....s
5d60: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
5d70: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
5d80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5d90: 62 65 6c 2d 31 33 31 0d 0a 53 45 4c 45 43 54 20  bel-131..SELECT 
5da0: 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
5db0: 20 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54   ( * ) * - COUNT
5dc0: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
5dd0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
5de0: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
5df0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
5e00: 20 63 6f 6c 31 20 2d 20 2b 20 37 34 20 2a 20 2b   col1 - + 74 * +
5e10: 20 2b 20 38 34 20 46 52 4f 4d 20 74 61 62 32 20   + 84 FROM tab2 
5e20: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
5e30: 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
5e40: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
5e50: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
5e60: 31 38 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  18 * + col0 FROM
5e70: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36   tab0..----..156
5e80: 36 0d 0a 31 37 34 36 0d 0a 32 37 30 0d 0a 0d 0a  6..1746..270....
5e90: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
5ea0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
5eb0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5ec0: 72 74 20 6c 61 62 65 6c 2d 31 33 34 0d 0a 53 45  rt label-134..SE
5ed0: 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
5ee0: 2d 20 37 38 20 29 20 46 52 4f 4d 20 74 61 62 31  - 78 ) FROM tab1
5ef0: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
5f00: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
5f10: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
5f20: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5f30: 6c 2d 31 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-134..SELECT AL
5f40: 4c 20 43 4f 55 4e 54 20 28 20 2d 20 37 38 20 29  L COUNT ( - 78 )
5f50: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
5f60: 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
5f70: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
5f80: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
5f90: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5fa0: 31 33 35 0d 0a 53 45 4c 45 43 54 20 2d 20 37 34  135..SELECT - 74
5fb0: 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   * + COUNT( * ) 
5fc0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
5fd0: 0a 2d 32 32 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-222....skipif 
5fe0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
5ff0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
6000: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
6010: 35 0d 0a 53 45 4c 45 43 54 20 2d 20 37 34 20 2a  5..SELECT - 74 *
6020: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
6030: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
6040: 2d 32 32 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -222....query II
6050: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6060: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
6070: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 35 33  0 WHERE NOT - 53
6080: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
6090: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
60a0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
60b0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44  : SIGNED type: D
60c0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
60d0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
60e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
60f0: 2d 31 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -137..SELECT DIS
6100: 54 49 4e 43 54 20 43 41 53 54 28 20 2b 20 28 20  TINCT CAST( + ( 
6110: 2b 20 63 6f 6c 31 20 29 20 41 53 20 53 49 47 4e  + col1 ) AS SIGN
6120: 45 44 20 29 20 44 49 56 20 2b 20 63 6f 6c 30 20  ED ) DIV + col0 
6130: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
6140: 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..1....skipif 
6150: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
6160: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
6170: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
6180: 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
6190: 43 54 20 43 41 53 54 20 28 20 2b 20 28 20 2b 20  CT CAST ( + ( + 
61a0: 63 6f 6c 31 20 29 20 41 53 20 49 4e 54 45 47 45  col1 ) AS INTEGE
61b0: 52 20 29 20 2f 20 2b 20 63 6f 6c 30 20 46 52 4f  R ) / + col0 FRO
61c0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
61d0: 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  .1....query II r
61e0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
61f0: 20 36 38 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 34   68 + + col0 - 4
6200: 31 2c 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20  1, col0 AS col1 
6210: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
6220: 0a 31 31 34 0d 0a 38 37 0d 0a 31 32 34 0d 0a 39  .114..87..124..9
6230: 37 0d 0a 34 32 0d 0a 31 35 0d 0a 0d 0a 6f 6e 6c  7..42..15....onl
6240: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
6250: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
6260: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
6270: 6c 61 62 65 6c 2d 31 33 39 0d 0a 53 45 4c 45 43  label-139..SELEC
6280: 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a  T ALL + COUNT( *
6290: 20 29 20 2a 20 2b 20 2b 20 37 34 20 41 53 20 63   ) * + + 74 AS c
62a0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
62b0: 2d 2d 2d 0d 0a 32 32 32 0d 0a 0d 0a 73 6b 69 70  ---..222....skip
62c0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
62d0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
62e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
62f0: 2d 31 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -139..SELECT ALL
6300: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
6310: 20 2b 20 2b 20 37 34 20 41 53 20 63 6f 6c 32 20   + + 74 AS col2 
6320: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
6330: 0a 32 32 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .222....query I 
6340: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6350: 44 49 53 54 49 4e 43 54 20 2b 20 37 20 2b 20 2d  DISTINCT + 7 + -
6360: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
6370: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
6380: 33 0d 0a 2d 34 30 0d 0a 2d 39 32 0d 0a 0d 0a 6f  3..-40..-92....o
6390: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
63a0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
63b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
63c0: 74 20 6c 61 62 65 6c 2d 31 34 31 0d 0a 53 45 4c  t label-141..SEL
63d0: 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
63e0: 20 2b 20 37 31 20 46 52 4f 4d 20 74 61 62 30 20   + 71 FROM tab0 
63f0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  AS cor0..----..6
6400: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
6410: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
6420: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
6430: 6f 72 74 20 6c 61 62 65 6c 2d 31 34 31 0d 0a 53  ort label-141..S
6440: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
6450: 2a 20 29 20 2b 20 37 31 20 46 52 4f 4d 20 74 61  * ) + 71 FROM ta
6460: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
6470: 0d 0a 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..68....onlyif m
6480: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
6490: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
64a0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
64b0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
64c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 32 0d  wsort label-142.
64d0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
64e0: 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  ( COUNT( * ) AS 
64f0: 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 43 4f 55  SIGNED ) + - COU
6500: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c  NT( * ) AS col1,
6510: 20 2b 20 38 33 20 46 52 4f 4d 20 74 61 62 30 20   + 83 FROM tab0 
6520: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 38  cor0..----..0..8
6530: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
6540: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
6550: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
6560: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 32 0d 0a  sort label-142..
6570: 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20  SELECT ALL CAST 
6580: 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  ( COUNT ( * ) AS
6590: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 43   INTEGER ) + - C
65a0: 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
65b0: 6c 31 2c 20 2b 20 38 33 20 46 52 4f 4d 20 74 61  l1, + 83 FROM ta
65c0: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  b0 cor0..----..0
65d0: 0d 0a 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..83....query I 
65e0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
65f0: 41 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2d  ALL - + col2 + -
6600: 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   ( col0 ) FROM t
6610: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
6620: 2d 0d 0a 2d 31 39 36 0d 0a 2d 36 32 0d 0a 2d 39  -..-196..-62..-9
6630: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
6640: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
6650: 20 63 6f 6c 31 20 2a 20 2d 20 37 31 20 2b 20 2d   col1 * - 71 + -
6660: 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 41   + col1 * col2 A
6670: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
6680: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 39 34 0d 0a 2d  ..----..-4794..-
6690: 38 35 34 37 0d 0a 2d 38 36 34 33 0d 0a 0d 0a 6f  8547..-8643....o
66a0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
66b0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
66c0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
66d0: 74 20 6c 61 62 65 6c 2d 31 34 35 0d 0a 53 45 4c  t label-145..SEL
66e0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
66f0: 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
6700: 31 20 46 52 4f 4d 20 28 20 74 61 62 32 20 41 53  1 FROM ( tab2 AS
6710: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
6720: 20 74 61 62 32 20 41 53 20 63 6f 72 31 20 29 0d   tab2 AS cor1 ).
6730: 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70  .----..9....skip
6740: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
6750: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
6760: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6770: 2d 31 34 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -145..SELECT DIS
6780: 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  TINCT + COUNT ( 
6790: 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
67a0: 20 28 20 74 61 62 32 20 41 53 20 63 6f 72 30 20   ( tab2 AS cor0 
67b0: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
67c0: 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d  AS cor1 )..----.
67d0: 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .9....query I ro
67e0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
67f0: 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
6800: 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20  tab1 cor0 WHERE 
6810: 2d 20 63 6f 6c 31 20 2d 20 2d 20 35 31 20 49 53  - col1 - - 51 IS
6820: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
6830: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
6840: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
6850: 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20  tab2 cor0 WHERE 
6860: 2b 20 37 30 20 2a 20 2d 20 63 6f 6c 31 20 49 53  + 70 * - col1 IS
6870: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
6880: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
6890: 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
68a0: 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
68b0: 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
68c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
68d0: 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 33 38 20 2d   + col0 + - 38 -
68e0: 20 2b 20 2d 20 38 36 20 46 52 4f 4d 20 74 61 62   + - 86 FROM tab
68f0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
6900: 0a 31 33 33 0d 0a 31 33 39 0d 0a 39 39 0d 0a 0d  .133..139..99...
6910: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
6920: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
6930: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
6940: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
6950: 20 34 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   43 IS NULL..---
6960: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
6970: 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
6980: 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
6990: 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79  62d0a49....query
69a0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
69b0: 43 54 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c 30  CT - col0 + col0
69c0: 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - - col0 FROM t
69d0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
69e0: 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d  -..46..64..75...
69f0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6a00: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
6a10: 6f 6c 31 20 2a 20 2b 20 2b 20 36 37 20 2b 20 2d  ol1 * + + 67 + -
6a20: 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
6a30: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
6a40: 0a 33 31 30 32 0d 0a 33 33 30 0d 0a 39 32 34 0d  .3102..330..924.
6a50: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
6a60: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
6a70: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
6a80: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
6a90: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
6aa0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6ab0: 45 43 54 20 2d 20 2b 20 36 31 20 2b 20 37 38 20  ECT - + 61 + 78 
6ac0: 2d 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d  - col1 col0 FROM
6ad0: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
6ae0: 0d 0a 2d 33 34 0d 0a 2d 35 30 0d 0a 2d 36 30 0d  ..-34..-50..-60.
6af0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
6b00: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
6b10: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
6b20: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
6b30: 32 37 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 35  27 NOT BETWEEN 5
6b40: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
6b50: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
6b60: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
6b70: 30 20 2a 20 2b 20 2d 20 36 36 20 2a 20 2d 20 63  0 * + - 66 * - c
6b80: 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 2b  ol0 + + + col1 +
6b90: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
6ba0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 37  cor0..----..-147
6bb0: 32 32 0d 0a 2d 34 39 39 35 32 33 0d 0a 2d 36 32  22..-499523..-62
6bc0: 30 38 39 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0894....onlyif m
6bd0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
6be0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
6bf0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6c00: 2d 31 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -155..SELECT DIS
6c10: 54 49 4e 43 54 20 4d 49 4e 28 20 39 20 29 20 2d  TINCT MIN( 9 ) -
6c20: 20 2d 20 2d 20 33 38 20 46 52 4f 4d 20 74 61 62   - - 38 FROM tab
6c30: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 0d 0a 0d 0a  2..----..-29....
6c40: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
6c50: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
6c60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
6c70: 61 62 65 6c 2d 31 35 35 0d 0a 53 45 4c 45 43 54  abel-155..SELECT
6c80: 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20   DISTINCT MIN ( 
6c90: 39 20 29 20 2d 20 2d 20 2d 20 33 38 20 46 52 4f  9 ) - - - 38 FRO
6ca0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab2..----..-2
6cb0: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
6cc0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
6cd0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
6ce0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
6cf0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
6d00: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
6d10: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6d20: 6c 2d 31 35 36 0d 0a 53 45 4c 45 43 54 20 2b 20  l-156..SELECT + 
6d30: 2d 20 28 20 2b 20 2b 20 28 20 43 4f 55 4e 54 28  - ( + + ( COUNT(
6d40: 20 2a 20 29 20 29 20 29 20 44 49 56 20 2b 20 37   * ) ) ) DIV + 7
6d50: 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
6d60: 61 62 32 20 57 48 45 52 45 20 2b 20 43 41 53 54  ab2 WHERE + CAST
6d70: 28 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47 4e  ( + col1 AS SIGN
6d80: 45 44 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c  ED ) BETWEEN NUL
6d90: 4c 20 41 4e 44 20 2d 20 2b 20 43 41 53 54 28 20  L AND - + CAST( 
6da0: 2d 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  - + col0 AS SIGN
6db0: 45 44 20 29 20 2a 20 28 20 2d 20 2b 20 28 20 2d  ED ) * ( - + ( -
6dc0: 20 2d 20 63 6f 6c 32 20 29 20 29 20 2b 20 2d 20   - col2 ) ) + - 
6dd0: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  col2..----..0...
6de0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
6df0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
6e00: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
6e10: 6c 61 62 65 6c 2d 31 35 36 0d 0a 53 45 4c 45 43  label-156..SELEC
6e20: 54 20 2b 20 2d 20 28 20 2b 20 2b 20 28 20 43 4f  T + - ( + + ( CO
6e30: 55 4e 54 20 28 20 2a 20 29 20 29 20 29 20 2f 20  UNT ( * ) ) ) / 
6e40: 2b 20 37 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 78 AS col0 FRO
6e50: 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 43  M tab2 WHERE + C
6e60: 41 53 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20  AST ( + col1 AS 
6e70: 49 4e 54 45 47 45 52 20 29 20 42 45 54 57 45 45  INTEGER ) BETWEE
6e80: 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 2b 20 43  N NULL AND - + C
6e90: 41 53 54 20 28 20 2d 20 2b 20 63 6f 6c 30 20 41  AST ( - + col0 A
6ea0: 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 28 20  S INTEGER ) * ( 
6eb0: 2d 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29  - + ( - - col2 )
6ec0: 20 29 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d   ) + - col2..---
6ed0: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
6ee0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6ef0: 41 4c 4c 20 2d 20 41 56 47 20 28 20 44 49 53 54  ALL - AVG ( DIST
6f00: 49 4e 43 54 20 33 32 20 29 20 46 52 4f 4d 20 74  INCT 32 ) FROM t
6f10: 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  ab0 WHERE NULL <
6f20: 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  > NULL..----..NU
6f30: 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
6f40: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
6f50: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
6f60: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
6f70: 35 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  58..SELECT COUNT
6f80: 28 20 2a 20 29 20 2a 20 2b 20 38 39 20 41 53 20  ( * ) * + 89 AS 
6f90: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
6fa0: 2d 2d 2d 2d 0d 0a 32 36 37 0d 0a 0d 0a 73 6b 69  ----..267....ski
6fb0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6fc0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6fd0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6fe0: 6c 2d 31 35 38 0d 0a 53 45 4c 45 43 54 20 43 4f  l-158..SELECT CO
6ff0: 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 38 39  UNT ( * ) * + 89
7000: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
7010: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 36 37 0d 0a 0d  b2..----..267...
7020: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
7030: 74 0d 0a 53 45 4c 45 43 54 20 32 35 2c 20 63 6f  t..SELECT 25, co
7040: 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
7050: 2d 2d 0d 0a 32 35 0d 0a 32 33 0d 0a 32 35 0d 0a  --..25..23..25..
7060: 34 30 0d 0a 32 35 0d 0a 35 38 0d 0a 0d 0a 71 75  40..25..58....qu
7070: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
7080: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
7090: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
70a0: 52 45 20 63 6f 6c 32 20 2f 20 2b 20 32 35 20 3e  RE col2 / + 25 >
70b0: 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
70c0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
70d0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
70e0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
70f0: 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 42 45 54  NOT ( NULL ) BET
7100: 57 45 45 4e 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  WEEN + col2 * - 
7110: 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  col2 AND NULL..-
7120: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
7130: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
7140: 4c 4c 20 2d 20 31 32 20 2d 20 2d 20 2d 20 36 39  LL - 12 - - - 69
7150: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
7160: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 2d  b1..----..-81..-
7170: 38 31 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c 79 69  81..-81....onlyi
7180: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
7190: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
71a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
71b0: 62 65 6c 2d 31 36 33 0d 0a 53 45 4c 45 43 54 20  bel-163..SELECT 
71c0: 2b 20 2d 20 43 4f 55 4e 54 28 20 2d 20 2b 20 63  + - COUNT( - + c
71d0: 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol2 ) FROM tab2 
71e0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
71f0: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
7200: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7210: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7220: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 33 0d 0a 53  ort label-163..S
7230: 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20  ELECT + - COUNT 
7240: 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  ( - + col2 ) FRO
7250: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7260: 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79  ----..-3....only
7270: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
7280: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
7290: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
72a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
72b0: 36 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  64..SELECT * FRO
72c0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
72d0: 48 45 52 45 20 4e 4f 54 20 2d 20 43 41 53 54 28  HERE NOT - CAST(
72e0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
72f0: 29 20 2a 20 2b 20 34 32 20 2d 20 2d 20 2d 20 32  ) * + 42 - - - 2
7300: 33 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  3 IS NOT NULL..-
7310: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
7320: 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
7330: 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
7340: 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b 69  537fb43b7....ski
7350: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
7360: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
7370: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
7380: 62 65 6c 2d 31 36 34 0d 0a 53 45 4c 45 43 54 20  bel-164..SELECT 
7390: 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
73a0: 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
73b0: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
73c0: 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 34 32 20  NTEGER ) * + 42 
73d0: 2d 20 2d 20 2d 20 32 33 20 49 53 20 4e 4f 54 20  - - - 23 IS NOT 
73e0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
73f0: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
7400: 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
7410: 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
7420: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7430: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
7440: 28 20 2b 20 2b 20 38 38 20 29 20 41 53 20 63 6f  ( + + 88 ) AS co
7450: 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
7460: 2d 2d 0d 0a 38 38 0d 0a 38 38 0d 0a 38 38 0d 0a  --..88..88..88..
7470: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7480: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
7490: 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20  CT col1 AS col0 
74a0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
74b0: 2d 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  - + col0 IS NULL
74c0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
74d0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
74e0: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
74f0: 2c 20 2b 20 33 30 20 41 53 20 63 6f 6c 30 20 46  , + 30 AS col0 F
7500: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
7510: 31 0d 0a 33 30 0d 0a 32 31 0d 0a 33 30 0d 0a 38  1..30..21..30..8
7520: 31 0d 0a 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..30....onlyif 
7530: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
7540: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
7550: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7560: 6c 2d 31 36 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-168..SELECT + 
7570: 4d 49 4e 28 20 41 4c 4c 20 35 30 20 29 20 46 52  MIN( ALL 50 ) FR
7580: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
7590: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
75a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
75b0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
75c0: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 38 0d 0a 53  ort label-168..S
75d0: 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c  ELECT + MIN ( AL
75e0: 4c 20 35 30 20 29 20 46 52 4f 4d 20 74 61 62 31  L 50 ) FROM tab1
75f0: 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d 0a 6f 6e  ..----..50....on
7600: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
7610: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
7620: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7630: 20 6c 61 62 65 6c 2d 31 36 39 0d 0a 53 45 4c 45   label-169..SELE
7640: 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28 20 41 4c  CT ALL - MAX( AL
7650: 4c 20 32 32 20 29 20 41 53 20 63 6f 6c 31 20 46  L 22 ) AS col1 F
7660: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7670: 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
7680: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
7690: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
76a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
76b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
76c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 39 0d  wsort label-169.
76d0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
76e0: 58 20 28 20 41 4c 4c 20 32 32 20 29 20 41 53 20  X ( ALL 22 ) AS 
76f0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
7700: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
7710: 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
7720: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
7730: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
7740: 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 31 38 20  LECT ALL - + 18 
7750: 2a 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63  * + + col1 * + c
7760: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
7770: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   cor0..----..-17
7780: 34 36 0d 0a 2d 32 31 38 37 30 0d 0a 2d 33 32 38  46..-21870..-328
7790: 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  86....onlyif mys
77a0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
77b0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
77c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
77d0: 31 37 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  171..SELECT + - 
77e0: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
77f0: 6c 30 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  l0, COUNT( * ) A
7800: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
7810: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7820: 2d 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -3..3....skipif 
7830: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7840: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
7850: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7860: 37 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43  71..SELECT + - C
7870: 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
7880: 6c 30 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  l0, COUNT ( * ) 
7890: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
78a0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
78b0: 0a 2d 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  .-3..3....query 
78c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
78d0: 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  T - col0 AS col2
78e0: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
78f0: 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30  WHERE NOT - col0
7900: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
7910: 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d  -15..-87..-97...
7920: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
7930: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
7940: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
7950: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 33 0d 0a  sort label-173..
7960: 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20  SELECT - COUNT( 
7970: 2a 20 29 20 63 6f 6c 32 2c 20 31 32 20 63 6f 6c  * ) col2, 12 col
7980: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
7990: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 31  or0..----..-3..1
79a0: 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
79b0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
79c0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
79d0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
79e0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
79f0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
7a00: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
7a10: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
7a20: 62 65 6c 2d 31 37 33 0d 0a 53 45 4c 45 43 54 20  bel-173..SELECT 
7a30: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f  - COUNT ( * ) co
7a40: 6c 32 2c 20 31 32 20 63 6f 6c 31 20 46 52 4f 4d  l2, 12 col1 FROM
7a50: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
7a60: 2d 2d 2d 0d 0a 2d 33 0d 0a 31 32 0d 0a 0d 0a 73  ---..-3..12....s
7a70: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
7a80: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
7a90: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
7aa0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
7ab0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
7ac0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7ad0: 2d 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 63  - ( + + col0 ) c
7ae0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
7af0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   cor0..----..-15
7b00: 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e  ..-87..-97....on
7b10: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
7b20: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
7b30: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7b40: 20 6c 61 62 65 6c 2d 31 37 35 0d 0a 53 45 4c 45   label-175..SELE
7b50: 43 54 20 2b 20 2d 20 4d 41 58 28 20 2b 20 2d 20  CT + - MAX( + - 
7b60: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
7b70: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7b80: 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 73 6b  ..----..15....sk
7b90: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
7ba0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
7bb0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7bc0: 65 6c 2d 31 37 35 0d 0a 53 45 4c 45 43 54 20 2b  el-175..SELECT +
7bd0: 20 2d 20 4d 41 58 20 28 20 2b 20 2d 20 63 6f 6c   - MAX ( + - col
7be0: 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
7bf0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
7c00: 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 71 75 65 72 79  ---..15....query
7c10: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
7c20: 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 41  ECT ALL + col1 A
7c30: 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46 52 4f  S col2, col0 FRO
7c40: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7c50: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 34 36 0d 0a 36 37  ----..51..46..67
7c60: 0d 0a 37 35 0d 0a 37 37 0d 0a 36 34 0d 0a 0d 0a  ..75..77..64....
7c70: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
7c80: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
7c90: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
7ca0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
7cb0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7cc0: 65 6c 2d 31 37 37 0d 0a 53 45 4c 45 43 54 20 2d  el-177..SELECT -
7cd0: 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d 20 2d 20   + MAX( ALL - - 
7ce0: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
7cf0: 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61  GNED ) ) FROM ta
7d00: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
7d10: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
7d20: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
7d30: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
7d40: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7d50: 37 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d  77..SELECT - + M
7d60: 41 58 20 28 20 41 4c 4c 20 2d 20 2d 20 43 41 53  AX ( ALL - - CAS
7d70: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
7d80: 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62  GER ) ) FROM tab
7d90: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
7da0: 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
7db0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
7dc0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
7dd0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7de0: 6c 2d 31 37 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-178..SELECT + 
7df0: 2d 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  - MAX( DISTINCT 
7e00: 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
7e10: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  b2 cor0..----..4
7e20: 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
7e30: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7e40: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7e50: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 38 0d 0a 53  ort label-178..S
7e60: 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58 20 28 20  ELECT + - MAX ( 
7e70: 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
7e80: 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  ) FROM tab2 cor0
7e90: 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 71 75  ..----..46....qu
7ea0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
7eb0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
7ec0: 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20  + col1 AS col1, 
7ed0: 2b 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  + ( col0 ) FROM 
7ee0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
7ef0: 2d 2d 0d 0a 31 34 0d 0a 35 31 0d 0a 34 37 0d 0a  --..14..51..47..
7f00: 39 31 0d 0a 35 0d 0a 38 35 0d 0a 0d 0a 71 75 65  91..5..85....que
7f10: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
7f20: 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  LECT + col1 * - 
7f30: 63 6f 6c 31 20 2a 20 2b 20 38 34 20 2b 20 2b 20  col1 * + 84 + + 
7f40: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
7f50: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
7f60: 20 38 38 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   88 > NULL..----
7f70: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7f80: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
7f90: 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2b  ( - + col1 ) + +
7fa0: 20 35 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53   52 FROM tab0 AS
7fb0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39   cor0..----..-29
7fc0: 0d 0a 33 31 0d 0a 35 31 0d 0a 0d 0a 6f 6e 6c 79  ..31..51....only
7fd0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
7fe0: 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
7ff0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
8000: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38  rowsort label-18
8010: 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  2..SELECT col2 *
8020: 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
8030: 41 53 20 44 45 43 49 4d 41 4c 20 29 20 63 6f 6c  AS DECIMAL ) col
8040: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
8050: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
8060: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
8070: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8080: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
8090: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
80a0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
80b0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
80c0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
80d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
80e0: 61 62 65 6c 2d 31 38 32 0d 0a 53 45 4c 45 43 54  abel-182..SELECT
80f0: 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 43 41 53 54   col2 * + + CAST
8100: 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
8110: 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
8120: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
8130: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
8140: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
8150: 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
8160: 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  e syntax: DECIMA
8170: 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
8180: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8190: 31 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  183..SELECT ALL 
81a0: 36 35 20 2b 20 2b 20 28 20 28 20 2d 20 43 4f 55  65 + + ( ( - COU
81b0: 4e 54 28 20 41 4c 4c 20 2b 20 2b 20 33 31 20 29  NT( ALL + + 31 )
81c0: 20 29 20 29 20 2b 20 2b 20 2d 20 36 32 20 2a 20   ) ) + + - 62 * 
81d0: 2d 20 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  - ( - CAST( NULL
81e0: 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20   AS DECIMAL ) ) 
81f0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
8200: 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  2..----..NULL...
8210: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
8220: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
8230: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8240: 6c 61 62 65 6c 2d 31 38 33 0d 0a 53 45 4c 45 43  label-183..SELEC
8250: 54 20 41 4c 4c 20 36 35 20 2b 20 2b 20 28 20 28  T ALL 65 + + ( (
8260: 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b   - COUNT ( ALL +
8270: 20 2b 20 33 31 20 29 20 29 20 29 20 2b 20 2b 20   + 31 ) ) ) + + 
8280: 2d 20 36 32 20 2a 20 2d 20 28 20 2d 20 43 41 53  - 62 * - ( - CAS
8290: 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
82a0: 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
82b0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
82c0: 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
82d0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
82e0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
82f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8300: 31 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  184..SELECT ALL 
8310: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d  + COUNT( * ) * -
8320: 20 2d 20 34 34 20 41 53 20 63 6f 6c 30 2c 20 38   - 44 AS col0, 8
8330: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
8340: 0d 0a 31 33 32 0d 0a 38 0d 0a 0d 0a 73 6b 69 70  ..132..8....skip
8350: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
8360: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
8370: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
8380: 6c 2d 31 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-184..SELECT AL
8390: 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  L + COUNT ( * ) 
83a0: 2a 20 2d 20 2d 20 34 34 20 41 53 20 63 6f 6c 30  * - - 44 AS col0
83b0: 2c 20 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  , 8 FROM tab1..-
83c0: 2d 2d 2d 0d 0a 31 33 32 0d 0a 38 0d 0a 0d 0a 71  ---..132..8....q
83d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
83e0: 53 45 4c 45 43 54 20 41 4c 4c 20 39 38 20 41 53  SELECT ALL 98 AS
83f0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
8400: 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f  WHERE NOT + - co
8410: 6c 30 20 2a 20 63 6f 6c 32 20 49 53 20 4e 4f 54  l0 * col2 IS NOT
8420: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
8430: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
8440: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
8450: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8460: 74 20 6c 61 62 65 6c 2d 31 38 36 0d 0a 53 45 4c  t label-186..SEL
8470: 45 43 54 20 2d 20 2d 20 28 20 2b 20 53 55 4d 28  ECT - - ( + SUM(
8480: 20 2d 20 2d 20 37 39 20 29 20 29 20 46 52 4f 4d   - - 79 ) ) FROM
8490: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
84a0: 2d 2d 2d 0d 0a 32 33 37 0d 0a 0d 0a 73 6b 69 70  ---..237....skip
84b0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
84c0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
84d0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
84e0: 2d 31 38 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -186..SELECT - -
84f0: 20 28 20 2b 20 53 55 4d 20 28 20 2d 20 2d 20 37   ( + SUM ( - - 7
8500: 39 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20  9 ) ) FROM tab0 
8510: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
8520: 33 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  37....query III 
8530: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8540: 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
8550: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
8560: 52 45 20 37 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d  RE 70 IS NULL..-
8570: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
8580: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
8590: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
85a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
85b0: 74 20 6c 61 62 65 6c 2d 31 38 38 0d 0a 53 45 4c  t label-188..SEL
85c0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
85d0: 41 53 54 28 20 2b 20 2d 20 63 6f 6c 31 20 41 53  AST( + - col1 AS
85e0: 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c 30   SIGNED ) + col0
85f0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
8600: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 36  r0..----..138..6
8610: 35 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  5..90....skipif 
8620: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
8630: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
8640: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38  rowsort label-18
8650: 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
8660: 43 54 20 2d 20 43 41 53 54 20 28 20 2b 20 2d 20  CT - CAST ( + - 
8670: 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
8680: 29 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ) + col0 FROM ta
8690: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
86a0: 0d 0a 31 33 38 0d 0a 36 35 0d 0a 39 30 0d 0a 0d  ..138..65..90...
86b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
86c0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
86d0: 6f 6c 32 20 2a 20 2d 20 35 30 20 2b 20 2d 20 2b  ol2 * - 50 + - +
86e0: 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 46   col1 + + col0 F
86f0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
8700: 2d 32 34 31 36 0d 0a 2d 34 33 34 0d 0a 2d 34 38  -2416..-434..-48
8710: 35 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  54....skipif pos
8720: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
8730: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
8740: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
8750: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
8760: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
8770: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
8780: 2b 20 35 38 20 63 6f 6c 31 20 46 52 4f 4d 20 74  + 58 col1 FROM t
8790: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d  ab1..----..58...
87a0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
87b0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f  t..SELECT - + co
87c0: 6c 30 2c 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  l0, + col1 FROM 
87d0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
87e0: 2d 2d 0d 0a 2d 35 31 0d 0a 31 34 0d 0a 2d 38 35  --..-51..14..-85
87f0: 0d 0a 35 0d 0a 2d 39 31 0d 0a 34 37 0d 0a 0d 0a  ..5..-91..47....
8800: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8810: 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 2d 20  .SELECT + ( - - 
8820: 37 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  71 ) FROM tab1 A
8830: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 31  S cor0..----..71
8840: 0d 0a 37 31 0d 0a 37 31 0d 0a 0d 0a 71 75 65 72  ..71..71....quer
8850: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8860: 45 43 54 20 41 4c 4c 20 2b 20 33 33 20 2b 20 2d  ECT ALL + 33 + -
8870: 20 35 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   52 AS col0 FROM
8880: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
8890: 2d 2d 2d 0d 0a 2d 31 39 0d 0a 2d 31 39 0d 0a 2d  ---..-19..-19..-
88a0: 31 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  19....query I ro
88b0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
88c0: 53 54 49 4e 43 54 20 2d 20 2d 20 35 36 20 41 53  STINCT - - 56 AS
88d0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
88e0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
88f0: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
8900: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
8910: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
8920: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8930: 6c 61 62 65 6c 2d 31 39 35 0d 0a 53 45 4c 45 43  label-195..SELEC
8940: 54 20 41 4c 4c 20 2b 20 31 35 20 2d 20 2b 20 2b  T ALL + 15 - + +
8950: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
8960: 49 47 4e 45 44 20 29 20 2d 20 2d 20 2b 20 31 39  IGNED ) - - + 19
8970: 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f   * - col1 * - co
8980: 6c 31 20 2b 20 2b 20 2b 20 28 20 2b 20 31 39 20  l1 + + + ( + 19 
8990: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
89a0: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
89b0: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
89c0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
89d0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
89e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 35 0d  wsort label-195.
89f0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 35  .SELECT ALL + 15
8a00: 20 2d 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55   - + + CAST ( NU
8a10: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
8a20: 2d 20 2d 20 2b 20 31 39 20 2a 20 2d 20 63 6f 6c  - - + 19 * - col
8a30: 31 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2b  1 * - col1 + + +
8a40: 20 28 20 2b 20 31 39 20 29 20 46 52 4f 4d 20 74   ( + 19 ) FROM t
8a50: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
8a60: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
8a70: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
8a80: 53 45 4c 45 43 54 20 34 20 2a 20 2d 20 63 6f 6c  SELECT 4 * - col
8a90: 30 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  0 * - col0 AS co
8aa0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
8ab0: 2d 2d 0d 0a 31 36 33 38 34 0d 0a 32 32 35 30 30  --..16384..22500
8ac0: 0d 0a 38 34 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..8464....onlyif
8ad0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8ae0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
8af0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8b00: 65 6c 2d 31 39 37 0d 0a 53 45 4c 45 43 54 20 44  el-197..SELECT D
8b10: 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 35  ISTINCT - MAX( 5
8b20: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
8b30: 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66  --..-5....skipif
8b40: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
8b50: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
8b60: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
8b70: 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  97..SELECT DISTI
8b80: 4e 43 54 20 2d 20 4d 41 58 20 28 20 35 20 29 20  NCT - MAX ( 5 ) 
8b90: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
8ba0: 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-5....onlyif my
8bb0: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
8bc0: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
8bd0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8be0: 74 20 6c 61 62 65 6c 2d 31 39 38 0d 0a 53 45 4c  t label-198..SEL
8bf0: 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 34 37 20  ECT + col2 * 47 
8c00: 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c  * - - col1 + col
8c10: 32 20 44 49 56 20 2b 20 63 6f 6c 30 20 41 53 20  2 DIV + col0 AS 
8c20: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
8c30: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37  S cor0..----..17
8c40: 38 39 33 32 0d 0a 34 36 35 34 0d 0a 39 38 37 30  8932..4654..9870
8c50: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8c60: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8c70: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8c80: 72 74 20 6c 61 62 65 6c 2d 31 39 38 0d 0a 53 45  rt label-198..SE
8c90: 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20 34 37  LECT + col2 * 47
8ca0: 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63 6f   * - - col1 + co
8cb0: 6c 32 20 2f 20 2b 20 63 6f 6c 30 20 41 53 20 63  l2 / + col0 AS c
8cc0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
8cd0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 38   cor0..----..178
8ce0: 39 33 32 0d 0a 34 36 35 34 0d 0a 39 38 37 30 0d  932..4654..9870.
8cf0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
8d00: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
8d10: 30 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d  0 * - + col1 * -
8d20: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
8d30: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8d40: 0a 2d 2d 2d 2d 0d 0a 2d 31 38 32 37 30 0d 0a 2d  .----..-18270..-
8d50: 35 37 31 30 35 0d 0a 2d 39 36 30 33 0d 0a 0d 0a  57105..-9603....
8d60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8d70: 0a 53 45 4c 45 43 54 20 2b 20 39 38 20 41 53 20  .SELECT + 98 AS 
8d80: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
8d90: 48 45 52 45 20 4e 4f 54 20 2b 20 34 36 20 49 53  HERE NOT + 46 IS
8da0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
8db0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
8dc0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  rt..SELECT ALL (
8dd0: 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20 46 52   + ( col1 ) ) FR
8de0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8df0: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31  .----..1..21..81
8e00: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
8e10: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
8e20: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
8e30: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 32  owsort label-202
8e40: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32  ..SELECT ALL + 2
8e50: 30 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  0 + - - COUNT( *
8e60: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
8e70: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
8e80: 0a 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .23....skipif my
8e90: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8ea0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
8eb0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d  wsort label-202.
8ec0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32 30  .SELECT ALL + 20
8ed0: 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a   + - - COUNT ( *
8ee0: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
8ef0: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
8f00: 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .23....query I r
8f10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
8f20: 49 53 54 49 4e 43 54 20 2b 20 32 39 20 41 53 20  ISTINCT + 29 AS 
8f30: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
8f40: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 0d  or0..----..29...
8f50: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
8f60: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
8f70: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
8f80: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
8f90: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
8fa0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8fb0: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
8fc0: 2b 20 2d 20 2d 20 31 39 20 63 6f 6c 31 20 46 52  + - - 19 col1 FR
8fd0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
8fe0: 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 31 30 0d  .----..104..110.
8ff0: 0a 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .70....query III
9000: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9010: 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
9020: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
9030: 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2b 20 38 36 0d  OT NULL >= + 86.
9040: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
9050: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9060: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 34 20  T DISTINCT - 74 
9070: 41 53 20 63 6f 6c 32 2c 20 2b 20 28 20 2d 20 28  AS col2, + ( - (
9080: 20 2d 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d   - col2 ) ) FROM
9090: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34   tab2..----..-74
90a0: 0d 0a 32 33 0d 0a 2d 37 34 0d 0a 34 30 0d 0a 2d  ..23..-74..40..-
90b0: 37 34 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20  74..58....query 
90c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
90d0: 54 20 31 38 20 2b 20 2b 20 2b 20 37 31 20 2a 20  T 18 + + + 71 * 
90e0: 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  + col1 FROM tab1
90f0: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 32 0d 0a 33 33  ..----..1012..33
9100: 35 35 0d 0a 33 37 33 0d 0a 0d 0a 71 75 65 72 79  55..373....query
9110: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
9120: 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20  CT ALL - col2 * 
9130: 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2a 20  + col1 * col1 * 
9140: 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c  - col0 + + - col
9150: 31 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  1 + col0 AS col2
9160: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
9170: 0d 0a 33 38 33 37 33 36 0d 0a 34 36 32 35 34 33  ..383736..462543
9180: 39 0d 0a 39 36 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  9..9699....onlyi
9190: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
91a0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
91b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
91c0: 62 65 6c 2d 32 30 39 0d 0a 53 45 4c 45 43 54 20  bel-209..SELECT 
91d0: 44 49 53 54 49 4e 43 54 20 4d 49 4e 28 20 2d 20  DISTINCT MIN( - 
91e0: 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32  col0 ) FROM tab2
91f0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a 73  ..----..-75....s
9200: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
9210: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
9220: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
9230: 62 65 6c 2d 32 30 39 0d 0a 53 45 4c 45 43 54 20  bel-209..SELECT 
9240: 44 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 2d  DISTINCT MIN ( -
9250: 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
9260: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a  2..----..-75....
9270: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
9280: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
9290: 54 20 2b 20 35 39 2c 20 2b 20 63 6f 6c 31 20 2a  T + 59, + col1 *
92a0: 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
92b0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
92c0: 0a 35 39 0d 0a 31 0d 0a 35 39 0d 0a 34 34 31 0d  .59..1..59..441.
92d0: 0a 35 39 0d 0a 36 35 36 31 0d 0a 0d 0a 71 75 65  .59..6561....que
92e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
92f0: 4c 45 43 54 20 2b 20 36 38 20 2a 20 2d 20 35 34  LECT + 68 * - 54
9300: 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
9310: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 39 35 0d 0a  2..----..-3595..
9320: 2d 33 36 30 35 0d 0a 2d 33 36 32 31 0d 0a 0d 0a  -3605..-3621....
9330: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9340: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9350: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
9360: 72 74 20 6c 61 62 65 6c 2d 32 31 32 0d 0a 53 45  rt label-212..SE
9370: 4c 45 43 54 20 2b 20 37 32 20 2a 20 2d 20 43 4f  LECT + 72 * - CO
9380: 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43  UNT( * ) + + + C
9390: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
93a0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 33 0d  ab0..----..-213.
93b0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
93c0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
93d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
93e0: 74 20 6c 61 62 65 6c 2d 32 31 32 0d 0a 53 45 4c  t label-212..SEL
93f0: 45 43 54 20 2b 20 37 32 20 2a 20 2d 20 43 4f 55  ECT + 72 * - COU
9400: 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43  NT ( * ) + + + C
9410: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
9420: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 33  tab0..----..-213
9430: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
9440: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
9450: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
9460: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
9470: 61 62 65 6c 2d 32 31 33 0d 0a 53 45 4c 45 43 54  abel-213..SELECT
9480: 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
9490: 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 63 6f   * + - col1 * co
94a0: 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
94b0: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 43  tab0 WHERE NOT C
94c0: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
94d0: 4e 45 44 20 29 20 4e 4f 54 20 49 4e 20 28 20 2d  NED ) NOT IN ( -
94e0: 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   - col2 )..----.
94f0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
9500: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9510: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9520: 74 20 6c 61 62 65 6c 2d 32 31 33 0d 0a 53 45 4c  t label-213..SEL
9530: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
9540: 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a  ol2 * + - col1 *
9550: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
9560: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
9570: 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  T CAST ( NULL AS
9580: 20 49 4e 54 45 47 45 52 20 29 20 4e 4f 54 20 49   INTEGER ) NOT I
9590: 4e 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 0d 0a  N ( - - col2 )..
95a0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
95b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
95c0: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
95d0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
95e0: 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 4e 4f  col0 * - col2 NO
95f0: 54 20 42 45 54 57 45 45 4e 20 2d 20 2d 20 63 6f  T BETWEEN - - co
9600: 6c 30 20 41 4e 44 20 2b 20 63 6f 6c 31 0d 0a 2d  l0 AND + col1..-
9610: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
9620: 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
9630: 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
9640: 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
9650: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
9660: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
9670: 2d 20 28 20 2b 20 38 37 20 29 20 41 53 20 63 6f  - ( + 87 ) AS co
9680: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
9690: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d  cor0..----..-87.
96a0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
96b0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
96c0: 20 63 6f 6c 31 20 2b 20 2d 20 34 32 20 46 52 4f   col1 + - 42 FRO
96d0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
96e0: 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 34 31 0d 0a  ----..-21..-41..
96f0: 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  39....onlyif mys
9700: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
9710: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
9720: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
9730: 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  17..SELECT - COU
9740: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
9750: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
9760: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 4e  0 WHERE NULL < N
9770: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
9780: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9790: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
97a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
97b0: 61 62 65 6c 2d 32 31 37 0d 0a 53 45 4c 45 43 54  abel-217..SELECT
97c0: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
97d0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
97e0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
97f0: 55 4c 4c 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ULL < NULL..----
9800: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
9810: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
9820: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
9830: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
9840: 38 20 2a 20 2b 20 39 37 20 2a 20 2d 20 63 6f 6c  8 * + 97 * - col
9850: 32 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f  2 + + col0 IS NO
9860: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  T NULL..----..-1
9870: 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 6f 6e  4..-47..-5....on
9880: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
9890: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
98a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
98b0: 20 6c 61 62 65 6c 2d 32 31 39 0d 0a 53 45 4c 45   label-219..SELE
98c0: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
98d0: 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ) + + COUNT( * )
98e0: 20 2a 20 2d 20 4d 41 58 28 20 2d 20 63 6f 6c 32   * - MAX( - col2
98f0: 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
9900: 2d 2d 0d 0a 31 38 30 0d 0a 0d 0a 73 6b 69 70 69  --..180....skipi
9910: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
9920: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
9930: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9940: 32 31 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  219..SELECT ALL 
9950: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20  COUNT ( * ) + + 
9960: 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
9970: 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20 29 20 46  MAX ( - col2 ) F
9980: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
9990: 31 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  180....query III
99a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
99b0: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
99c0: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
99d0: 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 20 41 4e 44  NULL IS NULL AND
99e0: 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2b   + col1 * col2 +
99f0: 20 63 6f 6c 30 20 2a 20 2b 20 36 31 20 2b 20 2b   col0 * + 61 + +
9a00: 20 38 38 20 2b 20 2d 20 28 20 2b 20 2d 20 36 33   88 + - ( + - 63
9a10: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
9a20: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
9a30: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
9a40: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
9a50: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
9a60: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
9a70: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
9a80: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2b 20  LECT - col2 - + 
9a90: 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d  - col1 col1 FROM
9aa0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab1..----..-21
9ab0: 0d 0a 2d 35 34 0d 0a 2d 38 32 0d 0a 0d 0a 71 75  ..-54..-82....qu
9ac0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
9ad0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 36 20 46  ELECT ALL - 96 F
9ae0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
9af0: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
9b00: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
9b10: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
9b20: 20 74 6f 20 63 38 39 62 35 34 35 33 34 36 66 39   to c89b545346f9
9b30: 39 37 31 33 38 38 38 61 37 39 33 34 65 34 63 61  9713888a7934e4ca
9b40: 61 35 33 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  a539....onlyif m
9b50: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
9b60: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
9b70: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
9b80: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
9b90: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 33 0d 0a  sort label-223..
9ba0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9bb0: 2d 20 31 33 20 2d 20 2b 20 43 41 53 54 28 20 4d  - 13 - + CAST( M
9bc0: 41 58 28 20 2b 20 2b 20 33 31 20 29 20 41 53 20  AX( + + 31 ) AS 
9bd0: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
9be0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 0d  b1..----..-44...
9bf0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
9c00: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
9c10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
9c20: 6c 61 62 65 6c 2d 32 32 33 0d 0a 53 45 4c 45 43  label-223..SELEC
9c30: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31 33 20  T DISTINCT - 13 
9c40: 2d 20 2b 20 43 41 53 54 20 28 20 4d 41 58 20 28  - + CAST ( MAX (
9c50: 20 2b 20 2b 20 33 31 20 29 20 41 53 20 49 4e 54   + + 31 ) AS INT
9c60: 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31  EGER ) FROM tab1
9c70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 0d 0a 6f  ..----..-44....o
9c80: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
9c90: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
9ca0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
9cb0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
9cc0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
9cd0: 62 65 6c 2d 32 32 34 0d 0a 53 45 4c 45 43 54 20  bel-224..SELECT 
9ce0: 44 49 53 54 49 4e 43 54 20 2d 20 31 35 20 2a 20  DISTINCT - 15 * 
9cf0: 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20  + - COUNT( * ), 
9d00: 2b 20 33 37 20 63 6f 6c 32 2c 20 2d 20 43 41 53  + 37 col2, - CAS
9d10: 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
9d20: 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  D ) AS col0 FROM
9d30: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
9d40: 0d 0a 34 35 0d 0a 33 37 0d 0a 4e 55 4c 4c 0d 0a  ..45..37..NULL..
9d50: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9d60: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9d70: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
9d80: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
9d90: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
9da0: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
9db0: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
9dc0: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
9dd0: 6c 2d 32 32 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-224..SELECT DI
9de0: 53 54 49 4e 43 54 20 2d 20 31 35 20 2a 20 2b 20  STINCT - 15 * + 
9df0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2b  - COUNT ( * ), +
9e00: 20 33 37 20 63 6f 6c 32 2c 20 2d 20 43 41 53 54   37 col2, - CAST
9e10: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
9e20: 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ER ) AS col0 FRO
9e30: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
9e40: 2d 0d 0a 34 35 0d 0a 33 37 0d 0a 4e 55 4c 4c 0d  -..45..37..NULL.
9e50: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
9e60: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
9e70: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9e80: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
9e90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
9ea0: 6c 61 62 65 6c 2d 32 32 35 0d 0a 53 45 4c 45 43  label-225..SELEC
9eb0: 54 20 41 4c 4c 20 2d 20 53 55 4d 28 20 2d 20 36  T ALL - SUM( - 6
9ec0: 37 20 29 20 2a 20 2d 20 2b 20 43 41 53 54 28 20  7 ) * - + CAST( 
9ed0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
9ee0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
9ef0: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
9f00: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
9f10: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
9f20: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
9f30: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
9f40: 32 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  25..SELECT ALL -
9f50: 20 53 55 4d 20 28 20 2d 20 36 37 20 29 20 2a 20   SUM ( - 67 ) * 
9f60: 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
9f70: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
9f80: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
9f90: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
9fa0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
9fb0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
9fc0: 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 39 38 20  STINCT + + ( 98 
9fd0: 29 20 2b 20 2b 20 2b 20 37 35 20 2b 20 63 6f 6c  ) + + + 75 + col
9fe0: 32 20 2b 20 2d 20 36 32 20 2b 20 2d 20 34 37 20  2 + - 62 + - 47 
9ff0: 2a 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 32 39 20  * - col2 + + 29 
a000: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
a010: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 37 32 0d 0a 33  0..----..2972..3
a020: 34 30 34 0d 0a 34 37 34 38 0d 0a 0d 0a 6f 6e 6c  404..4748....onl
a030: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
a040: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
a050: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
a060: 6c 61 62 65 6c 2d 32 32 37 0d 0a 53 45 4c 45 43  label-227..SELEC
a070: 54 20 41 4c 4c 20 31 20 2a 20 2b 20 43 4f 55 4e  T ALL 1 * + COUN
a080: 54 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d  T( * ) col0 FROM
a090: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab2..----..3..
a0a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
a0b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
a0c0: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
a0d0: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
a0e0: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
a0f0: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
a100: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
a110: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a120: 32 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  227..SELECT ALL 
a130: 31 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  1 * + COUNT ( * 
a140: 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  ) col0 FROM tab2
a150: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
a160: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
a170: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32  ELECT ALL - col2
a180: 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30   AS col2, - col0
a190: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
a1a0: 0d 0a 2d 35 39 0d 0a 2d 38 35 0d 0a 2d 36 38 0d  ..-59..-85..-68.
a1b0: 0a 2d 39 31 0d 0a 2d 39 36 0d 0a 2d 35 31 0d 0a  .-91..-96..-51..
a1c0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
a1d0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 31 2c  rt..SELECT - 61,
a1e0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
a1f0: 0a 2d 2d 2d 2d 0d 0a 2d 36 31 0d 0a 35 39 0d 0a  .----..-61..59..
a200: 2d 36 31 0d 0a 36 38 0d 0a 2d 36 31 0d 0a 39 36  -61..68..-61..96
a210: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
a220: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
a230: 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  l0 * - col1 * + 
a240: 2b 20 63 6f 6c 31 20 2a 20 2b 20 28 20 63 6f 6c  + col1 * + ( col
a250: 31 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  1 ) FROM tab2..-
a260: 2d 2d 2d 0d 0a 32 32 35 35 37 32 32 35 0d 0a 32  ---..22557225..2
a270: 39 32 31 38 31 31 32 0d 0a 36 31 30 31 39 34 36  9218112..6101946
a280: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
a290: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
a2a0: 54 49 4e 43 54 20 2b 20 32 39 20 41 53 20 63 6f  TINCT + 29 AS co
a2b0: 6c 30 2c 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b  l0, + col1 + - +
a2c0: 20 31 31 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f   11 + col0 AS co
a2d0: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
a2e0: 2d 2d 0d 0a 32 39 0d 0a 38 35 0d 0a 32 39 0d 0a  --..29..85..29..
a2f0: 38 37 0d 0a 32 39 0d 0a 39 37 0d 0a 0d 0a 73 6b  87..29..97....sk
a300: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
a310: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
a320: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
a330: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
a340: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
a350: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
a360: 49 53 54 49 4e 43 54 20 28 20 2b 20 2b 20 63 6f  ISTINCT ( + + co
a370: 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  l0 ) col1 FROM t
a380: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38  ab0..----..15..8
a390: 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..97....onlyif 
a3a0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
a3b0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
a3c0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
a3d0: 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-233..SELECT AL
a3e0: 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  L - COUNT( * ) *
a3f0: 20 2d 20 2d 20 33 33 20 63 6f 6c 32 20 46 52 4f   - - 33 col2 FRO
a400: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab2..----..-9
a410: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
a420: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
a430: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
a440: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
a450: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
a460: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
a470: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
a480: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
a490: 65 6c 2d 32 33 33 0d 0a 53 45 4c 45 43 54 20 41  el-233..SELECT A
a4a0: 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL - COUNT ( * )
a4b0: 20 2a 20 2d 20 2d 20 33 33 20 63 6f 6c 32 20 46   * - - 33 col2 F
a4c0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
a4d0: 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -99....onlyif my
a4e0: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
a4f0: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
a500: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a510: 74 20 6c 61 62 65 6c 2d 32 33 34 0d 0a 53 45 4c  t label-234..SEL
a520: 45 43 54 20 2b 20 2d 20 43 41 53 54 28 20 2d 20  ECT + - CAST( - 
a530: 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29  col2 AS SIGNED )
a540: 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f   * - col1 * - co
a550: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
a560: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 37 31 32 30 0d  0..----..197120.
a570: 0a 32 39 31 34 35 30 0d 0a 35 33 39 35 38 0d 0a  .291450..53958..
a580: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
a590: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
a5a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a5b0: 20 6c 61 62 65 6c 2d 32 33 34 0d 0a 53 45 4c 45   label-234..SELE
a5c0: 43 54 20 2b 20 2d 20 43 41 53 54 20 28 20 2d 20  CT + - CAST ( - 
a5d0: 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
a5e0: 29 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63  ) * - col1 * - c
a5f0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
a600: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 37 31 32 30  r0..----..197120
a610: 0d 0a 32 39 31 34 35 30 0d 0a 35 33 39 35 38 0d  ..291450..53958.
a620: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
a630: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 38  rt..SELECT + ( 8
a640: 38 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  8 ) AS col0 FROM
a650: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
a660: 2d 2d 2d 0d 0a 38 38 0d 0a 38 38 0d 0a 38 38 0d  ---..88..88..88.
a670: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
a680: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
a690: 20 63 6f 6c 30 20 2a 20 28 20 28 20 2d 20 63 6f   col0 * ( ( - co
a6a0: 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l0 ) ) AS col2 F
a6b0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
a6c0: 0d 0a 2d 2d 2d 2d 0d 0a 32 36 30 31 0d 0a 37 32  ..----..2601..72
a6d0: 32 35 0d 0a 38 32 38 31 0d 0a 0d 0a 71 75 65 72  25..8281....quer
a6e0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
a6f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
a700: 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f  2 WHERE NOT ( NO
a710: 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63  T - col1 * + - c
a720: 6f 6c 31 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d  ol1 IS NULL )..-
a730: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
a740: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
a750: 4c 4c 20 63 6f 6c 31 20 2a 20 2d 20 33 39 20 46  LL col1 * - 39 F
a760: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
a770: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 39 0d 0a 2d  ..----..-1989..-
a780: 32 36 31 33 0d 0a 2d 33 30 30 33 0d 0a 0d 0a 6f  2613..-3003....o
a790: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
a7a0: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
a7b0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43  gate syntax: DEC
a7c0: 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
a7d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
a7e0: 65 6c 2d 32 33 39 0d 0a 53 45 4c 45 43 54 20 44  el-239..SELECT D
a7f0: 49 53 54 49 4e 43 54 20 2b 20 2b 20 32 34 20 2a  ISTINCT + + 24 *
a800: 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
a810: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2d  + COUNT( * ) - -
a820: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
a830: 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 2b 20 43   DECIMAL ) + + C
a840: 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 37 30  OUNT( * ) + + 70
a850: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
a860: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
a870: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
a880: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
a890: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
a8a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
a8b0: 33 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  39..SELECT DISTI
a8c0: 4e 43 54 20 2b 20 2b 20 32 34 20 2a 20 43 4f 55  NCT + + 24 * COU
a8d0: 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 2b 20 43  NT ( * ) + - + C
a8e0: 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20 2b  OUNT ( * ) - - +
a8f0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
a900: 52 45 41 4c 20 29 20 2b 20 2b 20 43 4f 55 4e 54  REAL ) + + COUNT
a910: 20 28 20 2a 20 29 20 2b 20 2b 20 37 30 20 41 53   ( * ) + + 70 AS
a920: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
a930: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
a940: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
a950: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
a960: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
a970: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a980: 74 20 6c 61 62 65 6c 2d 32 34 30 0d 0a 53 45 4c  t label-240..SEL
a990: 45 43 54 20 41 4c 4c 20 2b 20 32 38 20 44 49 56  ECT ALL + 28 DIV
a9a0: 20 2d 20 2d 20 34 37 20 2b 20 2d 20 34 37 20 46   - - 47 + - 47 F
a9b0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
a9c0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 2d 34 37  ..----..-47..-47
a9d0: 0d 0a 2d 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-47....skipif 
a9e0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
a9f0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
aa00: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34  rowsort label-24
aa10: 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  0..SELECT ALL + 
aa20: 32 38 20 2f 20 2d 20 2d 20 34 37 20 2b 20 2d 20  28 / - - 47 + - 
aa30: 34 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  47 FROM tab0 AS 
aa40: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d  cor0..----..-47.
aa50: 0a 2d 34 37 0d 0a 2d 34 37 0d 0a 0d 0a 71 75 65  .-47..-47....que
aa60: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
aa70: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f  ELECT ALL - - co
aa80: 6c 32 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l2 + col1 AS col
aa90: 32 2c 20 2b 20 38 39 20 2a 20 2d 20 2b 20 63 6f  2, + 89 * - + co
aaa0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
aab0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d  cor0..----..117.
aac0: 0a 2d 33 35 36 30 0d 0a 31 32 35 0d 0a 2d 35 31  .-3560..125..-51
aad0: 36 32 0d 0a 37 34 0d 0a 2d 32 30 34 37 0d 0a 0d  62..74..-2047...
aae0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
aaf0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 32 20  ..SELECT ALL 92 
ab00: 2b 20 2d 20 2d 20 31 34 20 41 53 20 63 6f 6c 30  + - - 14 AS col0
ab10: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
ab20: 0d 0a 31 30 36 0d 0a 31 30 36 0d 0a 31 30 36 0d  ..106..106..106.
ab30: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
ab40: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
ab50: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
ab60: 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2b 20 63 6f  RE NOT col0 + co
ab70: 6c 30 20 3e 3d 20 2b 20 34 30 0d 0a 2d 2d 2d 2d  l0 >= + 40..----
ab80: 0d 0a 31 35 0d 0a 38 31 0d 0a 34 37 0d 0a 0d 0a  ..15..81..47....
ab90: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
aba0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
abb0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
abc0: 72 74 20 6c 61 62 65 6c 2d 32 34 34 0d 0a 53 45  rt label-244..SE
abd0: 4c 45 43 54 20 53 55 4d 28 20 34 32 20 29 20 46  LECT SUM( 42 ) F
abe0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
abf0: 31 32 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  126....skipif my
ac00: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
ac10: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
ac20: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 34 0d  wsort label-244.
ac30: 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20 34 32  .SELECT SUM ( 42
ac40: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
ac50: 2d 2d 0d 0a 31 32 36 0d 0a 0d 0a 6f 6e 6c 79 69  --..126....onlyi
ac60: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
ac70: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
ac80: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
ac90: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
aca0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34  rowsort label-24
acb0: 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  5..SELECT ALL CO
acc0: 55 4e 54 28 20 2d 20 43 41 53 54 28 20 4e 55 4c  UNT( - CAST( NUL
acd0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
ace0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
acf0: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  0..----..0....sk
ad00: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
ad10: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
ad20: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ad30: 65 6c 2d 32 34 35 0d 0a 53 45 4c 45 43 54 20 41  el-245..SELECT A
ad40: 4c 4c 20 43 4f 55 4e 54 20 28 20 2d 20 43 41 53  LL COUNT ( - CAS
ad50: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
ad60: 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 32 20  GER ) ) AS col2 
ad70: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
ad80: 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
ad90: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
ada0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
adb0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
adc0: 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d  46..SELECT ALL M
add0: 41 58 28 20 2b 20 39 36 20 29 20 46 52 4f 4d 20  AX( + 96 ) FROM 
ade0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a  tab2..----..96..
adf0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ae00: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
ae10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ae20: 20 6c 61 62 65 6c 2d 32 34 36 0d 0a 53 45 4c 45   label-246..SELE
ae30: 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 2b 20 39  CT ALL MAX ( + 9
ae40: 36 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  6 ) FROM tab2..-
ae50: 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79  ---..96....query
ae60: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
ae70: 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c  CT ALL - ( - col
ae80: 30 20 29 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f  0 ) - - col0 FRO
ae90: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
aea0: 20 4e 55 4c 4c 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d   NULL <= NULL..-
aeb0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
aec0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
aed0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
aee0: 52 45 20 4e 55 4c 4c 20 3c 3e 20 28 20 28 20 2b  RE NULL <> ( ( +
aef0: 20 2d 20 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d   - col2 ) )..---
af00: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
af10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
af20: 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 46  ol2 + + + col2 F
af30: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
af40: 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  0..0..0....skipi
af50: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
af60: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
af70: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
af80: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
af90: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
afa0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
afb0: 2d 20 37 36 20 63 6f 6c 31 20 46 52 4f 4d 20 74  - 76 col1 FROM t
afc0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 36 0d 0a  ab1..----..-76..
afd0: 2d 37 36 0d 0a 2d 37 36 0d 0a 0d 0a 73 6b 69 70  -76..-76....skip
afe0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
aff0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
b000: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
b010: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
b020: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
b030: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38  sort..SELECT - 8
b040: 37 20 2b 20 2d 20 63 6f 6c 32 20 63 6f 6c 30 20  7 + - col2 col0 
b050: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
b060: 2d 2d 2d 2d 0d 0a 2d 31 31 30 0d 0a 2d 31 32 37  ----..-110..-127
b070: 0d 0a 2d 31 34 35 0d 0a 0d 0a 73 6b 69 70 69 66  ..-145....skipif
b080: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
b090: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
b0a0: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
b0b0: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
b0c0: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
b0d0: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
b0e0: 2a 20 63 6f 6c 31 20 2a 20 35 35 20 2b 20 38 32  * col1 * 55 + 82
b0f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
b100: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
b110: 33 34 35 37 0d 0a 32 33 35 33 31 37 0d 0a 33 39  3457..235317..39
b120: 33 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  352....query III
b130: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b140: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
b150: 52 45 20 2b 20 2d 20 36 38 20 49 53 20 4e 55 4c  RE + - 68 IS NUL
b160: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
b170: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
b180: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
b190: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
b1a0: 39 20 3c 3e 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d  9 <> + col2..---
b1b0: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
b1c0: 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
b1d0: 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
b1e0: 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
b1f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
b200: 43 54 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 32 20  CT col2 * - - 2 
b210: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
b220: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a 31 33  1..----..118..13
b230: 36 0d 0a 31 39 32 0d 0a 0d 0a 71 75 65 72 79 20  6..192....query 
b240: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
b250: 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20 2d  T ALL + col0 * -
b260: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   - col0 AS col1 
b270: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
b280: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 30 31 0d 0a 37  0..----..2601..7
b290: 32 32 35 0d 0a 38 32 38 31 0d 0a 0d 0a 71 75 65  225..8281....que
b2a0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
b2b0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
b2c0: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
b2d0: 20 4e 55 4c 4c 20 3c 3e 20 63 6f 6c 31 20 2d 20   NULL <> col1 - 
b2e0: 34 20 41 4e 44 20 34 31 20 42 45 54 57 45 45 4e  4 AND 41 BETWEEN
b2f0: 20 2d 20 63 6f 6c 32 20 41 4e 44 20 2b 20 63 6f   - col2 AND + co
b300: 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l1..----....only
b310: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
b320: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
b330: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b340: 61 62 65 6c 2d 32 35 38 0d 0a 53 45 4c 45 43 54  abel-258..SELECT
b350: 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 4d 49   DISTINCT - + MI
b360: 4e 28 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d  N( + col2 ) FROM
b370: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
b380: 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-23....skipif 
b390: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
b3a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
b3b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35  rowsort label-25
b3c0: 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
b3d0: 43 54 20 2d 20 2b 20 4d 49 4e 20 28 20 2b 20 63  CT - + MIN ( + c
b3e0: 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol2 ) FROM tab2 
b3f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d  cor0..----..-23.
b400: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
b410: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
b420: 49 4e 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63  INCT + col1 AS c
b430: 6f 6c 32 2c 20 30 20 46 52 4f 4d 20 74 61 62 31  ol2, 0 FROM tab1
b440: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
b450: 31 34 0d 0a 30 0d 0a 34 37 0d 0a 30 0d 0a 35 0d  14..0..47..0..5.
b460: 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .0....query III 
b470: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
b480: 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
b490: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
b4a0: 52 45 20 4e 4f 54 20 28 20 2b 20 2d 20 63 6f 6c  RE NOT ( + - col
b4b0: 31 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2d  1 ) + - + col1 -
b4c0: 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
b4d0: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
b4e0: 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
b4f0: 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
b500: 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
b510: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
b520: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
b530: 28 20 33 34 20 29 20 46 52 4f 4d 20 74 61 62 31  ( 34 ) FROM tab1
b540: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d   cor0..----..34.
b550: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
b560: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
b570: 20 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   ( + col1 ) FROM
b580: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
b590: 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
b5a0: 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a 38  ..----..1..21..8
b5b0: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  1....query III r
b5c0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
b5d0: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  LL * FROM tab0 W
b5e0: 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c  HERE NOT - - col
b5f0: 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
b600: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
b610: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
b620: 2d 20 36 34 20 2a 20 28 20 2d 20 63 6f 6c 32 20  - 64 * ( - col2 
b630: 29 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20  ), col2 AS col1 
b640: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
b650: 0a 33 30 30 38 0d 0a 34 37 0d 0a 36 33 33 36 0d  .3008..47..6336.
b660: 0a 39 39 0d 0a 36 34 30 0d 0a 31 30 0d 0a 0d 0a  .99..640..10....
b670: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
b680: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
b690: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
b6a0: 6f 72 74 20 6c 61 62 65 6c 2d 32 36 35 0d 0a 53  ort label-265..S
b6b0: 45 4c 45 43 54 20 28 20 2d 20 38 35 20 29 20 41  ELECT ( - 85 ) A
b6c0: 53 20 63 6f 6c 30 2c 20 28 20 2b 20 28 20 2d 20  S col0, ( + ( - 
b6d0: 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 63 6f 6c  COUNT( ALL - col
b6e0: 30 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62  0 ) ) ) FROM tab
b6f0: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35 0d 0a 2d 33  1..----..-85..-3
b700: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
b710: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
b720: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
b730: 6f 72 74 20 6c 61 62 65 6c 2d 32 36 35 0d 0a 53  ort label-265..S
b740: 45 4c 45 43 54 20 28 20 2d 20 38 35 20 29 20 41  ELECT ( - 85 ) A
b750: 53 20 63 6f 6c 30 2c 20 28 20 2b 20 28 20 2d 20  S col0, ( + ( - 
b760: 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 63 6f  COUNT ( ALL - co
b770: 6c 30 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61  l0 ) ) ) FROM ta
b780: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35 0d 0a 2d  b1..----..-85..-
b790: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
b7a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
b7b0: 54 49 4e 43 54 20 28 20 2b 20 31 31 20 29 20 2a  TINCT ( + 11 ) *
b7c0: 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 33 39   - - col0 * - 39
b7d0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
b7e0: 0d 0a 2d 32 31 38 37 39 0d 0a 2d 33 36 34 36 35  ..-21879..-36465
b7f0: 0d 0a 2d 33 39 30 33 39 0d 0a 0d 0a 6f 6e 6c 79  ..-39039....only
b800: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
b810: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
b820: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
b830: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36  rowsort label-26
b840: 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
b850: 43 54 20 2b 20 36 38 20 2a 20 43 41 53 54 28 20  CT + 68 * CAST( 
b860: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
b870: 20 41 53 20 63 6f 6c 31 2c 20 37 39 20 46 52 4f   AS col1, 79 FRO
b880: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
b890: 4c 4c 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66  LL..79....skipif
b8a0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b8b0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b8c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b8d0: 32 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  267..SELECT DIST
b8e0: 49 4e 43 54 20 2b 20 36 38 20 2a 20 43 41 53 54  INCT + 68 * CAST
b8f0: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
b900: 45 52 20 29 20 41 53 20 63 6f 6c 31 2c 20 37 39  ER ) AS col1, 79
b910: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
b920: 0d 0a 4e 55 4c 4c 0d 0a 37 39 0d 0a 0d 0a 6f 6e  ..NULL..79....on
b930: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
b940: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
b950: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
b960: 74 20 6c 61 62 65 6c 2d 32 36 38 0d 0a 53 45 4c  t label-268..SEL
b970: 45 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d  ECT COUNT( ALL -
b980: 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 2c   col1 ) AS col0,
b990: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
b9a0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
b9b0: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
b9c0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
b9d0: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
b9e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 38 0d 0a  sort label-268..
b9f0: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41  SELECT COUNT ( A
ba00: 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63  LL - col1 ) AS c
ba10: 6f 6c 30 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29  ol0, COUNT ( * )
ba20: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
ba30: 0d 0a 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ..3..3....query 
ba40: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
ba50: 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20 2d  T ALL col2 * - -
ba60: 20 31 30 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20   10 + - col2 AS 
ba70: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
ba80: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
ba90: 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L <> NULL..----.
baa0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
bab0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
bac0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
bad0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 30 0d  wsort label-270.
bae0: 0a 53 45 4c 45 43 54 20 53 55 4d 28 20 44 49 53  .SELECT SUM( DIS
baf0: 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29 20 63  TINCT - col2 ) c
bb00: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
bb10: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
bb20: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
bb30: 0a 2d 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-121....skipif 
bb40: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
bb50: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
bb60: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
bb70: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
bb80: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
bb90: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
bba0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
bbb0: 20 6c 61 62 65 6c 2d 32 37 30 0d 0a 53 45 4c 45   label-270..SELE
bbc0: 43 54 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43  CT SUM ( DISTINC
bbd0: 54 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c 31 20  T - col2 ) col1 
bbe0: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
bbf0: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 49 53  HERE NOT col1 IS
bc00: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   NULL..----..-12
bc10: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
bc20: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
bc30: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
bc40: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
bc50: 6c 61 62 65 6c 2d 32 37 31 0d 0a 53 45 4c 45 43  label-271..SELEC
bc60: 54 20 41 4c 4c 20 2d 20 2d 20 35 38 20 2a 20 2b  T ALL - - 58 * +
bc70: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 28 20 2b 20   - col2 + + ( + 
bc80: 63 6f 6c 32 20 29 20 44 49 56 20 32 30 20 2b 20  col2 ) DIV 20 + 
bc90: 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  + ( + col2 ) FRO
bca0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
bcb0: 2d 2d 2d 2d 0d 0a 2d 32 36 37 37 0d 0a 2d 35 36  ----..-2677..-56
bcc0: 33 39 0d 0a 2d 35 37 30 0d 0a 0d 0a 73 6b 69 70  39..-570....skip
bcd0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
bce0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
bcf0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
bd00: 2d 32 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -271..SELECT ALL
bd10: 20 2d 20 2d 20 35 38 20 2a 20 2b 20 2d 20 63 6f   - - 58 * + - co
bd20: 6c 32 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 32 20  l2 + + ( + col2 
bd30: 29 20 2f 20 32 30 20 2b 20 2b 20 28 20 2b 20 63  ) / 20 + + ( + c
bd40: 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol2 ) FROM tab0 
bd50: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
bd60: 32 36 37 37 0d 0a 2d 35 36 33 39 0d 0a 2d 35 37  2677..-5639..-57
bd70: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
bd80: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
bd90: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
bda0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
bdb0: 6c 61 62 65 6c 2d 32 37 32 0d 0a 53 45 4c 45 43  label-272..SELEC
bdc0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  T DISTINCT + - c
bdd0: 6f 6c 31 20 44 49 56 20 31 37 20 46 52 4f 4d 20  ol1 DIV 17 FROM 
bde0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
bdf0: 2d 2d 0d 0a 2d 31 0d 0a 2d 34 0d 0a 30 0d 0a 0d  --..-1..-4..0...
be00: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
be10: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
be20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
be30: 6c 61 62 65 6c 2d 32 37 32 0d 0a 53 45 4c 45 43  label-272..SELEC
be40: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  T DISTINCT + - c
be50: 6f 6c 31 20 2f 20 31 37 20 46 52 4f 4d 20 74 61  ol1 / 17 FROM ta
be60: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
be70: 0d 0a 2d 31 0d 0a 2d 34 0d 0a 30 0d 0a 0d 0a 73  ..-1..-4..0....s
be80: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
be90: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
bea0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
beb0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
bec0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
bed0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
bee0: 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 63 6f   ALL + - col2 co
bef0: 6c 30 2c 20 28 20 2d 20 2d 20 37 30 20 29 20 2d  l0, ( - - 70 ) -
bf00: 20 2b 20 2b 20 36 33 20 41 53 20 63 6f 6c 32 20   + + 63 AS col2 
bf10: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
bf20: 30 20 57 48 45 52 45 20 38 20 3c 3d 20 4e 55 4c  0 WHERE 8 <= NUL
bf30: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
bf40: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
bf50: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
bf60: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
bf70: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 34 0d  wsort label-274.
bf80: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
bf90: 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 43 41   + - col1 + + CA
bfa0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
bfb0: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  ED ) FROM tab2 A
bfc0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
bfd0: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
bfe0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
bff0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c000: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 34 0d 0a  sort label-274..
c010: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c020: 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 43 41 53  + - col1 + + CAS
c030: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
c040: 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20  GER ) FROM tab2 
c050: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
c060: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
c070: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
c080: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
c090: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
c0a0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
c0b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
c0c0: 0a 53 45 4c 45 43 54 20 2d 20 2b 20 33 31 20 2a  .SELECT - + 31 *
c0d0: 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31   + col0 * + col1
c0e0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
c0f0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
c100: 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  NULL ) IS NULL..
c110: 2d 2d 2d 2d 0d 0a 2d 31 33 31 37 35 0d 0a 2d 31  ----..-13175..-1
c120: 33 32 35 38 37 0d 0a 2d 32 32 31 33 34 0d 0a 0d  32587..-22134...
c130: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
c140: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
c150: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
c160: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 28  r0 WHERE NOT ( (
c170: 20 2b 20 38 30 20 2b 20 2d 20 63 6f 6c 30 20 29   + 80 + - col0 )
c180: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
c190: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
c1a0: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
c1b0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
c1c0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
c1d0: 72 74 20 6c 61 62 65 6c 2d 32 37 37 0d 0a 53 45  rt label-277..SE
c1e0: 4c 45 43 54 20 41 4c 4c 20 2d 20 33 30 20 44 49  LECT ALL - 30 DI
c1f0: 56 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29  V + ( + + col0 )
c200: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
c210: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  b2 cor0..----..0
c220: 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ..0..0....skipif
c230: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
c240: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
c250: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
c260: 37 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  77..SELECT ALL -
c270: 20 33 30 20 2f 20 2b 20 28 20 2b 20 2b 20 63 6f   30 / + ( + + co
c280: 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l0 ) AS col0 FRO
c290: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
c2a0: 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e  -..0..0..0....on
c2b0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
c2c0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
c2d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c2e0: 20 6c 61 62 65 6c 2d 32 37 38 0d 0a 53 45 4c 45   label-278..SELE
c2f0: 43 54 20 2b 20 32 30 20 2b 20 43 4f 55 4e 54 28  CT + 20 + COUNT(
c300: 20 2d 20 28 20 2b 20 35 36 20 29 20 29 20 2b 20   - ( + 56 ) ) + 
c310: 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43  - COUNT( DISTINC
c320: 54 20 2b 20 35 20 29 20 63 6f 6c 30 20 46 52 4f  T + 5 ) col0 FRO
c330: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 32  M tab2..----..22
c340: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
c350: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
c360: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
c370: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
c380: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
c390: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
c3a0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
c3b0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
c3c0: 6c 2d 32 37 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-278..SELECT + 
c3d0: 32 30 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 28  20 + COUNT ( - (
c3e0: 20 2b 20 35 36 20 29 20 29 20 2b 20 2d 20 43 4f   + 56 ) ) + - CO
c3f0: 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 2b  UNT ( DISTINCT +
c400: 20 35 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74   5 ) col0 FROM t
c410: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 0d  ab2..----..22...
c420: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c430: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 34 20  ..SELECT ALL 74 
c440: 2a 20 2d 20 2d 20 28 20 2b 20 2d 20 32 33 20 29  * - - ( + - 23 )
c450: 20 2b 20 37 39 20 46 52 4f 4d 20 74 61 62 31 0d   + 79 FROM tab1.
c460: 0a 2d 2d 2d 2d 0d 0a 2d 31 36 32 33 0d 0a 2d 31  .----..-1623..-1
c470: 36 32 33 0d 0a 2d 31 36 32 33 0d 0a 0d 0a 71 75  623..-1623....qu
c480: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
c490: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
c4a0: 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  ab1 WHERE NULL N
c4b0: 4f 54 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c  OT BETWEEN ( NUL
c4c0: 4c 20 29 20 41 4e 44 20 63 6f 6c 30 0d 0a 2d 2d  L ) AND col0..--
c4d0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
c4e0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
c4f0: 4c 20 2d 20 2d 20 33 20 46 52 4f 4d 20 74 61 62  L - - 3 FROM tab
c500: 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  2 WHERE NOT + co
c510: 6c 31 20 2a 20 31 33 20 2d 20 2b 20 2b 20 63 6f  l1 * 13 - + + co
c520: 6c 30 20 2f 20 2b 20 2b 20 63 6f 6c 31 20 3c 3e  l0 / + + col1 <>
c530: 20 2b 20 39 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   + 97..----....o
c540: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
c550: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
c560: 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20  D type: DIV for 
c570: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
c580: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c590: 6f 72 74 20 6c 61 62 65 6c 2d 32 38 32 0d 0a 53  ort label-282..S
c5a0: 45 4c 45 43 54 20 41 4c 4c 20 31 20 44 49 56 20  ELECT ALL 1 DIV 
c5b0: 43 41 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20  CAST( + col2 AS 
c5c0: 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30  SIGNED ) AS col0
c5d0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
c5e0: 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..0..0..0....ski
c5f0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
c600: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
c610: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
c620: 6c 2d 32 38 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-282..SELECT AL
c630: 4c 20 31 20 2f 20 43 41 53 54 20 28 20 2b 20 63  L 1 / CAST ( + c
c640: 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
c650: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
c660: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  b2..----..0..0..
c670: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
c680: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
c690: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
c6a0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
c6b0: 20 6c 61 62 65 6c 2d 32 38 33 0d 0a 53 45 4c 45   label-283..SELE
c6c0: 43 54 20 41 4c 4c 20 43 41 53 54 28 20 2d 20 36  CT ALL CAST( - 6
c6d0: 35 20 41 53 20 53 49 47 4e 45 44 20 29 20 63 6f  5 AS SIGNED ) co
c6e0: 6c 30 2c 20 2d 20 31 33 20 41 53 20 63 6f 6c 31  l0, - 13 AS col1
c6f0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
c700: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 2d  r0..----..-65..-
c710: 31 33 0d 0a 2d 36 35 0d 0a 2d 31 33 0d 0a 2d 36  13..-65..-13..-6
c720: 35 0d 0a 2d 31 33 0d 0a 0d 0a 73 6b 69 70 69 66  5..-13....skipif
c730: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
c740: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
c750: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
c760: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
c770: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
c780: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
c790: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
c7a0: 72 74 20 6c 61 62 65 6c 2d 32 38 33 0d 0a 53 45  rt label-283..SE
c7b0: 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20  LECT ALL CAST ( 
c7c0: 2d 20 36 35 20 41 53 20 49 4e 54 45 47 45 52 20  - 65 AS INTEGER 
c7d0: 29 20 63 6f 6c 30 2c 20 2d 20 31 33 20 41 53 20  ) col0, - 13 AS 
c7e0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
c7f0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
c800: 35 0d 0a 2d 31 33 0d 0a 2d 36 35 0d 0a 2d 31 33  5..-13..-65..-13
c810: 0d 0a 2d 36 35 0d 0a 2d 31 33 0d 0a 0d 0a 6f 6e  ..-65..-13....on
c820: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
c830: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
c840: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c850: 20 6c 61 62 65 6c 2d 32 38 34 0d 0a 53 45 4c 45   label-284..SELE
c860: 43 54 20 32 37 20 2b 20 2b 20 43 4f 55 4e 54 28  CT 27 + + COUNT(
c870: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 2c 20   * ) FROM tab2, 
c880: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
c890: 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..36....skipif
c8a0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
c8b0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
c8c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
c8d0: 38 34 0d 0a 53 45 4c 45 43 54 20 32 37 20 2b 20  84..SELECT 27 + 
c8e0: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
c8f0: 4f 4d 20 74 61 62 32 2c 20 74 61 62 32 20 41 53  OM tab2, tab2 AS
c900: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d   cor0..----..36.
c910: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
c920: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33  rt..SELECT + - 3
c930: 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  3 FROM tab0 AS c
c940: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
c950: 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
c960: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
c970: 69 6e 67 20 74 6f 20 38 30 33 35 63 36 36 35 61  ing to 8035c665a
c980: 37 35 64 32 32 62 65 35 39 32 32 62 65 31 61 34  75d22be5922be1a4
c990: 65 35 37 34 65 30 33 0d 0a 0d 0a 6f 6e 6c 79 69  e574e03....onlyi
c9a0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
c9b0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
c9c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
c9d0: 62 65 6c 2d 32 38 36 0d 0a 53 45 4c 45 43 54 20  bel-286..SELECT 
c9e0: 41 4c 4c 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  ALL MIN( DISTINC
c9f0: 54 20 2d 20 35 37 20 29 20 46 52 4f 4d 20 74 61  T - 57 ) FROM ta
ca00: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a 0d  b1..----..-57...
ca10: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
ca20: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
ca30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
ca40: 6c 61 62 65 6c 2d 32 38 36 0d 0a 53 45 4c 45 43  label-286..SELEC
ca50: 54 20 41 4c 4c 20 4d 49 4e 20 28 20 44 49 53 54  T ALL MIN ( DIST
ca60: 49 4e 43 54 20 2d 20 35 37 20 29 20 46 52 4f 4d  INCT - 57 ) FROM
ca70: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37   tab1..----..-57
ca80: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
ca90: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
caa0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
cab0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 37  owsort label-287
cac0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
cad0: 54 20 36 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29  T 6 * COUNT( * )
cae0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
caf0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a  r0..----..18....
cb00: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
cb10: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
cb20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
cb30: 61 62 65 6c 2d 32 38 37 0d 0a 53 45 4c 45 43 54  abel-287..SELECT
cb40: 20 44 49 53 54 49 4e 43 54 20 36 20 2a 20 43 4f   DISTINCT 6 * CO
cb50: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
cb60: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
cb70: 2d 0d 0a 31 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..18....onlyif 
cb80: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
cb90: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
cba0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
cbb0: 6c 2d 32 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-288..SELECT + 
cbc0: 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 35  COUNT( * ) * - 5
cbd0: 35 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  5 col1 FROM tab0
cbe0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
cbf0: 2d 31 36 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -165....skipif m
cc00: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
cc10: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
cc20: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
cc30: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
cc40: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
cc50: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
cc60: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
cc70: 6c 61 62 65 6c 2d 32 38 38 0d 0a 53 45 4c 45 43  label-288..SELEC
cc80: 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
cc90: 2a 20 2d 20 35 35 20 63 6f 6c 31 20 46 52 4f 4d  * - 55 col1 FROM
cca0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
ccb0: 2d 2d 2d 0d 0a 2d 31 36 35 0d 0a 0d 0a 6f 6e 6c  ---..-165....onl
ccc0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
ccd0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
cce0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
ccf0: 6c 61 62 65 6c 2d 32 38 39 0d 0a 53 45 4c 45 43  label-289..SELEC
cd00: 54 20 2d 20 2b 20 4d 49 4e 28 20 2b 20 63 6f 6c  T - + MIN( + col
cd10: 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
cd20: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
cd30: 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-51....skipif 
cd40: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
cd50: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
cd60: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
cd70: 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 49  9..SELECT - + MI
cd80: 4e 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  N ( + col0 ) AS 
cd90: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
cda0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a  or0..----..-51..
cdb0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
cdc0: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
cdd0: 43 54 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  CT + col2 FROM t
cde0: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
cdf0: 45 20 4e 4f 54 20 63 6f 6c 32 20 3c 20 2d 20 63  E NOT col2 < - c
ce00: 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34  ol0..----..10..4
ce10: 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..99....onlyif 
ce20: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
ce30: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
ce40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
ce50: 6c 2d 32 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-291..SELECT AL
ce60: 4c 20 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 44  L - ( + COUNT( D
ce70: 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29  ISTINCT - col1 )
ce80: 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
ce90: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
cea0: 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
ceb0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
cec0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
ced0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
cee0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
cef0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
cf00: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
cf10: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
cf20: 61 62 65 6c 2d 32 39 31 0d 0a 53 45 4c 45 43 54  abel-291..SELECT
cf30: 20 41 4c 4c 20 2d 20 28 20 2b 20 43 4f 55 4e 54   ALL - ( + COUNT
cf40: 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f   ( DISTINCT - co
cf50: 6c 31 20 29 20 29 20 63 6f 6c 30 20 46 52 4f 4d  l1 ) ) col0 FROM
cf60: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
cf70: 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69  ---..-3....onlyi
cf80: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
cf90: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
cfa0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
cfb0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
cfc0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
cfd0: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
cfe0: 43 54 20 2d 20 2d 20 53 55 4d 28 20 44 49 53 54  CT - - SUM( DIST
cff0: 49 4e 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c  INCT - CAST( NUL
d000: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
d010: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
d020: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
d030: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
d040: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
d050: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d060: 6c 61 62 65 6c 2d 32 39 32 0d 0a 53 45 4c 45 43  label-292..SELEC
d070: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 53  T DISTINCT - - S
d080: 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UM ( DISTINCT - 
d090: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
d0a0: 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20  NTEGER ) ) FROM 
d0b0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
d0c0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
d0d0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
d0e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
d0f0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
d100: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
d110: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d120: 39 33 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 32  93..SELECT - ( 2
d130: 38 20 29 20 44 49 56 20 43 4f 55 4e 54 28 20 2a  8 ) DIV COUNT( *
d140: 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
d150: 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..-9....skipif
d160: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
d170: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
d180: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d190: 39 33 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 32  93..SELECT - ( 2
d1a0: 38 20 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20  8 ) / COUNT ( * 
d1b0: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
d1c0: 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-9....query I
d1d0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
d1e0: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a   DISTINCT col2 *
d1f0: 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + + col0 FROM t
d200: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 30 35 0d 0a  ab0..----..705..
d210: 38 37 30 0d 0a 39 36 30 33 0d 0a 0d 0a 6f 6e 6c  870..9603....onl
d220: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
d230: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
d240: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d250: 6c 61 62 65 6c 2d 32 39 35 0d 0a 53 45 4c 45 43  label-295..SELEC
d260: 54 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  T MAX( DISTINCT 
d270: 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
d280: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
d290: 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
d2a0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
d2b0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
d2c0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 35 0d 0a  sort label-295..
d2d0: 53 45 4c 45 43 54 20 4d 41 58 20 28 20 44 49 53  SELECT MAX ( DIS
d2e0: 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 41 53 20  TINCT col2 ) AS 
d2f0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
d300: 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72  ----..96....quer
d310: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
d320: 45 43 54 20 41 4c 4c 20 28 20 2d 20 35 32 20 29  ECT ALL ( - 52 )
d330: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
d340: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d 0a 2d  b2..----..-52..-
d350: 35 32 0d 0a 2d 35 32 0d 0a 0d 0a 71 75 65 72 79  52..-52....query
d360: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
d370: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
d380: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
d390: 2d 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 4e  - col2 BETWEEN N
d3a0: 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
d3b0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
d3c0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
d3d0: 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
d3e0: 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49  E NOT NULL NOT I
d3f0: 4e 20 28 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63  N ( - col1 + - c
d400: 6f 6c 32 2c 20 2b 20 31 34 20 29 0d 0a 2d 2d 2d  ol2, + 14 )..---
d410: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
d420: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
d430: 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 41 53 20  TINCT + col2 AS 
d440: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
d450: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
d460: 4c 20 3c 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  L <> ( NULL )..-
d470: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
d480: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
d490: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
d4a0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
d4b0: 72 74 20 6c 61 62 65 6c 2d 33 30 30 0d 0a 53 45  rt label-300..SE
d4c0: 4c 45 43 54 20 2b 20 2b 20 37 35 2c 20 2d 20 43  LECT + + 75, - C
d4d0: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
d4e0: 4e 45 44 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  NED ) col0 FROM 
d4f0: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
d500: 0a 37 35 0d 0a 4e 55 4c 4c 0d 0a 37 35 0d 0a 4e  .75..NULL..75..N
d510: 55 4c 4c 0d 0a 37 35 0d 0a 4e 55 4c 4c 0d 0a 0d  ULL..75..NULL...
d520: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
d530: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
d540: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
d550: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
d560: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
d570: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
d580: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
d590: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d5a0: 33 30 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  300..SELECT + + 
d5b0: 37 35 2c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  75, - CAST ( NUL
d5c0: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 63  L AS INTEGER ) c
d5d0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
d5e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 4e 55  r0..----..75..NU
d5f0: 4c 4c 0d 0a 37 35 0d 0a 4e 55 4c 4c 0d 0a 37 35  LL..75..NULL..75
d600: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
d610: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
d620: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
d630: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
d640: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
d650: 32 20 2a 20 2b 20 31 30 20 49 53 20 4e 4f 54 20  2 * + 10 IS NOT 
d660: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
d670: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
d680: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
d690: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
d6a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
d6b0: 30 32 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  02..SELECT + col
d6c0: 31 20 44 49 56 20 63 6f 6c 31 20 44 49 56 20 2d  1 DIV col1 DIV -
d6d0: 20 36 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   69 AS col0 FROM
d6e0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
d6f0: 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
d700: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
d710: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
d720: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d730: 61 62 65 6c 2d 33 30 32 0d 0a 53 45 4c 45 43 54  abel-302..SELECT
d740: 20 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c 31 20 2f   + col1 / col1 /
d750: 20 2d 20 36 39 20 41 53 20 63 6f 6c 30 20 46 52   - 69 AS col0 FR
d760: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
d770: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
d780: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d790: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
d7a0: 20 2b 20 33 32 20 2a 20 2b 20 36 34 20 46 52 4f   + 32 * + 64 FRO
d7b0: 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
d7c0: 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
d7d0: 2d 2d 2d 2d 0d 0a 32 30 39 34 0d 0a 32 31 31 32  ----..2094..2112
d7e0: 0d 0a 32 31 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..2123....onlyif
d7f0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d800: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d810: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d820: 65 6c 2d 33 30 34 0d 0a 53 45 4c 45 43 54 20 2b  el-304..SELECT +
d830: 20 2d 20 4d 49 4e 28 20 2d 20 2d 20 63 6f 6c 32   - MIN( - - col2
d840: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
d850: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d  cor0..----..-59.
d860: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
d870: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
d880: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d890: 74 20 6c 61 62 65 6c 2d 33 30 34 0d 0a 53 45 4c  t label-304..SEL
d8a0: 45 43 54 20 2b 20 2d 20 4d 49 4e 20 28 20 2d 20  ECT + - MIN ( - 
d8b0: 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  - col2 ) FROM ta
d8c0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
d8d0: 0d 0a 2d 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-59....onlyif 
d8e0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
d8f0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
d900: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
d910: 6c 2d 33 30 35 0d 0a 53 45 4c 45 43 54 20 2d 20  l-305..SELECT - 
d920: 4d 49 4e 28 20 41 4c 4c 20 2d 20 28 20 2b 20 2d  MIN( ALL - ( + -
d930: 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74   col2 ) ) FROM t
d940: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
d950: 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..-10....skipif
d960: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
d970: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
d980: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
d990: 30 35 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e  05..SELECT - MIN
d9a0: 20 28 20 41 4c 4c 20 2d 20 28 20 2b 20 2d 20 63   ( ALL - ( + - c
d9b0: 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol2 ) ) FROM tab
d9c0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
d9d0: 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-10....query II
d9e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d9f0: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
da00: 32 20 63 6f 72 30 20 57 48 45 52 45 20 31 37 20  2 cor0 WHERE 17 
da10: 2a 20 2d 20 2b 20 63 6f 6c 32 20 3c 3e 20 2d 20  * - + col2 <> - 
da20: 36 34 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  64..----..9 valu
da30: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
da40: 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
da50: 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
da60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
da70: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
da80: 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  col2 * + col1 + 
da90: 2b 20 32 36 20 46 52 4f 4d 20 74 61 62 31 20 41  + 26 FROM tab1 A
daa0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
dab0: 33 31 38 0d 0a 2d 32 36 39 0d 0a 2d 33 31 37 30  318..-269..-3170
dac0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
dad0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
dae0: 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
daf0: 62 30 20 57 48 45 52 45 20 28 20 28 20 4e 55 4c  b0 WHERE ( ( NUL
db00: 4c 20 29 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d  L ) IS NULL )..-
db10: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
db20: 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
db30: 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
db40: 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
db50: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
db60: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2d 20  LECT ALL col2 - 
db70: 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
db80: 20 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c 32 20   WHERE + + col2 
db90: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
dba0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
dbb0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
dbc0: 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 63  M tab1 WHERE ( c
dbd0: 6f 6c 32 20 2a 20 34 39 20 2b 20 2b 20 63 6f 6c  ol2 * 49 + + col
dbe0: 32 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29  2 + ( + + col2 )
dbf0: 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20   ) BETWEEN NULL 
dc00: 41 4e 44 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  AND col2 + - col
dc10: 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  0..----....skipi
dc20: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
dc30: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
dc40: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
dc50: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
dc60: 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
dc70: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
dc80: 20 34 37 2c 20 2d 20 63 6f 6c 32 20 63 6f 6c 31   47, - col2 col1
dc90: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
dca0: 0d 0a 34 37 0d 0a 2d 35 39 0d 0a 34 37 0d 0a 2d  ..47..-59..47..-
dcb0: 36 38 0d 0a 34 37 0d 0a 2d 39 36 0d 0a 0d 0a 6f  68..47..-96....o
dcc0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
dcd0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
dce0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
dcf0: 74 20 6c 61 62 65 6c 2d 33 31 32 0d 0a 53 45 4c  t label-312..SEL
dd00: 45 43 54 20 4d 41 58 28 20 41 4c 4c 20 2d 20 2b  ECT MAX( ALL - +
dd10: 20 63 6f 6c 32 20 29 20 2b 20 2b 20 2b 20 38 35   col2 ) + + + 85
dd20: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
dd30: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a  b1..----..26....
dd40: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
dd50: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
dd60: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
dd70: 61 62 65 6c 2d 33 31 32 0d 0a 53 45 4c 45 43 54  abel-312..SELECT
dd80: 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 2b 20 63   MAX ( ALL - + c
dd90: 6f 6c 32 20 29 20 2b 20 2b 20 2b 20 38 35 20 41  ol2 ) + + + 85 A
dda0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
ddb0: 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 0d 0a 71 75  ..----..26....qu
ddc0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
ddd0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30  ELECT ALL + col0
dde0: 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - - col2 AS col
ddf0: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
de00: 2d 0d 0a 31 34 34 0d 0a 31 34 37 0d 0a 31 35 39  -..144..147..159
de10: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
de20: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
de30: 6c 32 20 2b 20 2b 20 33 31 20 41 53 20 63 6f 6c  l2 + + 31 AS col
de40: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
de50: 2d 0d 0a 2d 32 38 0d 0a 2d 33 37 0d 0a 2d 36 35  -..-28..-37..-65
de60: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
de70: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
de80: 2d 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20  - - col1 * col1 
de90: 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  * - col2 + - col
dea0: 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
deb0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 38 30 0d 0a 2d  ..----..-1480..-
dec0: 31 35 30 32 35 39 0d 0a 2d 31 38 38 33 30 0d 0a  150259..-18830..
ded0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
dee0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
def0: 49 4e 43 54 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  INCT col0, + col
df00: 31 20 2a 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20  1 * col1 + col0 
df10: 41 53 20 63 6f 6c 31 2c 20 2d 20 32 37 20 46 52  AS col1, - 27 FR
df20: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
df30: 57 48 45 52 45 20 4e 4f 54 20 35 30 20 49 53 20  WHERE NOT 50 IS 
df40: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
df50: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
df60: 31 66 34 32 65 61 64 39 36 61 64 64 62 37 62 64  1f42ead96addb7bd
df70: 38 30 32 34 65 36 37 31 63 30 66 34 62 32 31 30  8024e671c0f4b210
df80: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
df90: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
dfa0: 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
dfb0: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
dfc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dfd0: 20 6c 61 62 65 6c 2d 33 31 37 0d 0a 53 45 4c 45   label-317..SELE
dfe0: 43 54 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e  CT + MAX( DISTIN
dff0: 43 54 20 63 6f 6c 32 20 29 20 44 49 56 20 2d 20  CT col2 ) DIV - 
e000: 4d 41 58 28 20 2b 20 63 6f 6c 30 20 29 20 41 53  MAX( + col0 ) AS
e010: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
e020: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor0..----..0...
e030: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
e040: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
e050: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
e060: 6c 61 62 65 6c 2d 33 31 37 0d 0a 53 45 4c 45 43  label-317..SELEC
e070: 54 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e  T + MAX ( DISTIN
e080: 43 54 20 63 6f 6c 32 20 29 20 2f 20 2d 20 4d 41  CT col2 ) / - MA
e090: 58 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  X ( + col0 ) AS 
e0a0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
e0b0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
e0c0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
e0d0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
e0e0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
e0f0: 72 74 20 6c 61 62 65 6c 2d 33 31 38 0d 0a 53 45  rt label-318..SE
e100: 4c 45 43 54 20 2d 20 28 20 2d 20 43 4f 55 4e 54  LECT - ( - COUNT
e110: 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
e120: 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  2 WHERE NULL BET
e130: 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f  WEEN NULL AND co
e140: 6c 31 20 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  l1 * col0..----.
e150: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
e160: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
e170: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
e180: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 38 0d 0a  sort label-318..
e190: 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 43 4f 55  SELECT - ( - COU
e1a0: 4e 54 20 28 20 2a 20 29 20 29 20 46 52 4f 4d 20  NT ( * ) ) FROM 
e1b0: 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab2 WHERE NULL 
e1c0: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
e1d0: 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 0d 0a 2d 2d   col1 * col0..--
e1e0: 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  --..0....query I
e1f0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
e200: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
e210: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20  OM tab0 WHERE ( 
e220: 2b 20 37 37 20 29 20 3e 20 4e 55 4c 4c 0d 0a 2d  + 77 ) > NULL..-
e230: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
e240: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
e250: 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 2b  ISTINCT col2 * +
e260: 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 41   col0 + - col1 A
e270: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
e280: 0d 0a 2d 2d 2d 2d 0d 0a 36 32 34 0d 0a 38 34 39  ..----..624..849
e290: 0d 0a 39 36 30 32 0d 0a 0d 0a 71 75 65 72 79 20  ..9602....query 
e2a0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
e2b0: 54 20 63 6f 6c 30 20 2b 20 63 6f 6c 32 20 2a 20  T col0 + col2 * 
e2c0: 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  + col1 AS col2 F
e2d0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
e2e0: 31 39 36 0d 0a 32 39 37 0d 0a 33 38 32 32 0d 0a  196..297..3822..
e2f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
e300: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
e310: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
e320: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 32 0d 0a  sort label-322..
e330: 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
e340: 29 20 2b 20 43 4f 55 4e 54 28 20 2b 20 28 20 63  ) + COUNT( + ( c
e350: 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c 30 20  ol0 ) ) AS col0 
e360: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
e370: 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .6....skipif mys
e380: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
e390: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
e3a0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 32 0d 0a  sort label-322..
e3b0: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
e3c0: 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20 28   ) + COUNT ( + (
e3d0: 20 63 6f 6c 30 20 29 20 29 20 41 53 20 63 6f 6c   col0 ) ) AS col
e3e0: 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
e3f0: 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..6....query I 
e400: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e410: 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
e420: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
e430: 20 28 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 2a   ( col0 - col0 *
e440: 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d   col2 ) IS NULL.
e450: 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35  .----..14..47..5
e460: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
e470: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
e480: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
e490: 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  b1 WHERE + col1 
e4a0: 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41  BETWEEN - col1 A
e4b0: 4e 44 20 28 20 63 6f 6c 31 20 2a 20 63 6f 6c 31  ND ( col1 * col1
e4c0: 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   + col2 )..----.
e4d0: 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 71 75  .14..47..5....qu
e4e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e4f0: 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53 20  ELECT + col1 AS 
e500: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
e510: 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c  HERE NOT ( + col
e520: 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  2 ) IS NULL..---
e530: 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d  -..51..67..77...
e540: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e550: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
e560: 54 20 32 37 20 2b 20 63 6f 6c 30 20 2a 20 36 37  T 27 + col0 * 67
e570: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
e580: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 32 0d 0a  b0..----..1032..
e590: 35 38 35 36 0d 0a 36 35 32 36 0d 0a 0d 0a 6f 6e  5856..6526....on
e5a0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
e5b0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
e5c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e5d0: 20 6c 61 62 65 6c 2d 33 32 37 0d 0a 53 45 4c 45   label-327..SELE
e5e0: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
e5f0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
e600: 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  ab1 WHERE NULL N
e610: 4f 54 20 49 4e 20 28 20 2b 20 31 38 20 29 0d 0a  OT IN ( + 18 )..
e620: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
e630: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
e640: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
e650: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
e660: 33 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  327..SELECT ALL 
e670: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
e680: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
e690: 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20  ERE NULL NOT IN 
e6a0: 28 20 2b 20 31 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( + 18 )..----..
e6b0: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
e6c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
e6d0: 54 49 4e 43 54 20 2b 20 28 20 2d 20 31 37 20 29  TINCT + ( - 17 )
e6e0: 20 2a 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 63 6f   * + col1 - + co
e6f0: 6c 32 20 2f 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  l2 / - col1 FROM
e700: 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 37 38   tab0 WHERE + 78
e710: 20 2a 20 2d 20 35 30 20 3c 20 28 20 4e 55 4c 4c   * - 50 < ( NULL
e720: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
e730: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
e740: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
e750: 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c   tab2 WHERE NULL
e760: 20 3d 20 28 20 63 6f 6c 30 20 2b 20 2b 20 63 6f   = ( col0 + + co
e770: 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l1 )..----....on
e780: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
e790: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
e7a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e7b0: 20 6c 61 62 65 6c 2d 33 33 30 0d 0a 53 45 4c 45   label-330..SELE
e7c0: 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20  CT COUNT( ALL - 
e7d0: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30  col1 ) FROM tab0
e7e0: 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
e7f0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
e800: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
e810: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e820: 6c 2d 33 33 30 0d 0a 53 45 4c 45 43 54 20 43 4f  l-330..SELECT CO
e830: 55 4e 54 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31  UNT ( ALL - col1
e840: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
e850: 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
e860: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e870: 20 44 49 53 54 49 4e 43 54 20 2b 20 35 36 20 41   DISTINCT + 56 A
e880: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
e890: 20 57 48 45 52 45 20 28 20 2b 20 36 32 20 2a 20   WHERE ( + 62 * 
e8a0: 2d 20 34 35 20 29 20 49 53 20 4e 4f 54 20 4e 55  - 45 ) IS NOT NU
e8b0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 0d 0a  LL..----..56....
e8c0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
e8d0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
e8e0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
e8f0: 72 74 20 6c 61 62 65 6c 2d 33 33 32 0d 0a 53 45  rt label-332..SE
e900: 4c 45 43 54 20 2d 20 28 20 2b 20 43 4f 55 4e 54  LECT - ( + COUNT
e910: 28 20 2a 20 29 20 29 20 63 6f 6c 31 20 46 52 4f  ( * ) ) col1 FRO
e920: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab0..----..-3
e930: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e940: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e950: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
e960: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
e970: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
e980: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
e990: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
e9a0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e9b0: 6c 2d 33 33 32 0d 0a 53 45 4c 45 43 54 20 2d 20  l-332..SELECT - 
e9c0: 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
e9d0: 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
e9e0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e  ..----..-3....on
e9f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
ea00: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
ea10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ea20: 20 6c 61 62 65 6c 2d 33 33 33 0d 0a 53 45 4c 45   label-333..SELE
ea30: 43 54 20 2d 20 33 20 2a 20 28 20 34 32 20 29 20  CT - 3 * ( 42 ) 
ea40: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
ea50: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
ea60: 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  23....skipif mys
ea70: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
ea80: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
ea90: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 33 0d 0a  sort label-333..
eaa0: 53 45 4c 45 43 54 20 2d 20 33 20 2a 20 28 20 34  SELECT - 3 * ( 4
eab0: 32 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  2 ) + COUNT ( * 
eac0: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
ead0: 2d 0d 0a 2d 31 32 33 0d 0a 0d 0a 71 75 65 72 79  -..-123....query
eae0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
eaf0: 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
eb00: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
eb10: 20 4e 4f 54 20 2b 20 30 20 4e 4f 54 20 42 45 54   NOT + 0 NOT BET
eb20: 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20  WEEN NULL AND + 
eb30: 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d  col0 + - col2..-
eb40: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
eb50: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
eb60: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
eb70: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
eb80: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
eb90: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
eba0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ebb0: 20 33 33 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   33 col2 FROM ta
ebc0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d 0a  b0..----..33....
ebd0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
ebe0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
ebf0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
ec00: 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3d 20 2b  NOT ( NULL ) = +
ec10: 20 63 6f 6c 31 20 2a 20 39 35 0d 0a 2d 2d 2d 2d   col1 * 95..----
ec20: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
ec30: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
ec40: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
ec50: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
ec60: 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
ec70: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
ec80: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
ec90: 20 28 20 2d 20 63 6f 6c 30 20 29 20 2d 20 63 6f   ( - col0 ) - co
eca0: 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63  l2 * - col1 AS c
ecb0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
ecc0: 2d 2d 2d 0d 0a 31 31 32 37 0d 0a 33 30 31 36 0d  ---..1127..3016.
ecd0: 0a 33 38 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .3811....query I
ece0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ecf0: 20 41 4c 4c 20 2d 20 37 35 20 2b 20 2d 20 63 6f   ALL - 75 + - co
ed00: 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
ed10: 2d 2d 0d 0a 2d 31 32 36 0d 0a 2d 31 34 32 0d 0a  --..-126..-142..
ed20: 2d 31 35 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -152....onlyif m
ed30: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
ed40: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
ed50: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ed60: 2d 33 34 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -340..SELECT - C
ed70: 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 63  OUNT( DISTINCT c
ed80: 6f 6c 32 20 29 20 2b 20 36 32 20 46 52 4f 4d 20  ol2 ) + 62 FROM 
ed90: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  tab2..----..59..
eda0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
edb0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
edc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
edd0: 20 6c 61 62 65 6c 2d 33 34 30 0d 0a 53 45 4c 45   label-340..SELE
ede0: 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 44 49 53  CT - COUNT ( DIS
edf0: 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 2b 20 36  TINCT col2 ) + 6
ee00: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
ee10: 2d 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..59....onlyif 
ee20: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
ee30: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
ee40: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ee50: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 31 0d 0a 53  ort label-341..S
ee60: 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 41  ELECT ALL col2 A
ee70: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
ee80: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 43   AS cor0 WHERE C
ee90: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
eea0: 4e 45 44 20 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d  NED ) < NULL..--
eeb0: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
eec0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
eed0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
eee0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 31 0d 0a  sort label-341..
eef0: 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
ef00: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
ef10: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
ef20: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
ef30: 4e 54 45 47 45 52 20 29 20 3c 20 4e 55 4c 4c 0d  NTEGER ) < NULL.
ef40: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
ef50: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
ef60: 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
ef70: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
ef80: 20 28 20 4e 55 4c 4c 20 29 20 3d 20 2d 20 39 36   ( NULL ) = - 96
ef90: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
efa0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
efb0: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
efc0: 2b 20 2b 20 39 32 20 41 53 20 63 6f 6c 30 20 46  + + 92 AS col0 F
efd0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
efe0: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a 31 37 39  ..----..107..179
eff0: 0d 0a 31 38 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..189....onlyif 
f000: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
f010: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
f020: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f030: 6c 2d 33 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-344..SELECT AL
f040: 4c 20 2b 20 4d 49 4e 28 20 2d 20 63 6f 6c 31 20  L + MIN( - col1 
f050: 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
f060: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
f070: 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -81....skipif my
f080: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
f090: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
f0a0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
f0b0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
f0c0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
f0d0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
f0e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
f0f0: 61 62 65 6c 2d 33 34 34 0d 0a 53 45 4c 45 43 54  abel-344..SELECT
f100: 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2d 20 63   ALL + MIN ( - c
f110: 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ol1 ) col2 FROM 
f120: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
f130: 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c 79 69  --..-81....onlyi
f140: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
f150: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
f160: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
f170: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 35 0d  wsort label-345.
f180: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
f190: 20 43 41 53 54 28 20 2d 20 36 33 20 41 53 20 53   CAST( - 63 AS S
f1a0: 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20  IGNED ) AS col1 
f1b0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
f1c0: 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a 0d 0a 73 6b 69  ----..-63....ski
f1d0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
f1e0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
f1f0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f200: 6c 2d 33 34 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-345..SELECT DI
f210: 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 2d 20  STINCT CAST ( - 
f220: 36 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  63 AS INTEGER ) 
f230: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
f240: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  0 cor0..----..-6
f250: 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
f260: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
f270: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
f280: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34  rowsort label-34
f290: 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
f2a0: 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 32 31 20  COUNT( * ) + 21 
f2b0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
f2c0: 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  0 cor0 CROSS JOI
f2d0: 4e 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 30  N tab1..----..30
f2e0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
f2f0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
f300: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
f310: 72 74 20 6c 61 62 65 6c 2d 33 34 36 0d 0a 53 45  rt label-346..SE
f320: 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
f330: 20 28 20 2a 20 29 20 2b 20 32 31 20 41 53 20 63   ( * ) + 21 AS c
f340: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
f350: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
f360: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d 0a  b1..----..30....
f370: 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77  query IIIIII row
f380: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
f390: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 43 52  ROM tab1 cor0 CR
f3a0: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 57 48  OSS JOIN tab0 WH
f3b0: 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
f3c0: 20 3c 3e 20 2b 20 37 33 0d 0a 2d 2d 2d 2d 0d 0a   <> + 73..----..
f3d0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
f3e0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
f3f0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
f400: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 38 0d 0a  sort label-348..
f410: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
f420: 28 20 2d 20 36 36 20 29 20 46 52 4f 4d 20 74 61  ( - 66 ) FROM ta
f430: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d  b1..----..-66...
f440: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
f450: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
f460: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f470: 6c 61 62 65 6c 2d 33 34 38 0d 0a 53 45 4c 45 43  label-348..SELEC
f480: 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2d 20  T ALL + MIN ( - 
f490: 36 36 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  66 ) FROM tab1..
f4a0: 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 6f 6e 6c  ----..-66....onl
f4b0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
f4c0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
f4d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f4e0: 6c 61 62 65 6c 2d 33 34 39 0d 0a 53 45 4c 45 43  label-349..SELEC
f4f0: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
f500: 4e 54 28 20 2a 20 29 20 2d 20 2d 20 31 30 20 41  NT( * ) - - 10 A
f510: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
f520: 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
f530: 4f 49 4e 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  OIN tab2..----..
f540: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
f550: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f560: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f570: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 39 0d 0a 53  ort label-349..S
f580: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
f590: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d   COUNT ( * ) - -
f5a0: 20 31 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   10 AS col0 FROM
f5b0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
f5c0: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 0d 0a 2d  OSS JOIN tab2..-
f5d0: 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..1....onlyif
f5e0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
f5f0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
f600: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
f610: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 30 0d 0a  sort label-350..
f620: 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e  SELECT - CAST( N
f630: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
f640: 2a 20 2d 20 32 32 20 41 53 20 63 6f 6c 31 20 46  * - 22 AS col1 F
f650: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63  ROM tab1 WHERE c
f660: 6f 6c 30 20 2a 20 36 37 20 49 53 20 4e 55 4c 4c  ol0 * 67 IS NULL
f670: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
f680: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
f690: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
f6a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f6b0: 35 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  50..SELECT - CAS
f6c0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
f6d0: 47 45 52 20 29 20 2a 20 2d 20 32 32 20 41 53 20  GER ) * - 22 AS 
f6e0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
f6f0: 48 45 52 45 20 63 6f 6c 30 20 2a 20 36 37 20 49  HERE col0 * 67 I
f700: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
f710: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
f720: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
f730: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
f740: 72 74 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53 45  rt label-351..SE
f750: 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
f760: 28 20 2a 20 29 20 2a 20 35 32 20 41 53 20 63 6f  ( * ) * 52 AS co
f770: 6c 31 20 46 52 4f 4d 20 28 20 74 61 62 31 20 63  l1 FROM ( tab1 c
f780: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
f790: 61 62 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36  ab1 )..----..-46
f7a0: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
f7b0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f7c0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f7d0: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53  ort label-351..S
f7e0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
f7f0: 54 20 28 20 2a 20 29 20 2a 20 35 32 20 41 53 20  T ( * ) * 52 AS 
f800: 63 6f 6c 31 20 46 52 4f 4d 20 28 20 74 61 62 31  col1 FROM ( tab1
f810: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
f820: 20 74 61 62 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d   tab1 )..----..-
f830: 34 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  468....query I r
f840: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
f850: 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32  ISTINCT + + col2
f860: 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 32   * - col1 + col2
f870: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
f880: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
f890: 0d 0a 2d 31 32 34 38 0d 0a 2d 32 33 36 0d 0a 2d  ..-1248..-236..-
f8a0: 33 31 32 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  3128....query II
f8b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f8c0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  T * FROM tab1 co
f8d0: 72 30 20 57 48 45 52 45 20 35 20 3e 20 28 20 63  r0 WHERE 5 > ( c
f8e0: 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol1 )..----....q
f8f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
f900: 53 45 4c 45 43 54 20 2d 20 2b 20 38 36 20 2b 20  SELECT - + 86 + 
f910: 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  + col1 AS col0 F
f920: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
f930: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 2d 33 35  ..----..-19..-35
f940: 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-9....onlyif m
f950: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
f960: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
f970: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f980: 2d 33 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -355..SELECT DIS
f990: 54 49 4e 43 54 20 2b 20 37 20 2a 20 2b 20 43 4f  TINCT + 7 * + CO
f9a0: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
f9b0: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  b1 cor0..----..2
f9c0: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
f9d0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f9e0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f9f0: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 35 0d 0a 53  ort label-355..S
fa00: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
fa10: 20 37 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a   7 * + COUNT ( *
fa20: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
fa30: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a 71  0..----..21....q
fa40: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
fa50: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
fa60: 2b 20 2d 20 35 39 20 2b 20 33 35 20 2a 20 2d 20  + - 59 + 35 * - 
fa70: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
fa80: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
fa90: 36 36 39 0d 0a 2d 32 32 39 39 0d 0a 2d 32 36 38  669..-2299..-268
faa0: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
fab0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
fac0: 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 37 37   + + col1 + - 77
fad0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
fae0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
faf0: 0d 0a 2d 35 36 0d 0a 2d 37 36 0d 0a 34 0d 0a 0d  ..-56..-76..4...
fb00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
fb10: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20  ..SELECT col2 + 
fb20: 2b 20 34 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 45 AS col1 FRO
fb30: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
fb40: 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 36 38 0d 0a 38  ----..103..68..8
fb50: 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
fb60: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
fb70: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
fb80: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
fb90: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
fba0: 74 20 6c 61 62 65 6c 2d 33 35 39 0d 0a 53 45 4c  t label-359..SEL
fbb0: 45 43 54 20 43 41 53 54 28 20 2d 20 41 56 47 20  ECT CAST( - AVG 
fbc0: 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  ( DISTINCT col2 
fbd0: 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  ) AS SIGNED ) + 
fbe0: 31 34 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20  14 * - COUNT( * 
fbf0: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
fc00: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 32 0d 0a  ab2..----..-82..
fc10: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
fc20: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
fc30: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
fc40: 20 6c 61 62 65 6c 2d 33 35 39 0d 0a 53 45 4c 45   label-359..SELE
fc50: 43 54 20 43 41 53 54 20 28 20 2d 20 41 56 47 20  CT CAST ( - AVG 
fc60: 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20  ( DISTINCT col2 
fc70: 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  ) AS INTEGER ) +
fc80: 20 31 34 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20   14 * - COUNT ( 
fc90: 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
fca0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 32   tab2..----..-82
fcb0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
fcc0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
fcd0: 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 46 52  - col1 + col0 FR
fce0: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
fcf0: 4c 4c 20 49 4e 20 28 20 63 6f 6c 30 20 2d 20 63  LL IN ( col0 - c
fd00: 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol2 )..----....q
fd10: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
fd20: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 41 53  SELECT - col1 AS
fd30: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
fd40: 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55  WHERE NULL IS NU
fd50: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  LL..----..-51..-
fd60: 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 6f 6e 6c 79 69  67..-77....onlyi
fd70: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
fd80: 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
fd90: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
fda0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 32  owsort label-362
fdb0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
fdc0: 54 20 63 6f 6c 32 20 2d 20 28 20 2b 20 43 41 53  T col2 - ( + CAS
fdd0: 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
fde0: 41 4c 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  AL ) ) FROM tab0
fdf0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
fe00: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
fe10: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
fe20: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
fe30: 61 62 65 6c 2d 33 36 32 0d 0a 53 45 4c 45 43 54  abel-362..SELECT
fe40: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2d   DISTINCT col2 -
fe50: 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( + CAST ( NULL
fe60: 20 41 53 20 52 45 41 4c 20 29 20 29 20 46 52 4f   AS REAL ) ) FRO
fe70: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
fe80: 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
fe90: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
fea0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
feb0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
fec0: 20 6c 61 62 65 6c 2d 33 36 33 0d 0a 53 45 4c 45   label-363..SELE
fed0: 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
fee0: 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c 32   SIGNED ) * col2
fef0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
ff00: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
ff10: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
ff20: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
ff30: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
ff40: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ff50: 65 6c 2d 33 36 33 0d 0a 53 45 4c 45 43 54 20 43  el-363..SELECT C
ff60: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
ff70: 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 32 20 41  TEGER ) * col2 A
ff80: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
ff90: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
ffa0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
ffb0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ffc0: 45 43 54 20 41 4c 4c 20 2b 20 38 39 20 2a 20 2b  ECT ALL + 89 * +
ffd0: 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 30   + col1 - + col0
ffe0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
fff0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 34 39 33 0d 0a  b2..----..4493..
10000 35 38 38 38 0d 0a 36 37 38 39 0d 0a 0d 0a 71 75  5888..6789....qu
10010 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
10020 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2d  ELECT ALL col1 -
10030 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + + col1 FROM t
10040 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab2..----..0..0.
10050 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .0....query I ro
10060 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
10070 53 54 49 4e 43 54 20 2b 20 39 38 20 2a 20 2b 20  STINCT + 98 * + 
10080 38 36 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  86 * + col2 FROM
10090 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 39 37   tab1..----..497
100a0 32 35 32 0d 0a 35 37 33 31 30 34 0d 0a 38 30 39  252..573104..809
100b0 30 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  088....query I r
100c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 38  owsort..SELECT 8
100d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
100e0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 35 20 42  r0 WHERE NOT 5 B
100f0 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
10100 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
10110 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
10120 45 4c 45 43 54 20 41 4c 4c 20 41 56 47 20 28 20  ELECT ALL AVG ( 
10130 41 4c 4c 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  ALL col0 ) FROM 
10140 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
10150 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 4e  RE NOT NULL >= N
10160 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
10170 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
10180 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
10190 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
101a0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
101b0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
101c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
101d0 45 43 54 20 2b 20 63 6f 6c 31 20 63 6f 6c 31 20  ECT + col1 col1 
101e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
101f0 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
10200 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28  l2 NOT BETWEEN (
10210 20 4e 55 4c 4c 20 29 20 41 4e 44 20 4e 55 4c 4c   NULL ) AND NULL
10220 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
10230 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
10240 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
10250 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
10260 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
10270 31 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  1 > NULL..----..
10280 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10290 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 34 33  t..SELECT - + 43
102a0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
102b0 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
102c0 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
102d0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
102e0 74 6f 20 61 62 30 63 33 31 34 64 32 62 35 38 39  to ab0c314d2b589
102f0 63 63 65 64 62 39 61 38 37 35 62 65 65 62 31 66  ccedb9a875beeb1f
10300 38 36 61 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  86a....query III
10310 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
10320 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
10330 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 28   WHERE NULL >= (
10340 20 2d 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   - - col0 )..---
10350 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
10360 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36  sort..SELECT + 6
10370 31 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  1 * + + col0 AS 
10380 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
10390 2d 2d 2d 2d 0d 0a 33 31 31 31 0d 0a 35 31 38 35  ----..3111..5185
103a0 0d 0a 35 35 35 31 0d 0a 0d 0a 71 75 65 72 79 20  ..5551....query 
103b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
103c0 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63  T + col0 * + - c
103d0 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
103e0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   tab2..----..-23
103f0 34 36 0d 0a 2d 34 39 32 38 0d 0a 2d 35 30 32 35  46..-4928..-5025
10400 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
10410 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
10420 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
10430 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 35  owsort label-375
10440 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
10450 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  T COUNT( * ) FRO
10460 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 63  M tab1 WHERE - c
10470 6f 6c 30 20 2b 20 63 6f 6c 31 20 3c 20 4e 55 4c  ol0 + col1 < NUL
10480 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
10490 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
104a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
104b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
104c0 65 6c 2d 33 37 35 0d 0a 53 45 4c 45 43 54 20 44  el-375..SELECT D
104d0 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
104e0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
104f0 45 52 45 20 2d 20 63 6f 6c 30 20 2b 20 63 6f 6c  ERE - col0 + col
10500 31 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  1 < NULL..----..
10510 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
10520 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
10530 20 2b 20 37 32 20 2a 20 2b 20 32 38 20 41 53 20   + 72 * + 28 AS 
10540 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
10550 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
10560 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
10570 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
10580 69 6e 67 20 74 6f 20 38 39 36 63 34 39 32 63 61  ing to 896c492ca
10590 36 34 39 62 39 35 34 33 64 30 66 32 63 65 31 39  649b9543d0f2ce19
105a0 39 63 37 66 35 35 64 0d 0a 0d 0a 71 75 65 72 79  9c7f55d....query
105b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
105c0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 35 31  CT DISTINCT - 51
105d0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
105e0 62 30 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30  b0, tab1 AS cor0
105f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 6f  ..----..-51....o
10600 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
10610 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
10620 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
10630 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10640 2d 33 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -378..SELECT ALL
10650 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   - - CAST( NULL 
10660 41 53 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20  AS DECIMAL ) AS 
10670 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
10680 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
10690 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a  N tab0 AS cor1..
106a0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
106b0 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39  ashing to cd7a79
106c0 30 31 65 34 37 63 31 35 31 35 35 34 30 34 61 66  01e47c15155404af
106d0 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a 73 6b  f0d216fe0b....sk
106e0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
106f0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
10700 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10710 65 6c 2d 33 37 38 0d 0a 53 45 4c 45 43 54 20 41  el-378..SELECT A
10720 4c 4c 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55  LL - - CAST ( NU
10730 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 41 53 20  LL AS REAL ) AS 
10740 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
10750 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
10760 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a  N tab0 AS cor1..
10770 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
10780 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39  ashing to cd7a79
10790 30 31 65 34 37 63 31 35 31 35 35 34 30 34 61 66  01e47c15155404af
107a0 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a 71 75  f0d216fe0b....qu
107b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
107c0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
107d0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
107e0 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20 2d 20 63  E NOT col2 * - c
107f0 6f 6c 31 20 2b 20 2d 20 38 37 20 3d 20 28 20 63  ol1 + - 87 = ( c
10800 6f 6c 30 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b  ol0 - - col1 * +
10810 20 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61   7 )..----..9 va
10820 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
10830 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
10840 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
10850 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
10860 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
10870 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30 20 2a 20  INCT - + col0 * 
10880 2d 20 34 39 20 46 52 4f 4d 20 74 61 62 31 20 63  - 49 FROM tab1 c
10890 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 39 39 0d  or0..----..2499.
108a0 0a 34 31 36 35 0d 0a 34 34 35 39 0d 0a 0d 0a 71  .4165..4459....q
108b0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
108c0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32  .SELECT - + col2
108d0 20 41 53 20 63 6f 6c 31 2c 20 35 32 20 41 53 20   AS col1, 52 AS 
108e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
108f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
10900 30 0d 0a 35 32 0d 0a 2d 34 37 0d 0a 35 32 0d 0a  0..52..-47..52..
10910 2d 39 39 0d 0a 35 32 0d 0a 0d 0a 71 75 65 72 79  -99..52....query
10920 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10930 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36 34  CT DISTINCT - 64
10940 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
10950 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45  r0 WHERE NULL BE
10960 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b  TWEEN NULL AND +
10970 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 31 0d 0a   col1 - + col1..
10980 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
10990 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
109a0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
109b0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
109c0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 33 0d 0a  sort label-383..
109d0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
109e0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
109f0 54 20 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  T ( - CAST( NULL
10a00 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 2b   AS SIGNED ) / +
10a10 20 63 6f 6c 32 20 29 20 3e 20 63 6f 6c 31 0d 0a   col2 ) > col1..
10a20 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
10a30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
10a40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
10a50 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10a60 38 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  83..SELECT * FRO
10a70 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
10a80 45 20 4e 4f 54 20 28 20 2d 20 43 41 53 54 20 28  E NOT ( - CAST (
10a90 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
10aa0 20 29 20 2f 20 2b 20 63 6f 6c 32 20 29 20 3e 20   ) / + col2 ) > 
10ab0 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col1..----....qu
10ac0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
10ad0 53 45 4c 45 43 54 20 2d 20 31 38 2c 20 2b 20 63  SELECT - 18, + c
10ae0 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 41  ol1 * + + col2 A
10af0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
10b00 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
10b10 2d 31 38 0d 0a 32 31 30 0d 0a 2d 31 38 0d 0a 33  -18..210..-18..3
10b20 38 30 37 0d 0a 2d 31 38 0d 0a 39 39 0d 0a 0d 0a  807..-18..99....
10b30 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
10b40 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
10b50 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
10b60 6f 72 74 20 6c 61 62 65 6c 2d 33 38 35 0d 0a 53  ort label-385..S
10b70 45 4c 45 43 54 20 37 32 2c 20 2b 20 43 4f 55 4e  ELECT 72, + COUN
10b80 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
10b90 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
10ba0 0d 0a 2d 2d 2d 2d 0d 0a 37 32 0d 0a 33 0d 0a 0d  ..----..72..3...
10bb0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10bc0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
10bd0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
10be0 20 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c 45   label-385..SELE
10bf0 43 54 20 37 32 2c 20 2b 20 43 4f 55 4e 54 20 28  CT 72, + COUNT (
10c00 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
10c10 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
10c20 2d 2d 2d 2d 0d 0a 37 32 0d 0a 33 0d 0a 0d 0a 6f  ----..72..3....o
10c30 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
10c40 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
10c50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10c60 74 20 6c 61 62 65 6c 2d 33 38 36 0d 0a 53 45 4c  t label-386..SEL
10c70 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58  ECT DISTINCT MAX
10c80 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63  ( DISTINCT - - c
10c90 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol1 ) FROM tab0 
10ca0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  AS cor0..----..8
10cb0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
10cc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
10cd0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
10ce0 6f 72 74 20 6c 61 62 65 6c 2d 33 38 36 0d 0a 53  ort label-386..S
10cf0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
10d00 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  AX ( DISTINCT - 
10d10 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
10d20 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
10d30 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..81....onlyif m
10d40 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
10d50 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
10d60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10d70 2d 33 38 37 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  -387..SELECT - M
10d80 41 58 28 20 2d 20 31 33 20 29 20 41 53 20 63 6f  AX( - 13 ) AS co
10d90 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
10da0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a  cor0..----..13..
10db0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10dc0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10dd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10de0 20 6c 61 62 65 6c 2d 33 38 37 0d 0a 53 45 4c 45   label-387..SELE
10df0 43 54 20 2d 20 4d 41 58 20 28 20 2d 20 31 33 20  CT - MAX ( - 13 
10e00 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
10e10 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10e20 2d 0d 0a 31 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..13....onlyif 
10e30 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
10e40 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
10e50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10e60 6c 2d 33 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-388..SELECT + 
10e70 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 4d  COUNT( * ) * + M
10e80 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63  IN( DISTINCT - c
10e90 6f 6c 31 20 29 20 2b 20 2d 20 30 20 41 53 20 63  ol1 ) + - 0 AS c
10ea0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
10eb0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34   cor0..----..-24
10ec0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
10ed0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
10ee0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
10ef0 6f 72 74 20 6c 61 62 65 6c 2d 33 38 38 0d 0a 53  ort label-388..S
10f00 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
10f10 2a 20 29 20 2a 20 2b 20 4d 49 4e 20 28 20 44 49  * ) * + MIN ( DI
10f20 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20  STINCT - col1 ) 
10f30 2b 20 2d 20 30 20 41 53 20 63 6f 6c 30 20 46 52  + - 0 AS col0 FR
10f40 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
10f50 0a 2d 2d 2d 2d 0d 0a 2d 32 34 33 0d 0a 0d 0a 6f  .----..-243....o
10f60 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
10f70 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
10f80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
10f90 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
10fa0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10fb0 6c 2d 33 38 39 0d 0a 53 45 4c 45 43 54 20 2b 20  l-389..SELECT + 
10fc0 33 36 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20  36 * + COUNT( * 
10fd0 29 20 2a 20 53 55 4d 28 20 41 4c 4c 20 2d 20 43  ) * SUM( ALL - C
10fe0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
10ff0 4e 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62  NED ) ) FROM tab
11000 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
11010 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
11020 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
11030 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
11040 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
11050 39 0d 0a 53 45 4c 45 43 54 20 2b 20 33 36 20 2a  9..SELECT + 36 *
11060 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
11070 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 43 41 53   SUM ( ALL - CAS
11080 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
11090 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62  GER ) ) FROM tab
110a0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
110b0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
110c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
110d0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
110e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
110f0 20 2d 20 31 37 20 2d 20 2b 20 63 6f 6c 31 20 2a   - 17 - + col1 *
11100 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
11110 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
11120 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
11130 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
11140 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c  b962d0a49....onl
11150 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
11160 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
11170 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
11180 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11190 33 39 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  391..SELECT * FR
111a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
111b0 57 48 45 52 45 20 4e 4f 54 20 32 39 20 49 4e 20  WHERE NOT 29 IN 
111c0 28 20 43 41 53 54 28 20 28 20 33 20 29 20 41 53  ( CAST( ( 3 ) AS
111d0 20 53 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d   SIGNED ) )..---
111e0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
111f0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
11200 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
11210 37 66 62 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69  7fb43b7....skipi
11220 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
11230 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
11240 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
11250 6c 2d 33 39 31 0d 0a 53 45 4c 45 43 54 20 2a 20  l-391..SELECT * 
11260 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
11270 30 20 57 48 45 52 45 20 4e 4f 54 20 32 39 20 49  0 WHERE NOT 29 I
11280 4e 20 28 20 43 41 53 54 20 28 20 28 20 33 20 29  N ( CAST ( ( 3 )
11290 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 0d   AS INTEGER ) ).
112a0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
112b0 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
112c0 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
112d0 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
112e0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
112f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
11300 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
11310 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
11320 20 49 4e 20 28 20 37 32 20 29 0d 0a 2d 2d 2d 2d   IN ( 72 )..----
11330 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
11340 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
11350 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
11360 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2b 20 2d  0 WHERE col0 + -
11370 20 32 39 20 4e 4f 54 20 42 45 54 57 45 45 4e 20   29 NOT BETWEEN 
11380 2b 20 28 20 38 38 20 29 20 2b 20 2b 20 36 30 20  + ( 88 ) + + 60 
11390 41 4e 44 20 37 33 0d 0a 2d 2d 2d 2d 0d 0a 39 20  AND 73..----..9 
113a0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
113b0 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
113c0 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
113d0 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
113e0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
113f0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
11400 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11410 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  94..SELECT ALL +
11420 20 2b 20 37 32 20 2b 20 2d 20 43 4f 55 4e 54 28   + 72 + - COUNT(
11430 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
11440 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
11450 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 73 6b 69 70  ----..69....skip
11460 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
11470 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
11480 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
11490 2d 33 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -394..SELECT ALL
114a0 20 2b 20 2b 20 37 32 20 2b 20 2d 20 43 4f 55 4e   + + 72 + - COUN
114b0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
114c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
114d0 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 6f  0..----..69....o
114e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
114f0 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
11500 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
11510 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
11520 65 6c 2d 33 39 35 0d 0a 53 45 4c 45 43 54 20 2a  el-395..SELECT *
11530 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
11540 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20  r0 WHERE col2 * 
11550 43 41 53 54 28 20 39 20 41 53 20 44 45 43 49 4d  CAST( 9 AS DECIM
11560 41 4c 20 29 20 2a 20 63 6f 6c 32 20 2b 20 63 6f  AL ) * col2 + co
11570 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
11580 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
11590 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
115a0 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
115b0 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b  11e4d54cad....sk
115c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
115d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
115e0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
115f0 61 62 65 6c 2d 33 39 35 0d 0a 53 45 4c 45 43 54  abel-395..SELECT
11600 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
11610 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
11620 2a 20 43 41 53 54 20 28 20 39 20 41 53 20 52 45  * CAST ( 9 AS RE
11630 41 4c 20 29 20 2a 20 63 6f 6c 32 20 2b 20 63 6f  AL ) * col2 + co
11640 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
11650 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
11660 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
11670 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
11680 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
11690 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
116a0 45 4c 45 43 54 20 2d 20 2b 20 33 34 20 2b 20 2b  ELECT - + 34 + +
116b0 20 2d 20 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d   - ( col2 ) FROM
116c0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
116d0 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 2d 31 33 30 0d  ---..-102..-130.
116e0 0a 2d 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-93....query II
116f0 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  IIII rowsort..SE
11700 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
11710 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
11720 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31  OIN tab1 AS cor1
11730 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 37   WHERE NULL <> 7
11740 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  5..----....query
11750 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
11760 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41 53  CT ALL - col0 AS
11770 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
11780 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
11790 20 29 20 3c 3e 20 2d 20 63 6f 6c 30 0d 0a 2d 2d   ) <> - col0..--
117a0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
117b0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
117c0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
117d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
117e0 72 74 20 6c 61 62 65 6c 2d 33 39 39 0d 0a 53 45  rt label-399..SE
117f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
11800 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
11810 4e 4f 54 20 28 20 2d 20 28 20 2d 20 39 34 20 29  NOT ( - ( - 94 )
11820 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 29 20 49 53   * + + col1 ) IS
11830 20 4e 4f 54 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54   NOT NULL OR NOT
11840 20 33 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c   3 + - CAST( NUL
11850 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 4e 4f  L AS SIGNED ) NO
11860 54 20 49 4e 20 28 20 2d 20 33 38 20 29 0d 0a 2d  T IN ( - 38 )..-
11870 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
11880 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
11890 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
118a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
118b0 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
118c0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
118d0 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 28 20 2d  HERE NOT ( - ( -
118e0 20 39 34 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 31   94 ) * + + col1
118f0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 4f   ) IS NOT NULL O
11900 52 20 4e 4f 54 20 33 20 2b 20 2d 20 43 41 53 54  R NOT 3 + - CAST
11910 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
11920 45 52 20 29 20 4e 4f 54 20 49 4e 20 28 20 2d 20  ER ) NOT IN ( - 
11930 33 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  38 )..----....on
11940 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
11950 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
11960 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
11970 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
11980 30 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  00..SELECT col0 
11990 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
119a0 28 20 2d 20 2d 20 43 41 53 54 28 20 2b 20 43 41  ( - - CAST( + CA
119b0 53 54 28 20 39 36 20 41 53 20 53 49 47 4e 45 44  ST( 96 AS SIGNED
119c0 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 29   ) AS SIGNED ) )
119d0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
119e0 4c 20 41 4e 44 20 2d 20 63 6f 6c 30 20 2a 20 39  L AND - col0 * 9
119f0 32 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  2 - col1..----..
11a00 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 73 6b  51..85..91....sk
11a10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
11a20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
11a30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
11a40 65 6c 2d 34 30 30 0d 0a 53 45 4c 45 43 54 20 63  el-400..SELECT c
11a50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
11a60 45 52 45 20 28 20 2d 20 2d 20 43 41 53 54 20 28  ERE ( - - CAST (
11a70 20 2b 20 43 41 53 54 20 28 20 39 36 20 41 53 20   + CAST ( 96 AS 
11a80 49 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e 54  INTEGER ) AS INT
11a90 45 47 45 52 20 29 20 29 20 4e 4f 54 20 42 45 54  EGER ) ) NOT BET
11aa0 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20  WEEN NULL AND - 
11ab0 63 6f 6c 30 20 2a 20 39 32 20 2d 20 63 6f 6c 31  col0 * 92 - col1
11ac0 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a  ..----..51..85..
11ad0 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  91....onlyif mys
11ae0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
11af0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
11b00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11b10 34 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  401..SELECT DIST
11b20 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  INCT - COUNT( * 
11b30 29 2c 20 2b 20 28 20 2b 20 2b 20 43 4f 55 4e 54  ), + ( + + COUNT
11b40 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 30 20  ( * ) ) AS col0 
11b50 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
11b60 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 33 0d 0a  0..----..-3..3..
11b70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11b80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11b90 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
11ba0 74 20 6c 61 62 65 6c 2d 34 30 31 0d 0a 53 45 4c  t label-401..SEL
11bb0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
11bc0 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2b 20 28 20  OUNT ( * ), + ( 
11bd0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
11be0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
11bf0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
11c00 2d 0d 0a 2d 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72  -..-3..3....quer
11c10 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
11c20 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 32  LECT DISTINCT 82
11c30 20 41 53 20 63 6f 6c 31 2c 20 28 20 2d 20 63 6f   AS col1, ( - co
11c40 6c 31 20 29 20 2a 20 63 6f 6c 31 20 46 52 4f 4d  l1 ) * col1 FROM
11c50 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
11c60 2d 2d 2d 0d 0a 38 32 0d 0a 2d 31 0d 0a 38 32 0d  ---..82..-1..82.
11c70 0a 2d 34 34 31 0d 0a 38 32 0d 0a 2d 36 35 36 31  .-441..82..-6561
11c80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
11c90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 34 30  ort..SELECT - 40
11ca0 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * - col0 AS col
11cb0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
11cc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 38 30 0d  or0..----..3480.
11cd0 0a 33 38 38 30 0d 0a 36 30 30 0d 0a 0d 0a 71 75  .3880..600....qu
11ce0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
11cf0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 39 2c  SELECT ALL - 39,
11d00 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
11d10 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
11d20 0a 2d 2d 2d 2d 0d 0a 2d 33 39 0d 0a 35 39 0d 0a  .----..-39..59..
11d30 2d 33 39 0d 0a 36 38 0d 0a 2d 33 39 0d 0a 39 36  -39..68..-39..96
11d40 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
11d50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
11d60 49 4e 43 54 20 2b 20 38 20 2b 20 63 6f 6c 31 20  INCT + 8 + col1 
11d70 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
11d80 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
11d90 0a 32 39 0d 0a 38 39 0d 0a 39 0d 0a 0d 0a 6f 6e  .29..89..9....on
11da0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
11db0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
11dc0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
11dd0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
11de0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
11df0 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  -406..SELECT DIS
11e00 54 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28  TINCT - - COUNT(
11e10 20 2a 20 29 20 2b 20 2d 20 31 37 20 41 53 20 63   * ) + - 17 AS c
11e20 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
11e30 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2f 20  r0 WHERE col2 / 
11e40 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - - CAST( NULL A
11e50 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2d 20 63  S SIGNED ) - - c
11e60 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
11e70 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d 0a 0d 0a 73 6b  .----..-17....sk
11e80 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
11e90 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
11ea0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
11eb0 65 6c 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20 44  el-406..SELECT D
11ec0 49 53 54 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e  ISTINCT - - COUN
11ed0 54 20 28 20 2a 20 29 20 2b 20 2d 20 31 37 20 41  T ( * ) + - 17 A
11ee0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
11ef0 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
11f00 20 2f 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55   / - - CAST ( NU
11f10 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
11f20 2d 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  - - col2 IS NOT 
11f30 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d  NULL..----..-17.
11f40 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
11f50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
11f60 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
11f70 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
11f80 45 45 4e 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  EEN col2 * + col
11f90 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  2 AND NULL..----
11fa0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
11fb0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
11fc0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
11fd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
11fe0 61 62 65 6c 2d 34 30 38 0d 0a 53 45 4c 45 43 54  abel-408..SELECT
11ff0 20 43 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53   CAST( + col1 AS
12000 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c 30   SIGNED ) * col0
12010 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   * - - col0 FROM
12020 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
12030 2d 2d 2d 0d 0a 31 35 38 39 34 39 0d 0a 31 38 32  ---..158949..182
12040 32 35 0d 0a 39 34 30 39 0d 0a 0d 0a 73 6b 69 70  25..9409....skip
12050 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
12060 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
12070 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12080 2d 34 30 38 0d 0a 53 45 4c 45 43 54 20 43 41 53  -408..SELECT CAS
12090 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e  T ( + col1 AS IN
120a0 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 30 20 2a  TEGER ) * col0 *
120b0 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - - col0 FROM t
120c0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
120d0 2d 0d 0a 31 35 38 39 34 39 0d 0a 31 38 32 32 35  -..158949..18225
120e0 0d 0a 39 34 30 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..9409....onlyif
120f0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
12100 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
12110 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
12120 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 39 0d 0a  sort label-409..
12130 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 35 30 20  SELECT ALL - 50 
12140 2a 20 2d 20 2d 20 43 41 53 54 28 20 2b 20 63 6f  * - - CAST( + co
12150 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  l1 AS SIGNED ) *
12160 20 2d 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   - - col1 FROM t
12170 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
12180 2d 31 33 30 30 35 30 0d 0a 2d 32 32 34 34 35 30  -130050..-224450
12190 0d 0a 2d 32 39 36 34 35 30 0d 0a 0d 0a 73 6b 69  ..-296450....ski
121a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
121b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
121c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
121d0 6c 2d 34 30 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-409..SELECT AL
121e0 4c 20 2d 20 35 30 20 2a 20 2d 20 2d 20 43 41 53  L - 50 * - - CAS
121f0 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e  T ( + col1 AS IN
12200 54 45 47 45 52 20 29 20 2a 20 2d 20 2d 20 63 6f  TEGER ) * - - co
12210 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l1 FROM tab2 cor
12220 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30 30 35 30  0..----..-130050
12230 0d 0a 2d 32 32 34 34 35 30 0d 0a 2d 32 39 36 34  ..-224450..-2964
12240 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  50....onlyif mys
12250 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
12260 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
12270 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12280 31 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  10..SELECT - COU
12290 4e 54 28 20 2a 20 29 20 2d 20 2d 20 53 55 4d 28  NT( * ) - - SUM(
122a0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 32 31   DISTINCT + - 21
122b0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
122c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 0d 0a  0..----..-24....
122d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
122e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
122f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12300 61 62 65 6c 2d 34 31 30 0d 0a 53 45 4c 45 43 54  abel-410..SELECT
12310 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d   - COUNT ( * ) -
12320 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   - SUM ( DISTINC
12330 54 20 2b 20 2d 20 32 31 20 29 20 46 52 4f 4d 20  T + - 21 ) FROM 
12340 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
12350 0a 2d 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-24....query I 
12360 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12370 44 49 53 54 49 4e 43 54 20 2d 20 33 35 20 2b 20  DISTINCT - 35 + 
12380 2d 20 28 20 2d 20 36 20 29 20 46 52 4f 4d 20 74  - ( - 6 ) FROM t
12390 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
123a0 2d 0d 0a 2d 32 39 0d 0a 0d 0a 73 6b 69 70 69 66  -..-29....skipif
123b0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
123c0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
123d0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
123e0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
123f0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
12400 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33  rt..SELECT ALL 3
12410 37 20 2a 20 2d 20 37 33 20 2b 20 2d 20 2b 20 63  7 * - 73 + - + c
12420 6f 6c 30 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d  ol0 + col2 + - -
12430 20 33 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   30 col0 FROM ta
12440 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
12450 0d 0a 2d 32 36 33 39 0d 0a 2d 32 36 36 39 0d 0a  ..-2639..-2669..
12460 2d 32 37 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -2748....onlyif 
12470 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
12480 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
12490 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
124a0 6c 2d 34 31 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-413..SELECT DI
124b0 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
124c0 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29  * ) * COUNT( * )
124d0 20 2b 20 2d 20 2b 20 32 33 20 41 53 20 63 6f 6c   + - + 23 AS col
124e0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
124f0 2d 0d 0a 2d 33 32 0d 0a 0d 0a 73 6b 69 70 69 66  -..-32....skipif
12500 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
12510 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
12520 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12530 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  13..SELECT DISTI
12540 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  NCT - COUNT ( * 
12550 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) * COUNT ( * ) 
12560 2b 20 2d 20 2b 20 32 33 20 41 53 20 63 6f 6c 30  + - + 23 AS col0
12570 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
12580 0d 0a 2d 33 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-32....onlyif 
12590 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
125a0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
125b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
125c0 6f 72 74 20 6c 61 62 65 6c 2d 34 31 34 0d 0a 53  ort label-414..S
125d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
125e0 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 2b   col0 + + col2 +
125f0 20 2b 20 31 38 20 2a 20 2b 20 63 6f 6c 31 20 2a   + 18 * + col1 *
12600 20 2d 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c 30   - col0 DIV col0
12610 20 2a 20 2d 20 35 37 20 63 6f 6c 32 20 46 52 4f   * - 57 col2 FRO
12620 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 32  M tab2..----..52
12630 33 39 35 0d 0a 36 38 38 37 35 0d 0a 37 39 31 30  395..68875..7910
12640 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
12650 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12660 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
12670 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
12680 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
12690 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
126a0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
126b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
126c0 65 6c 2d 34 31 34 0d 0a 53 45 4c 45 43 54 20 44  el-414..SELECT D
126d0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2b  ISTINCT + col0 +
126e0 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 31 38 20 2a   + col2 + + 18 *
126f0 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30   + col1 * - col0
12700 20 2f 20 63 6f 6c 30 20 2a 20 2d 20 35 37 20 63   / col0 * - 57 c
12710 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
12720 2d 2d 2d 0d 0a 35 32 33 39 35 0d 0a 36 38 38 37  ---..52395..6887
12730 35 0d 0a 37 39 31 30 36 0d 0a 0d 0a 71 75 65 72  5..79106....quer
12740 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
12750 4c 45 43 54 20 39 39 20 41 53 20 63 6f 6c 30 2c  LECT 99 AS col0,
12760 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
12770 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39  1 cor0..----..99
12780 0d 0a 2d 35 39 0d 0a 39 39 0d 0a 2d 36 38 0d 0a  ..-59..99..-68..
12790 39 39 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69  99..-96....onlyi
127a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
127b0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
127c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
127d0 62 65 6c 2d 34 31 36 0d 0a 53 45 4c 45 43 54 20  bel-416..SELECT 
127e0 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  ALL COUNT( * ) *
127f0 20 2d 20 53 55 4d 28 20 2d 20 63 6f 6c 31 20 29   - SUM( - col1 )
12800 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
12810 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
12820 0d 0a 31 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..198....skipif 
12830 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
12840 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
12850 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31  rowsort label-41
12860 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  6..SELECT ALL CO
12870 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 53 55  UNT ( * ) * - SU
12880 4d 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20  M ( - col1 ) AS 
12890 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
128a0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39  S cor0..----..19
128b0 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
128c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
128d0 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
128e0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
128f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12900 74 20 6c 61 62 65 6c 2d 34 31 37 0d 0a 53 45 4c  t label-417..SEL
12910 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 44  ECT ALL COUNT( D
12920 49 53 54 49 4e 43 54 20 28 20 2b 20 2d 20 63 6f  ISTINCT ( + - co
12930 6c 30 20 29 20 29 20 44 49 56 20 2d 20 34 36 20  l0 ) ) DIV - 46 
12940 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
12950 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
12960 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
12970 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
12980 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 37 0d 0a  sort label-417..
12990 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
129a0 20 28 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20   ( DISTINCT ( + 
129b0 2d 20 63 6f 6c 30 20 29 20 29 20 2f 20 2d 20 34  - col0 ) ) / - 4
129c0 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  6 FROM tab1..---
129d0 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
129e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
129f0 36 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  6 * col2 FROM ta
12a00 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 32  b2..----..138..2
12a10 34 30 0d 0a 33 34 38 0d 0a 0d 0a 71 75 65 72 79  40..348....query
12a20 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
12a30 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
12a40 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28  tab0 WHERE NOT (
12a50 20 33 31 20 2b 20 2b 20 63 6f 6c 32 20 29 20 3c   31 + + col2 ) <
12a60 20 28 20 63 6f 6c 30 20 2a 20 2b 20 35 31 20 2b   ( col0 * + 51 +
12a70 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 0d   + ( + col0 ) ).
12a80 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
12a90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
12aa0 20 63 6f 6c 32 20 2a 20 2d 20 34 32 20 2a 20 2d   col2 * - 42 * -
12ab0 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f   + col1 * + - co
12ac0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
12ad0 2d 2d 0d 0a 2d 31 30 39 33 35 32 30 34 0d 0a 2d  --..-10935204..-
12ae0 32 35 31 32 35 36 36 0d 0a 2d 39 39 36 30 37 32  2512566..-996072
12af0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
12b00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
12b10 20 63 6f 6c 30 20 2b 20 33 32 20 41 53 20 63 6f   col0 + 32 AS co
12b20 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
12b30 52 45 20 4e 4f 54 20 2d 20 2d 20 28 20 2b 20 63  RE NOT - - ( + c
12b40 6f 6c 30 20 29 20 3c 3e 20 63 6f 6c 32 0d 0a 2d  ol0 ) <> col2..-
12b50 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
12b60 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
12b70 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
12b80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12b90 74 20 6c 61 62 65 6c 2d 34 32 32 0d 0a 53 45 4c  t label-422..SEL
12ba0 45 43 54 20 2d 20 28 20 2b 20 43 41 53 54 28 20  ECT - ( + CAST( 
12bb0 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
12bc0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
12bd0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
12be0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
12bf0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
12c00 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
12c10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12c20 6c 2d 34 32 32 0d 0a 53 45 4c 45 43 54 20 2d 20  l-422..SELECT - 
12c30 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ( + CAST ( NULL 
12c40 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 46  AS INTEGER ) ) F
12c50 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
12c60 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
12c70 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
12c80 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12c90 54 20 2b 20 39 20 2a 20 2d 20 2d 20 63 6f 6c 30  T + 9 * - - col0
12ca0 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20   * - - col2 * + 
12cb0 34 30 20 2b 20 36 34 20 41 53 20 63 6f 6c 31 2c  40 + 64 AS col1,
12cc0 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2a   col0 * - col2 *
12cd0 20 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   4 FROM tab1 AS 
12ce0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 36 32  cor0..----..1762
12cf0 36 32 34 0d 0a 2d 31 39 35 38 34 0d 0a 31 38 30  624..-19584..180
12d00 35 34 36 34 0d 0a 2d 32 30 30 36 30 0d 0a 32 32  5464..-20060..22
12d10 32 37 37 34 34 0d 0a 2d 32 34 37 35 32 0d 0a 0d  27744..-24752...
12d20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12d30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31  ..SELECT ALL - 1
12d40 33 20 2a 20 37 20 41 53 20 63 6f 6c 30 20 46 52  3 * 7 AS col0 FR
12d50 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
12d60 57 48 45 52 45 20 28 20 28 20 2b 20 63 6f 6c 30  WHERE ( ( + col0
12d70 20 2d 20 2d 20 38 30 20 2b 20 2b 20 63 6f 6c 30   - - 80 + + col0
12d80 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   * + + col2 * - 
12d90 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 20 29  col2 ) IS NULL )
12da0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
12db0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
12dc0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
12dd0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
12de0 54 20 28 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 34  T ( - col0 + + 4
12df0 37 20 29 20 4e 4f 54 20 49 4e 20 28 20 33 20 29  7 ) NOT IN ( 3 )
12e00 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
12e10 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
12e20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
12e30 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
12e40 20 57 48 45 52 45 20 37 30 20 2b 20 2b 20 28 20   WHERE 70 + + ( 
12e50 63 6f 6c 32 20 29 20 42 45 54 57 45 45 4e 20 33  col2 ) BETWEEN 3
12e60 32 20 41 4e 44 20 2b 20 34 37 20 2a 20 2d 20 63  2 AND + 47 * - c
12e70 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ol0..----....onl
12e80 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
12e90 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
12ea0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
12eb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
12ec0 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  27..SELECT + ( -
12ed0 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 2c   col0 ) AS col0,
12ee0 20 2b 20 33 32 20 44 49 56 20 2b 20 35 31 20 46   + 32 DIV + 51 F
12ef0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
12f00 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 30 0d 0a  ..----..-46..0..
12f10 2d 36 34 0d 0a 30 0d 0a 2d 37 35 0d 0a 30 0d 0a  -64..0..-75..0..
12f20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
12f30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
12f40 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
12f50 74 20 6c 61 62 65 6c 2d 34 32 37 0d 0a 53 45 4c  t label-427..SEL
12f60 45 43 54 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29  ECT + ( - col0 )
12f70 20 41 53 20 63 6f 6c 30 2c 20 2b 20 33 32 20 2f   AS col0, + 32 /
12f80 20 2b 20 35 31 20 46 52 4f 4d 20 74 61 62 32 20   + 51 FROM tab2 
12f90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
12fa0 34 36 0d 0a 30 0d 0a 2d 36 34 0d 0a 30 0d 0a 2d  46..0..-64..0..-
12fb0 37 35 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  75..0....onlyif 
12fc0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
12fd0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
12fe0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
12ff0 65 6c 2d 34 32 38 0d 0a 53 45 4c 45 43 54 20 2b  el-428..SELECT +
13000 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 34   - COUNT( * ), 4
13010 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
13020 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b1 WHERE NOT col
13030 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  0 IS NULL..----.
13040 0a 2d 33 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66  .-3..4....skipif
13050 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
13060 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
13070 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13080 34 32 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  428..SELECT + - 
13090 43 4f 55 4e 54 20 28 20 2a 20 29 2c 20 34 20 41  COUNT ( * ), 4 A
130a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
130b0 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20   WHERE NOT col0 
130c0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
130d0 33 0d 0a 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3..4....query I 
130e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
130f0 2b 20 63 6f 6c 31 20 2b 20 2b 20 34 39 20 41 53  + col1 + + 49 AS
13100 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
13110 0a 2d 2d 2d 2d 0d 0a 31 33 30 0d 0a 35 30 0d 0a  .----..130..50..
13120 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  70....onlyif mys
13130 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
13140 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
13150 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
13160 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
13170 6f 72 74 20 6c 61 62 65 6c 2d 34 33 30 0d 0a 53  ort label-430..S
13180 45 4c 45 43 54 20 41 56 47 20 28 20 44 49 53 54  ELECT AVG ( DIST
13190 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20 29 20  INCT + - col0 ) 
131a0 2f 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  / - + COUNT( * )
131b0 20 2f 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   / + CAST( NULL 
131c0 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 43  AS DECIMAL ) + C
131d0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
131e0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
131f0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
13200 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13210 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13220 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13230 34 33 30 0d 0a 53 45 4c 45 43 54 20 41 56 47 20  430..SELECT AVG 
13240 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  ( DISTINCT + - c
13250 6f 6c 30 20 29 20 2f 20 2d 20 2b 20 43 4f 55 4e  ol0 ) / - + COUN
13260 54 20 28 20 2a 20 29 20 2f 20 2b 20 43 41 53 54  T ( * ) / + CAST
13270 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
13280 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) + COUNT ( * ) 
13290 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
132a0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
132b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
132c0 0d 0a 53 45 4c 45 43 54 20 36 30 20 2b 20 2b 20  ..SELECT 60 + + 
132d0 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
132e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab0..----..14
132f0 31 0d 0a 36 31 0d 0a 38 31 0d 0a 0d 0a 71 75 65  1..61..81....que
13300 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13310 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
13320 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
13330 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2d   NULL NOT IN ( -
13340 20 28 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20   ( + ( - col2 ) 
13350 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
13360 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13370 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13380 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
13390 45 20 37 36 20 2f 20 2d 20 63 6f 6c 30 20 2a 20  E 76 / - col0 * 
133a0 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2b 20  col2 * - col2 + 
133b0 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20 3c 3d 20  - ( - col1 ) <= 
133c0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
133d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
133e0 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 37  ELECT + col1 + 7
133f0 38 20 2d 20 2b 20 39 30 20 2a 20 2d 20 34 37 20  8 - + 90 * - 47 
13400 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
13410 31 0d 0a 2d 2d 2d 2d 0d 0a 34 33 31 33 0d 0a 34  1..----..4313..4
13420 33 32 32 0d 0a 34 33 35 35 0d 0a 0d 0a 71 75 65  322..4355....que
13430 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13440 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
13450 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
13460 20 4e 55 4c 4c 20 3c 3e 20 2b 20 34 31 0d 0a 2d   NULL <> + 41..-
13470 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
13480 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
13490 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
134a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
134b0 34 33 36 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  436..SELECT + MI
134c0 4e 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20  N( ALL - col2 ) 
134d0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
134e0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
134f0 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-96....skipif m
13500 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13510 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
13520 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 36  owsort label-436
13530 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28  ..SELECT + MIN (
13540 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 41 53   ALL - col2 ) AS
13550 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
13560 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
13570 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  96....onlyif mys
13580 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
13590 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
135a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
135b0 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  37..SELECT ALL C
135c0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
135d0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
135e0 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
135f0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
13600 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
13610 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13620 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13630 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13640 34 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  437..SELECT ALL 
13650 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
13660 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
13670 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
13680 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  LL ) IS NOT NULL
13690 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
136a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
136b0 4c 45 43 54 20 28 20 2b 20 37 35 20 29 20 46 52  LECT ( + 75 ) FR
136c0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
136d0 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 4e 20  WHERE + col2 IN 
136e0 28 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20  ( col1 + + col1 
136f0 2b 20 36 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  + 6 )..----....q
13700 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
13710 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
13720 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c   - col1 AS col1,
13730 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
13740 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20  WHERE + col2 IS 
13750 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
13760 2d 31 0d 0a 39 39 0d 0a 2d 32 31 0d 0a 31 30 0d  -1..99..-21..10.
13770 0a 2d 38 31 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79  .-81..47....only
13780 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
13790 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
137a0 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
137b0 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69   type: DIV for i
137c0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
137d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
137e0 72 74 20 6c 61 62 65 6c 2d 34 34 30 0d 0a 53 45  rt label-440..SE
137f0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41  LECT DISTINCT CA
13800 53 54 28 20 2b 20 31 38 20 41 53 20 53 49 47 4e  ST( + 18 AS SIGN
13810 45 44 20 29 20 2b 20 2d 20 33 35 20 44 49 56 20  ED ) + - 35 DIV 
13820 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
13830 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
13840 2d 2d 2d 2d 0d 0a 37 0d 0a 0d 0a 73 6b 69 70 69  ----..7....skipi
13850 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13860 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13870 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13880 34 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  440..SELECT DIST
13890 49 4e 43 54 20 43 41 53 54 20 28 20 2b 20 31 38  INCT CAST ( + 18
138a0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
138b0 2d 20 33 35 20 2f 20 2b 20 43 4f 55 4e 54 20 28  - 35 / + COUNT (
138c0 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
138d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 0d  M tab2..----..7.
138e0 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20  ...query IIIIII 
138f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13900 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
13910 6f 72 30 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  or0 JOIN tab2 AS
13920 20 63 6f 72 31 20 4f 4e 20 4e 55 4c 4c 20 49 53   cor1 ON NULL IS
13930 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
13940 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
13950 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
13960 20 37 37 20 46 52 4f 4d 20 74 61 62 32 20 41 53   77 FROM tab2 AS
13970 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
13980 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d   tab2 AS cor1..-
13990 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
139a0 73 68 69 6e 67 20 74 6f 20 30 35 31 62 66 31 30  shing to 051bf10
139b0 63 35 30 65 30 36 31 64 37 34 61 64 30 61 34 64  c50e061d74ad0a4d
139c0 32 30 35 61 31 63 36 32 32 0d 0a 0d 0a 6f 6e 6c  205a1c622....onl
139d0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
139e0 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
139f0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
13a00 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13a10 2d 34 34 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -443..SELECT DIS
13a20 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
13a30 31 20 57 48 45 52 45 20 28 20 2b 20 43 41 53 54  1 WHERE ( + CAST
13a40 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
13a50 4c 20 29 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  L ) ) IS NOT NUL
13a60 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
13a70 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13a80 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13a90 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
13aa0 6c 2d 34 34 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-443..SELECT DI
13ab0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
13ac0 62 31 20 57 48 45 52 45 20 28 20 2b 20 43 41 53  b1 WHERE ( + CAS
13ad0 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
13ae0 20 29 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c   ) ) IS NOT NULL
13af0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
13b00 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
13b10 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
13b20 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
13b30 4f 54 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20  OT ( + + col1 ) 
13b40 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20  NOT IN ( + col0 
13b50 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d  + - - col1 * - -
13b60 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 2f   col2 * - col0 /
13b70 20 2d 20 32 38 20 2a 20 2d 20 37 37 20 29 0d 0a   - 28 * - 77 )..
13b80 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
13b90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13ba0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
13bb0 2a 20 2d 20 63 6f 6c 31 20 2d 20 63 6f 6c 32 20  * - col1 - col2 
13bc0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
13bd0 0a 2d 32 0d 0a 31 31 36 38 0d 0a 31 38 31 37 0d  .-2..1168..1817.
13be0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
13bf0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
13c00 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 35 35 20 2a   col2 * - + 55 *
13c10 20 2d 20 37 33 20 46 52 4f 4d 20 74 61 62 31 20   - 73 FROM tab1 
13c20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
13c30 33 36 38 38 35 0d 0a 32 37 33 30 32 30 0d 0a 33  36885..273020..3
13c40 38 35 34 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  85440....onlyif 
13c50 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
13c60 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
13c70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13c80 6c 2d 34 34 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-447..SELECT DI
13c90 53 54 49 4e 43 54 20 2b 20 2d 20 4d 41 58 28 20  STINCT + - MAX( 
13ca0 41 4c 4c 20 35 36 20 29 20 46 52 4f 4d 20 74 61  ALL 56 ) FROM ta
13cb0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
13cc0 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  56....skipif mys
13cd0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
13ce0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
13cf0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 37 0d 0a  sort label-447..
13d00 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13d10 2b 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 35 36  + - MAX ( ALL 56
13d20 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
13d30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 0d 0a  0..----..-56....
13d40 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
13d50 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
13d60 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
13d70 45 52 45 20 31 34 20 2b 20 2d 20 2b 20 63 6f 6c  ERE 14 + - + col
13d80 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
13d90 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
13da0 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
13db0 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
13dc0 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
13dd0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
13de0 4c 45 43 54 20 2b 20 28 20 2d 20 36 20 29 20 46  LECT + ( - 6 ) F
13df0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
13e00 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 2d 36 0d 0a  ..----..-6..-6..
13e10 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  -6....query II r
13e20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
13e30 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2b  ISTINCT - col0 +
13e40 20 39 30 20 41 53 20 63 6f 6c 32 2c 20 32 35 20   90 AS col2, 25 
13e50 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
13e60 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 32 35 0d  0..----..15..25.
13e70 0a 32 36 0d 0a 32 35 0d 0a 34 34 0d 0a 32 35 0d  .26..25..44..25.
13e80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13e90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
13ea0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
13eb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 31 0d  wsort label-451.
13ec0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 20 2b 20  .SELECT ALL 3 + 
13ed0 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
13ee0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
13ef0 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..6....skipif 
13f00 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13f10 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
13f20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
13f30 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 20  1..SELECT ALL 3 
13f40 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
13f50 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
13f60 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79  .----..6....only
13f70 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13f80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13f90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13fa0 61 62 65 6c 2d 34 35 32 0d 0a 53 45 4c 45 43 54  abel-452..SELECT
13fb0 20 2b 20 43 4f 55 4e 54 28 20 2b 20 38 37 20 29   + COUNT( + 87 )
13fc0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
13fd0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  b0..----..3....s
13fe0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
13ff0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
14000 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14010 62 65 6c 2d 34 35 32 0d 0a 53 45 4c 45 43 54 20  bel-452..SELECT 
14020 2b 20 43 4f 55 4e 54 20 28 20 2b 20 38 37 20 29  + COUNT ( + 87 )
14030 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
14040 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71  b0..----..3....q
14050 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
14060 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20  SELECT + col1 * 
14070 2b 20 2d 20 31 30 20 41 53 20 63 6f 6c 31 20 46  + - 10 AS col1 F
14080 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
14090 2d 31 34 30 0d 0a 2d 34 37 30 0d 0a 2d 35 30 0d  -140..-470..-50.
140a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
140b0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
140c0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
140d0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
140e0 61 62 65 6c 2d 34 35 34 0d 0a 53 45 4c 45 43 54  abel-454..SELECT
140f0 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c   + col0 AS col0,
14100 20 2d 20 63 6f 6c 32 20 44 49 56 20 2b 20 37 20   - col2 DIV + 7 
14110 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  - col2 AS col2 F
14120 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
14130 35 31 0d 0a 2d 31 30 39 0d 0a 38 35 0d 0a 2d 36  51..-109..85..-6
14140 37 0d 0a 39 31 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b  7..91..-77....sk
14150 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
14160 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
14170 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
14180 62 65 6c 2d 34 35 34 0d 0a 53 45 4c 45 43 54 20  bel-454..SELECT 
14190 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20  + col0 AS col0, 
141a0 2d 20 63 6f 6c 32 20 2f 20 2b 20 37 20 2d 20 63  - col2 / + 7 - c
141b0 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
141c0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   tab1..----..51.
141d0 0a 2d 31 30 39 0d 0a 38 35 0d 0a 2d 36 37 0d 0a  .-109..85..-67..
141e0 39 31 0d 0a 2d 37 37 0d 0a 0d 0a 71 75 65 72 79  91..-77....query
141f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
14200 43 54 20 41 4c 4c 20 2d 20 37 31 20 2a 20 2d 20  CT ALL - 71 * - 
14210 63 6f 6c 30 20 2a 20 2b 20 35 32 20 41 53 20 63  col0 * + 52 AS c
14220 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
14230 2d 2d 2d 0d 0a 31 38 38 32 39 32 0d 0a 33 31 33  ---..188292..313
14240 38 32 30 0d 0a 33 33 35 39 37 32 0d 0a 0d 0a 71  820..335972....q
14250 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
14260 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20  SELECT - col2 + 
14270 28 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  ( col0 ) AS col0
14280 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
14290 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45   NOT NULL NOT BE
142a0 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20 41 4e 44  TWEEN + col1 AND
142b0 20 39 32 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d   92 - col0..----
142c0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
142d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
142e0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  L * FROM tab1 co
142f0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
14300 4c 20 49 4e 20 28 20 2d 20 36 39 20 2a 20 2d 20  L IN ( - 69 * - 
14310 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 2a 20 2b  col1, + col0 * +
14320 20 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75   5 )..----....qu
14330 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14340 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a  ELECT ALL col1 *
14350 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
14360 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
14370 54 20 28 20 63 6f 6c 32 20 29 20 4e 4f 54 20 42  T ( col2 ) NOT B
14380 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30 20 2a 20  ETWEEN + col0 * 
14390 63 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 30 20  col1 + - + col0 
143a0 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  AND col2..----..
143b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
143c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
143d0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
143e0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 39 0d 0a  sort label-459..
143f0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e  SELECT ALL + MIN
14400 28 20 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52  ( col1 ) col0 FR
14410 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
14420 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
14430 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
14440 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
14450 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
14460 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
14470 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
14480 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
14490 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
144a0 6c 2d 34 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-459..SELECT AL
144b0 4c 20 2b 20 4d 49 4e 20 28 20 63 6f 6c 31 20 29  L + MIN ( col1 )
144c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
144d0 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 71 75 65 72  .----..5....quer
144e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
144f0 45 43 54 20 41 4c 4c 20 2b 20 34 32 20 46 52 4f  ECT ALL + 42 FRO
14500 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
14510 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
14520 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 34 32 0d  L..----..42..42.
14530 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .42....query III
14540 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14550 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
14560 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
14570 30 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 31  0 BETWEEN ( col1
14580 20 2a 20 63 6f 6c 32 20 29 20 41 4e 44 20 63 6f   * col2 ) AND co
14590 6c 32 20 2a 20 38 32 0d 0a 2d 2d 2d 2d 0d 0a 39  l2 * 82..----..9
145a0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
145b0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
145c0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
145d0 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
145e0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
145f0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
14600 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14610 34 36 32 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55  462..SELECT - SU
14620 4d 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 46 52  M( ALL col0 ) FR
14630 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
14640 0a 2d 2d 2d 2d 0d 0a 2d 31 38 35 0d 0a 0d 0a 73  .----..-185....s
14650 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
14660 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
14670 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14680 62 65 6c 2d 34 36 32 0d 0a 53 45 4c 45 43 54 20  bel-462..SELECT 
14690 2d 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 30  - SUM ( ALL col0
146a0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
146b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 35  cor0..----..-185
146c0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
146d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 31  ort..SELECT + 11
146e0 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63   * - + col2 AS c
146f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
14700 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
14710 35 36 0d 0a 2d 36 34 39 0d 0a 2d 37 34 38 0d 0a  56..-649..-748..
14720 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
14730 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
14740 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
14750 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 34 0d  wsort label-464.
14760 0a 53 45 4c 45 43 54 20 2d 20 32 36 20 41 53 20  .SELECT - 26 AS 
14770 63 6f 6c 30 2c 20 2d 20 43 4f 55 4e 54 28 20 2a  col0, - COUNT( *
14780 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
14790 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 0d  cor0..----..-26.
147a0 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
147b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
147c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
147d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 34  owsort label-464
147e0 0d 0a 53 45 4c 45 43 54 20 2d 20 32 36 20 41 53  ..SELECT - 26 AS
147f0 20 63 6f 6c 30 2c 20 2d 20 43 4f 55 4e 54 20 28   col0, - COUNT (
14800 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
14810 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
14820 36 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  6..-3....query I
14830 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14840 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20  T col0 AS col1, 
14850 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
14860 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36  S cor0..----..46
14870 0d 0a 34 36 0d 0a 36 34 0d 0a 36 34 0d 0a 37 35  ..46..64..64..75
14880 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..75....onlyif m
14890 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
148a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
148b0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
148c0 6c 2d 34 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-466..SELECT - 
148d0 43 4f 55 4e 54 28 20 2d 20 39 34 20 29 20 63 6f  COUNT( - 94 ) co
148e0 6c 32 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  l2, - COUNT( * )
148f0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
14900 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
14910 0d 0a 2d 33 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70  ..-3..-3....skip
14920 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
14930 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
14940 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
14950 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
14960 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
14970 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
14980 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
14990 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 36 0d 0a  sort label-466..
149a0 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28  SELECT - COUNT (
149b0 20 2d 20 39 34 20 29 20 63 6f 6c 32 2c 20 2d 20   - 94 ) col2, - 
149c0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
149d0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
149e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
149f0 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .-3....query I r
14a00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
14a10 49 53 54 49 4e 43 54 20 39 31 20 2a 20 2d 20 38  ISTINCT 91 * - 8
14a20 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
14a30 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
14a40 2d 0d 0a 2d 37 36 34 34 0d 0a 0d 0a 6f 6e 6c 79  -..-7644....only
14a50 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
14a60 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
14a70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14a80 61 62 65 6c 2d 34 36 38 0d 0a 53 45 4c 45 43 54  abel-468..SELECT
14a90 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 28 20   ALL + - COUNT( 
14aa0 2a 20 29 20 2b 20 35 38 20 2a 20 2b 20 38 39 20  * ) + 58 * + 89 
14ab0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
14ac0 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 35 39 0d 0a 0d  0..----..5159...
14ad0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14ae0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14af0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14b00 6c 61 62 65 6c 2d 34 36 38 0d 0a 53 45 4c 45 43  label-468..SELEC
14b10 54 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 20  T ALL + - COUNT 
14b20 28 20 2a 20 29 20 2b 20 35 38 20 2a 20 2b 20 38  ( * ) + 58 * + 8
14b30 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  9 FROM tab2 AS c
14b40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 35 39 0d  or0..----..5159.
14b50 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
14b60 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
14b70 4e 43 54 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  NCT - col1 AS co
14b80 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
14b90 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 36 36  0 WHERE NOT + 66
14ba0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
14bb0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
14bc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
14bd0 4c 4c 20 2b 20 35 2c 20 63 6f 6c 30 20 2b 20 63  LL + 5, col0 + c
14be0 6f 6c 30 20 2a 20 2d 20 2d 20 32 32 20 2d 20 2d  ol0 * - - 22 - -
14bf0 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
14c00 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
14c10 30 20 57 48 45 52 45 20 63 6f 6c 31 20 2b 20 2d  0 WHERE col1 + -
14c20 20 32 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   21 IS NULL..---
14c30 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
14c40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
14c50 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
14c60 20 28 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   ( col0 IS NOT N
14c70 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  ULL )..----..9 v
14c80 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
14c90 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
14ca0 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
14cb0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
14cc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
14cd0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
14ce0 20 4e 55 4c 4c 20 3c 20 2b 20 63 6f 6c 31 20 2a   NULL < + col1 *
14cf0 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f   - col2 * - - co
14d00 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2b 20  l1 + - - col1 + 
14d10 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col1..----....
14d20 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
14d30 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
14d40 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
14d50 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
14d60 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20 41  BETWEEN + col1 A
14d70 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
14d80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14d90 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
14da0 54 20 63 6f 6c 30 20 2a 20 2d 20 36 30 20 2a 20  T col0 * - 60 * 
14db0 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  + + col1 AS col0
14dc0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
14dd0 0d 0a 2d 31 30 39 36 32 30 0d 0a 2d 35 38 32 30  ..-109620..-5820
14de0 0d 0a 2d 37 32 39 30 30 0d 0a 0d 0a 6f 6e 6c 79  ..-72900....only
14df0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
14e00 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
14e10 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
14e20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 35  owsort label-475
14e30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28  ..SELECT + CAST(
14e40 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47   - + col0 AS SIG
14e50 4e 45 44 20 29 20 2b 20 63 6f 6c 32 20 2b 20 2b  NED ) + col2 + +
14e60 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 46 52 4f   col1 + col2 FRO
14e70 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
14e80 36 0d 0a 31 30 32 0d 0a 31 36 30 0d 0a 0d 0a 73  6..102..160....s
14e90 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
14ea0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
14eb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14ec0 62 65 6c 2d 34 37 35 0d 0a 53 45 4c 45 43 54 20  bel-475..SELECT 
14ed0 2b 20 43 41 53 54 20 28 20 2d 20 2b 20 63 6f 6c  + CAST ( - + col
14ee0 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  0 AS INTEGER ) +
14ef0 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2b   col2 + + col1 +
14f00 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
14f10 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 31 30 32 0d  .----..-46..102.
14f20 0a 31 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .160....query II
14f30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
14f40 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
14f50 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f  0 WHERE NOT ( NO
14f60 54 20 28 20 63 6f 6c 31 20 2a 20 2d 20 28 20 2b  T ( col1 * - ( +
14f70 20 2b 20 37 32 20 29 20 2a 20 2b 20 28 20 2d 20   + 72 ) * + ( - 
14f80 63 6f 6c 32 20 29 20 29 20 3d 20 4e 55 4c 4c 20  col2 ) ) = NULL 
14f90 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
14fa0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
14fb0 43 54 20 44 49 53 54 49 4e 43 54 20 37 33 20 2a  CT DISTINCT 73 *
14fc0 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   - col0 AS col1 
14fd0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
14fe0 0a 2d 31 30 39 35 0d 0a 2d 36 33 35 31 0d 0a 2d  .-1095..-6351..-
14ff0 37 30 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  7081....skipif p
15000 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
15010 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
15020 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
15030 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
15040 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
15050 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
15060 43 54 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 32  CT - col1 + col2
15070 20 63 6f 6c 32 2c 20 37 36 20 41 53 20 63 6f 6c   col2, 76 AS col
15080 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
15090 2d 0d 0a 32 31 0d 0a 37 36 0d 0a 35 34 0d 0a 37  -..21..76..54..7
150a0 36 0d 0a 38 32 0d 0a 37 36 0d 0a 0d 0a 71 75 65  6..82..76....que
150b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
150c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
150d0 32 37 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20  27 * + - col0 * 
150e0 2d 20 2d 20 28 20 2b 20 34 33 20 29 20 2b 20 2d  - - ( + 43 ) + -
150f0 20 2b 20 36 38 20 2a 20 2d 20 63 6f 6c 32 20 2b   + 68 * - col2 +
15100 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + + col1 FROM t
15110 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
15120 2d 0d 0a 31 30 31 37 30 38 0d 0a 31 31 39 33 35  -..101708..11935
15130 30 0d 0a 32 30 36 39 32 0d 0a 0d 0a 6f 6e 6c 79  0..20692....only
15140 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
15150 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
15160 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15170 61 62 65 6c 2d 34 38 30 0d 0a 53 45 4c 45 43 54  abel-480..SELECT
15180 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 4d 49   COUNT( * ) + MI
15190 4e 28 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c 30  N( - col2 ) col0
151a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
151b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d  r0..----..-93...
151c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
151d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
151e0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
151f0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
15200 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
15210 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
15220 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
15230 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
15240 38 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  80..SELECT COUNT
15250 20 28 20 2a 20 29 20 2b 20 4d 49 4e 20 28 20 2d   ( * ) + MIN ( -
15260 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f   col2 ) col0 FRO
15270 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
15280 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 6f 6e 6c  ----..-93....onl
15290 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
152a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
152b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
152c0 6c 61 62 65 6c 2d 34 38 31 0d 0a 53 45 4c 45 43  label-481..SELEC
152d0 54 20 2d 20 43 4f 55 4e 54 28 20 2d 20 2d 20 63  T - COUNT( - - c
152e0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol2 ) AS col1 FR
152f0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
15300 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
15310 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
15320 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
15330 6f 72 74 20 6c 61 62 65 6c 2d 34 38 31 0d 0a 53  ort label-481..S
15340 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
15350 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  - - col2 ) AS co
15360 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
15370 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20  --..-3....query 
15380 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
15390 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
153a0 57 48 45 52 45 20 32 34 20 2a 20 63 6f 6c 31 20  WHERE 24 * col1 
153b0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
153c0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
153d0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
153e0 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
153f0 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69  7fb43b7....onlyi
15400 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
15410 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
15420 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15430 62 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43 54 20  bel-483..SELECT 
15440 4d 49 4e 28 20 2b 20 2d 20 38 36 20 29 20 46 52  MIN( + - 86 ) FR
15450 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
15460 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  86....skipif mys
15470 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
15480 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
15490 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 33 0d 0a  sort label-483..
154a0 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 2b 20 2d  SELECT MIN ( + -
154b0 20 38 36 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   86 ) FROM tab0.
154c0 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a 0d 0a 71 75  .----..-86....qu
154d0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
154e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
154f0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
15500 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
15510 20 4e 55 4c 4c 20 29 20 3d 20 63 6f 6c 30 0d 0a   NULL ) = col0..
15520 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
15530 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
15540 20 44 49 53 54 49 4e 43 54 20 2b 20 31 31 2c 20   DISTINCT + 11, 
15550 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  + col1 AS col2 F
15560 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
15570 0d 0a 2d 2d 2d 2d 0d 0a 31 31 0d 0a 35 31 0d 0a  ..----..11..51..
15580 31 31 0d 0a 36 37 0d 0a 31 31 0d 0a 37 37 0d 0a  11..67..11..77..
15590 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
155a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
155b0 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  * FROM tab0 cor0
155c0 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20 2d   WHERE ( NOT ( -
155d0 20 2b 20 63 6f 6c 30 20 29 20 3c 3d 20 28 20 2b   + col0 ) <= ( +
155e0 20 33 35 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 29   35 + - - col2 )
155f0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
15600 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
15610 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
15620 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
15630 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
15640 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  87..SELECT ALL +
15650 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
15660 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f   DECIMAL ) AS co
15670 6c 31 2c 20 38 32 20 41 53 20 63 6f 6c 31 20 46  l1, 82 AS col1 F
15680 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
15690 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 38 32  ..----..NULL..82
156a0 0d 0a 4e 55 4c 4c 0d 0a 38 32 0d 0a 4e 55 4c 4c  ..NULL..82..NULL
156b0 0d 0a 38 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..82....skipif m
156c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
156d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
156e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38  rowsort label-48
156f0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  7..SELECT ALL + 
15700 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
15710 20 52 45 41 4c 20 29 20 41 53 20 63 6f 6c 31 2c   REAL ) AS col1,
15720 20 38 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   82 AS col1 FROM
15730 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
15740 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 38 32 0d 0a 4e  ---..NULL..82..N
15750 55 4c 4c 0d 0a 38 32 0d 0a 4e 55 4c 4c 0d 0a 38  ULL..82..NULL..8
15760 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
15770 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
15780 20 2b 20 28 20 32 31 20 29 20 41 53 20 63 6f 6c   + ( 21 ) AS col
15790 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
157a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 32  or0..----..21..2
157b0 31 0d 0a 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49  1..21....query I
157c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
157d0 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2b 20   + + col2 - + + 
157e0 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
157f0 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
15800 2d 0d 0a 2d 32 38 0d 0a 2d 33 37 0d 0a 2d 39 0d  -..-28..-37..-9.
15810 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15820 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
15830 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
15840 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
15850 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15860 6c 61 62 65 6c 2d 34 39 30 0d 0a 53 45 4c 45 43  label-490..SELEC
15870 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  T - COUNT( * ) A
15880 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
15890 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
158a0 4f 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  OT CAST( NULL AS
158b0 20 53 49 47 4e 45 44 20 29 20 2d 20 2d 20 2d 20   SIGNED ) - - - 
158c0 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 20  col2 + - + col1 
158d0 2f 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 28  / + col2 + + - (
158e0 20 2b 20 38 30 20 29 20 49 53 20 4e 4f 54 20 4e   + 80 ) IS NOT N
158f0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  ULL..----..-3...
15900 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
15910 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
15920 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
15930 6c 61 62 65 6c 2d 34 39 30 0d 0a 53 45 4c 45 43  label-490..SELEC
15940 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
15950 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15960 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
15970 4e 4f 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  NOT CAST ( NULL 
15980 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20 2d  AS INTEGER ) - -
15990 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f   - col2 + - + co
159a0 6c 31 20 2f 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  l1 / + col2 + + 
159b0 2d 20 28 20 2b 20 38 30 20 29 20 49 53 20 4e 4f  - ( + 80 ) IS NO
159c0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  T NULL..----..-3
159d0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
159e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
159f0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
15a00 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f  0 WHERE NOT ( NO
15a10 54 20 28 20 2d 20 36 30 20 29 20 49 53 20 4e 55  T ( - 60 ) IS NU
15a20 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  LL )..----....qu
15a30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
15a40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
15a50 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
15a60 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20  OM tab1 WHERE - 
15a70 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  - col1 IS NOT NU
15a80 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d  LL..----..-14..-
15a90 34 37 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20  47..-5....query 
15aa0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15ab0 54 20 2d 20 31 30 20 46 52 4f 4d 20 74 61 62 31  T - 10 FROM tab1
15ac0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
15ad0 3c 3d 20 33 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  <= 36..----....q
15ae0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
15af0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
15b00 2d 20 31 31 20 2a 20 2d 20 2d 20 36 35 20 46 52  - 11 * - - 65 FR
15b10 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
15b20 37 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  715....query I r
15b30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
15b40 20 31 38 20 2a 20 2d 20 34 36 20 46 52 4f 4d 20   18 * - 46 FROM 
15b50 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 32 38  tab2..----..-828
15b60 0d 0a 2d 38 32 38 0d 0a 2d 38 32 38 0d 0a 0d 0a  ..-828..-828....
15b70 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
15b80 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
15b90 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
15ba0 72 74 20 6c 61 62 65 6c 2d 34 39 36 0d 0a 53 45  rt label-496..SE
15bb0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
15bc0 53 55 4d 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20  SUM( - - col2 ) 
15bd0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
15be0 0a 2d 31 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-156....skipif 
15bf0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
15c00 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
15c10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39  rowsort label-49
15c20 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
15c30 43 54 20 2d 20 53 55 4d 20 28 20 2d 20 2d 20 63  CT - SUM ( - - c
15c40 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol2 ) FROM tab0.
15c50 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 6f  .----..-156....o
15c60 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
15c70 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
15c80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15c90 74 20 6c 61 62 65 6c 2d 34 39 37 0d 0a 53 45 4c  t label-497..SEL
15ca0 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e  ECT DISTINCT MIN
15cb0 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  ( + + col2 ) AS 
15cc0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
15cd0 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b 69 70  ----..10....skip
15ce0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
15cf0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
15d00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15d10 2d 34 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -497..SELECT DIS
15d20 54 49 4e 43 54 20 4d 49 4e 20 28 20 2b 20 2b 20  TINCT MIN ( + + 
15d30 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
15d40 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
15d50 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  10....query III 
15d60 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15d70 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
15d80 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
15d90 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20 2d 20  RE NOT col2 * - 
15da0 63 6f 6c 30 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d  col0 >= NULL..--
15db0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  --....skipif pos
15dc0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
15dd0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
15de0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
15df0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
15e00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
15e10 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
15e20 35 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  54 col1 FROM tab
15e30 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 0d 0a 0d 0a 6f  0..----..54....o
15e40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
15e50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
15e60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15e70 74 20 6c 61 62 65 6c 2d 35 30 30 0d 0a 53 45 4c  t label-500..SEL
15e80 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 63 6f 6c  ECT ALL SUM( col
15e90 31 20 29 20 2b 20 2d 20 4d 41 58 28 20 2b 20 28  1 ) + - MAX( + (
15ea0 20 2b 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d   + col0 ) ) FROM
15eb0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
15ec0 45 52 45 20 2b 20 37 37 20 3c 20 4e 55 4c 4c 0d  ERE + 77 < NULL.
15ed0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
15ee0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
15ef0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
15f00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15f10 62 65 6c 2d 35 30 30 0d 0a 53 45 4c 45 43 54 20  bel-500..SELECT 
15f20 41 4c 4c 20 53 55 4d 20 28 20 63 6f 6c 31 20 29  ALL SUM ( col1 )
15f30 20 2b 20 2d 20 4d 41 58 20 28 20 2b 20 28 20 2b   + - MAX ( + ( +
15f40 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74   col0 ) ) FROM t
15f50 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
15f60 45 20 2b 20 37 37 20 3c 20 4e 55 4c 4c 0d 0a 2d  E + 77 < NULL..-
15f70 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
15f80 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15f90 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
15fa0 31 38 20 2a 20 2b 20 34 37 20 2b 20 2d 20 63 6f  18 * + 47 + - co
15fb0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
15fc0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 30 0d  cor0..----..750.
15fd0 0a 37 37 38 0d 0a 37 38 37 0d 0a 0d 0a 6f 6e 6c  .778..787....onl
15fe0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
15ff0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
16000 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16010 6c 61 62 65 6c 2d 35 30 32 0d 0a 53 45 4c 45 43  label-502..SELEC
16020 54 20 2d 20 4d 41 58 28 20 41 4c 4c 20 63 6f 6c  T - MAX( ALL col
16030 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  2 ) FROM tab2 AS
16040 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38   cor0..----..-58
16050 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
16060 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
16070 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
16080 72 74 20 6c 61 62 65 6c 2d 35 30 32 0d 0a 53 45  rt label-502..SE
16090 4c 45 43 54 20 2d 20 4d 41 58 20 28 20 41 4c 4c  LECT - MAX ( ALL
160a0 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
160b0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
160c0 0a 2d 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-58....onlyif m
160d0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
160e0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
160f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
16100 72 74 20 6c 61 62 65 6c 2d 35 30 33 0d 0a 53 45  rt label-503..SE
16110 4c 45 43 54 20 2b 20 2d 20 43 41 53 54 28 20 4e  LECT + - CAST( N
16120 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
16130 2a 20 2d 20 37 38 20 46 52 4f 4d 20 74 61 62 31  * - 78 FROM tab1
16140 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
16150 20 4e 55 4c 4c 20 29 20 3c 20 4e 55 4c 4c 0d 0a   NULL ) < NULL..
16160 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
16170 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
16180 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
16190 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 33  owsort label-503
161a0 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 41 53  ..SELECT + - CAS
161b0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
161c0 47 45 52 20 29 20 2a 20 2d 20 37 38 20 46 52 4f  GER ) * - 78 FRO
161d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
161e0 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c 20  HERE ( NULL ) < 
161f0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
16200 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
16210 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f  ELECT ALL + + co
16220 6c 31 20 2a 20 2d 20 38 34 20 46 52 4f 4d 20 74  l1 * - 84 FROM t
16230 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
16240 2d 0d 0a 2d 31 31 37 36 0d 0a 2d 33 39 34 38 0d  -..-1176..-3948.
16250 0a 2d 34 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .-420....query I
16260 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16270 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 36 38 20 41   + + col1 + 68 A
16280 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
16290 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
162a0 31 31 35 0d 0a 37 33 0d 0a 38 32 0d 0a 0d 0a 71  115..73..82....q
162b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
162c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
162d0 63 6f 6c 31 20 2a 20 2b 20 38 39 20 46 52 4f 4d  col1 * + 89 FROM
162e0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
162f0 2d 2d 2d 0d 0a 31 32 34 36 0d 0a 34 31 38 33 0d  ---..1246..4183.
16300 0a 34 34 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .445....query II
16310 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16320 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  T * FROM tab2 co
16330 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  r0 WHERE NULL NO
16340 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
16350 4e 44 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 32  ND + col0 + col2
16360 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col1..----...
16370 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
16380 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
16390 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
163a0 6f 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d 0a 53  ort label-508..S
163b0 45 4c 45 43 54 20 41 4c 4c 20 33 20 2b 20 43 4f  ELECT ALL 3 + CO
163c0 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55  UNT( * ) + - COU
163d0 4e 54 28 20 44 49 53 54 49 4e 43 54 20 33 35 20  NT( DISTINCT 35 
163e0 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  ) col2 FROM tab1
163f0 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69  ..----..5....ski
16400 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
16410 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
16420 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
16430 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
16440 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
16450 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
16460 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
16470 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 38 0d 0a  sort label-508..
16480 53 45 4c 45 43 54 20 41 4c 4c 20 33 20 2b 20 43  SELECT ALL 3 + C
16490 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 43  OUNT ( * ) + - C
164a0 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
164b0 33 35 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  35 ) col2 FROM t
164c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a  ab1..----..5....
164d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
164e0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2d  .SELECT col0 + -
164f0 20 37 33 20 2a 20 31 37 20 2a 20 2b 20 2b 20 28   73 * 17 * + + (
16500 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
16510 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37 38 38 30  0..----..-107880
16520 0d 0a 2d 31 32 30 32 38 30 0d 0a 2d 31 38 36 30  ..-120280..-1860
16530 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
16540 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
16550 54 49 4e 43 54 20 2d 20 30 20 2b 20 37 38 20 41  TINCT - 0 + 78 A
16560 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
16570 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
16580 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
16590 0a 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .78....query I r
165a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
165b0 49 53 54 49 4e 43 54 20 38 33 20 2b 20 2d 20 28  ISTINCT 83 + - (
165c0 20 2b 20 28 20 2d 20 28 20 2b 20 63 6f 6c 31 20   + ( - ( + col1 
165d0 29 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ) ) ) AS col1 FR
165e0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
165f0 33 30 0d 0a 38 38 0d 0a 39 37 0d 0a 0d 0a 71 75  30..88..97....qu
16600 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
16610 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20  SELECT ALL col0 
16620 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20  + col1 AS col2, 
16630 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
16640 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 2d 31 30  ..----..108..-10
16650 0d 0a 39 36 0d 0a 2d 34 37 0d 0a 39 38 0d 0a 2d  ..96..-47..98..-
16660 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  99....skipif pos
16670 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
16680 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
16690 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
166a0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
166b0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
166c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
166d0 20 32 37 20 63 6f 6c 31 2c 20 2b 20 36 37 20 63   27 col1, + 67 c
166e0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
166f0 2d 2d 2d 0d 0a 32 37 0d 0a 36 37 0d 0a 0d 0a 71  ---..27..67....q
16700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
16710 53 45 4c 45 43 54 20 28 20 2b 20 63 6f 6c 32 20  SELECT ( + col2 
16720 29 20 2b 20 33 32 20 46 52 4f 4d 20 74 61 62 30  ) + 32 FROM tab0
16730 0d 0a 2d 2d 2d 2d 0d 0a 31 33 31 0d 0a 34 32 0d  ..----..131..42.
16740 0a 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .79....query II 
16750 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16760 44 49 53 54 49 4e 43 54 20 2b 20 34 32 20 2a 20  DISTINCT + 42 * 
16770 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20  + col0 AS col0, 
16780 34 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  46 FROM tab2..--
16790 2d 2d 0d 0a 31 39 33 32 0d 0a 34 36 0d 0a 32 36  --..1932..46..26
167a0 38 38 0d 0a 34 36 0d 0a 33 31 35 30 0d 0a 34 36  88..46..3150..46
167b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
167c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
167d0 49 4e 43 54 20 2b 20 32 31 20 41 53 20 63 6f 6c  INCT + 21 AS col
167e0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
167f0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
16800 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
16810 0d 0a 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..21....query I 
16820 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16830 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c  DISTINCT - - col
16840 30 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 31  0 + - col1 + - 1
16850 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
16860 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
16870 2d 0d 0a 2d 38 34 0d 0a 34 38 0d 0a 37 38 0d 0a  -..-84..48..78..
16880 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
16890 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
168a0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
168b0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 38 0d 0a  sort label-518..
168c0 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20 2d 20  SELECT - MAX( - 
168d0 2b 20 63 6f 6c 30 20 29 20 2d 20 2b 20 2b 20 43  + col0 ) - + + C
168e0 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30 20 46  OUNT( * ) col0 F
168f0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
16900 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 0d 0a 73 6b  ..----..43....sk
16910 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
16920 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
16930 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
16940 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
16950 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
16960 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
16970 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
16980 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 38 0d  wsort label-518.
16990 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20  .SELECT - MAX ( 
169a0 2d 20 2b 20 63 6f 6c 30 20 29 20 2d 20 2b 20 2b  - + col0 ) - + +
169b0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
169c0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
169d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 0d  or0..----..43...
169e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
169f0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
16a00 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c  - + col0 * - col
16a10 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
16a20 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
16a30 2d 0d 0a 34 38 34 35 0d 0a 34 39 33 30 0d 0a 36  -..4845..4930..6
16a40 30 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  097....query I r
16a50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31  owsort..SELECT 1
16a60 37 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  7 FROM tab1 WHER
16a70 45 20 28 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  E ( ( + - col1 )
16a80 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
16a90 2d 2d 2d 2d 0d 0a 31 37 0d 0a 31 37 0d 0a 31 37  ----..17..17..17
16aa0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
16ab0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
16ac0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
16ad0 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c  + col0 * + - col
16ae0 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
16af0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
16b00 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
16b10 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
16b20 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
16b30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
16b40 4c 45 43 54 20 2d 20 28 20 2b 20 2b 20 63 6f 6c  LECT - ( + + col
16b50 31 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 41  1 ) * - - col1 A
16b60 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
16b70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
16b80 2d 31 39 36 0d 0a 2d 32 32 30 39 0d 0a 2d 32 35  -196..-2209..-25
16b90 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
16ba0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
16bb0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
16bc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 33  owsort label-523
16bd0 0d 0a 53 45 4c 45 43 54 20 2b 20 35 31 20 2a 20  ..SELECT + 51 * 
16be0 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + + COUNT( * ) A
16bf0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
16c00 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
16c10 31 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  153....skipif my
16c20 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
16c30 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
16c40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 33 0d  wsort label-523.
16c50 0a 53 45 4c 45 43 54 20 2b 20 35 31 20 2a 20 2b  .SELECT + 51 * +
16c60 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
16c70 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
16c80 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
16c90 31 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  153....query I r
16ca0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
16cb0 20 2d 20 28 20 2d 20 28 20 2b 20 28 20 2d 20 63   - ( - ( + ( - c
16cc0 6f 6c 32 20 29 20 29 20 29 20 41 53 20 63 6f 6c  ol2 ) ) ) AS col
16cd0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
16ce0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a  or0..----..-59..
16cf0 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70  -68..-96....skip
16d00 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
16d10 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
16d20 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
16d30 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
16d40 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
16d50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
16d60 20 63 6f 6c 30 20 2a 20 2d 20 33 35 20 2b 20 2d   col0 * - 35 + -
16d70 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f   + col1 + - + co
16d80 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l2 col0 FROM tab
16d90 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
16da0 0a 33 30 31 34 0d 0a 33 32 39 35 0d 0a 33 39 37  .3014..3295..397
16db0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
16dc0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
16dd0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
16de0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 36  owsort label-526
16df0 0d 0a 53 45 4c 45 43 54 20 2d 20 36 35 20 2a 20  ..SELECT - 65 * 
16e00 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
16e10 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
16e20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35  cor0..----..-195
16e30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
16e40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
16e50 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
16e60 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a 53 45  rt label-526..SE
16e70 4c 45 43 54 20 2d 20 36 35 20 2a 20 43 4f 55 4e  LECT - 65 * COUN
16e80 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
16e90 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
16ea0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 35 0d 0a 0d  0..----..-195...
16eb0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
16ec0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
16ed0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
16ee0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
16ef0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
16f00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16f10 54 20 2d 20 39 32 20 63 6f 6c 30 20 46 52 4f 4d  T - 92 col0 FROM
16f20 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
16f30 2d 2d 2d 0d 0a 2d 39 32 0d 0a 2d 39 32 0d 0a 2d  ---..-92..-92..-
16f40 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  92....query I ro
16f50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 34  wsort..SELECT 74
16f60 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
16f70 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
16f80 2d 0d 0a 34 33 36 36 0d 0a 35 30 33 32 0d 0a 37  -..4366..5032..7
16f90 31 30 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  104....onlyif my
16fa0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
16fb0 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
16fc0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
16fd0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
16fe0 6f 72 74 20 6c 61 62 65 6c 2d 35 32 39 0d 0a 53  ort label-529..S
16ff0 45 4c 45 43 54 20 41 4c 4c 20 37 34 20 44 49 56  ELECT ALL 74 DIV
17000 20 2d 20 2b 20 28 20 2d 20 43 4f 55 4e 54 28 20   - + ( - COUNT( 
17010 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20 29  ALL + + col1 ) )
17020 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
17030 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 73 6b 69  .----..24....ski
17040 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17050 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
17060 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
17070 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
17080 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
17090 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
170a0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
170b0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 39 0d 0a  sort label-529..
170c0 53 45 4c 45 43 54 20 41 4c 4c 20 37 34 20 2f 20  SELECT ALL 74 / 
170d0 2d 20 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28 20  - + ( - COUNT ( 
170e0 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20 29  ALL + + col1 ) )
170f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
17100 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 6f 6e 6c  .----..24....onl
17110 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
17120 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
17130 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
17140 20 6c 61 62 65 6c 2d 35 33 30 0d 0a 53 45 4c 45   label-530..SELE
17150 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
17160 2a 20 29 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20  * ), - COUNT( * 
17170 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
17180 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 33  ab2..----..3..-3
17190 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
171a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
171b0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
171c0 6f 72 74 20 6c 61 62 65 6c 2d 35 33 30 0d 0a 53  ort label-530..S
171d0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
171e0 54 20 28 20 2a 20 29 2c 20 2d 20 43 4f 55 4e 54  T ( * ), - COUNT
171f0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
17200 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
17210 33 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  3..-3....query I
17220 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17230 20 63 6f 6c 31 20 2a 20 2b 20 34 39 20 41 53 20   col1 * + 49 AS 
17240 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
17250 2d 2d 2d 2d 0d 0a 32 34 39 39 0d 0a 33 32 38 33  ----..2499..3283
17260 0d 0a 33 37 37 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3773....onlyif
17270 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
17280 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
17290 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
172a0 65 6c 2d 35 33 32 0d 0a 53 45 4c 45 43 54 20 2d  el-532..SELECT -
172b0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
172c0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
172d0 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2f  ERE NOT - col2 /
172e0 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   + col1 IS NULL.
172f0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
17300 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17310 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17320 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17330 6c 2d 35 33 32 0d 0a 53 45 4c 45 43 54 20 2d 20  l-532..SELECT - 
17340 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
17350 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
17360 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2f  ERE NOT - col2 /
17370 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   + col1 IS NULL.
17380 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  .----..-3....onl
17390 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
173a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
173b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
173c0 6c 61 62 65 6c 2d 35 33 33 0d 0a 53 45 4c 45 43  label-533..SELEC
173d0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
173e0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
173f0 46 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 30 20  FROM tab1, tab0 
17400 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor0..----..9...
17410 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
17420 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
17430 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17440 6c 61 62 65 6c 2d 35 33 33 0d 0a 53 45 4c 45 43  label-533..SELEC
17450 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
17460 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
17470 20 46 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 30   FROM tab1, tab0
17480 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   cor0..----..9..
17490 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
174a0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
174b0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
174c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
174d0 65 6c 2d 35 33 34 0d 0a 53 45 4c 45 43 54 20 44  el-534..SELECT D
174e0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2f  ISTINCT + col2 /
174f0 20 35 32 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20   52 - col1 FROM 
17500 74 61 62 30 20 57 48 45 52 45 20 2d 20 37 34 20  tab0 WHERE - 74 
17510 42 45 54 57 45 45 4e 20 2b 20 2d 20 36 35 20 2a  BETWEEN + - 65 *
17520 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   - - CAST( NULL 
17530 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
17540 63 6f 6c 32 20 41 4e 44 20 2d 20 28 20 2d 20 39  col2 AND - ( - 9
17550 20 29 20 2b 20 2d 20 28 20 63 6f 6c 31 20 29 20   ) + - ( col1 ) 
17560 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63  * + - col2 + - c
17570 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ol2..----....ski
17580 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17590 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
175a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
175b0 6c 2d 35 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-534..SELECT DI
175c0 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2f 20  STINCT + col2 / 
175d0 35 32 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74  52 - col1 FROM t
175e0 61 62 30 20 57 48 45 52 45 20 2d 20 37 34 20 42  ab0 WHERE - 74 B
175f0 45 54 57 45 45 4e 20 2b 20 2d 20 36 35 20 2a 20  ETWEEN + - 65 * 
17600 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - - CAST ( NULL 
17610 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d  AS INTEGER ) + -
17620 20 63 6f 6c 32 20 41 4e 44 20 2d 20 28 20 2d 20   col2 AND - ( - 
17630 39 20 29 20 2b 20 2d 20 28 20 63 6f 6c 31 20 29  9 ) + - ( col1 )
17640 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20   * + - col2 + - 
17650 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col2..----....qu
17660 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
17670 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 31 2c  SELECT - - col1,
17680 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
17690 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
176a0 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 39 39 0d 0a 32 31  .----..1..99..21
176b0 0d 0a 31 30 0d 0a 38 31 0d 0a 34 37 0d 0a 0d 0a  ..10..81..47....
176c0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
176d0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
176e0 41 53 20 63 6f 6c 32 2c 20 37 33 20 46 52 4f 4d  AS col2, 73 FROM
176f0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
17700 2d 2d 2d 0d 0a 31 30 0d 0a 37 33 0d 0a 34 37 0d  ---..10..73..47.
17710 0a 37 33 0d 0a 39 39 0d 0a 37 33 0d 0a 0d 0a 71  .73..99..73....q
17720 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
17730 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
17740 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
17750 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 3c 3e  RE NOT + col1 <>
17760 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
17770 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
17780 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 37  SELECT ALL - + 7
17790 30 20 2b 20 2b 20 34 39 20 46 52 4f 4d 20 74 61  0 + + 49 FROM ta
177a0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
177b0 0d 0a 2d 32 31 0d 0a 2d 32 31 0d 0a 2d 32 31 0d  ..-21..-21..-21.
177c0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
177d0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
177e0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
177f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 39 0d  wsort label-539.
17800 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 38  .SELECT ALL + 78
17810 20 2a 20 2d 20 53 55 4d 28 20 2b 20 63 6f 6c 31   * - SUM( + col1
17820 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
17830 2d 2d 0d 0a 2d 38 30 33 34 0d 0a 0d 0a 73 6b 69  --..-8034....ski
17840 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17850 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17860 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17870 6c 2d 35 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-539..SELECT AL
17880 4c 20 2b 20 37 38 20 2a 20 2d 20 53 55 4d 20 28  L + 78 * - SUM (
17890 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   + col1 ) FROM t
178a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30 33 34  ab0..----..-8034
178b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
178c0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
178d0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
178e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
178f0 61 62 65 6c 2d 35 34 30 0d 0a 53 45 4c 45 43 54  abel-540..SELECT
17900 20 63 6f 6c 30 20 44 49 56 20 2b 20 39 38 20 63   col0 DIV + 98 c
17910 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
17920 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
17930 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....skipif m
17940 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17950 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
17960 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
17970 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
17980 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
17990 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
179a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
179b0 6c 61 62 65 6c 2d 35 34 30 0d 0a 53 45 4c 45 43  label-540..SELEC
179c0 54 20 63 6f 6c 30 20 2f 20 2b 20 39 38 20 63 6f  T col0 / + 98 co
179d0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
179e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
179f0 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
17a00 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
17a10 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
17a20 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
17a30 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
17a40 6f 72 74 20 6c 61 62 65 6c 2d 35 34 31 0d 0a 53  ort label-541..S
17a50 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f  ELECT ALL + + CO
17a60 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 41 53  UNT( * ) * - CAS
17a70 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
17a80 44 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  D ) + COUNT( * )
17a90 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
17aa0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
17ab0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
17ac0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
17ad0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17ae0 20 6c 61 62 65 6c 2d 35 34 31 0d 0a 53 45 4c 45   label-541..SELE
17af0 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54  CT ALL + + COUNT
17b00 20 28 20 2a 20 29 20 2a 20 2d 20 43 41 53 54 20   ( * ) * - CAST 
17b10 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
17b20 52 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  R ) + COUNT ( * 
17b30 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
17b40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
17b50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17b60 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
17b70 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
17b80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 32 0d  wsort label-542.
17b90 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 39  .SELECT ALL - 99
17ba0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
17bb0 2a 20 2d 20 2d 20 34 32 20 41 53 20 63 6f 6c 31  * - - 42 AS col1
17bc0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
17bd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a  r0..----..-225..
17be0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
17bf0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
17c00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17c10 20 6c 61 62 65 6c 2d 35 34 32 0d 0a 53 45 4c 45   label-542..SELE
17c20 43 54 20 41 4c 4c 20 2d 20 39 39 20 2b 20 2d 20  CT ALL - 99 + - 
17c30 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
17c40 2d 20 34 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 42 AS col1 FRO
17c50 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
17c60 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a 0d 0a 6f 6e  ----..-225....on
17c70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
17c80 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
17c90 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
17ca0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
17cb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
17cc0 2d 35 34 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -543..SELECT COU
17cd0 4e 54 28 20 2a 20 29 20 2b 20 28 20 2b 20 2d 20  NT( * ) + ( + - 
17ce0 43 41 53 54 28 20 43 4f 55 4e 54 28 20 2a 20 29  CAST( COUNT( * )
17cf0 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a   AS SIGNED ) ) *
17d00 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
17d10 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
17d20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
17d30 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL <> NULL..----
17d40 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
17d50 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
17d60 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
17d70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 33 0d  wsort label-543.
17d80 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
17d90 2a 20 29 20 2b 20 28 20 2b 20 2d 20 43 41 53 54  * ) + ( + - CAST
17da0 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   ( COUNT ( * ) A
17db0 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20  S INTEGER ) ) * 
17dc0 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
17dd0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
17de0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
17df0 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL <> NULL..----
17e00 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
17e10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
17e20 4c 4c 20 2b 20 38 32 20 2b 20 2b 20 36 32 20 46  LL + 82 + + 62 F
17e30 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
17e40 31 34 34 0d 0a 31 34 34 0d 0a 31 34 34 0d 0a 0d  144..144..144...
17e50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17e60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
17e70 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  T - col1 + + col
17e80 30 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  0 + - col0 FROM 
17e90 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d  tab1..----..-14.
17ea0 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79  .-47..-5....only
17eb0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
17ec0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
17ed0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
17ee0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
17ef0 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  6..SELECT ALL CA
17f00 53 54 28 20 2d 20 63 6f 6c 31 20 41 53 20 53 49  ST( - col1 AS SI
17f10 47 4e 45 44 20 29 20 2d 20 2b 20 63 6f 6c 32 2c  GNED ) - + col2,
17f20 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
17f30 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 31 0d 0a  .----..-100..1..
17f40 2d 31 32 38 0d 0a 38 31 0d 0a 2d 33 31 0d 0a 32  -128..81..-31..2
17f50 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
17f60 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
17f70 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
17f80 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 36 0d 0a  sort label-546..
17f90 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20  SELECT ALL CAST 
17fa0 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  ( - col1 AS INTE
17fb0 47 45 52 20 29 20 2d 20 2b 20 63 6f 6c 32 2c 20  GER ) - + col2, 
17fc0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
17fd0 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 31 0d 0a 2d  ----..-100..1..-
17fe0 31 32 38 0d 0a 38 31 0d 0a 2d 33 31 0d 0a 32 31  128..81..-31..21
17ff0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
18000 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
18010 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 41 53 20 63   col1, col0 AS c
18020 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
18030 2d 2d 2d 0d 0a 31 0d 0a 39 37 0d 0a 32 31 0d 0a  ---..1..97..21..
18040 38 37 0d 0a 38 31 0d 0a 31 35 0d 0a 0d 0a 71 75  87..81..15....qu
18050 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
18060 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
18070 61 62 31 20 57 48 45 52 45 20 2d 20 2b 20 32 31  ab1 WHERE - + 21
18080 20 3c 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39   < col2..----..9
18090 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
180a0 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
180b0 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
180c0 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
180d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
180e0 20 32 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 41 53   2 + + - col2 AS
180f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
18100 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
18110 36 31 0d 0a 2d 37 30 0d 0a 2d 39 38 0d 0a 0d 0a  61..-70..-98....
18120 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
18130 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a  .SELECT - col2 *
18140 20 2b 20 34 31 20 2f 20 2d 20 2d 20 34 38 20 2b   + 41 / - - 48 +
18150 20 28 20 2b 20 2d 20 34 31 20 29 20 2b 20 2d 20   ( + - 41 ) + - 
18160 2d 20 63 6f 6c 32 20 2f 20 2b 20 35 32 20 2a 20  - col2 / + 52 * 
18170 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  + col0 * - col1 
18180 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
18190 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
181a0 2d 20 63 6f 6c 31 20 42 45 54 57 45 45 4e 20 2d  - col1 BETWEEN -
181b0 20 63 6f 6c 30 20 41 4e 44 20 2d 20 38 36 0d 0a   col0 AND - 86..
181c0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
181d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
181e0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20  DISTINCT - col1 
181f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
18200 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
18210 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
18220 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
18230 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
18240 41 4c 4c 20 2d 20 2d 20 28 20 2b 20 63 6f 6c 32  ALL - - ( + col2
18250 20 29 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63   ) + + col0 AS c
18260 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
18270 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34   cor0..----..104
18280 0d 0a 31 33 33 0d 0a 36 39 0d 0a 0d 0a 71 75 65  ..133..69....que
18290 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
182a0 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  LECT + col1 + - 
182b0 2b 20 37 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 75 AS col0 FRO
182c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
182d0 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 38 0d 0a 32  ----..-24..-8..2
182e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
182f0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
18300 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
18310 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 34  owsort label-554
18320 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 39 30 20  ..SELECT - - 90 
18330 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + - COUNT( * ) F
18340 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
18350 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 73 6b  ..----..87....sk
18360 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18370 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18380 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18390 65 6c 2d 35 35 34 0d 0a 53 45 4c 45 43 54 20 2d  el-554..SELECT -
183a0 20 2d 20 39 30 20 2b 20 2d 20 43 4f 55 4e 54 20   - 90 + - COUNT 
183b0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
183c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  AS cor0..----..8
183d0 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
183e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
183f0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
18400 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
18410 45 20 2d 20 63 6f 6c 32 20 3c 3d 20 2d 20 32 39  E - col2 <= - 29
18420 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a  ..----..15..81..
18430 34 37 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d 0a 0d  47..97..1..99...
18440 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18450 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 46 52  ..SELECT col0 FR
18460 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
18470 57 48 45 52 45 20 37 33 20 2d 20 2d 20 2b 20 63  WHERE 73 - - + c
18480 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63  ol1 NOT IN ( + c
18490 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d  ol0 )..----..15.
184a0 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  .87..97....query
184b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
184c0 43 54 20 2d 20 2d 20 36 34 20 46 52 4f 4d 20 74  CT - - 64 FROM t
184d0 61 62 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab0 cor0 CROSS J
184e0 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31  OIN tab0 AS cor1
184f0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
18500 20 68 61 73 68 69 6e 67 20 74 6f 20 36 30 61 62   hashing to 60ab
18510 30 34 30 65 39 33 31 63 35 63 38 35 64 62 37 62  040e931c5c85db7b
18520 61 31 39 33 36 34 65 61 63 63 38 65 0d 0a 0d 0a  a19364eacc8e....
18530 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
18540 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
18550 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20  T col2 AS col1, 
18560 2b 20 31 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 12 FROM tab0..
18570 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 32 0d 0a 34 37  ----..10..12..47
18580 0d 0a 31 32 0d 0a 39 39 0d 0a 31 32 0d 0a 0d 0a  ..12..99..12....
18590 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
185a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
185b0 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20   - col2 AS col2 
185c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
185d0 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 31 39  0 WHERE NOT ( 19
185e0 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 29 20 42 45   * + - col2 ) BE
185f0 54 57 45 45 4e 20 63 6f 6c 30 20 2b 20 2b 20 63  TWEEN col0 + + c
18600 6f 6c 31 20 2d 20 63 6f 6c 32 20 41 4e 44 20 63  ol1 - col2 AND c
18610 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a  ol0..----..-59..
18620 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79  -68..-96....only
18630 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
18640 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
18650 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18660 61 62 65 6c 2d 35 36 30 0d 0a 53 45 4c 45 43 54  abel-560..SELECT
18670 20 33 37 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a   37 * + COUNT( *
18680 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
18690 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 0d  cor0..----..111.
186a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
186b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
186c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
186d0 74 20 6c 61 62 65 6c 2d 35 36 30 0d 0a 53 45 4c  t label-560..SEL
186e0 45 43 54 20 33 37 20 2a 20 2b 20 43 4f 55 4e 54  ECT 37 * + COUNT
186f0 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
18700 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18710 31 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  111....query I r
18720 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
18730 4c 4c 20 34 33 20 2a 20 2d 20 32 36 20 46 52 4f  LL 43 * - 26 FRO
18740 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
18750 2d 2d 2d 2d 0d 0a 2d 31 31 31 38 0d 0a 2d 31 31  ----..-1118..-11
18760 31 38 0d 0a 2d 31 31 31 38 0d 0a 0d 0a 71 75 65  18..-1118....que
18770 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
18780 4c 45 43 54 20 2d 20 28 20 2b 20 63 6f 6c 31 20  LECT - ( + col1 
18790 29 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20  ) * - + col1 AS 
187a0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
187b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
187c0 0a 34 34 31 0d 0a 36 35 36 31 0d 0a 0d 0a 6f 6e  .441..6561....on
187d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
187e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
187f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18800 20 6c 61 62 65 6c 2d 35 36 33 0d 0a 53 45 4c 45   label-563..SELE
18810 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41  CT DISTINCT + MA
18820 58 28 20 32 31 20 29 20 2a 20 36 30 20 46 52 4f  X( 21 ) * 60 FRO
18830 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
18840 2d 2d 2d 2d 0d 0a 31 32 36 30 0d 0a 0d 0a 73 6b  ----..1260....sk
18850 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18860 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18870 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18880 65 6c 2d 35 36 33 0d 0a 53 45 4c 45 43 54 20 44  el-563..SELECT D
18890 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20  ISTINCT + MAX ( 
188a0 32 31 20 29 20 2a 20 36 30 20 46 52 4f 4d 20 74  21 ) * 60 FROM t
188b0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
188c0 2d 0d 0a 31 32 36 30 0d 0a 0d 0a 6f 6e 6c 79 69  -..1260....onlyi
188d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
188e0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
188f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
18900 62 65 6c 2d 35 36 34 0d 0a 53 45 4c 45 43 54 20  bel-564..SELECT 
18910 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  ALL + + COUNT( *
18920 20 29 20 2a 20 2b 20 2d 20 34 20 46 52 4f 4d 20   ) * + - 4 FROM 
18930 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
18940 0a 2d 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-12....skipif m
18950 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
18960 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
18970 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 34  owsort label-564
18980 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
18990 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
189a0 20 2d 20 34 20 46 52 4f 4d 20 74 61 62 31 20 63   - 4 FROM tab1 c
189b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a  or0..----..-12..
189c0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
189d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
189e0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
189f0 54 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 37 39 20  T col0 / - - 79 
18a00 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
18a10 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
18a20 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
18a30 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
18a40 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
18a50 2b 20 2d 20 36 33 20 49 53 20 4e 4f 54 20 4e 55  + - 63 IS NOT NU
18a60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
18a70 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
18a80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
18a90 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
18aa0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
18ab0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18ac0 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  67..SELECT DISTI
18ad0 4e 43 54 20 2b 20 34 38 20 44 49 56 20 43 4f 55  NCT + 48 DIV COU
18ae0 4e 54 28 20 2a 20 29 20 2a 20 34 30 20 41 53 20  NT( * ) * 40 AS 
18af0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
18b00 2d 2d 2d 2d 0d 0a 36 34 30 0d 0a 0d 0a 73 6b 69  ----..640....ski
18b10 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
18b20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
18b30 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18b40 6c 2d 35 36 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-567..SELECT DI
18b50 53 54 49 4e 43 54 20 2b 20 34 38 20 2f 20 43 4f  STINCT + 48 / CO
18b60 55 4e 54 20 28 20 2a 20 29 20 2a 20 34 30 20 41  UNT ( * ) * 40 A
18b70 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
18b80 0d 0a 2d 2d 2d 2d 0d 0a 36 34 30 0d 0a 0d 0a 6f  ..----..640....o
18b90 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
18ba0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
18bb0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
18bc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18bd0 35 36 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  568..SELECT - CA
18be0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
18bf0 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ED ) AS col0 FRO
18c00 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
18c10 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   - col0 IS NOT N
18c20 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
18c30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
18c40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
18c50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18c60 6c 2d 35 36 38 0d 0a 53 45 4c 45 43 54 20 2d 20  l-568..SELECT - 
18c70 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
18c80 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
18c90 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
18ca0 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 49 53 20 4e   NOT - col0 IS N
18cb0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
18cc0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
18cd0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
18ce0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
18cf0 57 48 45 52 45 20 4e 4f 54 20 2d 20 28 20 2d 20  WHERE NOT - ( - 
18d00 63 6f 6c 31 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a  col1 ) <> NULL..
18d10 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
18d20 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
18d30 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
18d40 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
18d50 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
18d60 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
18d70 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
18d80 43 54 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20  CT ( - - col0 ) 
18d90 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 63 6f  AS col1, col1 co
18da0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
18db0 2d 2d 0d 0a 34 36 0d 0a 35 31 0d 0a 36 34 0d 0a  --..46..51..64..
18dc0 37 37 0d 0a 37 35 0d 0a 36 37 0d 0a 0d 0a 71 75  77..75..67....qu
18dd0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
18de0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
18df0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
18e00 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31  WHERE NOT - col1
18e10 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
18e20 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
18e30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
18e40 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
18e50 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
18e60 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 32  owsort label-572
18e70 0d 0a 53 45 4c 45 43 54 20 2b 20 35 38 20 2a 20  ..SELECT + 58 * 
18e80 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
18e90 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
18ea0 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  74....skipif mys
18eb0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
18ec0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
18ed0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 32 0d 0a  sort label-572..
18ee0 53 45 4c 45 43 54 20 2b 20 35 38 20 2a 20 2d 20  SELECT + 58 * - 
18ef0 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
18f00 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   tab2..----..-17
18f10 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
18f20 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18f30 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
18f40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18f50 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  73..SELECT ALL +
18f60 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 43 4f 55   COUNT( * ), COU
18f70 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
18f80 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
18f90 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b  ----..3..3....sk
18fa0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
18fb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
18fc0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
18fd0 62 65 6c 2d 35 37 33 0d 0a 53 45 4c 45 43 54 20  bel-573..SELECT 
18fe0 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ALL + COUNT ( * 
18ff0 29 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41  ), COUNT ( * ) A
19000 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
19010 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
19020 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
19030 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
19040 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
19050 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
19060 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
19070 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19080 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
19090 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2b   col1 + + col2 +
190a0 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20   col1 col1 FROM 
190b0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
190c0 2d 2d 0d 0a 31 30 31 0d 0a 32 30 39 0d 0a 35 32  --..101..209..52
190d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
190e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
190f0 49 4e 43 54 20 31 38 20 2b 20 63 6f 6c 32 20 41  INCT 18 + col2 A
19100 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
19110 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
19120 34 31 0d 0a 35 38 0d 0a 37 36 0d 0a 0d 0a 73 6b  41..58..76....sk
19130 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
19140 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
19150 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
19160 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
19170 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
19180 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19190 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
191a0 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20 46 52 4f  col2, - col1 FRO
191b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
191c0 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 31 0d 0a 32 31 0d  ----..1..-1..21.
191d0 0a 2d 32 31 0d 0a 38 31 0d 0a 2d 38 31 0d 0a 0d  .-21..81..-81...
191e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
191f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28  ..SELECT ALL + (
19200 20 2b 20 63 6f 6c 32 20 29 20 2b 20 2d 20 2b 20   + col2 ) + - + 
19210 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63  col2 FROM tab2 c
19220 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  or0..----..0..0.
19230 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .0....query I ro
19240 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
19250 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20 2d 20  STINCT col0 + - 
19260 63 6f 6c 31 20 2b 20 2b 20 2d 20 38 36 20 41 53  col1 + + - 86 AS
19270 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
19280 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
19290 34 32 0d 0a 2d 34 39 0d 0a 2d 36 0d 0a 0d 0a 71  42..-49..-6....q
192a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
192b0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
192c0 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 33 36 20  + col0 + - + 36 
192d0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
192e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 35 31  0..----..-21..51
192f0 0d 0a 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..61....onlyif m
19300 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
19310 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
19320 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19330 72 74 20 6c 61 62 65 6c 2d 35 38 30 0d 0a 53 45  rt label-580..SE
19340 4c 45 43 54 20 41 4c 4c 20 2d 20 32 32 20 2b 20  LECT ALL - 22 + 
19350 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
19360 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
19370 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
19380 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
19390 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
193a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
193b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
193c0 65 6c 2d 35 38 30 0d 0a 53 45 4c 45 43 54 20 41  el-580..SELECT A
193d0 4c 4c 20 2d 20 32 32 20 2b 20 2b 20 43 41 53 54  LL - 22 + + CAST
193e0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
193f0 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  ER ) FROM tab2..
19400 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
19410 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
19420 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
19430 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
19440 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20 4e 4f  WHERE ( NOT ( NO
19450 54 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  T + col2 IS NOT 
19460 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  NULL ) )..----..
19470 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
19480 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
19490 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
194a0 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49  4cad....query II
194b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
194c0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
194d0 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  0 WHERE NOT + co
194e0 6c 30 20 3e 3d 20 63 6f 6c 32 20 2b 20 2d 20 2d  l0 >= col2 + - -
194f0 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 30   col2 * - - col0
19500 20 2a 20 2b 20 37 31 0d 0a 2d 2d 2d 2d 0d 0a 39   * + 71..----..9
19510 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
19520 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
19530 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
19540 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  3b7....onlyif my
19550 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
19560 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
19570 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
19580 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
19590 6f 72 74 20 6c 61 62 65 6c 2d 35 38 33 0d 0a 53  ort label-583..S
195a0 45 4c 45 43 54 20 2d 20 28 20 2b 20 43 4f 55 4e  ELECT - ( + COUN
195b0 54 28 20 2a 20 29 20 29 20 2a 20 2b 20 2b 20 43  T( * ) ) * + + C
195c0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
195d0 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52  NED ) AS col0 FR
195e0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
195f0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
19600 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19610 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
19620 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 33 0d  wsort label-583.
19630 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 43 4f  .SELECT - ( + CO
19640 55 4e 54 20 28 20 2a 20 29 20 29 20 2a 20 2b 20  UNT ( * ) ) * + 
19650 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
19660 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
19670 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
19680 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
19690 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
196a0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
196b0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
196c0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
196d0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
196e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
196f0 6f 6c 30 20 2d 20 2d 20 32 20 63 6f 6c 30 20 46  ol0 - - 2 col0 F
19700 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
19710 0d 0a 2d 2d 2d 2d 0d 0a 31 37 0d 0a 38 39 0d 0a  ..----..17..89..
19720 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  99....query III 
19730 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19740 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
19750 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
19760 54 20 35 30 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d  T 50 >= NULL..--
19770 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
19780 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
19790 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l2 AS col1 FROM 
197a0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
197b0 52 45 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20  RE col2 BETWEEN 
197c0 4e 55 4c 4c 20 41 4e 44 20 31 32 20 2a 20 2d 20  NULL AND 12 * - 
197d0 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col2..----....on
197e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
197f0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
19800 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
19810 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
19820 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19830 2d 35 38 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -587..SELECT + C
19840 41 53 54 28 20 2b 20 2b 20 4d 49 4e 28 20 2d 20  AST( + + MIN( - 
19850 2d 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47 4e  - col0 ) AS SIGN
19860 45 44 20 29 20 2d 20 2b 20 43 4f 55 4e 54 28 20  ED ) - + COUNT( 
19870 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
19880 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
19890 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b 69 70 69  ---..12....skipi
198a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
198b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
198c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
198d0 35 38 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  587..SELECT + CA
198e0 53 54 20 28 20 2b 20 2b 20 4d 49 4e 20 28 20 2d  ST ( + + MIN ( -
198f0 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 49 4e 54   - col0 ) AS INT
19900 45 47 45 52 20 29 20 2d 20 2b 20 43 4f 55 4e 54  EGER ) - + COUNT
19910 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
19920 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
19930 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 71 75  ..----..12....qu
19940 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19950 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a  ELECT ALL col2 *
19960 20 38 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   83 FROM tab1..-
19970 2d 2d 2d 0d 0a 34 38 39 37 0d 0a 35 36 34 34 0d  ---..4897..5644.
19980 0a 37 39 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .7968....query I
19990 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
199a0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
199b0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
199c0 20 4e 55 4c 4c 20 3e 20 2d 20 28 20 2b 20 2b 20   NULL > - ( + + 
199d0 28 20 2d 20 63 6f 6c 32 20 29 20 29 0d 0a 2d 2d  ( - col2 ) )..--
199e0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
199f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
19a00 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  + col1 AS col2 F
19a10 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
19a20 20 57 48 45 52 45 20 4e 4f 54 20 39 32 20 42 45   WHERE NOT 92 BE
19a30 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e  TWEEN NULL AND N
19a40 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
19a50 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
19a60 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
19a70 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
19a80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
19a90 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31 37  1..SELECT ALL 17
19aa0 20 44 49 56 20 2b 20 31 32 20 41 53 20 63 6f 6c   DIV + 12 AS col
19ab0 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
19ac0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d  or0..----..1..1.
19ad0 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
19ae0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
19af0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
19b00 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 31 0d 0a  sort label-591..
19b10 53 45 4c 45 43 54 20 41 4c 4c 20 31 37 20 2f 20  SELECT ALL 17 / 
19b20 2b 20 31 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 12 AS col2 FRO
19b30 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
19b40 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d  ----..1..1..1...
19b50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
19b60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
19b70 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
19b80 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
19b90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19ba0 62 65 6c 2d 35 39 32 0d 0a 53 45 4c 45 43 54 20  bel-592..SELECT 
19bb0 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2b  COUNT( * ) DIV +
19bc0 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54   - MAX( DISTINCT
19bd0 20 2d 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   - + col1 ) FROM
19be0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
19bf0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
19c00 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
19c10 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
19c20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19c30 39 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  92..SELECT COUNT
19c40 20 28 20 2a 20 29 20 2f 20 2b 20 2d 20 4d 41 58   ( * ) / + - MAX
19c50 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20   ( DISTINCT - + 
19c60 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31  col1 ) FROM tab1
19c70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
19c80 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
19c90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
19ca0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
19cb0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
19cc0 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20  + col0 * + col2 
19cd0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
19ce0 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a  23..-40..-58....
19cf0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
19d00 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
19d10 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
19d20 72 74 20 6c 61 62 65 6c 2d 35 39 34 0d 0a 53 45  rt label-594..SE
19d30 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
19d40 2a 20 2b 20 2b 20 43 4f 55 4e 54 28 20 44 49 53  * + + COUNT( DIS
19d50 54 49 4e 43 54 20 2b 20 2b 20 35 34 20 29 20 2a  TINCT + + 54 ) *
19d60 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 31 20   COUNT( * ) + 1 
19d70 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
19d80 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
19d90 0a 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .10....skipif my
19da0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19db0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
19dc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 34 0d  wsort label-594.
19dd0 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
19de0 2a 20 29 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 20  * ) * + + COUNT 
19df0 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 35  ( DISTINCT + + 5
19e00 34 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20  4 ) * COUNT ( * 
19e10 29 20 2b 20 31 20 41 53 20 63 6f 6c 30 20 46 52  ) + 1 AS col0 FR
19e20 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
19e30 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 6f 6e 6c  .----..10....onl
19e40 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
19e50 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
19e60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19e70 6c 61 62 65 6c 2d 35 39 35 0d 0a 53 45 4c 45 43  label-595..SELEC
19e80 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 2b  T COUNT( ALL + +
19e90 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
19ea0 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
19eb0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a 20  HERE NOT col0 * 
19ec0 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 49 53  col1 + - col2 IS
19ed0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
19ee0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
19ef0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
19f00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
19f10 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 35 0d 0a  sort label-595..
19f20 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41  SELECT COUNT ( A
19f30 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53  LL + + col1 ) AS
19f40 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
19f50 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
19f60 6f 6c 30 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 63  ol0 * col1 + - c
19f70 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
19f80 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
19f90 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
19fa0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
19fb0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
19fc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 36  owsort label-596
19fd0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
19fe0 54 20 2b 20 28 20 35 39 20 29 20 2a 20 63 6f 6c  T + ( 59 ) * col
19ff0 32 20 2d 20 2b 20 36 34 20 44 49 56 20 2b 20 38  2 - + 64 DIV + 8
1a000 38 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  8 col2 FROM tab1
1a010 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1a020 33 34 38 31 0d 0a 34 30 31 32 0d 0a 35 36 36 34  3481..4012..5664
1a030 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1a040 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1a050 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
1a060 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1a070 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1a080 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1a090 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1a0a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1a0b0 6c 2d 35 39 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-596..SELECT DI
1a0c0 53 54 49 4e 43 54 20 2b 20 28 20 35 39 20 29 20  STINCT + ( 59 ) 
1a0d0 2a 20 63 6f 6c 32 20 2d 20 2b 20 36 34 20 2f 20  * col2 - + 64 / 
1a0e0 2b 20 38 38 20 63 6f 6c 32 20 46 52 4f 4d 20 74  + 88 col2 FROM t
1a0f0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1a100 2d 0d 0a 33 34 38 31 0d 0a 34 30 31 32 0d 0a 35  -..3481..4012..5
1a110 36 36 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  664....query I r
1a120 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1a130 20 35 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2a 20   5 * - + col2 * 
1a140 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
1a150 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 35  S cor0..----..35
1a160 32 35 0d 0a 34 33 35 30 0d 0a 34 38 30 31 35 0d  25..4350..48015.
1a170 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1a180 72 74 0d 0a 53 45 4c 45 43 54 20 36 36 20 2a 20  rt..SELECT 66 * 
1a190 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  - col1 FROM tab2
1a1a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1a1b0 2d 33 33 36 36 0d 0a 2d 34 34 32 32 0d 0a 2d 35  -3366..-4422..-5
1a1c0 30 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  082....onlyif my
1a1d0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1a1e0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1a1f0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1a200 72 74 20 6c 61 62 65 6c 2d 35 39 39 0d 0a 53 45  rt label-599..SE
1a210 4c 45 43 54 20 36 36 20 41 53 20 63 6f 6c 30 2c  LECT 66 AS col0,
1a220 20 41 56 47 20 28 20 41 4c 4c 20 36 30 20 29 20   AVG ( ALL 60 ) 
1a230 2a 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  * CAST( NULL AS 
1a240 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
1a250 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1a260 0d 0a 36 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ..66..NULL....sk
1a270 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1a280 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1a290 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
1a2a0 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45 43 54 20  bel-599..SELECT 
1a2b0 36 36 20 41 53 20 63 6f 6c 30 2c 20 41 56 47 20  66 AS col0, AVG 
1a2c0 28 20 41 4c 4c 20 36 30 20 29 20 2a 20 43 41 53  ( ALL 60 ) * CAS
1a2d0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1a2e0 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52  GER ) AS col1 FR
1a2f0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab0..----..6
1a300 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  6..NULL....skipi
1a310 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1a320 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1a330 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1a340 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1a350 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
1a360 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1a370 54 49 4e 43 54 20 63 6f 6c 32 20 63 6f 6c 32 2c  TINCT col2 col2,
1a380 20 36 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   65 FROM tab1..-
1a390 2d 2d 2d 0d 0a 35 39 0d 0a 36 35 0d 0a 36 38 0d  ---..59..65..68.
1a3a0 0a 36 35 0d 0a 39 36 0d 0a 36 35 0d 0a 0d 0a 6f  .65..96..65....o
1a3b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1a3c0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1a3d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a3e0 74 20 6c 61 62 65 6c 2d 36 30 31 0d 0a 53 45 4c  t label-601..SEL
1a3f0 45 43 54 20 4d 49 4e 28 20 2d 20 2b 20 63 6f 6c  ECT MIN( - + col
1a400 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
1a410 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1a420 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70  ---..-58....skip
1a430 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a440 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a450 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a460 2d 36 30 31 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -601..SELECT MIN
1a470 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53   ( - + col2 ) AS
1a480 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1a490 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1a4a0 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  58....query II r
1a4b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
1a4c0 6f 6c 32 2c 20 2d 20 38 31 20 41 53 20 63 6f 6c  ol2, - 81 AS col
1a4d0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
1a4e0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d  or0..----..59..-
1a4f0 38 31 0d 0a 36 38 0d 0a 2d 38 31 0d 0a 39 36 0d  81..68..-81..96.
1a500 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-81....query II
1a510 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a520 20 2b 20 34 36 20 41 53 20 63 6f 6c 31 2c 20 2b   + 46 AS col1, +
1a530 20 63 6f 6c 30 20 2a 20 2b 20 37 37 20 2b 20 63   col0 * + 77 + c
1a540 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
1a550 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   cor0..----..46.
1a560 0a 31 32 30 32 0d 0a 34 36 0d 0a 36 37 30 39 0d  .1202..46..6709.
1a570 0a 34 36 0d 0a 37 35 36 38 0d 0a 0d 0a 6f 6e 6c  .46..7568....onl
1a580 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
1a590 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
1a5a0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
1a5b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30  rowsort label-60
1a5c0 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
1a5d0 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20  - col0 + + col2 
1a5e0 44 49 56 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  DIV + - col2 AS 
1a5f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1a600 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
1a610 37 0d 0a 2d 36 35 0d 0a 2d 37 36 0d 0a 0d 0a 73  7..-65..-76....s
1a620 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1a630 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1a640 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1a650 62 65 6c 2d 36 30 34 0d 0a 53 45 4c 45 43 54 20  bel-604..SELECT 
1a660 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b  ALL + - col0 + +
1a670 20 63 6f 6c 32 20 2f 20 2b 20 2d 20 63 6f 6c 32   col2 / + - col2
1a680 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1a690 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1a6a0 0d 0a 2d 34 37 0d 0a 2d 36 35 0d 0a 2d 37 36 0d  ..-47..-65..-76.
1a6b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a6c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1a6d0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1a6e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1a6f0 62 65 6c 2d 36 30 35 0d 0a 53 45 4c 45 43 54 20  bel-605..SELECT 
1a700 44 49 53 54 49 4e 43 54 20 2d 20 41 56 47 20 28  DISTINCT - AVG (
1a710 20 41 4c 4c 20 2b 20 31 35 20 29 20 2b 20 43 41   ALL + 15 ) + CA
1a720 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1a730 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ED ) AS col2 FRO
1a740 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1a750 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
1a760 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1a770 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1a780 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1a790 65 6c 2d 36 30 35 0d 0a 53 45 4c 45 43 54 20 44  el-605..SELECT D
1a7a0 49 53 54 49 4e 43 54 20 2d 20 41 56 47 20 28 20  ISTINCT - AVG ( 
1a7b0 41 4c 4c 20 2b 20 31 35 20 29 20 2b 20 43 41 53  ALL + 15 ) + CAS
1a7c0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1a7d0 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52  GER ) AS col2 FR
1a7e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1a7f0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
1a800 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1a810 53 45 4c 45 43 54 20 41 4c 4c 20 31 39 20 46 52  SELECT ALL 19 FR
1a820 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
1a830 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
1a840 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
1a850 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
1a860 74 6f 20 33 64 61 63 33 30 64 63 38 32 63 39 65  to 3dac30dc82c9e
1a870 35 61 63 62 62 64 33 61 35 63 35 64 31 61 65 65  5acbbd3a5c5d1aee
1a880 65 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  e11....query III
1a890 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a8a0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
1a8b0 52 45 20 36 37 20 49 53 20 4e 4f 54 20 4e 55 4c  RE 67 IS NOT NUL
1a8c0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
1a8d0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
1a8e0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
1a8f0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
1a900 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a910 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1a920 54 20 37 34 20 46 52 4f 4d 20 74 61 62 30 20 57  T 74 FROM tab0 W
1a930 48 45 52 45 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  HERE + + col2 + 
1a940 2d 20 28 20 2b 20 39 36 20 29 20 4e 4f 54 20 42  - ( + 96 ) NOT B
1a950 45 54 57 45 45 4e 20 2b 20 31 31 20 41 4e 44 20  ETWEEN + 11 AND 
1a960 2d 20 2d 20 34 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d  - - 4..----..74.
1a970 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1a980 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
1a990 20 37 30 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20   70 * - col1 AS 
1a9a0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
1a9b0 2d 2d 2d 2d 0d 0a 2d 33 35 37 30 0d 0a 2d 34 36  ----..-3570..-46
1a9c0 39 30 0d 0a 2d 35 33 39 30 0d 0a 0d 0a 71 75 65  90..-5390....que
1a9d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1a9e0 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  LECT + col0 * - 
1a9f0 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f  ( - + col2 ) FRO
1aa00 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 30  M tab0..----..70
1aa10 35 0d 0a 38 37 30 0d 0a 39 36 30 33 0d 0a 0d 0a  5..870..9603....
1aa20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1aa30 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1aa40 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1aa50 72 74 20 6c 61 62 65 6c 2d 36 31 31 0d 0a 53 45  rt label-611..SE
1aa60 4c 45 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2d 20  LECT MIN( ALL - 
1aa70 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52  - col1 ) col2 FR
1aa80 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1aa90 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69 70  .----..5....skip
1aaa0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1aab0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1aac0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1aad0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1aae0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1aaf0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1ab00 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1ab10 6f 72 74 20 6c 61 62 65 6c 2d 36 31 31 0d 0a 53  ort label-611..S
1ab20 45 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20  ELECT MIN ( ALL 
1ab30 2d 20 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 32 20  - - col1 ) col2 
1ab40 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1ab50 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 6f 6e  0..----..5....on
1ab60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1ab70 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1ab80 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1ab90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1aba0 31 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63  12..SELECT - + c
1abb0 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c 32 20 41  ol0 DIV + col2 A
1abc0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
1abd0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1abe0 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73 6b 69  -1..-1..0....ski
1abf0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1ac00 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1ac10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1ac20 6c 2d 36 31 32 0d 0a 53 45 4c 45 43 54 20 2d 20  l-612..SELECT - 
1ac30 2b 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 32 20  + col0 / + col2 
1ac40 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1ac50 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1ac60 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 6f 6e  .-1..-1..0....on
1ac70 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1ac80 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1ac90 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1aca0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1acb0 31 33 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  13..SELECT col1 
1acc0 44 49 56 20 2d 20 2d 20 37 37 20 2b 20 63 6f 6c  DIV - - 77 + col
1acd0 30 20 2b 20 2b 20 2b 20 36 38 20 2a 20 2d 20 28  0 + + + 68 * - (
1ace0 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
1acf0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
1ad00 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 31 35 0d  or0..----..1515.
1ad10 0a 31 36 35 0d 0a 35 35 32 34 0d 0a 0d 0a 73 6b  .165..5524....sk
1ad20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1ad30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1ad40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ad50 65 6c 2d 36 31 33 0d 0a 53 45 4c 45 43 54 20 63  el-613..SELECT c
1ad60 6f 6c 31 20 2f 20 2d 20 2d 20 37 37 20 2b 20 63  ol1 / - - 77 + c
1ad70 6f 6c 30 20 2b 20 2b 20 2b 20 36 38 20 2a 20 2d  ol0 + + + 68 * -
1ad80 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63   ( - col1 ) AS c
1ad90 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
1ada0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 31   cor0..----..151
1adb0 35 0d 0a 31 36 35 0d 0a 35 35 32 34 0d 0a 0d 0a  5..165..5524....
1adc0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
1add0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1ade0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1adf0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1ae00 6c 2d 36 31 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-614..SELECT DI
1ae10 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 44 49  STINCT - col0 DI
1ae20 56 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  V - col1 AS col2
1ae30 2c 20 38 20 44 49 56 20 63 6f 6c 30 20 44 49 56  , 8 DIV col0 DIV
1ae40 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   + col2 AS col1 
1ae50 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1ae60 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 30 0d 0a 31  0..----..1..0..1
1ae70 37 0d 0a 30 0d 0a 33 0d 0a 30 0d 0a 0d 0a 73 6b  7..0..3..0....sk
1ae80 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1ae90 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1aea0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
1aeb0 62 65 6c 2d 36 31 34 0d 0a 53 45 4c 45 43 54 20  bel-614..SELECT 
1aec0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
1aed0 2f 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  / - col1 AS col2
1aee0 2c 20 38 20 2f 20 63 6f 6c 30 20 2f 20 2b 20 63  , 8 / col0 / + c
1aef0 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
1af00 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1af10 2d 2d 2d 0d 0a 31 0d 0a 30 0d 0a 31 37 0d 0a 30  ---..1..0..17..0
1af20 0d 0a 33 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ..3..0....query 
1af30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1af40 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36 30 20  T DISTINCT + 60 
1af50 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  + + col2 * + col
1af60 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
1af70 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1af80 2d 0d 0a 31 36 30 0d 0a 32 32 36 39 0d 0a 39 38  -..160..2269..98
1af90 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  61....onlyif mys
1afa0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1afb0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1afc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1afd0 31 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 4d  16..SELECT + + M
1afe0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  IN( DISTINCT col
1aff0 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  2 ) AS col2 FROM
1b000 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
1b010 0d 0a 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..10....skipif m
1b020 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1b030 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1b040 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 36  owsort label-616
1b050 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 4d 49 4e  ..SELECT + + MIN
1b060 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32   ( DISTINCT col2
1b070 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
1b080 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
1b090 0a 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .10....query III
1b0a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1b0b0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
1b0c0 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32   cor0 WHERE col2
1b0d0 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 33 20 2a 20   + col2 * - 3 * 
1b0e0 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  + col2 IS NOT NU
1b0f0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
1b100 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
1b110 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
1b120 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
1b130 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b140 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1b150 43 54 20 39 30 20 46 52 4f 4d 20 74 61 62 32 20  CT 90 FROM tab2 
1b160 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
1b170 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45  NULL ) NOT BETWE
1b180 45 4e 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20  EN ( - + col1 ) 
1b190 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND + col0..----
1b1a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1b1b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 32 20 2d  ort..SELECT 92 -
1b1c0 20 2b 20 38 37 20 41 53 20 63 6f 6c 31 20 46 52   + 87 AS col1 FR
1b1d0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1b1e0 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 35 0d 0a 35 0d 0a  .----..5..5..5..
1b1f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b200 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20  t..SELECT ALL ( 
1b210 2d 20 2b 20 34 32 20 29 20 2d 20 2b 20 63 6f 6c  - + 42 ) - + col
1b220 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
1b230 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 33 0d  ab0..----..-123.
1b240 0a 2d 34 33 0d 0a 2d 36 33 0d 0a 0d 0a 71 75 65  .-43..-63....que
1b250 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b260 4c 45 43 54 20 2d 20 35 39 20 2b 20 2d 20 33 37  LECT - 59 + - 37
1b270 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1b280 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d 34  1..----..-11..-4
1b290 35 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49  5..-5....query I
1b2a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1b2b0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
1b2c0 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 30 20 46   col1 - + col0 F
1b2d0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1b2e0 32 33 30 30 0d 0a 34 38 36 34 0d 0a 34 39 35 30  2300..4864..4950
1b2f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1b300 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1b310 49 4e 43 54 20 63 6f 6c 31 20 2d 20 38 39 20 46  INCT col1 - 89 F
1b320 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1b330 2d 31 32 0d 0a 2d 32 32 0d 0a 2d 33 38 0d 0a 0d  -12..-22..-38...
1b340 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1b350 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20  t..SELECT + ( - 
1b360 32 33 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 31 2c  23 ) + + + col1,
1b370 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   + col0 AS col1 
1b380 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1b390 0a 32 38 0d 0a 34 36 0d 0a 34 34 0d 0a 37 35 0d  .28..46..44..75.
1b3a0 0a 35 34 0d 0a 36 34 0d 0a 0d 0a 71 75 65 72 79  .54..64....query
1b3b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b3c0 43 54 20 35 39 20 2b 20 2b 20 63 6f 6c 32 20 2d  CT 59 + + col2 -
1b3d0 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 31   col0 * + + col1
1b3e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1b3f0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 37 0d 0a  b1..----..-307..
1b400 2d 34 31 35 30 0d 0a 2d 35 35 39 0d 0a 0d 0a 71  -4150..-559....q
1b410 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1b420 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1b430 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1b440 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
1b450 4c 20 3d 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c  L = col2 / - col
1b460 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  2 )..----....onl
1b470 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1b480 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1b490 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1b4a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1b4b0 37 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  7..SELECT - col0
1b4c0 20 2b 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c   + + CAST( - col
1b4d0 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  1 AS SIGNED ) FR
1b4e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1b4f0 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38 0d 0a 2d 36 35  .----..-138..-65
1b500 0d 0a 2d 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-90....skipif 
1b510 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1b520 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1b530 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1b540 37 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  7..SELECT - col0
1b550 20 2b 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f   + + CAST ( - co
1b560 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
1b570 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1b580 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38 0d 0a 2d  0..----..-138..-
1b590 36 35 0d 0a 2d 39 30 0d 0a 0d 0a 71 75 65 72 79  65..-90....query
1b5a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b5b0 43 54 20 2d 20 2d 20 35 35 20 2b 20 2b 20 2d 20  CT - - 55 + + - 
1b5c0 35 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  52 AS col0 FROM 
1b5d0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1b5e0 2d 2d 0d 0a 33 0d 0a 33 0d 0a 33 0d 0a 0d 0a 6f  --..3..3..3....o
1b5f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1b600 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1b610 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b620 74 20 6c 61 62 65 6c 2d 36 32 39 0d 0a 53 45 4c  t label-629..SEL
1b630 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ECT - COUNT( * )
1b640 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1b650 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1b660 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 30 20 49 53   NOT ( + col0 IS
1b670 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d   NOT NULL )..---
1b680 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
1b690 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1b6a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1b6b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 39  owsort label-629
1b6c0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
1b6d0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
1b6e0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1b6f0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63   WHERE NOT ( + c
1b700 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20  ol0 IS NOT NULL 
1b710 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75  )..----..0....qu
1b720 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1b730 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2d 20 2b  ELECT + col0 - +
1b740 20 37 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53   75 FROM tab1 AS
1b750 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1b760 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
1b770 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1b780 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1b790 32 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f  2 * - + col0 FRO
1b7a0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1b7b0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
1b7c0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
1b7d0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1b7e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1b7f0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1b800 20 57 48 45 52 45 20 63 6f 6c 31 20 2a 20 63 6f   WHERE col1 * co
1b810 6c 31 20 2a 20 63 6f 6c 32 20 49 53 20 4e 55 4c  l1 * col2 IS NUL
1b820 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
1b830 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1b840 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1b850 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b860 62 65 6c 2d 36 33 33 0d 0a 53 45 4c 45 43 54 20  bel-633..SELECT 
1b870 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  - + COUNT( * ) *
1b880 20 38 20 2a 20 2b 20 32 32 20 46 52 4f 4d 20 74   8 * + 22 FROM t
1b890 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1b8a0 2d 0d 0a 2d 35 32 38 0d 0a 0d 0a 73 6b 69 70 69  -..-528....skipi
1b8b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1b8c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1b8d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b8e0 36 33 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  633..SELECT - + 
1b8f0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 38 20  COUNT ( * ) * 8 
1b900 2a 20 2b 20 32 32 20 46 52 4f 4d 20 74 61 62 31  * + 22 FROM tab1
1b910 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1b920 2d 35 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -528....onlyif m
1b930 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1b940 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
1b950 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1b960 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1b970 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 34 0d 0a  sort label-634..
1b980 53 45 4c 45 43 54 20 33 33 20 44 49 56 20 43 4f  SELECT 33 DIV CO
1b990 55 4e 54 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20  UNT( + col2 ) + 
1b9a0 2d 20 34 39 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 49 AS col1 FRO
1b9b0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
1b9c0 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
1b9d0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1b9e0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1b9f0 6f 72 74 20 6c 61 62 65 6c 2d 36 33 34 0d 0a 53  ort label-634..S
1ba00 45 4c 45 43 54 20 33 33 20 2f 20 43 4f 55 4e 54  ELECT 33 / COUNT
1ba10 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20 2d 20   ( + col2 ) + - 
1ba20 34 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  49 AS col1 FROM 
1ba30 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d  tab1..----..-38.
1ba40 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1ba50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
1ba60 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
1ba70 4f 54 20 2b 20 2d 20 31 36 20 2a 20 2b 20 37 39  OT + - 16 * + 79
1ba80 20 2a 20 2b 20 30 20 4e 4f 54 20 42 45 54 57 45   * + 0 NOT BETWE
1ba90 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
1baa0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
1bab0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1bac0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1bad0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1bae0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1baf0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
1bb00 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  rt..SELECT ALL (
1bb10 20 2b 20 39 34 20 29 20 2a 20 2d 20 2d 20 63 6f   + 94 ) * - - co
1bb20 6c 32 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 20 46  l2 + col2 col0 F
1bb30 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1bb40 32 31 38 35 0d 0a 33 38 30 30 0d 0a 35 35 31 30  2185..3800..5510
1bb50 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1bb60 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 34  ort..SELECT - 64
1bb70 20 2b 20 2b 20 33 31 20 41 53 20 63 6f 6c 30 20   + + 31 AS col0 
1bb80 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
1bb90 0a 2d 33 33 0d 0a 2d 33 33 0d 0a 2d 33 33 0d 0a  .-33..-33..-33..
1bba0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1bbb0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37 38 20 2b  t..SELECT - 78 +
1bbc0 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1bbd0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 31 33  1..----..-27..13
1bbe0 0d 0a 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..7....onlyif my
1bbf0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
1bc00 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1bc10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1bc20 74 20 6c 61 62 65 6c 2d 36 33 39 0d 0a 53 45 4c  t label-639..SEL
1bc30 45 43 54 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20  ECT col1 + col1 
1bc40 44 49 56 20 2d 20 34 33 20 41 53 20 63 6f 6c 30  DIV - 43 AS col0
1bc50 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1bc60 0d 0a 31 34 0d 0a 34 36 0d 0a 35 0d 0a 0d 0a 73  ..14..46..5....s
1bc70 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1bc80 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1bc90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bca0 62 65 6c 2d 36 33 39 0d 0a 53 45 4c 45 43 54 20  bel-639..SELECT 
1bcb0 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2f 20 2d 20  col1 + col1 / - 
1bcc0 34 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  43 AS col0 FROM 
1bcd0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  tab1..----..14..
1bce0 34 36 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49  46..5....query I
1bcf0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1bd00 20 41 4c 4c 20 2d 20 37 30 20 2a 20 63 6f 6c 31   ALL - 70 * col1
1bd10 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1bd20 0d 0a 2d 33 32 39 30 0d 0a 2d 33 35 30 0d 0a 2d  ..-3290..-350..-
1bd30 39 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  980....query I r
1bd40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1bd50 4c 4c 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20  LL + col2 + + - 
1bd60 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
1bd70 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
1bd80 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45   NULL NOT BETWEE
1bd90 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d  N NULL AND NULL.
1bda0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
1bdb0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1bdc0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1bdd0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1bde0 6f 72 74 20 6c 61 62 65 6c 2d 36 34 32 0d 0a 53  ort label-642..S
1bdf0 45 4c 45 43 54 20 2b 20 34 34 20 2b 20 32 38 20  ELECT + 44 + 28 
1be00 2b 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  + + + CAST( NULL
1be10 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63   AS SIGNED ) * c
1be20 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
1be30 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1be40 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
1be50 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1be60 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1be70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34  rowsort label-64
1be80 32 0d 0a 53 45 4c 45 43 54 20 2b 20 34 34 20 2b  2..SELECT + 44 +
1be90 20 32 38 20 2b 20 2b 20 2b 20 43 41 53 54 20 28   28 + + + CAST (
1bea0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
1beb0 20 29 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74   ) * col0 FROM t
1bec0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
1bed0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
1bee0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1bef0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20  SELECT + col0 + 
1bf00 2d 20 31 37 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 17 AS col2 FRO
1bf10 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 39  M tab2..----..29
1bf20 0d 0a 34 37 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72  ..47..58....quer
1bf30 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1bf40 45 43 54 20 41 4c 4c 20 35 38 20 2a 20 2d 20 2d  ECT ALL 58 * - -
1bf50 20 35 30 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f   50 * + col1 FRO
1bf60 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1bf70 2d 2d 2d 2d 0d 0a 32 33 34 39 30 30 0d 0a 32 39  ----..234900..29
1bf80 30 30 0d 0a 36 30 39 30 30 0d 0a 0d 0a 71 75 65  00..60900....que
1bf90 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1bfa0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1bfb0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1bfc0 45 20 35 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  E 53 IS NULL..--
1bfd0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
1bfe0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31  owsort..SELECT 1
1bff0 39 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 2d  9 - col2, col0 -
1c000 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   - col0 AS col0 
1c010 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1c020 0a 2d 34 30 0d 0a 31 37 30 0d 0a 2d 34 39 0d 0a  .-40..170..-49..
1c030 31 38 32 0d 0a 2d 37 37 0d 0a 31 30 32 0d 0a 0d  182..-77..102...
1c040 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c050 0d 0a 53 45 4c 45 43 54 20 2d 20 35 39 20 41 53  ..SELECT - 59 AS
1c060 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1c070 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
1c080 49 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d  IN tab2 cor1..--
1c090 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1c0a0 68 69 6e 67 20 74 6f 20 31 65 36 35 33 37 63 39  hing to 1e6537c9
1c0b0 32 32 66 61 39 35 33 65 30 66 64 32 66 35 39 34  22fa953e0fd2f594
1c0c0 33 30 38 30 33 37 30 33 0d 0a 0d 0a 6f 6e 6c 79  30803703....only
1c0d0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1c0e0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1c0f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1c100 61 62 65 6c 2d 36 34 38 0d 0a 53 45 4c 45 43 54  abel-648..SELECT
1c110 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
1c120 2a 20 2b 20 36 37 20 46 52 4f 4d 20 74 61 62 31  * + 67 FROM tab1
1c130 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 31   cor0..----..201
1c140 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1c150 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1c160 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1c170 72 74 20 6c 61 62 65 6c 2d 36 34 38 0d 0a 53 45  rt label-648..SE
1c180 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
1c190 20 2a 20 29 20 2a 20 2b 20 36 37 20 46 52 4f 4d   * ) * + 67 FROM
1c1a0 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
1c1b0 0d 0a 32 30 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..201....onlyif 
1c1c0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1c1d0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1c1e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1c1f0 6f 72 74 20 6c 61 62 65 6c 2d 36 34 39 0d 0a 53  ort label-649..S
1c200 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1c210 20 63 6f 6c 31 20 44 49 56 20 2d 20 2b 20 63 6f   col1 DIV - + co
1c220 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
1c230 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31  cor0..----..0..1
1c240 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..2....skipif my
1c250 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c260 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1c270 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 39 0d  wsort label-649.
1c280 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1c290 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 63 6f   - col1 / - + co
1c2a0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
1c2b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31  cor0..----..0..1
1c2c0 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ..2....skipif po
1c2d0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1c2e0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1c2f0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1c300 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1c310 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1c320 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
1c330 39 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  90 col0 FROM tab
1c340 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1c350 0a 39 30 0d 0a 39 30 0d 0a 39 30 0d 0a 0d 0a 71  .90..90..90....q
1c360 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1c370 53 45 4c 45 43 54 20 2b 20 2b 20 32 33 20 2b 20  SELECT + + 23 + 
1c380 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 46 52  + col0 * col0 FR
1c390 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1c3a0 0a 2d 2d 2d 2d 0d 0a 32 36 32 34 0d 0a 37 32 34  .----..2624..724
1c3b0 38 0d 0a 38 33 30 34 0d 0a 0d 0a 73 6b 69 70 69  8..8304....skipi
1c3c0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1c3d0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1c3e0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1c3f0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1c400 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1c410 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  ort..SELECT + - 
1c420 36 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  64 col1 FROM tab
1c430 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1c440 0a 2d 36 34 0d 0a 2d 36 34 0d 0a 2d 36 34 0d 0a  .-64..-64..-64..
1c450 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1c460 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
1c470 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
1c480 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1c490 65 6c 2d 36 35 33 0d 0a 53 45 4c 45 43 54 20 41  el-653..SELECT A
1c4a0 4c 4c 20 63 6f 6c 30 20 44 49 56 20 2d 20 63 6f  LL col0 DIV - co
1c4b0 6c 31 20 2b 20 2d 20 31 39 20 41 53 20 63 6f 6c  l1 + - 19 AS col
1c4c0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
1c4d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36 0d  or0..----..-116.
1c4e0 0a 2d 31 39 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69  .-19..-23....ski
1c4f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c500 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1c510 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c520 6c 2d 36 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-653..SELECT AL
1c530 4c 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 31 20  L col0 / - col1 
1c540 2b 20 2d 20 31 39 20 41 53 20 63 6f 6c 32 20 46  + - 19 AS col2 F
1c550 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1c560 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36 0d 0a 2d 31  ..----..-116..-1
1c570 39 0d 0a 2d 32 33 0d 0a 0d 0a 71 75 65 72 79 20  9..-23....query 
1c580 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c590 54 20 41 4c 4c 20 30 20 46 52 4f 4d 20 74 61 62  T ALL 0 FROM tab
1c5a0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1c5b0 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d  NULL <> NULL..--
1c5c0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1c5d0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
1c5e0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1c5f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c600 20 6c 61 62 65 6c 2d 36 35 35 0d 0a 53 45 4c 45   label-655..SELE
1c610 43 54 20 2d 20 63 6f 6c 30 20 44 49 56 20 2b 20  CT - col0 DIV + 
1c620 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  + col1 FROM tab2
1c630 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30  ..----..-1..0..0
1c640 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1c650 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1c660 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1c670 72 74 20 6c 61 62 65 6c 2d 36 35 35 0d 0a 53 45  rt label-655..SE
1c680 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2f 20 2b 20  LECT - col0 / + 
1c690 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  + col1 FROM tab2
1c6a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30  ..----..-1..0..0
1c6b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1c6c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1c6d0 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2a 20 35 34  INCT + col0 * 54
1c6e0 20 2d 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 63 6f   - + col1 - - co
1c6f0 6c 32 20 2a 20 2d 20 28 20 2d 20 63 6f 6c 30 20  l2 * - ( - col0 
1c700 29 20 2b 20 2b 20 2b 20 34 31 20 2b 20 2d 20 2b  ) + + + 41 + - +
1c710 20 35 34 20 2b 20 2d 20 28 20 2d 20 39 38 20 29   54 + - ( - 98 )
1c720 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20   * + col1 * - + 
1c730 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
1c740 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
1c750 31 35 38 35 0d 0a 2d 32 30 35 34 34 30 0d 0a 37  1585..-205440..7
1c760 31 33 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  137....query I r
1c770 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1c780 49 53 54 49 4e 43 54 20 28 20 2b 20 2d 20 33 37  ISTINCT ( + - 37
1c790 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
1c7a0 2d 2d 0d 0a 2d 33 37 0d 0a 0d 0a 71 75 65 72 79  --..-37....query
1c7b0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1c7c0 45 43 54 20 2b 20 31 31 20 2a 20 2b 20 2d 20 63  ECT + 11 * + - c
1c7d0 6f 6c 30 20 2b 20 35 39 20 41 53 20 63 6f 6c 30  ol0 + 59 AS col0
1c7e0 2c 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  , + col2 * + col
1c7f0 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
1c800 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1c810 2d 0d 0a 2d 31 30 30 38 0d 0a 39 36 30 33 0d 0a  -..-1008..9603..
1c820 2d 31 30 36 0d 0a 37 30 35 0d 0a 2d 38 39 38 0d  -106..705..-898.
1c830 0a 38 37 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .870....skipif p
1c840 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1c850 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1c860 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1c870 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1c880 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c890 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c8a0 54 20 35 35 20 63 6f 6c 31 20 46 52 4f 4d 20 74  T 55 col1 FROM t
1c8b0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 0d  ab1..----..55...
1c8c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1c8d0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1c8e0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1c8f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c900 6c 2d 36 36 30 0d 0a 53 45 4c 45 43 54 20 33 36  l-660..SELECT 36
1c910 20 44 49 56 20 31 38 20 41 53 20 63 6f 6c 32 20   DIV 18 AS col2 
1c920 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1c930 0a 32 0d 0a 32 0d 0a 32 0d 0a 0d 0a 73 6b 69 70  .2..2..2....skip
1c940 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1c950 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1c960 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c970 2d 36 36 30 0d 0a 53 45 4c 45 43 54 20 33 36 20  -660..SELECT 36 
1c980 2f 20 31 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  / 18 AS col2 FRO
1c990 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d  M tab0..----..2.
1c9a0 0a 32 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .2..2....onlyif 
1c9b0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1c9c0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1c9d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1c9e0 6f 72 74 20 6c 61 62 65 6c 2d 36 36 31 0d 0a 53  ort label-661..S
1c9f0 45 4c 45 43 54 20 43 41 53 54 28 20 63 6f 6c 31  ELECT CAST( col1
1ca00 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
1ca10 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
1ca20 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
1ca30 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d  L..----..14..47.
1ca40 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .5....skipif mys
1ca50 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ca60 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1ca70 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 31 0d 0a  sort label-661..
1ca80 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 63 6f  SELECT CAST ( co
1ca90 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
1caa0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1cab0 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
1cac0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  NULL..----..14..
1cad0 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  47..5....onlyif 
1cae0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1caf0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1cb00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1cb10 6c 2d 36 36 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-662..SELECT DI
1cb20 53 54 49 4e 43 54 20 53 55 4d 28 20 2d 20 2d 20  STINCT SUM( - - 
1cb30 32 35 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  25 ) AS col2 FRO
1cb40 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 35  M tab1..----..75
1cb50 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1cb60 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1cb70 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1cb80 72 74 20 6c 61 62 65 6c 2d 36 36 32 0d 0a 53 45  rt label-662..SE
1cb90 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 53 55  LECT DISTINCT SU
1cba0 4d 20 28 20 2d 20 2d 20 32 35 20 29 20 41 53 20  M ( - - 25 ) AS 
1cbb0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
1cbc0 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72  ----..75....quer
1cbd0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1cbe0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
1cbf0 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  1 WHERE NOT - co
1cc00 6c 32 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 49 53  l2 + + + col1 IS
1cc10 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1cc20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1cc30 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1cc40 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1cc50 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1cc60 61 62 65 6c 2d 36 36 34 0d 0a 53 45 4c 45 43 54  abel-664..SELECT
1cc70 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 41 53 20   col1 * col2 AS 
1cc80 63 6f 6c 32 2c 20 43 41 53 54 28 20 2d 20 33 34  col2, CAST( - 34
1cc90 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
1cca0 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52  M tab1 cor0 WHER
1ccb0 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
1ccc0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
1ccd0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1cce0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1ccf0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1cd00 6c 2d 36 36 34 0d 0a 53 45 4c 45 43 54 20 63 6f  l-664..SELECT co
1cd10 6c 31 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c  l1 * col2 AS col
1cd20 32 2c 20 43 41 53 54 20 28 20 2d 20 33 34 20 41  2, CAST ( - 34 A
1cd30 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
1cd40 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
1cd50 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
1cd60 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
1cd70 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1cd80 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1cd90 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1cda0 61 62 65 6c 2d 36 36 35 0d 0a 53 45 4c 45 43 54  abel-665..SELECT
1cdb0 20 41 4c 4c 20 53 55 4d 28 20 2b 20 2b 20 63 6f   ALL SUM( + + co
1cdc0 6c 31 20 29 20 41 53 20 63 6f 6c 32 2c 20 28 20  l1 ) AS col2, ( 
1cdd0 32 20 29 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2b  2 ) + MIN( ALL +
1cde0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
1cdf0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1ce00 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20  0 WHERE NULL <= 
1ce10 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
1ce20 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1ce30 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ce40 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ce50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ce60 36 36 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  665..SELECT ALL 
1ce70 53 55 4d 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29  SUM ( + + col1 )
1ce80 20 41 53 20 63 6f 6c 32 2c 20 28 20 32 20 29 20   AS col2, ( 2 ) 
1ce90 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f  + MIN ( ALL + co
1cea0 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l1 ) AS col0 FRO
1ceb0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
1cec0 48 45 52 45 20 4e 55 4c 4c 20 3c 3d 20 4e 55 4c  HERE NULL <= NUL
1ced0 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  L..----..NULL..N
1cee0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
1cef0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
1cf00 6f 6c 31 20 2a 20 2b 20 38 34 20 2b 20 2d 20 36  ol1 * + 84 + - 6
1cf10 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  3 AS col0 FROM t
1cf20 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1cf30 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 49 53 20  E NOT + col1 IS 
1cf40 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 32 32 31  NULL..----..4221
1cf50 0d 0a 35 35 36 35 0d 0a 36 34 30 35 0d 0a 0d 0a  ..5565..6405....
1cf60 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1cf70 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1cf80 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1cf90 72 74 20 6c 61 62 65 6c 2d 36 36 37 0d 0a 53 45  rt label-667..SE
1cfa0 4c 45 43 54 20 2d 20 2d 20 28 20 28 20 2b 20 32  LECT - - ( ( + 2
1cfb0 35 20 29 20 29 20 2a 20 2b 20 4d 49 4e 28 20 2d  5 ) ) * + MIN( -
1cfc0 20 63 6f 6c 31 20 29 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 2d 31 39 32 35 0d 0a  0..----..-1925..
1cff0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1d000 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1d010 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d020 20 6c 61 62 65 6c 2d 36 36 37 0d 0a 53 45 4c 45   label-667..SELE
1d030 43 54 20 2d 20 2d 20 28 20 28 20 2b 20 32 35 20  CT - - ( ( + 25 
1d040 29 20 29 20 2a 20 2b 20 4d 49 4e 20 28 20 2d 20  ) ) * + MIN ( - 
1d050 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
1d060 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1d070 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 32 35 0d 0a 0d  ..----..-1925...
1d080 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d090 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 2d  ..SELECT + - ( -
1d0a0 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   + col2 ) FROM t
1d0b0 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
1d0c0 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75  10..47..99....qu
1d0d0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1d0e0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1d0f0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1d100 45 20 4e 4f 54 20 28 20 2d 20 2d 20 28 20 2b 20  E NOT ( - - ( + 
1d110 63 6f 6c 32 20 29 20 29 20 3e 3d 20 4e 55 4c 4c  col2 ) ) >= NULL
1d120 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1d130 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d140 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63  T - col2 * + + c
1d150 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
1d160 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1d170 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a 2d 33 38 30 37  ---..-210..-3807
1d180 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-99....query I
1d190 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1d1a0 20 41 4c 4c 20 37 35 20 2b 20 2d 20 39 30 20 2b   ALL 75 + - 90 +
1d1b0 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2a   col0 * - col0 *
1d1c0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
1d1d0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 37 39 33 31  2..----..-107931
1d1e0 0d 0a 2d 33 31 35 34 30 37 0d 0a 2d 33 37 36 38  ..-315407..-3768
1d1f0 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  90....query I ro
1d200 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1d210 4c 20 28 20 2d 20 2b 20 28 20 2d 20 63 6f 6c 31  L ( - + ( - col1
1d220 20 29 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2b 20   ) ) * - col2 + 
1d230 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
1d240 2d 2d 2d 2d 0d 0a 2d 31 32 39 33 0d 0a 2d 32 31  ----..-1293..-21
1d250 30 0d 0a 2d 33 31 30 35 0d 0a 0d 0a 6f 6e 6c 79  0..-3105....only
1d260 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1d270 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1d280 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d290 61 62 65 6c 2d 36 37 33 0d 0a 53 45 4c 45 43 54  abel-673..SELECT
1d2a0 20 2d 20 53 55 4d 28 20 2d 20 33 38 20 29 20 46   - SUM( - 38 ) F
1d2b0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 35  ROM tab1 WHERE 5
1d2c0 20 2b 20 2d 20 2b 20 32 33 20 49 53 20 4e 55 4c   + - + 23 IS NUL
1d2d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
1d2e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d2f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d300 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d310 6c 61 62 65 6c 2d 36 37 33 0d 0a 53 45 4c 45 43  label-673..SELEC
1d320 54 20 2d 20 53 55 4d 20 28 20 2d 20 33 38 20 29  T - SUM ( - 38 )
1d330 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
1d340 20 35 20 2b 20 2d 20 2b 20 32 33 20 49 53 20 4e   5 + - + 23 IS N
1d350 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
1d360 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
1d370 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1d380 49 4e 43 54 20 2d 20 34 20 2a 20 33 35 2c 20 63  INCT - 4 * 35, c
1d390 6f 6c 31 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 2b  ol1 * col0 + + +
1d3a0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
1d3b0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
1d3c0 31 34 30 0d 0a 32 33 39 37 0d 0a 2d 31 34 30 0d  140..2397..-140.
1d3d0 0a 35 30 30 35 0d 0a 2d 31 34 30 0d 0a 35 30 39  .5005..-140..509
1d3e0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
1d3f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1d400 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   - col2 AS col1 
1d410 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
1d420 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
1d430 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d  NULL..----..-23.
1d440 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e 6c  .-40..-58....onl
1d450 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1d460 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1d470 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d480 6c 61 62 65 6c 2d 36 37 36 0d 0a 53 45 4c 45 43  label-676..SELEC
1d490 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 33 39 20  T ALL + MIN( 39 
1d4a0 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
1d4b0 2d 0d 0a 33 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..39....skipif 
1d4c0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1d4d0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1d4e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37  rowsort label-67
1d4f0 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  6..SELECT ALL + 
1d500 4d 49 4e 20 28 20 33 39 20 29 20 46 52 4f 4d 20  MIN ( 39 ) FROM 
1d510 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a  tab0..----..39..
1d520 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d530 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
1d540 63 6f 6c 31 20 2d 20 36 31 20 46 52 4f 4d 20 74  col1 - 61 FROM t
1d550 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
1d560 2d 31 31 32 0d 0a 2d 31 32 38 0d 0a 2d 31 33 38  -112..-128..-138
1d570 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1d580 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1d590 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1d5a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 38  owsort label-678
1d5b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d5c0 54 20 37 37 20 2b 20 2d 20 43 4f 55 4e 54 28 20  T 77 + - COUNT( 
1d5d0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
1d5e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d   cor0..----..74.
1d5f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1d600 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1d610 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d620 74 20 6c 61 62 65 6c 2d 36 37 38 0d 0a 53 45 4c  t label-678..SEL
1d630 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 37 20  ECT DISTINCT 77 
1d640 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
1d650 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1d660 30 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 6f  0..----..74....o
1d670 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1d680 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
1d690 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
1d6a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1d6b0 2d 36 37 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -679..SELECT - +
1d6c0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
1d6d0 45 43 49 4d 41 4c 20 29 20 2d 20 2b 20 34 30 20  ECIMAL ) - + 40 
1d6e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
1d6f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1d700 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
1d710 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1d720 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1d730 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1d740 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1d750 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1d760 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1d770 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1d780 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d790 36 37 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  679..SELECT - + 
1d7a0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
1d7b0 45 41 4c 20 29 20 2d 20 2b 20 34 30 20 63 6f 6c  EAL ) - + 40 col
1d7c0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
1d7d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
1d7e0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .NULL..NULL....o
1d7f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1d800 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
1d810 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
1d820 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d830 36 38 30 0d 0a 53 45 4c 45 43 54 20 2b 20 35 33  680..SELECT + 53
1d840 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   - - CAST( NULL 
1d850 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
1d860 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1d870 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1d880 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
1d890 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1d8a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1d8b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1d8c0 30 0d 0a 53 45 4c 45 43 54 20 2b 20 35 33 20 2d  0..SELECT + 53 -
1d8d0 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
1d8e0 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
1d8f0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1d900 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1d910 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
1d920 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1d930 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1d940 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1d950 6c 2d 36 38 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-681..SELECT - 
1d960 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b  - COUNT( * ) - +
1d970 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   ( COUNT( * ) ) 
1d980 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + + COUNT( * ) A
1d990 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1d9a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1d9b0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1d9c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1d9d0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1d9e0 6f 72 74 20 6c 61 62 65 6c 2d 36 38 31 0d 0a 53  ort label-681..S
1d9f0 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20  ELECT - - COUNT 
1da00 28 20 2a 20 29 20 2d 20 2b 20 28 20 43 4f 55 4e  ( * ) - + ( COUN
1da10 54 20 28 20 2a 20 29 20 29 20 2b 20 2b 20 43 4f  T ( * ) ) + + CO
1da20 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
1da30 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
1da40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
1da50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1da60 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1da70 20 2b 20 35 36 20 2b 20 36 35 20 46 52 4f 4d 20   + 56 + 65 FROM 
1da80 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1da90 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 6f 6e 6c 79 69  --..121....onlyi
1daa0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1dab0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1dac0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1dad0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 33 0d  wsort label-683.
1dae0 0a 53 45 4c 45 43 54 20 2b 20 2b 20 28 20 2b 20  .SELECT + + ( + 
1daf0 43 41 53 54 28 20 33 38 20 41 53 20 53 49 47 4e  CAST( 38 AS SIGN
1db00 45 44 20 29 20 29 20 2d 20 36 39 20 2a 20 2d 20  ED ) ) - 69 * - 
1db10 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
1db20 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1db30 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a 31 34 38 37 0d  ----..107..1487.
1db40 0a 35 36 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  .5627....skipif 
1db50 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1db60 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1db70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1db80 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 28 20  3..SELECT + + ( 
1db90 2b 20 43 41 53 54 20 28 20 33 38 20 41 53 20 49  + CAST ( 38 AS I
1dba0 4e 54 45 47 45 52 20 29 20 29 20 2d 20 36 39 20  NTEGER ) ) - 69 
1dbb0 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  * - col1 AS col1
1dbc0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1dbd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a 31  r0..----..107..1
1dbe0 34 38 37 0d 0a 35 36 32 37 0d 0a 0d 0a 6f 6e 6c  487..5627....onl
1dbf0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1dc00 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
1dc10 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
1dc20 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
1dc30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1dc40 36 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  684..SELECT ALL 
1dc50 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  - + COUNT( * ) +
1dc60 20 2b 20 43 41 53 54 28 20 2b 20 35 33 20 41 53   + CAST( + 53 AS
1dc70 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
1dc80 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  0 FROM tab2 cor0
1dc90 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d 0a 73 6b  ..----..50....sk
1dca0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1dcb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1dcc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1dcd0 65 6c 2d 36 38 34 0d 0a 53 45 4c 45 43 54 20 41  el-684..SELECT A
1dce0 4c 4c 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a  LL - + COUNT ( *
1dcf0 20 29 20 2b 20 2b 20 43 41 53 54 20 28 20 2b 20   ) + + CAST ( + 
1dd00 35 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  53 AS INTEGER ) 
1dd10 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1dd20 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 30  2 cor0..----..50
1dd30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1dd40 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1dd50 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1dd60 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
1dd70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1dd80 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a 53 45 4c  t label-685..SEL
1dd90 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58 28 20 2b  ECT ALL + MAX( +
1dda0 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
1ddb0 32 20 57 48 45 52 45 20 2b 20 2d 20 43 41 53 54  2 WHERE + - CAST
1ddc0 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
1ddd0 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
1dde0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1ddf0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1de00 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1de10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1de20 62 65 6c 2d 36 38 35 0d 0a 53 45 4c 45 43 54 20  bel-685..SELECT 
1de30 41 4c 4c 20 2b 20 4d 41 58 20 28 20 2b 20 63 6f  ALL + MAX ( + co
1de40 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57  l1 ) FROM tab2 W
1de50 48 45 52 45 20 2b 20 2d 20 43 41 53 54 20 28 20  HERE + - CAST ( 
1de60 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 49  NULL AS REAL ) I
1de70 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1de80 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
1de90 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1dea0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1deb0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1dec0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 36 0d 0a  sort label-686..
1ded0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
1dee0 44 49 56 20 2d 20 2b 20 63 6f 6c 31 20 46 52 4f  DIV - + col1 FRO
1def0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
1df00 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70  ..-1..-1....skip
1df10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1df20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1df30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1df40 2d 36 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -686..SELECT ALL
1df50 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 63 6f 6c 31   col1 / - + col1
1df60 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1df70 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a  ..-1..-1..-1....
1df80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1df90 0a 53 45 4c 45 43 54 20 36 20 41 53 20 63 6f 6c  .SELECT 6 AS col
1dfa0 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
1dfb0 45 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 32 20 49  E NOT + + col2 I
1dfc0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1dfd0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1dfe0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1dff0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
1e000 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1e010 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
1e020 32 36 20 41 53 20 63 6f 6c 31 2c 20 2b 20 43 4f  26 AS col1, + CO
1e030 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
1e040 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 33 0d  b1..----..26..3.
1e050 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1e060 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1e070 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1e080 72 74 20 6c 61 62 65 6c 2d 36 38 38 0d 0a 53 45  rt label-688..SE
1e090 4c 45 43 54 20 41 4c 4c 20 2b 20 32 36 20 41 53  LECT ALL + 26 AS
1e0a0 20 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 20 28   col1, + COUNT (
1e0b0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   * ) FROM tab1..
1e0c0 2d 2d 2d 2d 0d 0a 32 36 0d 0a 33 0d 0a 0d 0a 6f  ----..26..3....o
1e0d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1e0e0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1e0f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e100 74 20 6c 61 62 65 6c 2d 36 38 39 0d 0a 53 45 4c  t label-689..SEL
1e110 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 63  ECT ALL + MIN( c
1e120 6f 6c 30 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  ol0 ) col0 FROM 
1e130 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1e140 2d 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..46....skipif
1e150 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1e160 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
1e170 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1e180 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1e190 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1e1a0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1e1b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e1c0 74 20 6c 61 62 65 6c 2d 36 38 39 0d 0a 53 45 4c  t label-689..SEL
1e1d0 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20  ECT ALL + MIN ( 
1e1e0 63 6f 6c 30 20 29 20 63 6f 6c 30 20 46 52 4f 4d  col0 ) col0 FROM
1e1f0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1e200 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79 69  ---..46....onlyi
1e210 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1e220 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1e230 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e240 62 65 6c 2d 36 39 30 0d 0a 53 45 4c 45 43 54 20  bel-690..SELECT 
1e250 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 39 30 20  + COUNT( ALL 90 
1e260 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ) * + COUNT( * )
1e270 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1e280 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73  r0..----..9....s
1e290 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e2a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e2b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e2c0 62 65 6c 2d 36 39 30 0d 0a 53 45 4c 45 43 54 20  bel-690..SELECT 
1e2d0 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 39 30  + COUNT ( ALL 90
1e2e0 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) * + COUNT ( *
1e2f0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
1e300 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor0..----..9...
1e310 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e320 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1e330 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1e340 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e350 6c 2d 36 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-691..SELECT AL
1e360 4c 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 43  L + col1 * - + C
1e370 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
1e380 4e 45 44 20 29 20 2b 20 63 6f 6c 31 20 46 52 4f  NED ) + col1 FRO
1e390 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
1e3a0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
1e3b0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
1e3c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1e3d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1e3e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 31 0d  wsort label-691.
1e3f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
1e400 6c 31 20 2a 20 2d 20 2b 20 43 41 53 54 20 28 20  l1 * - + CAST ( 
1e410 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1e420 29 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ) + col1 FROM ta
1e430 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  b1 cor0..----..N
1e440 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
1e450 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1e460 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1e470 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
1e480 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1e490 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 2b 20 63 6f  NOT NULL <= + co
1e4a0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
1e4b0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
1e4c0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
1e4d0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1e4e0 45 52 45 20 4e 4f 54 20 2d 20 35 39 20 2a 20 2d  ERE NOT - 59 * -
1e4f0 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d   col1 > NULL..--
1e500 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1e510 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
1e520 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1e530 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1e540 74 20 6c 61 62 65 6c 2d 36 39 34 0d 0a 53 45 4c  t label-694..SEL
1e550 45 43 54 20 2d 20 63 6f 6c 30 20 44 49 56 20 2d  ECT - col0 DIV -
1e560 20 36 36 20 41 53 20 63 6f 6c 32 2c 20 35 36 20   66 AS col2, 56 
1e570 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  + - col1 FROM ta
1e580 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 32 35  b0..----..0..-25
1e590 0d 0a 31 0d 0a 33 35 0d 0a 31 0d 0a 35 35 0d 0a  ..1..35..1..55..
1e5a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1e5b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1e5c0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1e5d0 74 20 6c 61 62 65 6c 2d 36 39 34 0d 0a 53 45 4c  t label-694..SEL
1e5e0 45 43 54 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 36  ECT - col0 / - 6
1e5f0 36 20 41 53 20 63 6f 6c 32 2c 20 35 36 20 2b 20  6 AS col2, 56 + 
1e600 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  - col1 FROM tab0
1e610 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 32 35 0d 0a  ..----..0..-25..
1e620 31 0d 0a 33 35 0d 0a 31 0d 0a 35 35 0d 0a 0d 0a  1..35..1..55....
1e630 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1e640 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1e650 20 2d 20 34 36 20 41 53 20 63 6f 6c 32 20 46 52   - 46 AS col2 FR
1e660 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
1e670 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  46....query I ro
1e680 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1e690 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2a 20  + col0 * col0 * 
1e6a0 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  - + col1 FROM ta
1e6b0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1e6c0 0d 0a 2d 31 30 37 39 31 36 0d 0a 2d 33 31 35 33  ..-107916..-3153
1e6d0 39 32 0d 0a 2d 33 37 36 38 37 35 0d 0a 0d 0a 6f  92..-376875....o
1e6e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1e6f0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
1e700 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
1e710 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e720 36 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  697..SELECT DIST
1e730 49 4e 43 54 20 36 35 20 2a 20 2d 20 63 6f 6c 31  INCT 65 * - col1
1e740 20 2a 20 2b 20 34 33 20 2a 20 2b 20 2d 20 63 6f   * + 43 * + - co
1e750 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
1e760 63 6f 72 30 20 57 48 45 52 45 20 2d 20 43 41 53  cor0 WHERE - CAS
1e770 54 28 20 2b 20 28 20 2d 20 31 30 20 29 20 41 53  T( + ( - 10 ) AS
1e780 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63 6f   SIGNED ) * + co
1e790 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 2f 20 2b 20  l0 * + col0 / + 
1e7a0 2b 20 63 6f 6c 30 20 2b 20 2d 20 32 33 20 49 53  + col0 + - 23 IS
1e7b0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
1e7c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e7d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e7e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e7f0 62 65 6c 2d 36 39 37 0d 0a 53 45 4c 45 43 54 20  bel-697..SELECT 
1e800 44 49 53 54 49 4e 43 54 20 36 35 20 2a 20 2d 20  DISTINCT 65 * - 
1e810 63 6f 6c 31 20 2a 20 2b 20 34 33 20 2a 20 2b 20  col1 * + 43 * + 
1e820 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  - col0 FROM tab0
1e830 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
1e840 20 43 41 53 54 20 28 20 2b 20 28 20 2d 20 31 30   CAST ( + ( - 10
1e850 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
1e860 2a 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  * + col0 * + col
1e870 30 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d  0 / + + col0 + -
1e880 20 32 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   23 IS NULL..---
1e890 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
1e8a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
1e8b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1e8c0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 32 33 20  r0 WHERE NOT 23 
1e8d0 3c 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  < - col2..----..
1e8e0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1e8f0 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
1e900 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
1e910 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4cad....query I 
1e920 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1e930 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b  ALL + + col1 + +
1e940 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 46 52 4f   col2 * col1 FRO
1e950 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
1e960 2d 0d 0a 31 30 30 0d 0a 32 33 31 0d 0a 33 38 38  -..100..231..388
1e970 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
1e980 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1e990 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
1e9a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1e9b0 30 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  00..SELECT + COU
1e9c0 4e 54 28 20 2a 20 29 20 2b 20 31 35 20 41 53 20  NT( * ) + 15 AS 
1e9d0 63 6f 6c 32 2c 20 2b 20 28 20 2b 20 38 20 29 20  col2, + ( + 8 ) 
1e9e0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1e9f0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1ea00 0a 31 38 0d 0a 38 0d 0a 0d 0a 73 6b 69 70 69 66  .18..8....skipif
1ea10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ea20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ea30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ea40 37 30 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  700..SELECT + CO
1ea50 55 4e 54 20 28 20 2a 20 29 20 2b 20 31 35 20 41  UNT ( * ) + 15 A
1ea60 53 20 63 6f 6c 32 2c 20 2b 20 28 20 2b 20 38 20  S col2, + ( + 8 
1ea70 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1ea80 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1ea90 2d 0d 0a 31 38 0d 0a 38 0d 0a 0d 0a 71 75 65 72  -..18..8....quer
1eaa0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1eab0 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b  ECT ALL + col0 +
1eac0 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
1ead0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
1eae0 2d 0d 0a 31 37 34 0d 0a 31 39 34 0d 0a 33 30 0d  -..174..194..30.
1eaf0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
1eb00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1eb10 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20  + col1 AS col0, 
1eb20 2b 20 35 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 53 AS col1 FRO
1eb30 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31  M tab2..----..51
1eb40 0d 0a 35 33 0d 0a 36 37 0d 0a 35 33 0d 0a 37 37  ..53..67..53..77
1eb50 0d 0a 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..53....query II
1eb60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1eb70 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
1eb80 20 41 53 20 63 6f 6c 30 2c 20 33 34 20 41 53 20   AS col0, 34 AS 
1eb90 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
1eba0 2d 2d 2d 2d 0d 0a 35 39 0d 0a 33 34 0d 0a 36 38  ----..59..34..68
1ebb0 0d 0a 33 34 0d 0a 39 36 0d 0a 33 34 0d 0a 0d 0a  ..34..96..34....
1ebc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ebd0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2b  .SELECT col0 + +
1ebe0 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 30 20 46   col2 - + col0 F
1ebf0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1ec00 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e  59..68..96....on
1ec10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1ec20 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1ec30 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1ec40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1ec50 30 35 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  05..SELECT col2 
1ec60 44 49 56 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d  DIV - + col1 + -
1ec70 20 37 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   74 AS col2 FROM
1ec80 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35   tab1..----..-75
1ec90 0d 0a 2d 38 30 0d 0a 2d 38 35 0d 0a 0d 0a 73 6b  ..-80..-85....sk
1eca0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1ecb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1ecc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ecd0 65 6c 2d 37 30 35 0d 0a 53 45 4c 45 43 54 20 63  el-705..SELECT c
1ece0 6f 6c 32 20 2f 20 2d 20 2b 20 63 6f 6c 31 20 2b  ol2 / - + col1 +
1ecf0 20 2d 20 37 34 20 41 53 20 63 6f 6c 32 20 46 52   - 74 AS col2 FR
1ed00 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
1ed10 37 35 0d 0a 2d 38 30 0d 0a 2d 38 35 0d 0a 0d 0a  75..-80..-85....
1ed20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1ed30 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1ed40 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 33 30 20 46   - col2 + - 30 F
1ed50 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1ed60 2d 35 33 0d 0a 2d 37 30 0d 0a 2d 38 38 0d 0a 0d  -53..-70..-88...
1ed70 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ed80 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1ed90 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1eda0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1edb0 62 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54 20  bel-707..SELECT 
1edc0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1edd0 45 20 4e 55 4c 4c 20 3c 3e 20 2d 20 43 41 53 54  E NULL <> - CAST
1ede0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1edf0 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2f 20   ) * - - col2 / 
1ee00 2b 20 38 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  + 89..----....sk
1ee10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1ee20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1ee30 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
1ee40 61 62 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54  abel-707..SELECT
1ee50 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
1ee60 52 45 20 4e 55 4c 4c 20 3c 3e 20 2d 20 43 41 53  RE NULL <> - CAS
1ee70 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1ee80 47 45 52 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 32  GER ) * - - col2
1ee90 20 2f 20 2b 20 38 39 0d 0a 2d 2d 2d 2d 0d 0a 0d   / + 89..----...
1eea0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1eeb0 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 28 20 2d  ..SELECT + + ( -
1eec0 20 2b 20 37 36 20 29 20 41 53 20 63 6f 6c 31 20   + 76 ) AS col1 
1eed0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1eee0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 36 0d 0a 2d 37  0..----..-76..-7
1eef0 36 0d 0a 2d 37 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  6..-76....onlyif
1ef00 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1ef10 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1ef20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ef30 65 6c 2d 37 30 39 0d 0a 53 45 4c 45 43 54 20 41  el-709..SELECT A
1ef40 4c 4c 20 2b 20 2b 20 4d 41 58 28 20 2b 20 2b 20  LL + + MAX( + + 
1ef50 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
1ef60 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
1ef70 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69  ---..96....skipi
1ef80 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ef90 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1efa0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1efb0 37 30 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  709..SELECT ALL 
1efc0 2b 20 2b 20 4d 41 58 20 28 20 2b 20 2b 20 63 6f  + + MAX ( + + co
1efd0 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l2 ) AS col0 FRO
1efe0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
1eff0 2d 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -..96....query I
1f000 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1f010 54 20 63 6f 6c 32 2c 20 2d 20 33 31 20 41 53 20  T col2, - 31 AS 
1f020 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
1f030 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 2d  or0..----..59..-
1f040 33 31 0d 0a 36 38 0d 0a 2d 33 31 0d 0a 39 36 0d  31..68..-31..96.
1f050 0a 2d 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-31....query II
1f060 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1f070 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
1f080 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55   cor0 WHERE ( NU
1f090 4c 4c 20 29 20 3c 3e 20 2b 20 28 20 2d 20 2b 20  LL ) <> + ( - + 
1f0a0 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
1f0b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
1f0c0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1f0d0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1f0e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f0f0 2d 37 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -712..SELECT ALL
1f100 20 33 38 20 44 49 56 20 63 6f 6c 32 20 2b 20 2d   38 DIV col2 + -
1f110 20 2d 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f   - col1 col2 FRO
1f120 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
1f130 2d 0d 0a 35 32 0d 0a 36 37 0d 0a 37 37 0d 0a 0d  -..52..67..77...
1f140 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1f150 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1f160 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1f170 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1f180 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1f190 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1f1a0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1f1b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1f1c0 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33  12..SELECT ALL 3
1f1d0 38 20 2f 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63  8 / col2 + - - c
1f1e0 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol1 col2 FROM ta
1f1f0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b2 cor0..----..5
1f200 32 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 71 75 65  2..67..77....que
1f210 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
1f220 45 4c 45 43 54 20 2b 20 2b 20 39 39 20 41 53 20  ELECT + + 99 AS 
1f230 63 6f 6c 31 2c 20 63 6f 6c 30 20 41 53 20 63 6f  col1, col0 AS co
1f240 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
1f250 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a  cor0..----..99..
1f260 35 31 0d 0a 39 39 0d 0a 38 35 0d 0a 39 39 0d 0a  51..99..85..99..
1f270 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  91....query I ro
1f280 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1f290 53 54 49 4e 43 54 20 2b 20 2b 20 34 31 20 2b 20  STINCT + + 41 + 
1f2a0 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  + col2 AS col2 F
1f2b0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1f2c0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 31 30 39  ..----..100..109
1f2d0 0d 0a 31 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..137....onlyif 
1f2e0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1f2f0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1f300 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1f310 6f 72 74 20 6c 61 62 65 6c 2d 37 31 35 0d 0a 53  ort label-715..S
1f320 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44 49 56  ELECT + col0 DIV
1f330 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31   + col2 + + col1
1f340 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1f350 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 38  b1..----..14..48
1f360 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..6....skipif my
1f370 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1f380 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1f390 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 35 0d  wsort label-715.
1f3a0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2f  .SELECT + col0 /
1f3b0 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31   + col2 + + col1
1f3c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1f3d0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 38  b1..----..14..48
1f3e0 0d 0a 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..6....onlyif my
1f3f0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1f400 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1f410 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1f420 37 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  716..SELECT ALL 
1f430 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
1f440 4d 20 28 20 74 61 62 30 20 63 6f 72 30 20 43 52  M ( tab0 cor0 CR
1f450 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
1f460 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   cor1 )..----..9
1f470 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1f480 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1f490 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1f4a0 72 74 20 6c 61 62 65 6c 2d 37 31 36 0d 0a 53 45  rt label-716..SE
1f4b0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
1f4c0 20 28 20 2a 20 29 20 46 52 4f 4d 20 28 20 74 61   ( * ) FROM ( ta
1f4d0 62 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b0 cor0 CROSS JO
1f4e0 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 20  IN tab2 AS cor1 
1f4f0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75  )..----..9....qu
1f500 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1f510 45 4c 45 43 54 20 2d 20 2d 20 36 32 20 46 52 4f  ELECT - - 62 FRO
1f520 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  M tab0 AS cor0 C
1f530 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 63  ROSS JOIN tab1 c
1f540 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
1f550 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35  ues hashing to 5
1f560 31 64 64 32 37 37 31 64 35 31 36 63 65 62 39 33  1dd2771d516ceb93
1f570 35 34 38 33 65 64 65 64 37 38 61 35 66 61 30 0d  5483eded78a5fa0.
1f580 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1f590 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 38 30 20  rt..SELECT ( 80 
1f5a0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
1f5b0 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  or0 WHERE NULL N
1f5c0 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20  OT BETWEEN col1 
1f5d0 2b 20 2d 20 34 36 20 2b 20 2b 20 63 6f 6c 31 20  + - 46 + + col1 
1f5e0 2a 20 63 6f 6c 30 20 2b 20 37 30 20 41 4e 44 20  * col0 + 70 AND 
1f5f0 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col2..----....
1f600 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1f610 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1f620 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 38 30   + - col0 * + 80
1f630 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1f640 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
1f650 33 36 38 30 0d 0a 2d 35 31 32 30 0d 0a 2d 36 30  3680..-5120..-60
1f660 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  00....query I ro
1f670 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1f680 4c 20 2b 20 2d 20 33 36 20 2a 20 2d 20 2b 20 39  L + - 36 * - + 9
1f690 33 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 63  3 + - - col2 * c
1f6a0 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
1f6b0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1f6c0 2d 2d 2d 0d 0a 38 32 34 34 0d 0a 38 33 36 33 0d  ---..8244..8363.
1f6d0 0a 39 35 33 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .9536....onlyif 
1f6e0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1f6f0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1f700 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1f710 6f 72 74 20 6c 61 62 65 6c 2d 37 32 31 0d 0a 53  ort label-721..S
1f720 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44 49 56  ELECT + col0 DIV
1f730 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 32 30 20 2b   - + col2 + 20 +
1f740 20 2d 20 28 20 34 36 20 29 20 63 6f 6c 31 20 46   - ( 46 ) col1 F
1f750 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1f760 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 0d 0a 2d 32 37  ..----..-26..-27
1f770 0d 0a 2d 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-27....skipif 
1f780 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1f790 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
1f7a0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1f7b0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1f7c0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1f7d0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1f7e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f7f0 20 6c 61 62 65 6c 2d 37 32 31 0d 0a 53 45 4c 45   label-721..SELE
1f800 43 54 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 2b 20  CT + col0 / - + 
1f810 63 6f 6c 32 20 2b 20 32 30 20 2b 20 2d 20 28 20  col2 + 20 + - ( 
1f820 34 36 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  46 ) col1 FROM t
1f830 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1f840 2d 0d 0a 2d 32 36 0d 0a 2d 32 37 0d 0a 2d 32 37  -..-26..-27..-27
1f850 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1f860 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1f870 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
1f880 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1f890 61 62 65 6c 2d 37 32 32 0d 0a 53 45 4c 45 43 54  abel-722..SELECT
1f8a0 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   ALL - col1 * + 
1f8b0 2b 20 43 41 53 54 28 20 2d 20 2b 20 28 20 2b 20  + CAST( - + ( + 
1f8c0 63 6f 6c 30 20 29 20 41 53 20 53 49 47 4e 45 44  col0 ) AS SIGNED
1f8d0 20 29 20 2d 20 2b 20 37 35 20 41 53 20 63 6f 6c   ) - + 75 AS col
1f8e0 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
1f8f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 31 0d  or0..----..2271.
1f900 0a 34 38 35 33 0d 0a 34 39 35 30 0d 0a 0d 0a 73  .4853..4950....s
1f910 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1f920 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1f930 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f940 62 65 6c 2d 37 32 32 0d 0a 53 45 4c 45 43 54 20  bel-722..SELECT 
1f950 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b  ALL - col1 * + +
1f960 20 43 41 53 54 20 28 20 2d 20 2b 20 28 20 2b 20   CAST ( - + ( + 
1f970 63 6f 6c 30 20 29 20 41 53 20 49 4e 54 45 47 45  col0 ) AS INTEGE
1f980 52 20 29 20 2d 20 2b 20 37 35 20 41 53 20 63 6f  R ) - + 75 AS co
1f990 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
1f9a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 31  cor0..----..2271
1f9b0 0d 0a 34 38 35 33 0d 0a 34 39 35 30 0d 0a 0d 0a  ..4853..4950....
1f9c0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1f9d0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1f9e0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1f9f0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1fa00 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1fa10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1fa20 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a   DISTINCT col1 *
1fa30 20 33 31 20 2b 20 39 33 20 2a 20 2d 20 2d 20 31   31 + 93 * - - 1
1fa40 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 63 6f 6c 31   * - + col0 col1
1fa50 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
1fa60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 34 30 0d  r0..----..-7440.
1fa70 0a 2d 38 39 39 30 0d 0a 31 31 31 36 0d 0a 0d 0a  .-8990..1116....
1fa80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1fa90 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a  .SELECT + col2 *
1faa0 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31   - - col2 * col1
1fab0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1fac0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1fad0 0d 0a 31 32 33 32 30 30 0d 0a 32 32 35 33 38 38  ..123200..225388
1fae0 0d 0a 32 36 39 37 39 0d 0a 0d 0a 6f 6e 6c 79 69  ..26979....onlyi
1faf0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1fb00 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1fb10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1fb20 62 65 6c 2d 37 32 35 0d 0a 53 45 4c 45 43 54 20  bel-725..SELECT 
1fb30 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  ALL + + COUNT( *
1fb40 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) * - COUNT( * 
1fb50 29 20 2a 20 2d 20 2d 20 4d 49 4e 28 20 2b 20 2b  ) * - - MIN( + +
1fb60 20 34 36 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28   46 ) + + COUNT(
1fb70 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
1fb80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
1fb90 31 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  11....skipif mys
1fba0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1fbb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1fbc0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 35 0d 0a  sort label-725..
1fbd0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43  SELECT ALL + + C
1fbe0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43  OUNT ( * ) * - C
1fbf0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 2d  OUNT ( * ) * - -
1fc00 20 4d 49 4e 20 28 20 2b 20 2b 20 34 36 20 29 20   MIN ( + + 46 ) 
1fc10 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
1fc20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1fc30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 31 0d 0a 0d  0..----..-411...
1fc40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1fc50 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1fc60 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1fc70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1fc80 6c 2d 37 32 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-726..SELECT DI
1fc90 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 41 53  STINCT - col0 AS
1fca0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1fcb0 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49  WHERE NULL NOT I
1fcc0 4e 20 28 20 63 6f 6c 32 2c 20 31 34 20 2a 20 2b  N ( col2, 14 * +
1fcd0 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 38 30 20 2a   col0 * + - 80 *
1fce0 20 2d 20 2d 20 38 39 20 2a 20 2d 20 2d 20 39 37   - - 89 * - - 97
1fcf0 2c 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 43  , - - col1 + + C
1fd00 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
1fd10 4e 45 44 20 29 2c 20 2b 20 63 6f 6c 30 20 2b 20  NED ), + col0 + 
1fd20 63 6f 6c 30 2c 20 63 6f 6c 31 20 2b 20 2d 20 39  col0, col1 + - 9
1fd30 35 2c 20 2b 20 34 33 20 2a 20 2b 20 34 31 20 29  5, + 43 * + 41 )
1fd40 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
1fd50 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1fd60 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1fd70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1fd80 32 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  26..SELECT DISTI
1fd90 4e 43 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  NCT - col0 AS co
1fda0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
1fdb0 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  RE NULL NOT IN (
1fdc0 20 63 6f 6c 32 2c 20 31 34 20 2a 20 2b 20 63 6f   col2, 14 * + co
1fdd0 6c 30 20 2a 20 2b 20 2d 20 38 30 20 2a 20 2d 20  l0 * + - 80 * - 
1fde0 2d 20 38 39 20 2a 20 2d 20 2d 20 39 37 2c 20 2d  - 89 * - - 97, -
1fdf0 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54   - col1 + + CAST
1fe00 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
1fe10 45 52 20 29 2c 20 2b 20 63 6f 6c 30 20 2b 20 63  ER ), + col0 + c
1fe20 6f 6c 30 2c 20 63 6f 6c 31 20 2b 20 2d 20 39 35  ol0, col1 + - 95
1fe30 2c 20 2b 20 34 33 20 2a 20 2b 20 34 31 20 29 0d  , + 43 * + 41 ).
1fe40 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1fe50 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1fe60 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
1fe70 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
1fe80 54 20 2b 20 31 31 20 49 53 20 4e 4f 54 20 4e 55  T + 11 IS NOT NU
1fe90 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
1fea0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1feb0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1fec0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1fed0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 38  owsort label-728
1fee0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34  ..SELECT ALL - 4
1fef0 34 20 2f 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63  4 / col0 * - + c
1ff00 6f 6c 30 20 2f 20 28 20 2d 20 43 41 53 54 28 20  ol0 / ( - CAST( 
1ff10 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1ff20 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
1ff30 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
1ff40 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
1ff50 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ff60 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ff70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ff80 61 62 65 6c 2d 37 32 38 0d 0a 53 45 4c 45 43 54  abel-728..SELECT
1ff90 20 41 4c 4c 20 2d 20 34 34 20 2f 20 63 6f 6c 30   ALL - 44 / col0
1ffa0 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2f 20 28 20   * - + col0 / ( 
1ffb0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
1ffc0 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20   INTEGER ) ) AS 
1ffd0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
1ffe0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1fff0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
20000 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
20010 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
20020 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
20030 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
20040 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
20050 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
20060 4e 43 54 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32  NCT - ( - - col2
20070 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
20080 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 34  2..----..-23..-4
20090 30 0d 0a 2d 35 38 0d 0a 0d 0a 71 75 65 72 79 20  0..-58....query 
200a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
200b0 54 20 41 4c 4c 20 2d 20 2b 20 38 35 20 2a 20 2d  T ALL - + 85 * -
200c0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
200d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
200e0 0a 2d 2d 2d 2d 0d 0a 34 33 33 35 0d 0a 35 36 39  .----..4335..569
200f0 35 0d 0a 36 35 34 35 0d 0a 0d 0a 6f 6e 6c 79 69  5..6545....onlyi
20100 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
20110 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
20120 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
20130 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
20140 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33  rowsort label-73
20150 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
20160 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
20170 2a 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  * - + CAST( NULL
20180 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
20190 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
201a0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
201b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
201c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
201d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
201e0 65 6c 2d 37 33 31 0d 0a 53 45 4c 45 43 54 20 44  el-731..SELECT D
201f0 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
20200 28 20 2a 20 29 20 2a 20 2d 20 2b 20 43 41 53 54  ( * ) * - + CAST
20210 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
20220 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  ER ) FROM tab0 A
20230 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
20240 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
20250 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
20260 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
20270 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
20280 72 74 20 6c 61 62 65 6c 2d 37 33 32 0d 0a 53 45  rt label-732..SE
20290 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
202a0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
202b0 52 45 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  RE - CAST( NULL 
202c0 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d 20  AS SIGNED ) * - 
202d0 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col0 IS NULL..--
202e0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
202f0 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
20300 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
20310 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70  962d0a49....skip
20320 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
20330 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
20340 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
20350 65 6c 2d 37 33 32 0d 0a 53 45 4c 45 43 54 20 41  el-732..SELECT A
20360 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  LL * FROM tab2 A
20370 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 43  S cor0 WHERE - C
20380 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
20390 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30  TEGER ) * - col0
203a0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
203b0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
203c0 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
203d0 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
203e0 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
203f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
20400 2b 20 35 36 20 2a 20 2b 20 2b 20 39 38 20 46 52  + 56 * + + 98 FR
20410 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
20420 0a 2d 2d 2d 2d 0d 0a 35 34 38 38 0d 0a 35 34 38  .----..5488..548
20430 38 0d 0a 35 34 38 38 0d 0a 0d 0a 71 75 65 72 79  8..5488....query
20440 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
20450 43 54 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 32 39  CT col1 * + + 29
20460 20 2a 20 2b 20 36 37 20 41 53 20 63 6f 6c 30 20   * + 67 AS col0 
20470 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
20480 0a 31 35 37 33 38 33 0d 0a 31 39 34 33 0d 0a 34  .157383..1943..4
20490 30 38 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  0803....query II
204a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
204b0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
204c0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
204d0 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2d 20   col2 BETWEEN - 
204e0 63 6f 6c 30 20 41 4e 44 20 28 20 2d 20 32 39 20  col0 AND ( - 29 
204f0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
20500 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
20510 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
20520 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
20530 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20540 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
20550 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
20560 6f 72 74 20 6c 61 62 65 6c 2d 37 33 36 0d 0a 53  ort label-736..S
20570 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 44  ELECT + COUNT( D
20580 49 53 54 49 4e 43 54 20 2d 20 39 36 20 29 20 46  ISTINCT - 96 ) F
20590 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
205a0 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69  ..----..1....ski
205b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
205c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
205d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
205e0 6c 2d 37 33 36 0d 0a 53 45 4c 45 43 54 20 2b 20  l-736..SELECT + 
205f0 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54  COUNT ( DISTINCT
20600 20 2d 20 39 36 20 29 20 46 52 4f 4d 20 74 61 62   - 96 ) FROM tab
20610 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
20620 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .1....onlyif mys
20630 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
20640 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
20650 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
20660 74 20 6c 61 62 65 6c 2d 37 33 37 0d 0a 53 45 4c  t label-737..SEL
20670 45 43 54 20 2b 20 63 6f 6c 30 2c 20 2d 20 63 6f  ECT + col0, - co
20680 6c 30 20 44 49 56 20 2d 20 33 36 20 41 53 20 63  l0 DIV - 36 AS c
20690 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
206a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
206b0 0a 31 0d 0a 38 35 0d 0a 32 0d 0a 39 31 0d 0a 32  .1..85..2..91..2
206c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
206d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
206e0 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
206f0 6f 72 74 20 6c 61 62 65 6c 2d 37 33 37 0d 0a 53  ort label-737..S
20700 45 4c 45 43 54 20 2b 20 63 6f 6c 30 2c 20 2d 20  ELECT + col0, - 
20710 63 6f 6c 30 20 2f 20 2d 20 33 36 20 41 53 20 63  col0 / - 36 AS c
20720 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
20730 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
20740 0a 31 0d 0a 38 35 0d 0a 32 0d 0a 39 31 0d 0a 32  .1..85..2..91..2
20750 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
20760 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36  sort..SELECT - 6
20770 37 20 41 53 20 63 6f 6c 32 2c 20 33 32 20 46 52  7 AS col2, 32 FR
20780 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
20790 2d 2d 0d 0a 2d 36 37 0d 0a 33 32 0d 0a 2d 36 37  --..-67..32..-67
207a0 0d 0a 33 32 0d 0a 2d 36 37 0d 0a 33 32 0d 0a 0d  ..32..-67..32...
207b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
207c0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
207d0 20 35 31 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 41   51 + + + col1 A
207e0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
207f0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
20800 31 30 32 0d 0a 31 31 38 0d 0a 31 32 38 0d 0a 0d  102..118..128...
20810 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20820 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35 34 20  ..SELECT ALL 54 
20830 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
20840 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
20850 2b 20 34 34 20 2a 20 63 6f 6c 30 20 49 53 20 4e  + 44 * col0 IS N
20860 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35  OT NULL..----..5
20870 34 0d 0a 35 34 0d 0a 35 34 0d 0a 0d 0a 71 75 65  4..54..54....que
20880 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
20890 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
208a0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
208b0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
208c0 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41  TWEEN ( NULL ) A
208d0 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  ND - col0..----.
208e0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
208f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 37  ort..SELECT + 87
20900 20 41 53 20 63 6f 6c 31 2c 20 2d 20 34 37 20 2a   AS col1, - 47 *
20910 20 34 33 20 46 52 4f 4d 20 74 61 62 32 20 41 53   43 FROM tab2 AS
20920 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d   cor0..----..87.
20930 0a 2d 32 30 32 31 0d 0a 38 37 0d 0a 2d 32 30 32  .-2021..87..-202
20940 31 0d 0a 38 37 0d 0a 2d 32 30 32 31 0d 0a 0d 0a  1..87..-2021....
20950 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
20960 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
20970 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
20980 45 52 45 20 2d 20 37 33 20 49 53 20 4e 55 4c 4c  ERE - 73 IS NULL
20990 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
209a0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
209b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
209c0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
209d0 20 57 48 45 52 45 20 30 20 49 53 20 4e 4f 54 20   WHERE 0 IS NOT 
209e0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
209f0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
20a00 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
20a10 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
20a20 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
20a30 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 33 32 20  sort..SELECT 32 
20a40 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 2b 20  AS col2, col1 + 
20a50 2d 20 38 30 20 2a 20 2d 20 2d 20 38 32 20 46 52  - 80 * - - 82 FR
20a60 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
20a70 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a 2d 36 34 38 33  .----..32..-6483
20a80 0d 0a 33 32 0d 0a 2d 36 34 39 33 0d 0a 33 32 0d  ..32..-6493..32.
20a90 0a 2d 36 35 30 39 0d 0a 0d 0a 71 75 65 72 79 20  .-6509....query 
20aa0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20ab0 54 20 44 49 53 54 49 4e 43 54 20 36 38 20 2b 20  T DISTINCT 68 + 
20ac0 2b 20 63 6f 6c 30 20 2b 20 2d 20 37 32 20 2a 20  + col0 + - 72 * 
20ad0 2d 20 38 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 86 FROM tab1..
20ae0 2d 2d 2d 2d 0d 0a 36 33 31 31 0d 0a 36 33 34 35  ----..6311..6345
20af0 0d 0a 36 33 35 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..6351....skipif
20b00 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
20b10 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
20b20 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
20b30 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
20b40 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
20b50 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
20b60 2a 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 32 33 20  * + col2 + + 23 
20b70 2b 20 34 38 20 63 6f 6c 30 20 46 52 4f 4d 20 74  + 48 col0 FROM t
20b80 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 36 0d 0a  ab0..----..776..
20b90 39 34 31 0d 0a 39 36 37 34 0d 0a 0d 0a 71 75 65  941..9674....que
20ba0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
20bb0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
20bc0 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c   + col0 AS col2,
20bd0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
20be0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
20bf0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
20c00 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
20c10 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
20c20 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
20c30 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
20c40 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  NOT BETWEEN NULL
20c50 20 41 4e 44 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d   AND NULL )..---
20c60 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
20c70 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
20c80 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
20c90 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
20ca0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20cb0 74 20 6c 61 62 65 6c 2d 37 35 30 0d 0a 53 45 4c  t label-750..SEL
20cc0 45 43 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 44  ECT - + COUNT( D
20cd0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29  ISTINCT - col0 )
20ce0 20 2b 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c   + + + CAST( NUL
20cf0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
20d00 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
20d10 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
20d20 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
20d30 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
20d40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20d50 62 65 6c 2d 37 35 30 0d 0a 53 45 4c 45 43 54 20  bel-750..SELECT 
20d60 2d 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53 54  - + COUNT ( DIST
20d70 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 2b 20  INCT - col0 ) + 
20d80 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
20d90 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
20da0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
20db0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
20dc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20dd0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20  ELECT ALL + ( + 
20de0 2b 20 31 31 20 29 20 46 52 4f 4d 20 74 61 62 32  + 11 ) FROM tab2
20df0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
20e00 31 31 0d 0a 31 31 0d 0a 31 31 0d 0a 0d 0a 6f 6e  11..11..11....on
20e10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
20e20 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
20e30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20e40 20 6c 61 62 65 6c 2d 37 35 32 0d 0a 53 45 4c 45   label-752..SELE
20e50 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
20e60 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 4d 49 4e  T( * ) + - - MIN
20e70 28 20 41 4c 4c 20 2d 20 28 20 2b 20 63 6f 6c 32  ( ALL - ( + col2
20e80 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
20e90 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
20ea0 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 73 6b 69  ----..-93....ski
20eb0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
20ec0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
20ed0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
20ee0 6c 2d 37 35 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-752..SELECT DI
20ef0 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
20f00 20 29 20 2b 20 2d 20 2d 20 4d 49 4e 20 28 20 41   ) + - - MIN ( A
20f10 4c 4c 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20  LL - ( + col2 ) 
20f20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
20f30 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
20f40 2d 0d 0a 2d 39 33 0d 0a 0d 0a 71 75 65 72 79 20  -..-93....query 
20f50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20f60 54 20 63 6f 6c 30 20 2a 20 2b 20 37 30 20 2b 20  T col0 * + 70 + 
20f70 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
20f80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 35 31   cor0..----..351
20f90 39 0d 0a 35 38 36 35 0d 0a 36 32 37 39 0d 0a 0d  9..5865..6279...
20fa0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20fb0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
20fc0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
20fd0 6f 72 74 20 6c 61 62 65 6c 2d 37 35 34 0d 0a 53  ort label-754..S
20fe0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
20ff0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 36 32   COUNT( * ) - 62
21000 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
21010 0d 0a 2d 36 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-65....skipif 
21020 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21030 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
21040 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35  rowsort label-75
21050 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
21060 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
21070 20 2d 20 36 32 20 46 52 4f 4d 20 74 61 62 31 0d   - 62 FROM tab1.
21080 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 0d 0a 71 75  .----..-65....qu
21090 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
210a0 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20  SELECT - + col1 
210b0 2a 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 36 39 20  * col0 * + + 69 
210c0 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20  AS col0, - col0 
210d0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
210e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 30 36 33  0..----..-126063
210f0 0d 0a 2d 38 37 0d 0a 2d 36 36 39 33 0d 0a 2d 39  ..-87..-6693..-9
21100 37 0d 0a 2d 38 33 38 33 35 0d 0a 2d 31 35 0d 0a  7..-83835..-15..
21110 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21120 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
21130 43 54 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31  CT - col2 * col1
21140 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20   * + - col0 * - 
21150 2d 20 63 6f 6c 30 20 2b 20 38 36 20 41 53 20 63  - col0 + 86 AS c
21160 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
21170 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 33   cor0..----..213
21180 31 34 36 31 0d 0a 32 36 34 36 36 31 36 32 0d 0a  1461..26466162..
21190 33 34 39 35 38 33 30 0d 0a 0d 0a 6f 6e 6c 79 69  3495830....onlyi
211a0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
211b0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
211c0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
211d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 37  owsort label-757
211e0 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 41 53  ..SELECT + - CAS
211f0 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45  T( col0 AS SIGNE
21200 44 20 29 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20  D ) * + col2 AS 
21210 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 63 6f 6c  col0, - col2 col
21220 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
21230 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 35 0d 0a 2d 34  ..----..-705..-4
21240 37 0d 0a 2d 38 37 30 0d 0a 2d 31 30 0d 0a 2d 39  7..-870..-10..-9
21250 36 30 33 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70  603..-99....skip
21260 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21270 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
21280 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
21290 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
212a0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
212b0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
212c0 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
212d0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 37 0d 0a  sort label-757..
212e0 53 45 4c 45 43 54 20 2b 20 2d 20 43 41 53 54 20  SELECT + - CAST 
212f0 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  ( col0 AS INTEGE
21300 52 20 29 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20  R ) * + col2 AS 
21310 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 63 6f 6c  col0, - col2 col
21320 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
21330 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 35 0d 0a 2d 34  ..----..-705..-4
21340 37 0d 0a 2d 38 37 30 0d 0a 2d 31 30 0d 0a 2d 39  7..-870..-10..-9
21350 36 30 33 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72  603..-99....quer
21360 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
21370 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
21380 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
21390 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
213a0 4f 54 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f  OT col2 * + - co
213b0 6c 32 20 2b 20 2d 20 2d 20 37 20 49 53 20 4e 55  l2 + - - 7 IS NU
213c0 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  LL )..----....on
213d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
213e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
213f0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
21400 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
21410 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
21420 6c 2d 37 35 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-759..SELECT DI
21430 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28 20 41 4c  STINCT + MIN( AL
21440 4c 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 29  L - ( + col0 ) )
21450 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 28   AS col0, COUNT(
21460 20 2a 20 29 20 44 49 56 20 34 31 20 46 52 4f 4d   * ) DIV 41 FROM
21470 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
21480 2d 2d 2d 0d 0a 2d 39 37 0d 0a 30 0d 0a 0d 0a 73  ---..-97..0....s
21490 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
214a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
214b0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
214c0 61 62 65 6c 2d 37 35 39 0d 0a 53 45 4c 45 43 54  abel-759..SELECT
214d0 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20   DISTINCT + MIN 
214e0 28 20 41 4c 4c 20 2d 20 28 20 2b 20 63 6f 6c 30  ( ALL - ( + col0
214f0 20 29 20 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f   ) ) AS col0, CO
21500 55 4e 54 20 28 20 2a 20 29 20 2f 20 34 31 20 46  UNT ( * ) / 41 F
21510 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21520 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 37 0d 0a 30 0d 0a  ..----..-97..0..
21530 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
21540 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
21550 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
21560 57 48 45 52 45 20 4e 4f 54 20 28 20 32 33 20 2a  WHERE NOT ( 23 *
21570 20 63 6f 6c 30 20 2d 20 2d 20 2d 20 39 20 29 20   col0 - - - 9 ) 
21580 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
21590 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
215a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
215b0 53 54 49 4e 43 54 20 2b 20 2b 20 37 38 20 41 53  STINCT + + 78 AS
215c0 20 63 6f 6c 32 2c 20 28 20 2d 20 28 20 2b 20 28   col2, ( - ( + (
215d0 20 2b 20 63 6f 6c 30 20 29 20 29 20 29 20 2b 20   + col0 ) ) ) + 
215e0 2b 20 63 6f 6c 30 20 2b 20 2d 20 38 39 20 41 53  + col0 + - 89 AS
215f0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
21600 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
21610 38 0d 0a 2d 38 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  8..-89....onlyif
21620 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
21630 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
21640 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
21650 65 6c 2d 37 36 32 0d 0a 53 45 4c 45 43 54 20 44  el-762..SELECT D
21660 49 53 54 49 4e 43 54 20 4d 41 58 28 20 41 4c 4c  ISTINCT MAX( ALL
21670 20 28 20 2d 20 63 6f 6c 30 20 29 20 29 20 46 52   ( - col0 ) ) FR
21680 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
21690 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  46....skipif mys
216a0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
216b0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
216c0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 32 0d 0a  sort label-762..
216d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
216e0 4d 41 58 20 28 20 41 4c 4c 20 28 20 2d 20 63 6f  MAX ( ALL ( - co
216f0 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32  l0 ) ) FROM tab2
21700 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 0d 0a 71  ..----..-46....q
21710 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
21720 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
21730 2d 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  - - col1 FROM ta
21740 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b2 WHERE NOT col
21750 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  2 NOT BETWEEN NU
21760 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  LL AND NULL..---
21770 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
21780 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
21790 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
217a0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
217b0 20 6c 61 62 65 6c 2d 37 36 34 0d 0a 53 45 4c 45   label-764..SELE
217c0 43 54 20 33 33 20 44 49 56 20 2b 20 32 34 20 41  CT 33 DIV + 24 A
217d0 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 46 52 4f  S col2, col2 FRO
217e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab0..----..1.
217f0 0a 31 30 0d 0a 31 0d 0a 34 37 0d 0a 31 0d 0a 39  .10..1..47..1..9
21800 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
21810 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
21820 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
21830 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 34 0d 0a  sort label-764..
21840 53 45 4c 45 43 54 20 33 33 20 2f 20 2b 20 32 34  SELECT 33 / + 24
21850 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 46   AS col2, col2 F
21860 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
21870 31 0d 0a 31 30 0d 0a 31 0d 0a 34 37 0d 0a 31 0d  1..10..1..47..1.
21880 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .99....onlyif my
21890 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
218a0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
218b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
218c0 74 20 6c 61 62 65 6c 2d 37 36 35 0d 0a 53 45 4c  t label-765..SEL
218d0 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b  ECT - col2 * - +
218e0 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53   CAST( - col0 AS
218f0 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
21900 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 38  ab2..----..-1058
21910 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 30 0d 0a  ..-2560..-4350..
21920 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
21930 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21940 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21950 20 6c 61 62 65 6c 2d 37 36 35 0d 0a 53 45 4c 45   label-765..SELE
21960 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b 20  CT - col2 * - + 
21970 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53  CAST ( - col0 AS
21980 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
21990 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35  tab2..----..-105
219a0 38 0d 0a 2d 32 35 36 30 0d 0a 2d 34 33 35 30 0d  8..-2560..-4350.
219b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
219c0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
219d0 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  0 FROM tab1 WHER
219e0 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
219f0 4c 4c 20 4f 52 20 4e 4f 54 20 4e 55 4c 4c 20 3c  LL OR NOT NULL <
21a00 20 2b 20 28 20 2d 20 38 37 20 29 0d 0a 2d 2d 2d   + ( - 87 )..---
21a10 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
21a20 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
21a30 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
21a40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
21a50 37 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28  7..SELECT - SUM(
21a60 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 31 20 29 20   ALL - + col1 ) 
21a70 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
21a80 31 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73  1..----..66....s
21a90 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
21aa0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
21ab0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21ac0 62 65 6c 2d 37 36 37 0d 0a 53 45 4c 45 43 54 20  bel-767..SELECT 
21ad0 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 2b 20  - SUM ( ALL - + 
21ae0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
21af0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
21b00 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  66....query III 
21b10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
21b20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
21b30 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab2 WHERE NULL 
21b40 3c 3e 20 37 38 20 2a 20 2b 20 63 6f 6c 30 0d 0a  <> 78 * + col0..
21b50 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
21b60 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
21b70 44 49 53 54 49 4e 43 54 20 2d 20 34 36 20 2a 20  DISTINCT - 46 * 
21b80 2d 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 2a  - ( + - col0 ) *
21b90 20 2d 20 36 31 20 2b 20 2d 20 2d 20 28 20 2d 20   - 61 + - - ( - 
21ba0 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
21bb0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
21bc0 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39 30 33 30 0d 0a  ..----..129030..
21bd0 31 37 39 35 32 30 0d 0a 32 31 30 33 37 35 0d 0a  179520..210375..
21be0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21bf0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
21c00 43 54 20 63 6f 6c 31 20 2b 20 2b 20 34 36 20 46  CT col1 + + 46 F
21c10 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21c20 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
21c30 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS 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 37 31 0d 0a 53  ort label-771..S
21c80 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
21c90 20 4d 49 4e 28 20 2d 20 63 6f 6c 30 20 29 20 63   MIN( - col0 ) c
21ca0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
21cb0 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69  ---..91....skipi
21cc0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
21cd0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
21ce0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
21cf0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
21d00 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
21d10 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
21d20 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
21d30 72 74 20 6c 61 62 65 6c 2d 37 37 31 0d 0a 53 45  rt label-771..SE
21d40 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
21d50 4d 49 4e 20 28 20 2d 20 63 6f 6c 30 20 29 20 63  MIN ( - col0 ) c
21d60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
21d70 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79  ---..91....query
21d80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21d90 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20 33 20 29  CT ALL - ( + 3 )
21da0 20 2a 20 2b 20 36 34 20 41 53 20 63 6f 6c 31 20   * + 64 AS col1 
21db0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
21dc0 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
21dd0 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  1 AS cor1..----.
21de0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
21df0 67 20 74 6f 20 65 32 61 61 66 32 34 38 65 38 39  g to e2aaf248e89
21e00 63 66 65 39 30 37 31 39 35 38 39 34 66 64 66 31  cfe907195894fdf1
21e10 66 38 63 64 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  f8cd4....onlyif 
21e20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
21e30 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
21e40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21e50 6c 2d 37 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-773..SELECT AL
21e60 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  L + COUNT( * ) +
21e70 20 2d 20 38 31 20 41 53 20 63 6f 6c 30 20 46 52   - 81 AS col0 FR
21e80 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
21e90 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  78....skipif mys
21ea0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
21eb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
21ec0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 33 0d 0a  sort label-773..
21ed0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
21ee0 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 38 31 20  NT ( * ) + - 81 
21ef0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
21f00 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d 0a 0d 0a  0..----..-78....
21f10 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
21f20 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
21f30 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
21f40 72 74 20 6c 61 62 65 6c 2d 37 37 34 0d 0a 53 45  rt label-774..SE
21f50 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
21f60 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * ) col0 FROM ta
21f70 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
21f80 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
21f90 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
21fa0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21fb0 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
21fc0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
21fd0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
21fe0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
21ff0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
22000 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22010 74 20 6c 61 62 65 6c 2d 37 37 34 0d 0a 53 45 4c  t label-774..SEL
22020 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
22030 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * ) col0 FROM ta
22040 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
22050 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
22060 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..3....onlyif
22070 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
22080 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
22090 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
220a0 65 6c 2d 37 37 35 0d 0a 53 45 4c 45 43 54 20 4d  el-775..SELECT M
220b0 49 4e 28 20 63 6f 6c 30 20 29 20 2b 20 2b 20 33  IN( col0 ) + + 3
220c0 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  3 AS col1 FROM t
220d0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
220e0 2d 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..79....skipif 
220f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
22100 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
22110 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
22120 35 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20  5..SELECT MIN ( 
22130 63 6f 6c 30 20 29 20 2b 20 2b 20 33 33 20 41 53  col0 ) + + 33 AS
22140 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
22150 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37  AS cor0..----..7
22160 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
22170 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
22180 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 32 20 46 52   + + col2 * 2 FR
22190 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
221a0 0a 2d 2d 2d 2d 0d 0a 31 31 36 0d 0a 34 36 0d 0a  .----..116..46..
221b0 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  80....query III 
221c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
221d0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
221e0 6f 72 30 20 57 48 45 52 45 20 2b 20 34 34 20 2b  or0 WHERE + 44 +
221f0 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
22200 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
22210 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
22220 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
22230 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
22240 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22250 0d 0a 53 45 4c 45 43 54 20 2b 20 39 35 20 2b 20  ..SELECT + 95 + 
22260 2d 20 2b 20 39 37 20 41 53 20 63 6f 6c 32 20 46  - + 97 AS col2 F
22270 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
22280 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 32 0d 0a  ..----..-2..-2..
22290 2d 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -2....query I ro
222a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 37  wsort..SELECT 97
222b0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
222c0 72 30 20 57 48 45 52 45 20 37 38 20 2a 20 2b 20  r0 WHERE 78 * + 
222d0 36 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  62 IS NOT NULL..
222e0 2d 2d 2d 2d 0d 0a 39 37 0d 0a 39 37 0d 0a 39 37  ----..97..97..97
222f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
22300 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
22310 2d 20 2d 20 38 30 20 2b 20 2d 20 2d 20 63 6f 6c  - - 80 + - - col
22320 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
22330 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
22340 2d 0d 0a 31 33 39 0d 0a 31 34 38 0d 0a 31 37 36  -..139..148..176
22350 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
22360 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
22370 2b 20 63 6f 6c 30 20 2b 20 2d 20 33 34 20 41 53  + col0 + - 34 AS
22380 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
22390 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
223a0 31 39 0d 0a 35 33 0d 0a 36 33 0d 0a 0d 0a 71 75  19..53..63....qu
223b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
223c0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
223d0 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 32  ab0 WHERE - col2
223e0 20 3c 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39   < col1..----..9
223f0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
22400 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
22410 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
22420 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  3b7....onlyif my
22430 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
22440 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
22450 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22460 74 20 6c 61 62 65 6c 2d 37 38 33 0d 0a 53 45 4c  t label-783..SEL
22470 45 43 54 20 2d 20 35 36 20 44 49 56 20 2d 20 2b  ECT - 56 DIV - +
22480 20 63 6f 6c 30 20 2b 20 2d 20 32 20 41 53 20 63   col0 + - 2 AS c
22490 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
224a0 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a 2d 32 0d  ---..-1..-2..-2.
224b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
224c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
224d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
224e0 74 20 6c 61 62 65 6c 2d 37 38 33 0d 0a 53 45 4c  t label-783..SEL
224f0 45 43 54 20 2d 20 35 36 20 2f 20 2d 20 2b 20 63  ECT - 56 / - + c
22500 6f 6c 30 20 2b 20 2d 20 32 20 41 53 20 63 6f 6c  ol0 + - 2 AS col
22510 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
22520 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a 2d 32 0d 0a 0d  -..-1..-2..-2...
22530 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
22540 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
22550 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
22560 6f 72 74 20 6c 61 62 65 6c 2d 37 38 34 0d 0a 53  ort label-784..S
22570 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 41 4c 4c  ELECT - SUM( ALL
22580 20 2d 20 37 39 20 29 20 46 52 4f 4d 20 74 61 62   - 79 ) FROM tab
22590 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 37 0d 0a 0d 0a  0..----..237....
225a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
225b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
225c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
225d0 61 62 65 6c 2d 37 38 34 0d 0a 53 45 4c 45 43 54  abel-784..SELECT
225e0 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 37   - SUM ( ALL - 7
225f0 39 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  9 ) FROM tab0..-
22600 2d 2d 2d 0d 0a 32 33 37 0d 0a 0d 0a 71 75 65 72  ---..237....quer
22610 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
22620 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2b  ECT ALL - col0 +
22630 20 2d 20 2b 20 39 32 20 2d 20 2d 20 38 37 20 41   - + 92 - - 87 A
22640 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
22650 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 0d 0a 2d 39 30  ..----..-56..-90
22660 0d 0a 2d 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-96....query I
22670 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22680 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
22690 48 45 52 45 20 2b 20 2d 20 63 6f 6c 30 20 2b 20  HERE + - col0 + 
226a0 63 6f 6c 32 20 3e 3d 20 33 37 20 2f 20 39 37 0d  col2 >= 37 / 97.
226b0 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34 0d 0a 39  .----..51..14..9
226c0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  6....skipif post
226d0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
226e0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
226f0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
22700 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
22710 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
22720 53 45 4c 45 43 54 20 34 34 20 63 6f 6c 32 2c 20  SELECT 44 col2, 
22730 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
22740 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
22750 34 34 0d 0a 31 35 0d 0a 34 34 0d 0a 38 37 0d 0a  44..15..44..87..
22760 34 34 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20  44..97....query 
22770 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22780 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
22790 30 20 2f 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b  0 / + - col1 + +
227a0 20 2d 20 33 35 20 2a 20 2b 20 63 6f 6c 30 20 2b   - 35 * + col0 +
227b0 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 28 20 2d 20   - - col0 + ( - 
227c0 63 6f 6c 31 20 29 20 2b 20 2b 20 2b 20 63 6f 6c  col1 ) + + + col
227d0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
227e0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
227f0 4e 55 4c 4c 20 29 20 3e 3d 20 2d 20 63 6f 6c 31  NULL ) >= - col1
22800 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
22810 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22820 54 20 2d 20 2b 20 33 35 20 2a 20 2b 20 32 35 20  T - + 35 * + 25 
22830 2d 20 37 36 20 2b 20 2b 20 63 6f 6c 32 20 46 52  - 76 + + col2 FR
22840 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
22850 0a 2d 2d 2d 2d 0d 0a 2d 38 35 32 0d 0a 2d 39 30  .----..-852..-90
22860 34 0d 0a 2d 39 34 31 0d 0a 0d 0a 6f 6e 6c 79 69  4..-941....onlyi
22870 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
22880 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
22890 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
228a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 30 0d  wsort label-790.
228b0 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55  .SELECT CAST( NU
228c0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
228d0 20 2d 20 35 36 20 2a 20 31 37 20 2a 20 2d 20 31   - 56 * 17 * - 1
228e0 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  8 FROM tab1..---
228f0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
22900 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
22910 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
22920 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
22930 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 30 0d  wsort label-790.
22940 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 4e  .SELECT CAST ( N
22950 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
22960 20 2b 20 2d 20 35 36 20 2a 20 31 37 20 2a 20 2d   + - 56 * 17 * -
22970 20 31 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   18 FROM tab1..-
22980 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
22990 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
229a0 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  IIIII rowsort..S
229b0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
229c0 20 74 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53   tab2 cor0 CROSS
229d0 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
229e0 72 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r1 WHERE NOT ( N
229f0 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ULL ) IS NULL..-
22a00 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
22a10 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
22a20 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
22a30 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
22a40 20 63 6f 6c 30 20 2a 20 36 37 20 2f 20 2b 20 63   col0 * 67 / + c
22a50 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
22a60 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
22a70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
22a80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
22a90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22aa0 6c 2d 37 39 33 0d 0a 53 45 4c 45 43 54 20 2b 20  l-793..SELECT + 
22ab0 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2d  COUNT( * ) + + -
22ac0 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 63   MAX( DISTINCT c
22ad0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol0 ) FROM tab0 
22ae0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
22af0 54 20 63 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20  T col2 NOT IN ( 
22b00 2d 20 36 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  - 60 )..----..NU
22b10 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
22b20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22b30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
22b40 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 33 0d 0a  sort label-793..
22b50 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
22b60 20 2a 20 29 20 2b 20 2b 20 2d 20 4d 41 58 20 28   * ) + + - MAX (
22b70 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29   DISTINCT col0 )
22b80 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
22b90 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
22ba0 32 20 4e 4f 54 20 49 4e 20 28 20 2d 20 36 30 20  2 NOT IN ( - 60 
22bb0 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  )..----..NULL...
22bc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22bd0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 35 20  ..SELECT ALL 45 
22be0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
22bf0 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 35 36  0 WHERE NOT + 56
22c00 20 3e 3d 20 2b 20 35 30 0d 0a 2d 2d 2d 2d 0d 0a   >= + 50..----..
22c10 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
22c20 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
22c30 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
22c40 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
22c50 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
22c60 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
22c70 45 43 54 20 2b 20 2b 20 36 35 20 2a 20 2b 20 2b  ECT + + 65 * + +
22c80 20 33 37 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 46   37 col0, col0 F
22c90 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
22ca0 0d 0a 2d 2d 2d 2d 0d 0a 32 34 30 35 0d 0a 34 36  ..----..2405..46
22cb0 0d 0a 32 34 30 35 0d 0a 36 34 0d 0a 32 34 30 35  ..2405..64..2405
22cc0 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..75....onlyif m
22cd0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
22ce0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
22cf0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
22d00 72 74 20 6c 61 62 65 6c 2d 37 39 36 0d 0a 53 45  rt label-796..SE
22d10 4c 45 43 54 20 2b 20 36 36 20 44 49 56 20 31 34  LECT + 66 DIV 14
22d20 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
22d30 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 34 0d 0a  r0..----..4..4..
22d40 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
22d50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
22d60 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
22d70 6f 72 74 20 6c 61 62 65 6c 2d 37 39 36 0d 0a 53  ort label-796..S
22d80 45 4c 45 43 54 20 2b 20 36 36 20 2f 20 31 34 20  ELECT + 66 / 14 
22d90 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
22da0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 34 0d 0a 34  0..----..4..4..4
22db0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
22dc0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
22dd0 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 2d 20  col0 * col2 * - 
22de0 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2a 20  col2 + - col0 * 
22df0 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
22e00 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
22e10 2d 2d 2d 2d 0d 0a 32 33 32 37 36 0d 0a 32 34 37  ----..23276..247
22e20 39 35 30 0d 0a 39 39 38 34 30 0d 0a 0d 0a 71 75  950..99840....qu
22e30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
22e40 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b  ELECT - col0 * +
22e50 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 41 53 20   col0 * col2 AS 
22e60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
22e70 2d 2d 2d 2d 0d 0a 2d 31 30 35 37 35 0d 0a 2d 37  ----..-10575..-7
22e80 35 36 39 30 0d 0a 2d 39 33 31 34 39 31 0d 0a 0d  5690..-931491...
22e90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
22ea0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
22eb0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
22ec0 6f 72 74 20 6c 61 62 65 6c 2d 37 39 39 0d 0a 53  ort label-799..S
22ed0 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 44  ELECT - COUNT( D
22ee0 49 53 54 49 4e 43 54 20 28 20 63 6f 6c 32 20 29  ISTINCT ( col2 )
22ef0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
22f00 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab2 WHERE NOT +
22f10 20 63 6f 6c 31 20 2a 20 2d 20 37 32 20 2b 20 63   col1 * - 72 + c
22f20 6f 6c 30 20 2a 20 63 6f 6c 30 20 42 45 54 57 45  ol0 * col0 BETWE
22f30 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 39 31  EN NULL AND + 91
22f40 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b  ..----..-1....sk
22f50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
22f60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
22f70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22f80 65 6c 2d 37 39 39 0d 0a 53 45 4c 45 43 54 20 2d  el-799..SELECT -
22f90 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43   COUNT ( DISTINC
22fa0 54 20 28 20 63 6f 6c 32 20 29 20 29 20 41 53 20  T ( col2 ) ) AS 
22fb0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
22fc0 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
22fd0 2a 20 2d 20 37 32 20 2b 20 63 6f 6c 30 20 2a 20  * - 72 + col0 * 
22fe0 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 4e 55 4c  col0 BETWEEN NUL
22ff0 4c 20 41 4e 44 20 2b 20 39 31 0d 0a 2d 2d 2d 2d  L AND + 91..----
23000 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-1....onlyif m
23010 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
23020 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
23030 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23040 2d 38 30 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  -800..SELECT DIS
23050 54 49 4e 43 54 20 2d 20 2b 20 33 39 20 2b 20 2d  TINCT - + 39 + -
23060 20 4d 49 4e 28 20 2b 20 35 33 20 29 20 46 52 4f   MIN( + 53 ) FRO
23070 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
23080 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 0d 0a 73 6b 69  ----..-92....ski
23090 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
230a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
230b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
230c0 6c 2d 38 30 30 0d 0a 53 45 4c 45 43 54 20 44 49  l-800..SELECT DI
230d0 53 54 49 4e 43 54 20 2d 20 2b 20 33 39 20 2b 20  STINCT - + 39 + 
230e0 2d 20 4d 49 4e 20 28 20 2b 20 35 33 20 29 20 46  - MIN ( + 53 ) F
230f0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
23100 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 0d 0a 6f  ..----..-92....o
23110 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
23120 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
23130 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23140 74 20 6c 61 62 65 6c 2d 38 30 31 0d 0a 53 45 4c  t label-801..SEL
23150 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2d 20 2d  ECT - COUNT( - -
23160 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20   col1 ) AS col2 
23170 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
23180 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  0..----..-3....s
23190 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
231a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
231b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
231c0 62 65 6c 2d 38 30 31 0d 0a 53 45 4c 45 43 54 20  bel-801..SELECT 
231d0 2d 20 43 4f 55 4e 54 20 28 20 2d 20 2d 20 63 6f  - COUNT ( - - co
231e0 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
231f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
23200 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79  ----..-3....only
23210 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
23220 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
23230 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23240 61 62 65 6c 2d 38 30 32 0d 0a 53 45 4c 45 43 54  abel-802..SELECT
23250 20 2b 20 2b 20 4d 49 4e 28 20 2b 20 34 37 20 29   + + MIN( + 47 )
23260 20 2a 20 2d 20 38 33 20 63 6f 6c 31 20 46 52 4f   * - 83 col1 FRO
23270 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
23280 2d 2d 2d 2d 0d 0a 2d 33 39 30 31 0d 0a 0d 0a 73  ----..-3901....s
23290 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
232a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
232b0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
232c0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
232d0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
232e0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
232f0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
23300 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 32  owsort label-802
23310 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 4d 49 4e  ..SELECT + + MIN
23320 20 28 20 2b 20 34 37 20 29 20 2a 20 2d 20 38 33   ( + 47 ) * - 83
23330 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
23340 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
23350 33 39 30 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  3901....query I 
23360 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23370 2b 20 36 36 20 2d 20 2b 20 2d 20 34 36 20 2b 20  + 66 - + - 46 + 
23380 38 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  85 FROM tab1 AS 
23390 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
233a0 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d   NULL ) IS NULL.
233b0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
233c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
233d0 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 34 38 20 2b   + + col1 * 48 +
233e0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
233f0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
23400 2d 2d 0d 0a 32 33 32 34 0d 0a 32 39 39 0d 0a 37  --..2324..299..7
23410 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  68....onlyif mys
23420 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
23430 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
23440 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23450 20 6c 61 62 65 6c 2d 38 30 35 0d 0a 53 45 4c 45   label-805..SELE
23460 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
23470 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
23480 20 29 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74   ) * col0 FROM t
23490 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
234a0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
234b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
234c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
234d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 35  owsort label-805
234e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
234f0 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  T CAST ( NULL AS
23500 20 49 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c   INTEGER ) * col
23510 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  0 FROM tab2 cor0
23520 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
23530 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
23540 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
23550 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
23560 63 6f 6c 30 20 2b 20 36 31 20 2a 20 2b 20 36 39  col0 + 61 * + 69
23570 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
23580 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
23590 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
235a0 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
235b0 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72  e4d54cad....quer
235c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
235d0 45 43 54 20 34 36 20 2b 20 63 6f 6c 30 20 41 53  ECT 46 + col0 AS
235e0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
235f0 0a 2d 2d 2d 2d 0d 0a 31 33 33 0d 0a 31 34 33 0d  .----..133..143.
23600 0a 36 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .61....onlyif my
23610 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
23620 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
23630 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23640 74 20 6c 61 62 65 6c 2d 38 30 38 0d 0a 53 45 4c  t label-808..SEL
23650 45 43 54 20 2d 20 30 20 2b 20 2b 20 36 33 20 44  ECT - 0 + + 63 D
23660 49 56 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46  IV + col1 col2 F
23670 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
23680 30 0d 0a 33 0d 0a 36 33 0d 0a 0d 0a 73 6b 69 70  0..3..63....skip
23690 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
236a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
236b0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
236c0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
236d0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
236e0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
236f0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
23700 6f 72 74 20 6c 61 62 65 6c 2d 38 30 38 0d 0a 53  ort label-808..S
23710 45 4c 45 43 54 20 2d 20 30 20 2b 20 2b 20 36 33  ELECT - 0 + + 63
23720 20 2f 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46   / + col1 col2 F
23730 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
23740 30 0d 0a 33 0d 0a 36 33 0d 0a 0d 0a 71 75 65 72  0..3..63....quer
23750 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
23760 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 33  ECT + col0 * - 3
23770 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  4 FROM tab0..---
23780 2d 0d 0a 2d 32 39 35 38 0d 0a 2d 33 32 39 38 0d  -..-2958..-3298.
23790 0a 2d 35 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-510....onlyif 
237a0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
237b0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
237c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
237d0 6f 72 74 20 6c 61 62 65 6c 2d 38 31 30 0d 0a 53  ort label-810..S
237e0 45 4c 45 43 54 20 31 33 20 2b 20 63 6f 6c 32 20  ELECT 13 + col2 
237f0 44 49 56 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  DIV col1 AS col0
23800 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
23810 0d 0a 31 31 32 0d 0a 31 33 0d 0a 31 33 0d 0a 0d  ..112..13..13...
23820 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23830 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23840 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23850 6c 61 62 65 6c 2d 38 31 30 0d 0a 53 45 4c 45 43  label-810..SELEC
23860 54 20 31 33 20 2b 20 63 6f 6c 32 20 2f 20 63 6f  T 13 + col2 / co
23870 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
23880 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 0d  tab0..----..112.
23890 0a 31 33 0d 0a 31 33 0d 0a 0d 0a 71 75 65 72 79  .13..13....query
238a0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
238b0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
238c0 20 57 48 45 52 45 20 28 20 37 30 20 29 20 3c 20   WHERE ( 70 ) < 
238d0 28 20 2b 20 32 31 20 2d 20 2b 20 38 20 29 0d 0a  ( + 21 - + 8 )..
238e0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
238f0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
23900 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
23910 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
23920 72 74 20 6c 61 62 65 6c 2d 38 31 32 0d 0a 53 45  rt label-812..SE
23930 4c 45 43 54 20 28 20 2b 20 36 20 29 20 2a 20 43  LECT ( + 6 ) * C
23940 41 53 54 28 20 2d 20 41 56 47 20 28 20 28 20 28  AST( - AVG ( ( (
23950 20 2b 20 63 6f 6c 32 20 29 20 29 20 29 20 41 53   + col2 ) ) ) AS
23960 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
23970 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
23980 45 20 4e 4f 54 20 33 36 20 2b 20 63 6f 6c 30 20  E NOT 36 + col0 
23990 3c 20 2d 20 32 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  < - 22..----..-4
239a0 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  44....skipif mys
239b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
239c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
239d0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 32 0d 0a  sort label-812..
239e0 53 45 4c 45 43 54 20 28 20 2b 20 36 20 29 20 2a  SELECT ( + 6 ) *
239f0 20 43 41 53 54 20 28 20 2d 20 41 56 47 20 28 20   CAST ( - AVG ( 
23a00 28 20 28 20 2b 20 63 6f 6c 32 20 29 20 29 20 29  ( ( + col2 ) ) )
23a10 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
23a20 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
23a30 57 48 45 52 45 20 4e 4f 54 20 33 36 20 2b 20 63  WHERE NOT 36 + c
23a40 6f 6c 30 20 3c 20 2d 20 32 32 0d 0a 2d 2d 2d 2d  ol0 < - 22..----
23a50 0d 0a 2d 34 34 34 0d 0a 0d 0a 71 75 65 72 79 20  ..-444....query 
23a60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23a70 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  T DISTINCT + col
23a80 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  1 FROM tab0 WHER
23a90 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 32 20 29  E NOT ( - col2 )
23aa0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c   NOT BETWEEN col
23ab0 32 20 2b 20 2d 20 34 37 20 41 4e 44 20 2d 20 63  2 + - 47 AND - c
23ac0 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
23ad0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
23ae0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
23af0 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
23b00 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45   NULL NOT BETWEE
23b10 4e 20 63 6f 6c 30 20 41 4e 44 20 2b 20 35 30 0d  N col0 AND + 50.
23b20 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
23b30 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
23b40 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
23b50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
23b60 6c 2d 38 31 35 0d 0a 53 45 4c 45 43 54 20 28 20  l-815..SELECT ( 
23b70 4d 49 4e 28 20 34 33 20 29 20 29 20 46 52 4f 4d  MIN( 43 ) ) FROM
23b80 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d   tab2..----..43.
23b90 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
23ba0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
23bb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23bc0 74 20 6c 61 62 65 6c 2d 38 31 35 0d 0a 53 45 4c  t label-815..SEL
23bd0 45 43 54 20 28 20 4d 49 4e 20 28 20 34 33 20 29  ECT ( MIN ( 43 )
23be0 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
23bf0 2d 2d 0d 0a 34 33 0d 0a 0d 0a 71 75 65 72 79 20  --..43....query 
23c00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
23c10 54 20 41 4c 4c 20 2b 20 37 31 20 2a 20 36 30 20  T ALL + 71 * 60 
23c20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
23c30 0a 34 32 36 30 0d 0a 34 32 36 30 0d 0a 34 32 36  .4260..4260..426
23c40 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
23c50 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
23c60 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
23c70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
23c80 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
23c90 43 54 20 2d 20 53 55 4d 28 20 32 39 20 29 20 2a  CT - SUM( 29 ) *
23ca0 20 31 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   15 FROM tab1..-
23cb0 2d 2d 2d 0d 0a 2d 31 33 30 35 0d 0a 0d 0a 73 6b  ---..-1305....sk
23cc0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
23cd0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
23ce0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
23cf0 65 6c 2d 38 31 37 0d 0a 53 45 4c 45 43 54 20 44  el-817..SELECT D
23d00 49 53 54 49 4e 43 54 20 2d 20 53 55 4d 20 28 20  ISTINCT - SUM ( 
23d10 32 39 20 29 20 2a 20 31 35 20 46 52 4f 4d 20 74  29 ) * 15 FROM t
23d20 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30 35  ab1..----..-1305
23d30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
23d40 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
23d50 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
23d60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23d70 61 62 65 6c 2d 38 31 38 0d 0a 53 45 4c 45 43 54  abel-818..SELECT
23d80 20 41 4c 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20   ALL CAST( NULL 
23d90 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 41 56  AS SIGNED ) / AV
23da0 47 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29  G ( ALL - col1 )
23db0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
23dc0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
23dd0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
23de0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
23df0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
23e00 31 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  18..SELECT ALL C
23e10 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
23e20 54 45 47 45 52 20 29 20 2f 20 41 56 47 20 28 20  TEGER ) / AVG ( 
23e30 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  ALL - col1 ) FRO
23e40 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
23e50 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
23e60 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
23e70 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
23e80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
23e90 31 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  19..SELECT COUNT
23ea0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
23eb0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
23ec0 54 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2d  T col2 BETWEEN -
23ed0 20 34 39 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 2b   49 / + col1 + +
23ee0 20 63 6f 6c 31 20 41 4e 44 20 63 6f 6c 31 20 2a   col1 AND col1 *
23ef0 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 33   - col0..----..3
23f00 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
23f10 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
23f20 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
23f30 72 74 20 6c 61 62 65 6c 2d 38 31 39 0d 0a 53 45  rt label-819..SE
23f40 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
23f50 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
23f60 62 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b0 WHERE NOT col
23f70 32 20 42 45 54 57 45 45 4e 20 2d 20 34 39 20 2f  2 BETWEEN - 49 /
23f80 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31   + col1 + + col1
23f90 20 41 4e 44 20 63 6f 6c 31 20 2a 20 2d 20 63 6f   AND col1 * - co
23fa0 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71  l0..----..3....q
23fb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23fc0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
23fd0 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  + - col0 AS col1
23fe0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
23ff0 20 33 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   32 IS NOT NULL.
24000 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 32 0d 0a 33  .----..-77..2..3
24010 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  2....onlyif mysq
24020 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
24030 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
24040 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24050 6c 61 62 65 6c 2d 38 32 31 0d 0a 53 45 4c 45 43  label-821..SELEC
24060 54 20 63 6f 6c 31 20 44 49 56 20 32 31 20 46 52  T col1 DIV 21 FR
24070 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
24080 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ..3..3....skipif
24090 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
240a0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
240b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
240c0 32 31 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  21..SELECT col1 
240d0 2f 20 32 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  / 21 FROM tab2..
240e0 2d 2d 2d 2d 0d 0a 32 0d 0a 33 0d 0a 33 0d 0a 0d  ----..2..3..3...
240f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24100 0d 0a 53 45 4c 45 43 54 20 2d 20 31 35 20 41 53  ..SELECT - 15 AS
24110 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
24120 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
24130 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
24140 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
24150 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
24160 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
24170 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24180 62 65 6c 2d 38 32 33 0d 0a 53 45 4c 45 43 54 20  bel-823..SELECT 
24190 35 34 20 44 49 56 20 2d 20 34 37 20 46 52 4f 4d  54 DIV - 47 FROM
241a0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab1..----..-1.
241b0 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69  .-1..-1....skipi
241c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
241d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
241e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
241f0 38 32 33 0d 0a 53 45 4c 45 43 54 20 35 34 20 2f  823..SELECT 54 /
24200 20 2d 20 34 37 20 46 52 4f 4d 20 74 61 62 31 0d   - 47 FROM tab1.
24210 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d  .----..-1..-1..-
24220 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
24230 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
24240 20 36 32 20 2b 20 36 30 20 41 53 20 63 6f 6c 30   62 + 60 AS col0
24250 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
24260 0d 0a 31 32 32 0d 0a 31 32 32 0d 0a 31 32 32 0d  ..122..122..122.
24270 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
24280 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
24290 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
242a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 35 0d  wsort label-825.
242b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
242c0 20 34 38 20 2a 20 39 34 20 2d 20 33 30 20 2a 20   48 * 94 - 30 * 
242d0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
242e0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
242f0 2d 2d 0d 0a 34 34 32 32 0d 0a 0d 0a 73 6b 69 70  --..4422....skip
24300 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
24310 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
24320 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24330 2d 38 32 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -825..SELECT DIS
24340 54 49 4e 43 54 20 34 38 20 2a 20 39 34 20 2d 20  TINCT 48 * 94 - 
24350 33 30 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29  30 * COUNT ( * )
24360 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
24370 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 34 32 32 0d 0a  b2..----..4422..
24380 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
24390 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
243a0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
243b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
243c0 65 6c 2d 38 32 36 0d 0a 53 45 4c 45 43 54 20 44  el-826..SELECT D
243d0 49 53 54 49 4e 43 54 20 28 20 2d 20 43 41 53 54  ISTINCT ( - CAST
243e0 28 20 2d 20 32 20 41 53 20 53 49 47 4e 45 44 20  ( - 2 AS SIGNED 
243f0 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ) ) AS col0 FROM
24400 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a   tab1..----..2..
24410 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
24420 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
24430 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24440 20 6c 61 62 65 6c 2d 38 32 36 0d 0a 53 45 4c 45   label-826..SELE
24450 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20  CT DISTINCT ( - 
24460 43 41 53 54 20 28 20 2d 20 32 20 41 53 20 49 4e  CAST ( - 2 AS IN
24470 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c  TEGER ) ) AS col
24480 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
24490 2d 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..2....query I 
244a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
244b0 39 37 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63  97 * - col2 AS c
244c0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
244d0 2d 2d 2d 0d 0a 2d 34 35 35 39 0d 0a 2d 39 36 30  ---..-4559..-960
244e0 33 0d 0a 2d 39 37 30 0d 0a 0d 0a 71 75 65 72 79  3..-970....query
244f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
24500 43 54 20 63 6f 6c 31 20 2b 20 33 33 20 2a 20 2d  CT col1 + 33 * -
24510 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
24520 0a 2d 2d 2d 2d 0d 0a 2d 31 35 30 34 0d 0a 2d 31  .----..-1504..-1
24530 36 30 0d 0a 2d 34 34 38 0d 0a 0d 0a 6f 6e 6c 79  60..-448....only
24540 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
24550 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
24560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24570 61 62 65 6c 2d 38 32 39 0d 0a 53 45 4c 45 43 54  abel-829..SELECT
24580 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
24590 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f   tab2 WHERE + co
245a0 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
245b0 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
245c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
245d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
245e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 39 0d  wsort label-829.
245f0 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
24600 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  * ) FROM tab2 WH
24610 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  ERE + col2 IS NU
24620 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f  LL..----..0....o
24630 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
24640 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
24650 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
24660 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24670 38 33 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  830..SELECT + CA
24680 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
24690 45 44 20 29 20 2a 20 2b 20 63 6f 6c 30 20 2b 20  ED ) * + col0 + 
246a0 39 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  9 * - col0 FROM 
246b0 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28  tab0 WHERE NOT (
246c0 20 2d 20 28 20 2b 20 33 38 20 29 20 2a 20 63 6f   - ( + 38 ) * co
246d0 6c 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  l0 ) IS NULL..--
246e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
246f0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
24700 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24710 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
24720 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 30  owsort label-830
24730 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
24740 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
24750 52 20 29 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 39  R ) * + col0 + 9
24760 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * - col0 FROM t
24770 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab0 WHERE NOT ( 
24780 2d 20 28 20 2b 20 33 38 20 29 20 2a 20 63 6f 6c  - ( + 38 ) * col
24790 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  0 ) IS NULL..---
247a0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
247b0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
247c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
247d0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
247e0 52 45 20 4e 4f 54 20 34 30 20 49 53 20 4e 4f 54  RE NOT 40 IS NOT
247f0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
24800 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
24810 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
24820 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
24830 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  ERE ( NULL ) NOT
24840 20 49 4e 20 28 20 63 6f 6c 31 20 2a 20 63 6f 6c   IN ( col1 * col
24850 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  2 )..----....onl
24860 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
24870 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
24880 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24890 6c 61 62 65 6c 2d 38 33 33 0d 0a 53 45 4c 45 43  label-833..SELEC
248a0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  T COUNT( * ) AS 
248b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
248c0 48 45 52 45 20 63 6f 6c 32 20 4e 4f 54 20 49 4e  HERE col2 NOT IN
248d0 20 28 20 34 39 20 2a 20 36 37 20 2b 20 2b 20 63   ( 49 * 67 + + c
248e0 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 29 0d 0a  ol0 * - col1 )..
248f0 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
24900 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
24910 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
24920 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24930 38 33 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  833..SELECT COUN
24940 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
24950 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
24960 63 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 34 39  col2 NOT IN ( 49
24970 20 2a 20 36 37 20 2b 20 2b 20 63 6f 6c 30 20 2a   * 67 + + col0 *
24980 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   - col1 )..----.
24990 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .3....query III 
249a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
249b0 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
249c0 45 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 49  E + ( + col2 ) I
249d0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
249e0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
249f0 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
24a00 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
24a10 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  fb43b7....onlyif
24a20 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
24a30 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
24a40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
24a50 65 6c 2d 38 33 35 0d 0a 53 45 4c 45 43 54 20 38  el-835..SELECT 8
24a60 35 20 2a 20 4d 41 58 28 20 41 4c 4c 20 2b 20 63  5 * MAX( ALL + c
24a70 6f 6c 32 20 29 20 2b 20 38 33 20 46 52 4f 4d 20  ol2 ) + 83 FROM 
24a80 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
24a90 0a 38 32 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .8243....skipif 
24aa0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
24ab0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
24ac0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
24ad0 35 0d 0a 53 45 4c 45 43 54 20 38 35 20 2a 20 4d  5..SELECT 85 * M
24ae0 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  AX ( ALL + col2 
24af0 29 20 2b 20 38 33 20 46 52 4f 4d 20 74 61 62 31  ) + 83 FROM tab1
24b00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 32 34   cor0..----..824
24b10 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
24b20 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
24b30 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
24b40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
24b50 36 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28  6..SELECT + SUM(
24b60 20 41 4c 4c 20 63 6f 6c 30 20 29 20 41 53 20 63   ALL col0 ) AS c
24b70 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
24b80 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
24b90 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
24ba0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
24bb0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
24bc0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
24bd0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
24be0 2d 38 33 36 0d 0a 53 45 4c 45 43 54 20 2b 20 53  -836..SELECT + S
24bf0 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20  UM ( ALL col0 ) 
24c00 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
24c10 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
24c20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
24c30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
24c40 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
24c50 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
24c60 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24c70 72 74 20 6c 61 62 65 6c 2d 38 33 37 0d 0a 53 45  rt label-837..SE
24c80 4c 45 43 54 20 38 33 20 2a 20 2b 20 43 4f 55 4e  LECT 83 * + COUN
24c90 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
24ca0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24cb0 32 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  249....skipif my
24cc0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
24cd0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
24ce0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 37 0d  wsort label-837.
24cf0 0a 53 45 4c 45 43 54 20 38 33 20 2a 20 2b 20 43  .SELECT 83 * + C
24d00 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
24d10 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
24d20 2d 2d 0d 0a 32 34 39 0d 0a 0d 0a 71 75 65 72 79  --..249....query
24d30 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
24d40 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
24d50 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
24d60 30 20 49 4e 20 28 20 36 36 20 2b 20 33 38 20 29  0 IN ( 66 + 38 )
24d70 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
24d80 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
24d90 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
24da0 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
24db0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
24dc0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
24dd0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
24de0 72 74 20 6c 61 62 65 6c 2d 38 33 39 0d 0a 53 45  rt label-839..SE
24df0 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 2b 20  LECT ALL MAX( + 
24e00 38 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  81 ) AS col0 FRO
24e10 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31  M tab0..----..81
24e20 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
24e30 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
24e40 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
24e50 72 74 20 6c 61 62 65 6c 2d 38 33 39 0d 0a 53 45  rt label-839..SE
24e60 4c 45 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 2b  LECT ALL MAX ( +
24e70 20 38 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52   81 ) AS col0 FR
24e80 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38  OM tab0..----..8
24e90 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
24ea0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 30 20  sort..SELECT 90 
24eb0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
24ec0 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  1 cor0 CROSS JOI
24ed0 4e 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20  N tab2..----..9 
24ee0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
24ef0 6f 20 39 36 66 37 61 39 30 34 32 38 64 62 39 33  o 96f7a90428db93
24f00 66 34 37 32 65 30 64 32 31 39 62 61 62 36 34 38  f472e0d219bab648
24f10 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  53....query III 
24f20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
24f30 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
24f40 45 20 4e 4f 54 20 28 20 38 35 20 2a 20 2d 20 63  E NOT ( 85 * - c
24f50 6f 6c 30 20 29 20 42 45 54 57 45 45 4e 20 28 20  ol0 ) BETWEEN ( 
24f60 31 30 20 29 20 41 4e 44 20 28 20 4e 55 4c 4c 20  10 ) AND ( NULL 
24f70 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
24f80 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
24f90 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
24fa0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
24fb0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24fc0 0d 0a 53 45 4c 45 43 54 20 33 39 20 2a 20 2d 20  ..SELECT 39 * - 
24fd0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
24fe0 2d 2d 2d 2d 0d 0a 2d 31 39 38 39 0d 0a 2d 32 36  ----..-1989..-26
24ff0 31 33 0d 0a 2d 33 30 30 33 0d 0a 0d 0a 6f 6e 6c  13..-3003....onl
25000 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
25010 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
25020 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
25030 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25040 38 34 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  843..SELECT * FR
25050 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
25060 54 20 28 20 4e 55 4c 4c 20 29 20 42 45 54 57 45  T ( NULL ) BETWE
25070 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 43 41  EN NULL AND - CA
25080 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
25090 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  ED )..----....sk
250a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
250b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
250c0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
250d0 61 62 65 6c 2d 38 34 33 0d 0a 53 45 4c 45 43 54  abel-843..SELECT
250e0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
250f0 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
25100 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
25110 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
25120 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d  S INTEGER )..---
25130 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
25140 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
25150 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
25160 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34  rowsort label-84
25170 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 41  4..SELECT MAX( A
25180 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63  LL + col0 ) AS c
25190 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
251a0 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69  ---..91....skipi
251b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
251c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
251d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
251e0 38 34 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20  844..SELECT MAX 
251f0 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 41  ( ALL + col0 ) A
25200 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
25210 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 71 75  ..----..91....qu
25220 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
25230 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
25240 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
25250 52 45 20 28 20 63 6f 6c 30 20 2a 20 2d 20 63 6f  RE ( col0 * - co
25260 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  l1 ) IS NOT NULL
25270 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
25280 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
25290 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
252a0 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
252b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
252c0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
252d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
252e0 72 74 20 6c 61 62 65 6c 2d 38 34 36 0d 0a 53 45  rt label-846..SE
252f0 4c 45 43 54 20 2d 20 53 55 4d 28 20 38 36 20 29  LECT - SUM( 86 )
25300 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
25310 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
25320 0d 0a 2d 32 35 38 0d 0a 0d 0a 73 6b 69 70 69 66  ..-258....skipif
25330 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
25340 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
25350 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25360 34 36 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d  46..SELECT - SUM
25370 20 28 20 38 36 20 29 20 41 53 20 63 6f 6c 30 20   ( 86 ) AS col0 
25380 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
25390 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 0d 0a 0d  0..----..-258...
253a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
253b0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
253c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
253d0 6f 72 74 20 6c 61 62 65 6c 2d 38 34 37 0d 0a 53  ort label-847..S
253e0 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2b  ELECT ALL MIN( +
253f0 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20   col2 ) AS col1 
25400 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
25410 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c  HERE NOT ( - col
25420 31 20 29 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20  1 ) IN ( + col2 
25430 2a 20 28 20 28 20 63 6f 6c 31 20 29 20 29 20 29  * ( ( col1 ) ) )
25440 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 73 6b  ..----..59....sk
25450 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
25460 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
25470 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25480 65 6c 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 41  el-847..SELECT A
25490 4c 4c 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 32 20  LL MIN ( + col2 
254a0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
254b0 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab1 cor0 WHERE N
254c0 4f 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 49 4e  OT ( - col1 ) IN
254d0 20 28 20 2b 20 63 6f 6c 32 20 2a 20 28 20 28 20   ( + col2 * ( ( 
254e0 63 6f 6c 31 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d  col1 ) ) )..----
254f0 0d 0a 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..59....skipif p
25500 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
25510 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
25520 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
25530 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
25540 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25550 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 63  ..SELECT ALL ( c
25560 6f 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  ol0 ) col1 FROM 
25570 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
25580 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a  --..46..64..75..
25590 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
255a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
255b0 33 32 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c  32 * col1 AS col
255c0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
255d0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
255e0 4c 4c 20 3c 3e 20 28 20 2d 20 31 20 29 0d 0a 2d  LL <> ( - 1 )..-
255f0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
25600 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25610 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
25620 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
25630 20 37 34 20 29 20 42 45 54 57 45 45 4e 20 2b 20   74 ) BETWEEN + 
25640 39 35 20 2b 20 2b 20 63 6f 6c 31 20 41 4e 44 20  95 + + col1 AND 
25650 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
25660 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
25670 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
25680 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
25690 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
256a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
256b0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
256c0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 28 20  RE NOT NULL > ( 
256d0 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
256e0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
256f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
25700 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
25710 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 34 33 20  T - col0 * + 43 
25720 2b 20 38 39 20 2f 20 34 39 20 4e 4f 54 20 42 45  + 89 / 49 NOT BE
25730 54 57 45 45 4e 20 28 20 39 37 20 2f 20 2b 20 35  TWEEN ( 97 / + 5
25740 31 20 2b 20 2b 20 32 20 29 20 41 4e 44 20 4e 55  1 + + 2 ) AND NU
25750 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
25760 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
25770 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
25780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
25790 61 62 65 6c 2d 38 35 33 0d 0a 53 45 4c 45 43 54  abel-853..SELECT
257a0 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 2b 20 35 37   MIN( ALL - + 57
257b0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
257c0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d  tab1..----..-57.
257d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
257e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
257f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25800 74 20 6c 61 62 65 6c 2d 38 35 33 0d 0a 53 45 4c  t label-853..SEL
25810 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20  ECT MIN ( ALL - 
25820 2b 20 35 37 20 29 20 41 53 20 63 6f 6c 30 20 46  + 57 ) AS col0 F
25830 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
25840 2d 35 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -57....query I r
25850 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
25860 49 53 54 49 4e 43 54 20 38 32 20 46 52 4f 4d 20  ISTINCT 82 FROM 
25870 74 61 62 30 20 57 48 45 52 45 20 36 35 20 49 53  tab0 WHERE 65 IS
25880 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
25890 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
258a0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
258b0 31 20 2a 20 2b 20 37 30 20 2a 20 2d 20 32 31 20  1 * + 70 * - 21 
258c0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
258d0 0a 31 31 39 30 37 30 0d 0a 31 34 37 30 0d 0a 33  .119070..1470..3
258e0 30 38 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0870....query I 
258f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25900 32 36 20 2b 20 2b 20 2b 20 36 39 20 41 53 20 63  26 + + + 69 AS c
25910 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
25920 2d 2d 2d 0d 0a 39 35 0d 0a 39 35 0d 0a 39 35 0d  ---..95..95..95.
25930 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
25940 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
25950 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
25960 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 37 0d  wsort label-857.
25970 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2b  .SELECT - MIN( +
25980 20 38 39 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28   89 ) + + COUNT(
25990 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   * ) FROM tab0..
259a0 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a 0d 0a 73 6b 69  ----..-86....ski
259b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
259c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
259d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
259e0 6c 2d 38 35 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-857..SELECT - 
259f0 4d 49 4e 20 28 20 2b 20 38 39 20 29 20 2b 20 2b  MIN ( + 89 ) + +
25a00 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
25a10 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  M tab0..----..-8
25a20 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
25a30 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
25a40 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
25a50 32 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 49  2 WHERE - col0 I
25a60 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
25a70 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a  ..51..67..77....
25a80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25a90 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 33  .SELECT col2 + 3
25aa0 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
25ab0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 37  ab2..----..57..7
25ac0 34 0d 0a 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  4..92....skipif 
25ad0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
25ae0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
25af0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
25b00 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
25b10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25b20 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38 31  t..SELECT ALL 81
25b30 20 2a 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46   * - col1 col1 F
25b40 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
25b50 2d 31 37 30 31 0d 0a 2d 36 35 36 31 0d 0a 2d 38  -1701..-6561..-8
25b60 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
25b70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
25b80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
25b90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36  rowsort label-86
25ba0 31 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20  1..SELECT + ( + 
25bb0 2d 20 43 4f 55 4e 54 28 20 2b 20 63 6f 6c 32 20  - COUNT( + col2 
25bc0 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ) ) FROM tab1..-
25bd0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ---..-3....skipi
25be0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
25bf0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
25c00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25c10 38 36 31 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  861..SELECT + ( 
25c20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f  + - COUNT ( + co
25c30 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  l2 ) ) FROM tab1
25c40 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e  ..----..-3....on
25c50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
25c60 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
25c70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25c80 20 6c 61 62 65 6c 2d 38 36 32 0d 0a 53 45 4c 45   label-862..SELE
25c90 43 54 20 41 4c 4c 20 4d 41 58 28 20 2d 20 38 34  CT ALL MAX( - 84
25ca0 20 29 20 2b 20 43 4f 55 4e 54 28 20 34 33 20 29   ) + COUNT( 43 )
25cb0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
25cc0 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-81....skipif 
25cd0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
25ce0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
25cf0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36  rowsort label-86
25d00 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  2..SELECT ALL MA
25d10 58 20 28 20 2d 20 38 34 20 29 20 2b 20 43 4f 55  X ( - 84 ) + COU
25d20 4e 54 20 28 20 34 33 20 29 20 46 52 4f 4d 20 74  NT ( 43 ) FROM t
25d30 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a  ab1..----..-81..
25d40 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
25d50 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
25d60 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
25d70 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 33 0d 0a  sort label-863..
25d80 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2b  SELECT ALL - ( +
25d90 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 63 6f 6c 31   MIN( ALL - col1
25da0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   ) ) FROM tab2..
25db0 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70  ----..77....skip
25dc0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
25dd0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
25de0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25df0 2d 38 36 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -863..SELECT ALL
25e00 20 2d 20 28 20 2b 20 4d 49 4e 20 28 20 41 4c 4c   - ( + MIN ( ALL
25e10 20 2d 20 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d   - col1 ) ) FROM
25e20 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d   tab2..----..77.
25e30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
25e40 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
25e50 20 2b 20 31 38 20 2b 20 2b 20 2d 20 63 6f 6c 31   + 18 + + - col1
25e60 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
25e70 0a 2d 2d 2d 2d 0d 0a 2d 33 33 0d 0a 2d 34 39 0d  .----..-33..-49.
25e80 0a 2d 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-59....query I 
25e90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25ea0 41 4c 4c 20 2b 20 35 39 20 2a 20 2b 20 63 6f 6c  ALL + 59 * + col
25eb0 30 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  0 * + col2 AS co
25ec0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
25ed0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 35 39 35 0d 0a  0..----..41595..
25ee0 35 31 33 33 30 0d 0a 35 36 36 35 37 37 0d 0a 0d  51330..566577...
25ef0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
25f00 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
25f10 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
25f20 4c 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c  L BETWEEN ( NULL
25f30 20 29 20 41 4e 44 20 28 20 2d 20 63 6f 6c 32 20   ) AND ( - col2 
25f40 2a 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  * col1 )..----..
25f50 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
25f60 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
25f70 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
25f80 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
25f90 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 33 30 20  LL BETWEEN + 30 
25fa0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
25fb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25fc0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
25fd0 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20  col0 * - - col0 
25fe0 2b 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  + - - col0 FROM 
25ff0 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
26000 0a 32 36 35 32 0d 0a 37 33 31 30 0d 0a 38 33 37  .2652..7310..837
26010 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
26020 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
26030 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   + + col0 * - co
26040 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63  l2 + + col1 AS c
26050 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
26060 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32   cor0..----..-62
26070 34 0d 0a 2d 38 34 39 0d 0a 2d 39 36 30 32 0d 0a  4..-849..-9602..
26080 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
26090 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
260a0 4e 43 54 20 2d 20 2b 20 36 2c 20 31 31 20 2a 20  NCT - + 6, 11 * 
260b0 2d 20 37 35 20 2b 20 28 20 63 6f 6c 30 20 29 20  - 75 + ( col0 ) 
260c0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
260d0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  0 cor0..----..-6
260e0 0d 0a 2d 37 32 38 0d 0a 2d 36 0d 0a 2d 37 33 38  ..-728..-6..-738
260f0 0d 0a 2d 36 0d 0a 2d 38 31 30 0d 0a 0d 0a 71 75  ..-6..-810....qu
26100 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
26110 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f  ELECT ALL + - co
26120 6c 32 20 2b 20 2d 20 34 30 20 2a 20 2b 20 63 6f  l2 + - 40 * + co
26130 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
26140 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 34  cor0..----..-164
26150 30 0d 0a 2d 32 33 37 38 0d 0a 2d 39 34 33 0d 0a  0..-2378..-943..
26160 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26170 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
26180 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
26190 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
261a0 65 6c 2d 38 37 32 0d 0a 53 45 4c 45 43 54 20 44  el-872..SELECT D
261b0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a  ISTINCT + col1 *
261c0 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 44   - col2 + col1 D
261d0 49 56 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c  IV - col0 AS col
261e0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
261f0 2d 0d 0a 2d 31 33 34 34 0d 0a 2d 32 39 35 0d 0a  -..-1344..-295..
26200 2d 33 31 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  -3196....skipif 
26210 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
26220 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
26230 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37  rowsort label-87
26240 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
26250 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  CT + col1 * - co
26260 6c 32 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 63 6f  l2 + col1 / - co
26270 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
26280 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34  tab1..----..-134
26290 34 0d 0a 2d 32 39 35 0d 0a 2d 33 31 39 36 0d 0a  4..-295..-3196..
262a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
262b0 74 0d 0a 53 45 4c 45 43 54 20 37 35 20 46 52 4f  t..SELECT 75 FRO
262c0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c  M tab0 WHERE NUL
262d0 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c  L NOT IN ( + col
262e0 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  2 )..----....onl
262f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
26300 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
26310 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26320 6c 61 62 65 6c 2d 38 37 34 0d 0a 53 45 4c 45 43  label-874..SELEC
26330 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  T - COUNT( * ) F
26340 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b  ROM tab0 WHERE +
26350 20 63 6f 6c 30 20 3d 20 2b 20 63 6f 6c 31 20 2d   col0 = + col1 -
26360 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   col1..----..0..
26370 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
26380 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
26390 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
263a0 20 6c 61 62 65 6c 2d 38 37 34 0d 0a 53 45 4c 45   label-874..SELE
263b0 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
263c0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
263d0 20 2b 20 63 6f 6c 30 20 3d 20 2b 20 63 6f 6c 31   + col0 = + col1
263e0 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30   - col1..----..0
263f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
26400 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
26410 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
26420 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 35  owsort label-875
26430 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28 20 2b 20  ..SELECT MIN( + 
26440 2b 20 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  + 1 ) FROM tab0.
26450 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .----..1....skip
26460 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
26470 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
26480 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26490 2d 38 37 35 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -875..SELECT MIN
264a0 20 28 20 2b 20 2b 20 31 20 29 20 46 52 4f 4d 20   ( + + 1 ) FROM 
264b0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  tab0..----..1...
264c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
264d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
264e0 6f 6c 30 20 2d 20 2d 20 2d 20 63 6f 6c 30 20 46  ol0 - - - col0 F
264f0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
26500 2d 31 32 38 0d 0a 2d 31 35 30 0d 0a 2d 39 32 0d  -128..-150..-92.
26510 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
26520 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
26530 4e 43 54 20 31 37 20 46 52 4f 4d 20 74 61 62 31  NCT 17 FROM tab1
26540 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
26550 42 45 54 57 45 45 4e 20 2b 20 2d 20 63 6f 6c 31  BETWEEN + - col1
26560 20 41 4e 44 20 36 34 20 2f 20 2b 20 36 34 0d 0a   AND 64 / + 64..
26570 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
26580 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
26590 41 4c 4c 20 2d 20 63 6f 6c 30 20 2d 20 28 20 2d  ALL - col0 - ( -
265a0 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63 6f   + col2 ) * + co
265b0 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
265c0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 38 34 35  tab1..----..4845
265d0 0d 0a 34 39 33 30 0d 0a 36 30 39 37 0d 0a 0d 0a  ..4930..6097....
265e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
265f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 39 20 2d  .SELECT ALL 99 -
26600 20 2d 20 38 33 20 2a 20 2b 20 2b 20 63 6f 6c 30   - 83 * + + col0
26610 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
26620 0d 0a 34 33 33 32 0d 0a 37 31 35 34 0d 0a 37 36  ..4332..7154..76
26630 35 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  52....onlyif mys
26640 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
26650 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
26660 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26670 38 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  80..SELECT + COU
26680 4e 54 28 20 41 4c 4c 20 33 35 20 29 20 46 52 4f  NT( ALL 35 ) FRO
26690 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 63  M tab1 WHERE ( c
266a0 6f 6c 32 20 2b 20 2d 20 33 32 20 2f 20 63 6f 6c  ol2 + - 32 / col
266b0 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  0 ) IS NULL..---
266c0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
266d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
266e0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
266f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 30  owsort label-880
26700 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
26710 20 28 20 41 4c 4c 20 33 35 20 29 20 46 52 4f 4d   ( ALL 35 ) FROM
26720 20 74 61 62 31 20 57 48 45 52 45 20 28 20 63 6f   tab1 WHERE ( co
26730 6c 32 20 2b 20 2d 20 33 32 20 2f 20 63 6f 6c 30  l2 + - 32 / col0
26740 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
26750 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
26760 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31  owsort..SELECT 1
26770 35 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 2b  5 * - - col0 - +
26780 20 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   7 AS col0 FROM 
26790 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39 38  tab0..----..1298
267a0 0d 0a 31 34 34 38 0d 0a 32 31 38 0d 0a 0d 0a 71  ..1448..218....q
267b0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
267c0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
267d0 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
267e0 4e 4f 54 20 28 20 2b 20 63 6f 6c 30 20 29 20 4e  NOT ( + col0 ) N
267f0 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 32 20  OT BETWEEN col2 
26800 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
26810 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26820 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
26830 2b 20 38 33 20 2a 20 2d 20 2d 20 32 34 20 2a 20  + 83 * - - 24 * 
26840 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - + col0 FROM ta
26850 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
26860 0d 0a 2d 31 30 31 35 39 32 0d 0a 2d 31 36 39 33  ..-101592..-1693
26870 32 30 0d 0a 2d 31 38 31 32 37 32 0d 0a 0d 0a 71  20..-181272....q
26880 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26890 53 45 4c 45 43 54 20 31 30 20 46 52 4f 4d 20 74  SELECT 10 FROM t
268a0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab2 WHERE NOT - 
268b0 63 6f 6c 31 20 3c 3e 20 28 20 4e 55 4c 4c 20 29  col1 <> ( NULL )
268c0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
268d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
268e0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
268f0 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30   AS col2, - col0
26900 20 2b 20 2b 20 2d 20 31 36 20 46 52 4f 4d 20 74   + + - 16 FROM t
26910 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
26920 2d 0d 0a 31 35 0d 0a 2d 33 31 0d 0a 38 37 0d 0a  -..15..-31..87..
26930 2d 31 30 33 0d 0a 39 37 0d 0a 2d 31 31 33 0d 0a  -103..97..-113..
26940 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26950 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
26960 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
26970 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 36 0d 0a  sort label-886..
26980 53 45 4c 45 43 54 20 4d 41 58 28 20 2b 20 63 6f  SELECT MAX( + co
26990 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l0 ) AS col2 FRO
269a0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
269b0 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70  ----..97....skip
269c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
269d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
269e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
269f0 2d 38 38 36 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -886..SELECT MAX
26a00 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63   ( + col0 ) AS c
26a10 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
26a20 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d   cor0..----..97.
26a30 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
26a40 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
26a50 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
26a60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 37 0d  wsort label-887.
26a70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28  .SELECT ALL MAX(
26a80 20 37 33 20 29 20 41 53 20 63 6f 6c 31 20 46 52   73 ) AS col1 FR
26a90 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
26aa0 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 0d 0a 73 6b 69  .----..73....ski
26ab0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
26ac0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
26ad0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26ae0 6c 2d 38 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c  l-887..SELECT AL
26af0 4c 20 4d 41 58 20 28 20 37 33 20 29 20 41 53 20  L MAX ( 73 ) AS 
26b00 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
26b10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 33  S cor0..----..73
26b20 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
26b30 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
26b40 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20  0 AS col0, col0 
26b50 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c 30 20 46 52  + col1 / col0 FR
26b60 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
26b70 57 48 45 52 45 20 4e 4f 54 20 2b 20 35 37 20 3e  WHERE NOT + 57 >
26b80 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
26b90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
26ba0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
26bb0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
26bc0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26bd0 2d 38 38 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -889..SELECT ALL
26be0 20 2d 20 63 6f 6c 32 20 2a 20 32 37 20 2a 20 2d   - col2 * 27 * -
26bf0 20 28 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2b 20   ( + col0 ) + + 
26c00 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
26c10 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
26c20 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
26c30 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
26c40 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
26c50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
26c60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
26c70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26c80 65 6c 2d 38 38 39 0d 0a 53 45 4c 45 43 54 20 41  el-889..SELECT A
26c90 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 32 37 20 2a  LL - col2 * 27 *
26ca0 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2b 20   - ( + col0 ) + 
26cb0 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
26cc0 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
26cd0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
26ce0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
26cf0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
26d00 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
26d10 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32  rt..SELECT ALL 2
26d20 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c  1 AS col2, - col
26d30 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
26d40 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 2d  ab0..----..21..-
26d50 31 35 0d 0a 32 31 0d 0a 2d 38 37 0d 0a 32 31 0d  15..21..-87..21.
26d60 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-97....onlyif m
26d70 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
26d80 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
26d90 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
26da0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26db0 20 6c 61 62 65 6c 2d 38 39 31 0d 0a 53 45 4c 45   label-891..SELE
26dc0 43 54 20 33 32 20 2f 20 2d 20 36 37 20 41 53 20  CT 32 / - 67 AS 
26dd0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
26de0 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20  HERE NOT - col2 
26df0 4e 4f 54 20 49 4e 20 28 20 2d 20 43 41 53 54 28  NOT IN ( - CAST(
26e00 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
26e10 20 29 20 2a 20 2b 20 2d 20 28 20 2d 20 43 41 53   ) * + - ( - CAS
26e20 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
26e30 44 20 29 20 29 20 2a 20 63 6f 6c 31 20 2b 20 2d  D ) ) * col1 + -
26e40 20 31 30 20 2a 20 63 6f 6c 30 20 29 0d 0a 2d 2d   10 * col0 )..--
26e50 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
26e60 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
26e70 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
26e80 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 31 0d 0a  sort label-891..
26e90 53 45 4c 45 43 54 20 33 32 20 2f 20 2d 20 36 37  SELECT 32 / - 67
26ea0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
26eb0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  b1 WHERE NOT - c
26ec0 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2d 20 43  ol2 NOT IN ( - C
26ed0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
26ee0 41 4c 20 29 20 2a 20 2b 20 2d 20 28 20 2d 20 43  AL ) * + - ( - C
26ef0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
26f00 54 45 47 45 52 20 29 20 29 20 2a 20 63 6f 6c 31  TEGER ) ) * col1
26f10 20 2b 20 2d 20 31 30 20 2a 20 63 6f 6c 30 20 29   + - 10 * col0 )
26f20 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
26f30 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
26f40 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
26f50 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
26f60 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 32 0d 0a  sort label-892..
26f70 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
26f80 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
26f90 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30  SIGNED ) AS col0
26fa0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
26fb0 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 3d 20 2d 20   NOT + col2 = - 
26fc0 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  col2..----..NULL
26fd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
26fe0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26ff0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
27000 72 74 20 6c 61 62 65 6c 2d 38 39 32 0d 0a 53 45  rt label-892..SE
27010 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
27020 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
27030 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
27040 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
27050 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 3d 20 2d 20   NOT + col2 = - 
27060 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  col2..----..NULL
27070 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
27080 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
27090 54 49 4e 43 54 20 2b 20 32 38 2c 20 63 6f 6c 32  TINCT + 28, col2
270a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
270b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 32 33  b2..----..28..23
270c0 0d 0a 32 38 0d 0a 34 30 0d 0a 32 38 0d 0a 35 38  ..28..40..28..58
270d0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
270e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
270f0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
27100 28 20 28 20 4e 4f 54 20 28 20 28 20 63 6f 6c 31  ( ( NOT ( ( col1
27110 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20   ) BETWEEN NULL 
27120 41 4e 44 20 2b 20 33 33 20 2a 20 31 37 20 29 20  AND + 33 * 17 ) 
27130 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
27140 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
27150 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2a 20  LECT + + col0 * 
27160 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63  - + col0 + - + c
27170 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d  ol1 + + col2 + -
27180 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2a 20 63   col2 * col0 * c
27190 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
271a0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
271b0 2d 2d 2d 0d 0a 2d 31 36 37 39 37 33 0d 0a 2d 33  ---..-167973..-3
271c0 33 31 38 38 34 0d 0a 2d 35 30 38 31 32 0d 0a 0d  31884..-50812...
271d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
271e0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
271f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27200 6f 72 74 20 6c 61 62 65 6c 2d 38 39 36 0d 0a 53  ort label-896..S
27210 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
27220 20 29 20 2b 20 2d 20 37 37 20 2b 20 2b 20 28 20   ) + - 77 + + ( 
27230 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
27240 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
27250 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
27260 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
27270 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27280 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
27290 6f 72 74 20 6c 61 62 65 6c 2d 38 39 36 0d 0a 53  ort label-896..S
272a0 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  ELECT - COUNT ( 
272b0 2a 20 29 20 2b 20 2d 20 37 37 20 2b 20 2b 20 28  * ) + - 77 + + (
272c0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 41   COUNT ( * ) ) A
272d0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
272e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
272f0 2d 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -77....query I r
27300 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
27310 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 31 35 20 46   + col2 + - 15 F
27320 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
27330 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 33 32 0d 0a  ..----..-5..32..
27340 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  84....query I ro
27350 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
27360 4c 20 2b 20 37 38 20 46 52 4f 4d 20 74 61 62 31  L + 78 FROM tab1
27370 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
27380 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
27390 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
273a0 20 68 61 73 68 69 6e 67 20 74 6f 20 32 61 66 66   hashing to 2aff
273b0 34 32 64 33 65 30 31 35 30 32 32 61 37 33 38 39  42d3e015022a7389
273c0 30 35 30 39 30 61 32 30 64 66 64 34 0d 0a 0d 0a  05090a20dfd4....
273d0 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77  query IIIIII row
273e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
273f0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
27400 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
27410 74 61 62 32 20 41 53 20 63 6f 72 31 20 57 48 45  tab2 AS cor1 WHE
27420 52 45 20 4e 4f 54 20 36 31 20 49 53 20 4e 55 4c  RE NOT 61 IS NUL
27430 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61 6c 75  L..----..54 valu
27440 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65 65  es hashing to ee
27450 35 31 32 39 62 61 65 35 32 39 33 39 33 35 61 65  5129bae5293935ae
27460 35 35 38 65 62 65 39 35 32 39 30 65 32 39 0d 0a  558ebe95290e29..
27470 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27480 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  t..SELECT + - co
27490 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 2b 20 37 35  l0 * col2 * + 75
274a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
274b0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
274c0 0d 0a 2d 35 32 38 37 35 0d 0a 2d 36 35 32 35 30  ..-52875..-65250
274d0 0d 0a 2d 37 32 30 32 32 35 0d 0a 0d 0a 6f 6e 6c  ..-720225....onl
274e0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
274f0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
27500 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
27510 20 6c 61 62 65 6c 2d 39 30 31 0d 0a 53 45 4c 45   label-901..SELE
27520 43 54 20 41 4c 4c 20 2b 20 4d 41 58 28 20 44 49  CT ALL + MAX( DI
27530 53 54 49 4e 43 54 20 38 31 20 29 20 2a 20 2d 20  STINCT 81 ) * - 
27540 37 33 20 41 53 20 63 6f 6c 30 2c 20 32 30 20 46  73 AS col0, 20 F
27550 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
27560 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 31 33 0d 0a 32  ..----..-5913..2
27570 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
27580 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27590 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
275a0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 31 0d 0a  sort label-901..
275b0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41 58  SELECT ALL + MAX
275c0 20 28 20 44 49 53 54 49 4e 43 54 20 38 31 20 29   ( DISTINCT 81 )
275d0 20 2a 20 2d 20 37 33 20 41 53 20 63 6f 6c 30 2c   * - 73 AS col0,
275e0 20 32 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53   20 FROM tab0 AS
275f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   cor0..----..-59
27600 31 33 0d 0a 32 30 0d 0a 0d 0a 71 75 65 72 79 20  13..20....query 
27610 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
27620 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
27630 30 20 2a 20 2d 20 28 20 2b 20 28 20 2b 20 2b 20  0 * - ( + ( + + 
27640 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61  col0 ) ) FROM ta
27650 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
27660 0d 0a 32 31 31 36 0d 0a 34 30 39 36 0d 0a 35 36  ..2116..4096..56
27670 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  25....query I ro
27680 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
27690 4c 20 2b 20 28 20 2d 20 38 32 20 29 20 2b 20 2b  L + ( - 82 ) + +
276a0 20 2d 20 33 30 20 46 52 4f 4d 20 74 61 62 32 20   - 30 FROM tab2 
276b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
276c0 31 31 32 0d 0a 2d 31 31 32 0d 0a 2d 31 31 32 0d  112..-112..-112.
276d0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
276e0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
276f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
27700 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
27710 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27720 20 6c 61 62 65 6c 2d 39 30 34 0d 0a 53 45 4c 45   label-904..SELE
27730 43 54 20 30 20 2d 20 2d 20 53 55 4d 28 20 44 49  CT 0 - - SUM( DI
27740 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20 4e  STINCT - CAST( N
27750 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
27760 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
27770 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
27780 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
27790 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
277a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
277b0 72 74 20 6c 61 62 65 6c 2d 39 30 34 0d 0a 53 45  rt label-904..SE
277c0 4c 45 43 54 20 30 20 2d 20 2d 20 53 55 4d 20 28  LECT 0 - - SUM (
277d0 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54   DISTINCT - CAST
277e0 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
277f0 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ) ) FROM tab1 AS
27800 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
27810 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
27820 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
27830 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
27840 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30  rowsort label-90
27850 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
27860 43 54 20 2d 20 4d 41 58 28 20 2b 20 2d 20 63 6f  CT - MAX( + - co
27870 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  l1 ) FROM tab1 A
27880 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d  S cor0..----..5.
27890 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
278a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
278b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
278c0 74 20 6c 61 62 65 6c 2d 39 30 35 0d 0a 53 45 4c  t label-905..SEL
278d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d  ECT DISTINCT - M
278e0 41 58 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20  AX ( + - col1 ) 
278f0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
27900 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 6f 6e  0..----..5....on
27910 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
27920 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
27930 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27940 20 6c 61 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45   label-906..SELE
27950 43 54 20 2b 20 2d 20 39 37 20 2d 20 2b 20 43 4f  CT + - 97 - + CO
27960 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
27970 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
27980 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 0d 0a 73  .----..-100....s
27990 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
279a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
279b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
279c0 62 65 6c 2d 39 30 36 0d 0a 53 45 4c 45 43 54 20  bel-906..SELECT 
279d0 2b 20 2d 20 39 37 20 2d 20 2b 20 43 4f 55 4e 54  + - 97 - + COUNT
279e0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
279f0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
27a00 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 0d 0a 73 6b 69  ---..-100....ski
27a10 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
27a20 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
27a30 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
27a40 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
27a50 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
27a60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
27a70 32 20 2d 20 32 39 20 63 6f 6c 32 20 46 52 4f 4d  2 - 29 col2 FROM
27a80 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
27a90 0d 0a 2d 32 37 0d 0a 2d 32 37 0d 0a 2d 32 37 0d  ..-27..-27..-27.
27aa0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27ab0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
27ac0 4e 43 54 20 2b 20 38 20 2b 20 2d 20 2b 20 63 6f  NCT + 8 + - + co
27ad0 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
27ae0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
27af0 2d 2d 0d 0a 2d 32 0d 0a 2d 33 39 0d 0a 2d 39 31  --..-2..-39..-91
27b00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
27b10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
27b20 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
27b30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 39  owsort label-909
27b40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b  ..SELECT ALL - +
27b50 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 39 34   COUNT( * ) + 94
27b60 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
27b70 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 0d 0a 73 6b 69  .----..91....ski
27b80 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
27b90 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
27ba0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
27bb0 6c 2d 39 30 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-909..SELECT AL
27bc0 4c 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  L - + COUNT ( * 
27bd0 29 20 2b 20 39 34 20 46 52 4f 4d 20 74 61 62 32  ) + 94 FROM tab2
27be0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d   cor0..----..91.
27bf0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27c00 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
27c10 4e 43 54 20 38 32 20 2b 20 2d 20 63 6f 6c 31 20  NCT 82 + - col1 
27c20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
27c30 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 36 31 0d 0a  0..----..1..61..
27c40 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  81....onlyif mys
27c50 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
27c60 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
27c70 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
27c80 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
27c90 72 74 20 6c 61 62 65 6c 2d 39 31 31 0d 0a 53 45  rt label-911..SE
27ca0 4c 45 43 54 20 4d 41 58 28 20 44 49 53 54 49 4e  LECT MAX( DISTIN
27cb0 43 54 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2a 20  CT + + col2 ) * 
27cc0 2d 20 38 30 20 2a 20 2d 20 2b 20 43 4f 55 4e 54  - 80 * - + COUNT
27cd0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
27ce0 57 48 45 52 45 20 28 20 2b 20 2b 20 43 41 53 54  WHERE ( + + CAST
27cf0 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  ( - col0 AS SIGN
27d00 45 44 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  ED ) ) IS NULL..
27d10 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
27d20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
27d30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
27d40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27d50 65 6c 2d 39 31 31 0d 0a 53 45 4c 45 43 54 20 4d  el-911..SELECT M
27d60 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  AX ( DISTINCT + 
27d70 2b 20 63 6f 6c 32 20 29 20 2a 20 2d 20 38 30 20  + col2 ) * - 80 
27d80 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  * - + COUNT ( * 
27d90 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
27da0 45 20 28 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  E ( + + CAST ( -
27db0 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
27dc0 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d   ) ) IS NULL..--
27dd0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
27de0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
27df0 4c 45 43 54 20 41 4c 4c 20 37 35 2c 20 2b 20 63  LECT ALL 75, + c
27e00 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
27e10 2d 2d 2d 0d 0a 37 35 0d 0a 31 0d 0a 37 35 0d 0a  ---..75..1..75..
27e20 32 31 0d 0a 37 35 0d 0a 38 31 0d 0a 0d 0a 6f 6e  21..75..81....on
27e30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
27e40 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
27e50 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
27e60 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
27e70 2d 39 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -913..SELECT DIS
27e80 54 49 4e 43 54 20 39 32 2c 20 2b 20 43 41 53 54  TINCT 92, + CAST
27e90 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
27ea0 4c 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  L ) AS col2 FROM
27eb0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d   tab2..----..92.
27ec0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
27ed0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
27ee0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
27ef0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
27f00 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  13..SELECT DISTI
27f10 4e 43 54 20 39 32 2c 20 2b 20 43 41 53 54 20 28  NCT 92, + CAST (
27f20 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
27f30 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
27f40 32 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 4e 55 4c  2..----..92..NUL
27f50 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
27f60 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
27f70 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
27f80 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
27f90 2b 20 32 33 20 29 20 49 53 20 4e 4f 54 20 4e 55  + 23 ) IS NOT NU
27fa0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
27fb0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
27fc0 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
27fd0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
27fe0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27ff0 39 31 35 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  915..SELECT * FR
28000 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
28010 54 20 33 31 20 2a 20 2d 20 63 6f 6c 31 20 2b 20  T 31 * - col1 + 
28020 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - - CAST( NULL A
28030 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 35 38  S DECIMAL ) + 58
28040 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   > NULL..----...
28050 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
28060 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
28070 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
28080 74 20 6c 61 62 65 6c 2d 39 31 35 0d 0a 53 45 4c  t label-915..SEL
28090 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
280a0 57 48 45 52 45 20 4e 4f 54 20 33 31 20 2a 20 2d  WHERE NOT 31 * -
280b0 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 43 41 53 54   col1 + - - CAST
280c0 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
280d0 29 20 2b 20 35 38 20 3e 20 4e 55 4c 4c 0d 0a 2d  ) + 58 > NULL..-
280e0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
280f0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
28100 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
28110 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
28120 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
28130 6f 72 74 20 6c 61 62 65 6c 2d 39 31 36 0d 0a 53  ort label-916..S
28140 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 2d 20  ELECT - CAST( - 
28150 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49  COUNT( * ) AS SI
28160 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46  GNED ) AS col2 F
28170 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
28180 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
28190 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
281a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
281b0 6f 72 74 20 6c 61 62 65 6c 2d 39 31 36 0d 0a 53  ort label-916..S
281c0 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 2d  ELECT - CAST ( -
281d0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
281e0 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
281f0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
28200 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..3....query II
28210 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28220 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
28230 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  1 cor0 WHERE NOT
28240 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   - col2 IS NOT N
28250 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
28260 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
28270 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
28280 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
28290 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
282a0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
282b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
282c0 4c 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63  L - + col2 * - c
282d0 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol1 col1 FROM ta
282e0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
282f0 0d 0a 31 33 34 34 0d 0a 32 39 35 0d 0a 33 31 39  ..1344..295..319
28300 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
28310 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
28320 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
28330 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28340 6c 61 62 65 6c 2d 39 31 39 0d 0a 53 45 4c 45 43  label-919..SELEC
28350 54 20 44 49 53 54 49 4e 43 54 20 28 20 43 41 53  T DISTINCT ( CAS
28360 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
28370 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  D ) ) AS col1 FR
28380 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
28390 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
283a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
283b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
283c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
283d0 62 65 6c 2d 39 31 39 0d 0a 53 45 4c 45 43 54 20  bel-919..SELECT 
283e0 44 49 53 54 49 4e 43 54 20 28 20 43 41 53 54 20  DISTINCT ( CAST 
283f0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
28400 52 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  R ) ) AS col1 FR
28410 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
28420 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
28430 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
28440 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28450 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
28460 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
28470 28 20 63 6f 6c 31 20 29 20 3e 20 4e 55 4c 4c 0d  ( col1 ) > NULL.
28480 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
28490 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
284a0 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
284b0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
284c0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
284d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 31 0d  wsort label-921.
284e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
284f0 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
28500 2d 20 28 20 2d 20 2b 20 28 20 2d 20 2d 20 4d 49  - ( - + ( - - MI
28510 4e 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 29 20  N( - + col1 ) ) 
28520 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
28530 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
28540 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
28550 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
28560 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
28570 6f 72 74 20 6c 61 62 65 6c 2d 39 32 31 0d 0a 53  ort label-921..S
28580 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
28590 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d 20 28  OUNT ( * ) / - (
285a0 20 2d 20 2b 20 28 20 2d 20 2d 20 4d 49 4e 20 28   - + ( - - MIN (
285b0 20 2d 20 2b 20 63 6f 6c 31 20 29 20 29 20 29 20   - + col1 ) ) ) 
285c0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
285d0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  2 cor0..----..0.
285e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
285f0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
28600 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
28610 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
28620 62 65 6c 2d 39 32 32 0d 0a 53 45 4c 45 43 54 20  bel-922..SELECT 
28630 41 4c 4c 20 2d 20 2b 20 35 36 20 2a 20 2d 20 63  ALL - + 56 * - c
28640 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b  ol0 * + col1 + +
28650 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 2d 20 2b   col2 + col2 - +
28660 20 2b 20 43 41 53 54 28 20 2b 20 38 35 20 41 53   + CAST( + 85 AS
28670 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74   SIGNED ) FROM t
28680 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
28690 2d 0d 0a 32 33 38 33 33 0d 0a 32 33 39 35 36 33  -..23833..239563
286a0 0d 0a 34 30 30 39 31 0d 0a 0d 0a 73 6b 69 70 69  ..40091....skipi
286b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
286c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
286d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
286e0 39 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  922..SELECT ALL 
286f0 2d 20 2b 20 35 36 20 2a 20 2d 20 63 6f 6c 30 20  - + 56 * - col0 
28700 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  * + col1 + + col
28710 32 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 43  2 + col2 - + + C
28720 41 53 54 20 28 20 2b 20 38 35 20 41 53 20 49 4e  AST ( + 85 AS IN
28730 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
28740 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
28750 0a 32 33 38 33 33 0d 0a 32 33 39 35 36 33 0d 0a  .23833..239563..
28760 34 30 30 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  40091....onlyif 
28770 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
28780 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
28790 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
287a0 6f 72 74 20 6c 61 62 65 6c 2d 39 32 33 0d 0a 53  ort label-923..S
287b0 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 63  ELECT col1 * - c
287c0 6f 6c 32 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ol2 + col1 FROM 
287d0 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
287e0 4e 4f 54 20 28 20 63 6f 6c 31 20 2a 20 2b 20 31  NOT ( col1 * + 1
287f0 38 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 63  8 * + + col1 + c
28800 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 35  ol0 + - col2 + 5
28810 36 20 2a 20 37 37 20 2f 20 43 41 53 54 28 20 4e  6 * 77 / CAST( N
28820 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
28830 29 20 3d 20 63 6f 6c 31 20 2a 20 2b 20 35 31 0d  ) = col1 * + 51.
28840 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
28850 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28860 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32  rowsort label-92
28880 33 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a  3..SELECT col1 *
28890 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 46   - col2 + col1 F
288a0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
288b0 45 52 45 20 4e 4f 54 20 28 20 63 6f 6c 31 20 2a  ERE NOT ( col1 *
288c0 20 2b 20 31 38 20 2a 20 2b 20 2b 20 63 6f 6c 31   + 18 * + + col1
288d0 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32   + col0 + - col2
288e0 20 2b 20 35 36 20 2a 20 37 37 20 2f 20 43 41 53   + 56 * 77 / CAS
288f0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
28900 47 45 52 20 29 20 29 20 3d 20 63 6f 6c 31 20 2a  GER ) ) = col1 *
28910 20 2b 20 35 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   + 51..----....q
28920 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28930 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
28940 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2b  - + col1 * + ( +
28950 20 38 31 20 29 20 2b 20 2b 20 63 6f 6c 31 20 46   81 ) + + col1 F
28960 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
28970 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 38 30 0d 0a 2d  ..----..-1680..-
28980 36 34 38 30 0d 0a 2d 38 30 0d 0a 0d 0a 71 75 65  6480..-80....que
28990 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
289a0 4c 45 43 54 20 2b 20 34 30 20 2b 20 2d 20 63 6f  LECT + 40 + - co
289b0 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
289c0 2d 2d 0d 0a 2d 31 39 0d 0a 2d 32 38 0d 0a 2d 35  --..-19..-28..-5
289d0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
289e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
289f0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
28a00 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
28a10 2d 20 63 6f 6c 31 20 49 4e 20 28 20 2d 20 63 6f  - col1 IN ( - co
28a20 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d  l2 + + col0 )..-
28a30 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
28a40 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
28a50 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
28a60 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65  b962d0a49....que
28a70 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
28a80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
28a90 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
28aa0 45 20 4e 4f 54 20 2b 20 34 32 20 3e 20 4e 55 4c  E NOT + 42 > NUL
28ab0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
28ac0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
28ad0 43 54 20 41 4c 4c 20 2d 20 39 34 20 2a 20 2d 20  CT ALL - 94 * - 
28ae0 2b 20 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f  + ( - col0 ) FRO
28af0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab1..----..-4
28b00 37 39 34 0d 0a 2d 37 39 39 30 0d 0a 2d 38 35 35  794..-7990..-855
28b10 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
28b20 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
28b30 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
28b40 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
28b50 20 6c 61 62 65 6c 2d 39 32 39 0d 0a 53 45 4c 45   label-929..SELE
28b60 43 54 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20  CT col0, - col0 
28b70 2a 20 2d 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c  * - col2 DIV col
28b80 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
28b90 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35  ab1..----..51..5
28ba0 31 0d 0a 38 35 0d 0a 38 35 0d 0a 39 31 0d 0a 39  1..85..85..91..9
28bb0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
28bc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
28bd0 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
28be0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 39 0d 0a  sort label-929..
28bf0 53 45 4c 45 43 54 20 63 6f 6c 30 2c 20 2d 20 63  SELECT col0, - c
28c00 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2f 20 63  ol0 * - col2 / c
28c10 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
28c20 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   tab1..----..51.
28c30 0a 35 31 0d 0a 38 35 0d 0a 38 35 0d 0a 39 31 0d  .51..85..85..91.
28c40 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .91....skipif po
28c50 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
28c60 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
28c70 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
28c80 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
28c90 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
28ca0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d  ..SELECT ALL + -
28cb0 20 28 20 63 6f 6c 31 20 29 20 2b 20 2b 20 2d 20   ( col1 ) + + - 
28cc0 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 2d 20 63  ( col2 ) * + - c
28cd0 6f 6c 31 20 2a 20 28 20 2b 20 2d 20 28 20 2d 20  ol1 * ( + - ( - 
28ce0 63 6f 6c 30 20 29 20 29 2c 20 2b 20 63 6f 6c 32  col0 ) ), + col2
28cf0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
28d00 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
28d10 39 37 30 34 33 0d 0a 34 30 0d 0a 32 39 31 33 38  97043..40..29138
28d20 33 0d 0a 35 38 0d 0a 35 33 39 30 37 0d 0a 32 33  3..58..53907..23
28d30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
28d40 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
28d50 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
28d60 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 2d  0 WHERE NULL > -
28d70 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col2..----....q
28d80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28d90 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
28da0 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  + + col0 * + col
28db0 30 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b  0 + - + col0 * +
28dc0 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 41   col2 + + col2 A
28dd0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
28de0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   cor0..----..-21
28df0 39 39 0d 0a 32 31 36 31 0d 0a 32 32 36 39 0d 0a  99..2161..2269..
28e00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28e10 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34 30 20 2b  t..SELECT + 40 +
28e20 20 2d 20 36 34 20 41 53 20 63 6f 6c 30 20 46 52   - 64 AS col0 FR
28e30 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
28e40 32 34 0d 0a 2d 32 34 0d 0a 2d 32 34 0d 0a 0d 0a  24..-24..-24....
28e50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
28e60 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
28e70 6c 31 20 2d 20 2b 20 2b 20 36 20 46 52 4f 4d 20  l1 - + + 6 FROM 
28e80 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a  tab0..----..-5..
28e90 31 35 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20  15..75....query 
28ea0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28eb0 54 20 2d 20 2b 20 34 34 20 2b 20 2b 20 63 6f 6c  T - + 44 + + col
28ec0 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
28ed0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
28ee0 2d 0d 0a 2d 32 39 0d 0a 34 33 0d 0a 35 33 0d 0a  -..-29..43..53..
28ef0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
28f00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
28f10 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
28f20 57 48 45 52 45 20 37 31 20 49 4e 20 28 20 2b 20  WHERE 71 IN ( + 
28f30 2d 20 33 30 2c 20 2b 20 63 6f 6c 31 20 29 0d 0a  - 30, + col1 )..
28f40 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
28f50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28f60 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
28f70 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
28f80 2d 20 34 38 20 2b 20 2d 20 2d 20 63 6f 6c 32 20  - 48 + - - col2 
28f90 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
28fa0 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
28fb0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
28fc0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
28fd0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
28fe0 6f 72 74 20 6c 61 62 65 6c 2d 39 33 38 0d 0a 53  ort label-938..S
28ff0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20  ELECT ALL + ( + 
29000 28 20 43 4f 55 4e 54 28 20 44 49 53 54 49 4e 43  ( COUNT( DISTINC
29010 54 20 2d 20 2b 20 63 6f 6c 32 20 29 20 29 20 29  T - + col2 ) ) )
29020 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
29030 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
29040 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
29050 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29060 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
29070 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 38 0d  wsort label-938.
29080 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20  .SELECT ALL + ( 
29090 2b 20 28 20 43 4f 55 4e 54 20 28 20 44 49 53 54  + ( COUNT ( DIST
290a0 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 20 29 20  INCT - + col2 ) 
290b0 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
290c0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
290d0 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
290e0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
290f0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
29100 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
29110 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
29120 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
29130 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
29140 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  2 col1 FROM tab1
29150 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
29160 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
29170 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36  -..-59..-68..-96
29180 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29190 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
291a0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
291b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
291c0 61 62 65 6c 2d 39 34 30 0d 0a 53 45 4c 45 43 54  abel-940..SELECT
291d0 20 44 49 53 54 49 4e 43 54 20 31 20 2a 20 2d 20   DISTINCT 1 * - 
291e0 38 36 20 44 49 56 20 63 6f 6c 32 20 44 49 56 20  86 DIV col2 DIV 
291f0 2d 20 35 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 55 AS col1 FRO
29200 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
29210 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
29220 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29230 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29240 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29250 39 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  940..SELECT DIST
29260 49 4e 43 54 20 31 20 2a 20 2d 20 38 36 20 2f 20  INCT 1 * - 86 / 
29270 63 6f 6c 32 20 2f 20 2d 20 35 35 20 41 53 20 63  col2 / - 55 AS c
29280 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
29290 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
292a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
292b0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
292c0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
292d0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 31 0d 0a  sort label-941..
292e0 53 45 4c 45 43 54 20 2b 20 37 31 20 2a 20 2d 20  SELECT + 71 * - 
292f0 2d 20 32 33 20 2a 20 2d 20 43 4f 55 4e 54 28 20  - 23 * - COUNT( 
29300 2a 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  * ) + - COUNT( *
29310 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
29320 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
29330 2d 2d 0d 0a 2d 34 39 30 32 0d 0a 0d 0a 73 6b 69  --..-4902....ski
29340 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
29350 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
29360 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29370 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-941..SELECT + 
29380 37 31 20 2a 20 2d 20 2d 20 32 33 20 2a 20 2d 20  71 * - - 23 * - 
29390 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20  COUNT ( * ) + - 
293a0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
293b0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
293c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39   cor0..----..-49
293d0 30 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  02....onlyif mys
293e0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
293f0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
29400 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29410 34 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 4d  42..SELECT + + M
29420 41 58 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 46  AX( - + col2 ) F
29430 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
29440 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70  ---..-59....skip
29450 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29460 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
29470 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29480 2d 39 34 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -942..SELECT + +
29490 20 4d 41 58 20 28 20 2d 20 2b 20 63 6f 6c 32 20   MAX ( - + col2 
294a0 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
294b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 6f  ..----..-59....o
294c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
294d0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
294e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
294f0 74 20 6c 61 62 65 6c 2d 39 34 33 0d 0a 53 45 4c  t label-943..SEL
29500 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 2d 20 63  ECT ALL SUM( - c
29510 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol1 ) FROM tab1 
29520 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
29530 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  T NULL IS NOT NU
29540 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d  LL..----..-66...
29550 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
29560 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
29570 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
29580 6c 61 62 65 6c 2d 39 34 33 0d 0a 53 45 4c 45 43  label-943..SELEC
29590 54 20 41 4c 4c 20 53 55 4d 20 28 20 2d 20 63 6f  T ALL SUM ( - co
295a0 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  l1 ) FROM tab1 A
295b0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
295c0 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
295d0 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a  L..----..-66....
295e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
295f0 0a 53 45 4c 45 43 54 20 32 33 20 2a 20 2b 20 2d  .SELECT 23 * + -
29600 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
29610 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
29620 0a 2d 2d 2d 2d 0d 0a 2d 31 33 33 34 0d 0a 2d 35  .----..-1334..-5
29630 32 39 0d 0a 2d 39 32 30 0d 0a 0d 0a 6f 6e 6c 79  29..-920....only
29640 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
29650 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
29660 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29670 61 62 65 6c 2d 39 34 35 0d 0a 53 45 4c 45 43 54  abel-945..SELECT
29680 20 2d 20 2d 20 53 55 4d 28 20 2b 20 2b 20 63 6f   - - SUM( + + co
29690 6c 30 20 29 20 2a 20 2b 20 28 20 2b 20 31 20 29  l0 ) * + ( + 1 )
296a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
296b0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
296c0 20 4e 4f 54 20 2b 20 28 20 2d 20 28 20 2d 20 63   NOT + ( - ( - c
296d0 6f 6c 32 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d  ol2 ) ) IS NULL.
296e0 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 0d 0a 73 6b  .----..199....sk
296f0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
29700 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
29710 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29720 65 6c 2d 39 34 35 0d 0a 53 45 4c 45 43 54 20 2d  el-945..SELECT -
29730 20 2d 20 53 55 4d 20 28 20 2b 20 2b 20 63 6f 6c   - SUM ( + + col
29740 30 20 29 20 2a 20 2b 20 28 20 2b 20 31 20 29 20  0 ) * + ( + 1 ) 
29750 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
29760 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
29770 4e 4f 54 20 2b 20 28 20 2d 20 28 20 2d 20 63 6f  NOT + ( - ( - co
29780 6c 32 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  l2 ) ) IS NULL..
29790 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 0d 0a 73 6b 69  ----..199....ski
297a0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
297b0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
297c0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
297d0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
297e0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
297f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
29800 4c 20 2b 20 32 39 20 2a 20 2d 20 2b 20 34 32 20  L + 29 * - + 42 
29810 2a 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d  * col0 col1 FROM
29820 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36   tab2..----..-56
29830 30 32 38 0d 0a 2d 37 37 39 35 32 0d 0a 2d 39 31  028..-77952..-91
29840 33 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  350....onlyif my
29850 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
29860 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
29870 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
29880 2d 39 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -947..SELECT + M
29890 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29  AX( ALL + col2 )
298a0 20 41 53 20 63 6f 6c 30 2c 20 2d 20 31 30 20 41   AS col0, - 10 A
298b0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
298c0 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 2d 31 30 0d  ..----..58..-10.
298d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
298e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
298f0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
29900 72 74 20 6c 61 62 65 6c 2d 39 34 37 0d 0a 53 45  rt label-947..SE
29910 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 41 4c 4c  LECT + MAX ( ALL
29920 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   + col2 ) AS col
29930 30 2c 20 2d 20 31 30 20 41 53 20 63 6f 6c 30 20  0, - 10 AS col0 
29940 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
29950 0a 35 38 0d 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72  .58..-10....quer
29960 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
29970 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d  ECT DISTINCT ( -
29980 20 2b 20 63 6f 6c 31 20 29 20 2a 20 35 30 20 46   + col1 ) * 50 F
29990 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
299a0 2d 32 35 35 30 0d 0a 2d 33 33 35 30 0d 0a 2d 33  -2550..-3350..-3
299b0 38 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  850....query III
299c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
299d0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
299e0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
299f0 20 2b 20 31 20 29 20 4e 4f 54 20 49 4e 20 28 20   + 1 ) NOT IN ( 
29a00 2d 20 31 31 2c 20 2d 20 63 6f 6c 32 20 2a 20 2b  - 11, - col2 * +
29a10 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   + col1 )..----.
29a20 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
29a30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
29a40 35 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  5 AS col1, + col
29a50 31 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f  1 + + + col0 FRO
29a60 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 0d  M tab1..----..5.
29a70 0a 31 33 38 0d 0a 35 0d 0a 36 35 0d 0a 35 0d 0a  .138..5..65..5..
29a80 39 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  90....query I ro
29a90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
29aa0 53 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63  STINCT col0 AS c
29ab0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol0 FROM tab2 WH
29ac0 45 52 45 20 4e 4f 54 20 2d 20 28 20 2d 20 2d 20  ERE NOT - ( - - 
29ad0 63 6f 6c 32 20 29 20 42 45 54 57 45 45 4e 20 2b  col2 ) BETWEEN +
29ae0 20 63 6f 6c 32 20 41 4e 44 20 28 20 4e 55 4c 4c   col2 AND ( NULL
29af0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34   )..----..46..64
29b00 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..75....query I 
29b10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
29b20 44 49 53 54 49 4e 43 54 20 31 36 20 46 52 4f 4d  DISTINCT 16 FROM
29b30 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c   tab0 WHERE NULL
29b40 20 3c 3e 20 2d 20 37 32 0d 0a 2d 2d 2d 2d 0d 0a   <> - 72..----..
29b50 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
29b60 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
29b70 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
29b80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29b90 65 6c 2d 39 35 33 0d 0a 53 45 4c 45 43 54 20 41  el-953..SELECT A
29ba0 4c 4c 20 2b 20 35 37 20 44 49 56 20 2d 20 2d 20  LL + 57 DIV - - 
29bb0 32 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  23 FROM tab1..--
29bc0 2d 2d 0d 0a 32 0d 0a 32 0d 0a 32 0d 0a 0d 0a 73  --..2..2..2....s
29bd0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
29be0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
29bf0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
29c00 62 65 6c 2d 39 35 33 0d 0a 53 45 4c 45 43 54 20  bel-953..SELECT 
29c10 41 4c 4c 20 2b 20 35 37 20 2f 20 2d 20 2d 20 32  ALL + 57 / - - 2
29c20 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  3 FROM tab1..---
29c30 2d 0d 0a 32 0d 0a 32 0d 0a 32 0d 0a 0d 0a 71 75  -..2..2..2....qu
29c40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
29c50 45 4c 45 43 54 20 2d 20 2d 20 28 20 2d 20 2d 20  ELECT - - ( - - 
29c60 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
29c70 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
29c80 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54   WHERE NOT ( NOT
29c90 20 4e 55 4c 4c 20 3e 3d 20 2d 20 63 6f 6c 31 20   NULL >= - col1 
29ca0 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
29cb0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
29cc0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
29cd0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
29ce0 4f 54 20 63 6f 6c 31 20 2a 20 2b 20 33 34 20 49  OT col1 * + 34 I
29cf0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
29d00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29d10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
29d20 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
29d30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 36  owsort label-956
29d40 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29d50 54 20 2d 20 39 32 20 2a 20 2b 20 2b 20 43 4f 55  T - 92 * + + COU
29d60 4e 54 28 20 2a 20 29 20 2a 20 2d 20 2b 20 43 4f  NT( * ) * - + CO
29d70 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 2d 20 35  UNT( * ) + - - 5
29d80 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
29d90 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 38 30 0d 0a  or0..----..880..
29da0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
29db0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
29dc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29dd0 20 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45   label-956..SELE
29de0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 32  CT DISTINCT - 92
29df0 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   * + + COUNT ( *
29e00 20 29 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28   ) * - + COUNT (
29e10 20 2a 20 29 20 2b 20 2d 20 2d 20 35 32 20 46 52   * ) + - - 52 FR
29e20 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
29e30 0a 2d 2d 2d 2d 0d 0a 38 38 30 0d 0a 0d 0a 6f 6e  .----..880....on
29e40 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
29e50 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
29e60 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
29e70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29e80 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  57..SELECT ALL +
29e90 20 38 35 20 2a 20 2b 20 43 41 53 54 28 20 4e 55   85 * + CAST( NU
29ea0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
29eb0 20 2b 20 33 37 20 46 52 4f 4d 20 74 61 62 30 20   + 37 FROM tab0 
29ec0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
29ed0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
29ee0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
29ef0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
29f00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29f10 74 20 6c 61 62 65 6c 2d 39 35 37 0d 0a 53 45 4c  t label-957..SEL
29f20 45 43 54 20 41 4c 4c 20 2b 20 38 35 20 2a 20 2b  ECT ALL + 85 * +
29f30 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
29f40 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 33 37  INTEGER ) + + 37
29f50 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
29f60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
29f70 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  NULL..NULL....on
29f80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
29f90 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
29fa0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
29fb0 74 20 6c 61 62 65 6c 2d 39 35 38 0d 0a 53 45 4c  t label-958..SEL
29fc0 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  ECT + + COUNT( *
29fd0 20 29 20 41 53 20 63 6f 6c 32 2c 20 38 34 20 41   ) AS col2, 84 A
29fe0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
29ff0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2a000 33 0d 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  3..84....skipif 
2a010 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2a020 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
2a030 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2a040 35 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43  58..SELECT + + C
2a050 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
2a060 6c 32 2c 20 38 34 20 41 53 20 63 6f 6c 32 20 46  l2, 84 AS col2 F
2a070 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2a080 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 38 34 0d 0a 0d  ..----..3..84...
2a090 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2a0a0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2a0b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2a0c0 48 45 52 45 20 28 20 39 30 20 2a 20 63 6f 6c 31  HERE ( 90 * col1
2a0d0 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
2a0e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a0f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
2a100 20 2a 20 63 6f 6c 32 20 2b 20 2b 20 39 37 20 41   * col2 + + 97 A
2a110 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
2a120 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2a130 31 34 34 31 0d 0a 33 32 39 33 0d 0a 33 39 32 0d  1441..3293..392.
2a140 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
2a150 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2a160 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2a170 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2a180 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2a190 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2a1a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2a1b0 2d 20 37 32 20 41 53 20 63 6f 6c 31 2c 20 37 33  - 72 AS col1, 73
2a1c0 20 2b 20 2b 20 2d 20 37 20 63 6f 6c 30 20 46 52   + + - 7 col0 FR
2a1d0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2a1e0 0a 2d 2d 2d 2d 0d 0a 37 32 0d 0a 36 36 0d 0a 0d  .----..72..66...
2a1f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2a200 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2a210 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
2a220 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
2a230 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29  BETWEEN ( NULL )
2a240 20 41 4e 44 20 2b 20 38 31 0d 0a 2d 2d 2d 2d 0d   AND + 81..----.
2a250 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2a260 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2a270 4e 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  NCT col2 AS col2
2a280 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2a290 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54   NOT NULL IS NOT
2a2a0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   NULL..----..10.
2a2b0 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79  .47..99....query
2a2c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2a2d0 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20  CT ALL col2 * - 
2a2e0 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  + col0 AS col0 F
2a2f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2a300 2d 37 30 35 0d 0a 2d 38 37 30 0d 0a 2d 39 36 30  -705..-870..-960
2a310 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
2a320 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2a330 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2a340 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36  rowsort label-96
2a350 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
2a360 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  ( + COUNT( * ) )
2a370 20 2a 20 2b 20 32 39 20 46 52 4f 4d 20 74 61 62   * + 29 FROM tab
2a380 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 73  0..----..87....s
2a390 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2a3a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2a3b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2a3c0 62 65 6c 2d 39 36 35 0d 0a 53 45 4c 45 43 54 20  bel-965..SELECT 
2a3d0 41 4c 4c 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20  ALL + ( + COUNT 
2a3e0 28 20 2a 20 29 20 29 20 2a 20 2b 20 32 39 20 46  ( * ) ) * + 29 F
2a3f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2a400 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  87....query I ro
2a410 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 39 34  wsort..SELECT 94
2a420 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63   + + - col0 AS c
2a430 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
2a440 2d 2d 2d 0d 0a 31 39 0d 0a 33 30 0d 0a 34 38 0d  ---..19..30..48.
2a450 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2a460 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
2a470 2b 20 2b 20 32 20 46 52 4f 4d 20 74 61 62 31 0d  + + 2 FROM tab1.
2a480 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 34 39 0d 0a 37  .----..16..49..7
2a490 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2a4a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2a4b0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2a4c0 30 20 57 48 45 52 45 20 37 33 20 2a 20 2d 20 28  0 WHERE 73 * - (
2a4d0 20 2b 20 63 6f 6c 31 20 29 20 49 53 20 4e 4f 54   + col1 ) IS NOT
2a4e0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
2a4f0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
2a500 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
2a510 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
2a520 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  d....onlyif mysq
2a530 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2a540 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2a550 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2a560 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a570 74 20 6c 61 62 65 6c 2d 39 36 39 0d 0a 53 45 4c  t label-969..SEL
2a580 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
2a590 41 53 54 28 20 2d 20 4d 41 58 28 20 2b 20 2d 20  AST( - MAX( + - 
2a5a0 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 29 20 41  ( + - col1 ) ) A
2a5b0 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
2a5c0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2a5d0 2d 2d 0d 0a 34 37 0d 0a 0d 0a 73 6b 69 70 69 66  --..47....skipif
2a5e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2a5f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2a600 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2a610 36 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  69..SELECT DISTI
2a620 4e 43 54 20 2d 20 43 41 53 54 20 28 20 2d 20 4d  NCT - CAST ( - M
2a630 41 58 20 28 20 2b 20 2d 20 28 20 2b 20 2d 20 63  AX ( + - ( + - c
2a640 6f 6c 31 20 29 20 29 20 41 53 20 49 4e 54 45 47  ol1 ) ) AS INTEG
2a650 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  ER ) FROM tab1 A
2a660 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37  S cor0..----..47
2a670 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a680 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
2a690 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  l2 * + col0 + - 
2a6a0 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 46 52  col1 * - col2 FR
2a6b0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2a6c0 0a 2d 2d 2d 2d 0d 0a 35 33 31 30 0d 0a 36 32 34  .----..5310..624
2a6d0 30 0d 0a 39 33 38 34 0d 0a 0d 0a 73 6b 69 70 69  0..9384....skipi
2a6e0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
2a6f0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
2a700 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
2a710 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2a720 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
2a730 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
2a740 63 6f 6c 30 20 2b 20 31 34 20 2a 20 63 6f 6c 31  col0 + 14 * col1
2a750 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2a760 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2a770 38 33 0d 0a 31 31 31 39 0d 0a 32 30 37 0d 0a 0d  83..1119..207...
2a780 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2a790 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
2a7a0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2a7b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a7c0 6c 2d 39 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-972..SELECT AL
2a7d0 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  L + CAST( NULL A
2a7e0 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2b  S SIGNED ) + - +
2a7f0 20 38 36 20 46 52 4f 4d 20 74 61 62 31 20 41 53   86 FROM tab1 AS
2a800 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
2a810 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
2a820 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2a830 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2a840 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a850 6c 61 62 65 6c 2d 39 37 32 0d 0a 53 45 4c 45 43  label-972..SELEC
2a860 54 20 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e  T ALL + CAST ( N
2a870 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2a880 20 2b 20 2d 20 2b 20 38 36 20 46 52 4f 4d 20 74   + - + 86 FROM t
2a890 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2a8a0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
2a8b0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
2a8c0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2a8d0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2a8e0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2a8f0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2a900 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2a910 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
2a920 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2d 20 2b 20  l2 + - col2 - + 
2a930 63 6f 6c 32 20 2a 20 2d 20 34 36 20 2b 20 2b 20  col2 * - 46 + + 
2a940 32 33 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  23 col1 FROM tab
2a950 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 38 35 0d 0a 34  0..----..2185..4
2a960 35 37 37 0d 0a 34 38 33 0d 0a 0d 0a 71 75 65 72  577..483....quer
2a970 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2a980 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  ECT DISTINCT - -
2a990 20 38 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   80 AS col1 FROM
2a9a0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
2a9b0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
2a9c0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 38 30 0d   cor1..----..80.
2a9d0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2a9e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
2a9f0 2c 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 32 39 20  , col0 * + - 29 
2aa00 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2aa10 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 31 34  1..----..51..-14
2aa20 37 39 0d 0a 38 35 0d 0a 2d 32 34 36 35 0d 0a 39  79..85..-2465..9
2aa30 31 0d 0a 2d 32 36 33 39 0d 0a 0d 0a 71 75 65 72  1..-2639....quer
2aa40 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2aa50 45 43 54 20 41 4c 4c 20 2d 20 30 20 2a 20 63 6f  ECT ALL - 0 * co
2aa60 6c 31 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  l1 - + col1 + + 
2aa70 2d 20 31 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 10 FROM tab1..
2aa80 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 32 34 0d 0a  ----..-15..-24..
2aa90 2d 35 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -57....onlyif my
2aaa0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2aab0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2aac0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2aad0 74 20 6c 61 62 65 6c 2d 39 37 37 0d 0a 53 45 4c  t label-977..SEL
2aae0 45 43 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 31  ECT CAST( - col1
2aaf0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2d   AS SIGNED ) - -
2ab00 20 63 6f 6c 31 20 2b 20 2b 20 32 37 20 46 52 4f   col1 + + 27 FRO
2ab10 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37  M tab1..----..27
2ab20 0d 0a 32 37 0d 0a 32 37 0d 0a 0d 0a 73 6b 69 70  ..27..27....skip
2ab30 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2ab40 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2ab50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ab60 2d 39 37 37 0d 0a 53 45 4c 45 43 54 20 43 41 53  -977..SELECT CAS
2ab70 54 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e  T ( - col1 AS IN
2ab80 54 45 47 45 52 20 29 20 2d 20 2d 20 63 6f 6c 31  TEGER ) - - col1
2ab90 20 2b 20 2b 20 32 37 20 46 52 4f 4d 20 74 61 62   + + 27 FROM tab
2aba0 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 32 37 0d  1..----..27..27.
2abb0 0a 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .27....query I r
2abc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2abd0 4c 4c 20 2b 20 31 36 20 2a 20 2b 20 2b 20 28 20  LL + 16 * + + ( 
2abe0 33 37 20 29 20 2d 20 31 20 41 53 20 63 6f 6c 32  37 ) - 1 AS col2
2abf0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2ac00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 31 0d 0a 35  r0..----..591..5
2ac10 39 31 0d 0a 35 39 31 0d 0a 0d 0a 71 75 65 72 79  91..591....query
2ac20 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2ac30 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
2ac40 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
2ac50 20 2b 20 2d 20 63 6f 6c 32 20 29 20 2a 20 2b 20   + - col2 ) * + 
2ac60 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  col1 + + col2 + 
2ac70 2d 20 63 6f 6c 32 20 2a 20 33 33 20 2a 20 63 6f  - col2 * 33 * co
2ac80 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 49 4e  l0 + + + col0 IN
2ac90 20 28 20 2b 20 2b 20 39 34 20 2a 20 2b 20 2b 20   ( + + 94 * + + 
2aca0 37 35 2c 20 31 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a  75, 15 )..----..
2acb0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
2acc0 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
2acd0 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
2ace0 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4cad....onlyif m
2acf0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2ad00 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2ad10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ad20 2d 39 38 30 0d 0a 53 45 4c 45 43 54 20 2d 20 36  -980..SELECT - 6
2ad30 39 20 2f 20 2b 20 4d 41 58 28 20 39 30 20 29 20  9 / + MAX( 90 ) 
2ad40 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2ad50 4e 4f 54 20 2d 20 39 32 20 2a 20 2d 20 63 6f 6c  NOT - 92 * - col
2ad60 32 20 2a 20 2d 20 36 30 20 2a 20 2b 20 2b 20 63  2 * - 60 * + + c
2ad70 6f 6c 32 20 2d 20 2b 20 35 37 20 2d 20 2b 20 63  ol2 - + 57 - + c
2ad80 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 3c  ol2 * + + col2 <
2ad90 20 28 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 31 20   ( + - ( - col1 
2ada0 29 20 2a 20 2d 20 31 35 20 2f 20 33 37 20 29 0d  ) * - 15 / 37 ).
2adb0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
2adc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2add0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ade0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2adf0 62 65 6c 2d 39 38 30 0d 0a 53 45 4c 45 43 54 20  bel-980..SELECT 
2ae00 2d 20 36 39 20 2f 20 2b 20 4d 41 58 20 28 20 39  - 69 / + MAX ( 9
2ae10 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48  0 ) FROM tab0 WH
2ae20 45 52 45 20 4e 4f 54 20 2d 20 39 32 20 2a 20 2d  ERE NOT - 92 * -
2ae30 20 63 6f 6c 32 20 2a 20 2d 20 36 30 20 2a 20 2b   col2 * - 60 * +
2ae40 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 35 37 20 2d   + col2 - + 57 -
2ae50 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f   + col2 * + + co
2ae60 6c 32 20 3c 20 28 20 2b 20 2d 20 28 20 2d 20 63  l2 < ( + - ( - c
2ae70 6f 6c 31 20 29 20 2a 20 2d 20 31 35 20 2f 20 33  ol1 ) * - 15 / 3
2ae80 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  7 )..----..NULL.
2ae90 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
2aea0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2aeb0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2aec0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2aed0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2aee0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2aef0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2af00 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 34 30 2c  ol1 AS col1, 40,
2af10 20 37 35 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 63   75 + + + col0 c
2af20 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2af30 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
2af40 73 68 69 6e 67 20 74 6f 20 37 36 31 37 30 66 61  shing to 76170fa
2af50 32 33 66 39 65 33 65 63 64 34 37 37 66 64 61 37  23f9e3ecd477fda7
2af60 34 33 32 37 36 36 37 38 37 0d 0a 0d 0a 6f 6e 6c  432766787....onl
2af70 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2af80 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2af90 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2afa0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2afb0 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41  2..SELECT col2 A
2afc0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2afd0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 37   WHERE NOT - + 7
2afe0 31 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31  1 BETWEEN + col1
2aff0 20 41 4e 44 20 2d 20 2b 20 28 20 2b 20 43 41 53   AND - + ( + CAS
2b000 54 28 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 53  T( - - col0 AS S
2b010 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d  IGNED ) )..----.
2b020 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d 0a 73  .23..40..58....s
2b030 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2b040 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2b050 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2b060 62 65 6c 2d 39 38 32 0d 0a 53 45 4c 45 43 54 20  bel-982..SELECT 
2b070 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
2b080 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
2b090 20 2d 20 2b 20 37 31 20 42 45 54 57 45 45 4e 20   - + 71 BETWEEN 
2b0a0 2b 20 63 6f 6c 31 20 41 4e 44 20 2d 20 2b 20 28  + col1 AND - + (
2b0b0 20 2b 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f   + CAST ( - - co
2b0c0 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l0 AS INTEGER ) 
2b0d0 29 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d  )..----..23..40.
2b0e0 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .58....onlyif my
2b0f0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2b100 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2b110 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2b120 39 38 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  983..SELECT COUN
2b130 54 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54  T( * ) * + COUNT
2b140 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
2b150 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab1..----..9
2b160 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2b170 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2b180 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2b190 72 74 20 6c 61 62 65 6c 2d 39 38 33 0d 0a 53 45  rt label-983..SE
2b1a0 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
2b1b0 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   * + COUNT ( * )
2b1c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2b1d0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f  b1..----..9....o
2b1e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2b1f0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2b200 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b210 74 20 6c 61 62 65 6c 2d 39 38 34 0d 0a 53 45 4c  t label-984..SEL
2b220 45 43 54 20 41 4c 4c 20 2b 20 37 33 20 2a 20 2b  ECT ALL + 73 * +
2b230 20 2d 20 28 20 2d 20 2d 20 43 4f 55 4e 54 28 20   - ( - - COUNT( 
2b240 2a 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52  * ) ) AS col0 FR
2b250 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2b260 32 31 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  219....skipif my
2b270 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2b280 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2b290 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 34 0d  wsort label-984.
2b2a0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 33  .SELECT ALL + 73
2b2b0 20 2a 20 2b 20 2d 20 28 20 2d 20 2d 20 43 4f 55   * + - ( - - COU
2b2c0 4e 54 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f  NT ( * ) ) AS co
2b2d0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
2b2e0 2d 2d 0d 0a 2d 32 31 39 0d 0a 0d 0a 71 75 65 72  --..-219....quer
2b2f0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2b300 4c 45 43 54 20 2d 20 63 6f 6c 30 2c 20 38 33 20  LECT - col0, 83 
2b310 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  + col0 AS col0 F
2b320 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2b330 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 31 32 39  ..----..-46..129
2b340 0d 0a 2d 36 34 0d 0a 31 34 37 0d 0a 2d 37 35 0d  ..-64..147..-75.
2b350 0a 31 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .158....query I 
2b360 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b370 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
2b380 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2b390 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 63 6f 6c 32   NOT col2 + col2
2b3a0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2b3b0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
2b3c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2b3d0 4c 20 2d 20 2d 20 28 20 2d 20 28 20 2d 20 63 6f  L - - ( - ( - co
2b3e0 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  l2 ) ) AS col1 F
2b3f0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2b400 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 30 0d 0a  ..----..23..40..
2b410 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  58....query III 
2b420 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b430 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
2b440 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2b450 54 20 63 6f 6c 31 20 2b 20 36 37 20 2b 20 2d 20  T col1 + 67 + - 
2b460 36 35 20 3c 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d  65 < - col0..---
2b470 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
2b480 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
2b490 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
2b4a0 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
2b4b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2b4c0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32 33  CT DISTINCT + 23
2b4d0 20 2a 20 2d 20 30 20 41 53 20 63 6f 6c 31 20 46   * - 0 AS col1 F
2b4e0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2b4f0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
2b500 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2b510 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2b 20 28  TINCT col0 * + (
2b520 20 2b 20 2b 20 31 39 20 29 20 46 52 4f 4d 20 74   + + 19 ) FROM t
2b530 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 36 0d  ab2..----..1216.
2b540 0a 31 34 32 35 0d 0a 38 37 34 0d 0a 0d 0a 71 75  .1425..874....qu
2b550 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2b560 45 4c 45 43 54 20 2d 20 2d 20 28 20 2d 20 38 30  ELECT - - ( - 80
2b570 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2b580 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
2b590 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
2b5a0 37 36 20 41 4e 44 20 2d 20 37 38 0d 0a 2d 2d 2d  76 AND - 78..---
2b5b0 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
2b5c0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2b5d0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2b5e0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2b5f0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2b600 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2b610 45 4c 45 43 54 20 2b 20 2d 20 36 33 20 63 6f 6c  ELECT + - 63 col
2b620 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
2b630 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
2b640 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
2b650 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
2b660 69 6e 67 20 74 6f 20 35 61 37 38 34 35 65 66 36  ing to 5a7845ef6
2b670 65 32 33 39 35 36 31 63 61 66 39 61 31 37 61 32  e239561caf9a17a2
2b680 38 65 32 37 34 62 35 0d 0a 0d 0a 6f 6e 6c 79 69  8e274b5....onlyi
2b690 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2b6a0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2b6b0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
2b6c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 33 0d  wsort label-993.
2b6d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2b6e0 20 2d 20 2b 20 31 30 20 2b 20 2b 20 63 6f 6c 30   - + 10 + + col0
2b6f0 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   * + CAST( NULL 
2b700 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
2b710 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2b720 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
2b730 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2b740 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2b750 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2b760 6c 2d 39 39 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-993..SELECT DI
2b770 53 54 49 4e 43 54 20 2d 20 2b 20 31 30 20 2b 20  STINCT - + 10 + 
2b780 2b 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54 20  + col0 * + CAST 
2b790 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2b7a0 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  R ) FROM tab0 AS
2b7b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
2b7c0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
2b7d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2b7e0 54 49 4e 43 54 20 31 37 20 2a 20 2d 20 63 6f 6c  TINCT 17 * - col
2b7f0 32 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  2 + + - col0 FRO
2b800 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2b810 2d 2d 2d 2d 0d 0a 2d 31 30 36 31 0d 0a 2d 34 33  ----..-1061..-43
2b820 37 0d 0a 2d 37 34 34 0d 0a 0d 0a 6f 6e 6c 79 69  7..-744....onlyi
2b830 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2b840 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
2b850 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2b860 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2b870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39  rowsort label-99
2b880 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  5..SELECT ALL - 
2b890 34 30 20 2b 20 2d 20 43 41 53 54 28 20 2b 20 2b  40 + - CAST( + +
2b8a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53   COUNT( * ) AS S
2b8b0 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
2b8c0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2b8d0 0a 2d 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-43....skipif m
2b8e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2b8f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2b900 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 35  owsort label-995
2b910 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34  ..SELECT ALL - 4
2b920 30 20 2b 20 2d 20 43 41 53 54 20 28 20 2b 20 2b  0 + - CAST ( + +
2b930 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2b940 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
2b950 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2b960 2d 0d 0a 2d 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-43....onlyif
2b970 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2b980 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2b990 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2b9a0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 36 0d 0a  sort label-996..
2b9b0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43  SELECT ALL - + C
2b9c0 41 53 54 28 20 2b 20 38 38 20 41 53 20 53 49 47  AST( + 88 AS SIG
2b9d0 4e 45 44 20 29 20 2b 20 2d 20 63 6f 6c 31 20 41  NED ) + - col1 A
2b9e0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2b9f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   cor0..----..-13
2ba00 39 0d 0a 2d 31 35 35 0d 0a 2d 31 36 35 0d 0a 0d  9..-155..-165...
2ba10 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2ba20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2ba30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2ba40 6c 61 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45 43  label-996..SELEC
2ba50 54 20 41 4c 4c 20 2d 20 2b 20 43 41 53 54 20 28  T ALL - + CAST (
2ba60 20 2b 20 38 38 20 41 53 20 49 4e 54 45 47 45 52   + 88 AS INTEGER
2ba70 20 29 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63   ) + - col1 AS c
2ba80 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
2ba90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 39 0d 0a  r0..----..-139..
2baa0 2d 31 35 35 0d 0a 2d 31 36 35 0d 0a 0d 0a 71 75  -155..-165....qu
2bab0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2bac0 45 4c 45 43 54 20 35 39 20 2b 20 2b 20 38 37 20  ELECT 59 + + 87 
2bad0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2bae0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 36 0d 0a 31 34  0..----..146..14
2baf0 36 0d 0a 31 34 36 0d 0a 0d 0a 71 75 65 72 79 20  6..146....query 
2bb00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2bb10 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
2bb20 30 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f  0 + + + col0 FRO
2bb30 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
2bb40 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2bb50 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
2bb60 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f  1 * - - col0 FRO
2bb70 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32  M tab1..----..42
2bb80 35 0d 0a 34 32 37 37 0d 0a 37 31 34 0d 0a 0d 0a  5..4277..714....
2bb90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2bba0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2bbb0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2bbc0 72 74 20 6c 61 62 65 6c 2d 31 30 30 30 0d 0a 53  rt label-1000..S
2bbd0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 36 37 20 2a  ELECT ALL - 67 *
2bbe0 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   - - COUNT( * ) 
2bbf0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2bc00 0a 2d 32 30 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-201....skipif 
2bc10 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2bc20 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2bc30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2bc40 30 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  00..SELECT ALL -
2bc50 20 36 37 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 20   67 * - - COUNT 
2bc60 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
2bc70 0a 2d 2d 2d 2d 0d 0a 2d 32 30 31 0d 0a 0d 0a 6f  .----..-201....o
2bc80 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
2bc90 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2bca0 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2bcb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2bcc0 31 30 30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1001..SELECT DIS
2bcd0 54 49 4e 43 54 20 34 37 20 44 49 56 20 2b 20 37  TINCT 47 DIV + 7
2bce0 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  6 FROM tab1..---
2bcf0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
2bd00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2bd10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2bd20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30  owsort label-100
2bd30 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2bd40 43 54 20 34 37 20 2f 20 2b 20 37 36 20 46 52 4f  CT 47 / + 76 FRO
2bd50 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab1..----..0.
2bd60 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2bd70 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2bd80 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2bd90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 32  wsort label-1002
2bda0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2bdb0 54 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 39  T - MIN( ALL + 9
2bdc0 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  1 ) AS col2 FROM
2bdd0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2bde0 2d 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70  ---..-91....skip
2bdf0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2be00 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2be10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2be20 2d 31 30 30 32 0d 0a 53 45 4c 45 43 54 20 44 49  -1002..SELECT DI
2be30 53 54 49 4e 43 54 20 2d 20 4d 49 4e 20 28 20 41  STINCT - MIN ( A
2be40 4c 4c 20 2b 20 39 31 20 29 20 41 53 20 63 6f 6c  LL + 91 ) AS col
2be50 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
2be60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a  or0..----..-91..
2be70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2be80 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2be90 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2bea0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 33 0d  sort label-1003.
2beb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 36 20 2a  .SELECT ALL 96 *
2bec0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2bed0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
2bee0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38   cor0..----..288
2bef0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2bf00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2bf10 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2bf20 72 74 20 6c 61 62 65 6c 2d 31 30 30 33 0d 0a 53  rt label-1003..S
2bf30 45 4c 45 43 54 20 41 4c 4c 20 39 36 20 2a 20 43  ELECT ALL 96 * C
2bf40 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
2bf50 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
2bf60 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 38 0d  cor0..----..288.
2bf70 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2bf80 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2bf90 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2bfa0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 34  wsort label-1004
2bfb0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
2bfc0 28 20 2a 20 29 20 2d 20 2d 20 33 37 20 46 52 4f  ( * ) - - 37 FRO
2bfd0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2bfe0 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 73 6b 69 70  ----..40....skip
2bff0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c000 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c010 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c020 2d 31 30 30 34 0d 0a 53 45 4c 45 43 54 20 2b 20  -1004..SELECT + 
2c030 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20  COUNT ( * ) - - 
2c040 33 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  37 FROM tab1 AS 
2c050 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a  cor0..----..40..
2c060 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2c070 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2c080 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2c090 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 35 0d  sort label-1005.
2c0a0 0a 53 45 4c 45 43 54 20 2d 20 38 37 20 2d 20 2d  .SELECT - 87 - -
2c0b0 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d   MIN( DISTINCT -
2c0c0 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
2c0d0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2c0e0 0a 2d 31 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-162....skipif 
2c0f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2c100 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2c110 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2c120 30 35 0d 0a 53 45 4c 45 43 54 20 2d 20 38 37 20  05..SELECT - 87 
2c130 2d 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  - - MIN ( DISTIN
2c140 43 54 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d  CT - col0 ) FROM
2c150 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2c160 2d 2d 2d 0d 0a 2d 31 36 32 0d 0a 0d 0a 71 75 65  ---..-162....que
2c170 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
2c180 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2c190 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 30 2c 20  ol0 - - + col0, 
2c1a0 2b 20 35 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 59 AS col0 FRO
2c1b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32  M tab2..----..12
2c1c0 38 0d 0a 35 39 0d 0a 31 35 30 0d 0a 35 39 0d 0a  8..59..150..59..
2c1d0 39 32 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20  92..59....query 
2c1e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2c1f0 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  T - col2 AS col2
2c200 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2c210 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
2c220 32 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 <= NULL..----.
2c230 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c240 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2c250 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2c260 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c270 62 65 6c 2d 31 30 30 38 0d 0a 53 45 4c 45 43 54  bel-1008..SELECT
2c280 20 34 35 20 44 49 56 20 2b 20 63 6f 6c 32 20 46   45 DIV + col2 F
2c290 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c2a0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 34 0d  ..----..0..0..4.
2c2b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2c2c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2c2d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c2e0 74 20 6c 61 62 65 6c 2d 31 30 30 38 0d 0a 53 45  t label-1008..SE
2c2f0 4c 45 43 54 20 34 35 20 2f 20 2b 20 63 6f 6c 32  LECT 45 / + col2
2c300 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2c310 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
2c320 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
2c330 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2c340 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2c350 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
2c360 55 4c 4c 20 3c 20 2d 20 2d 20 33 32 20 2d 20 2b  ULL < - - 32 - +
2c370 20 31 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   13 )..----....q
2c380 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2c390 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2c3a0 2b 20 2b 20 33 35 20 41 53 20 63 6f 6c 31 20 46  + + 35 AS col1 F
2c3b0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2c3c0 0d 0a 2d 2d 2d 2d 0d 0a 33 35 0d 0a 0d 0a 6f 6e  ..----..35....on
2c3d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
2c3e0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
2c3f0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
2c400 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2c410 30 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  011..SELECT ALL 
2c420 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20 31 37 20  + + col0 DIV 17 
2c430 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2c440 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2c450 0a 30 0d 0a 35 0d 0a 35 0d 0a 0d 0a 73 6b 69 70  .0..5..5....skip
2c460 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c470 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c480 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c490 2d 31 30 31 31 0d 0a 53 45 4c 45 43 54 20 41 4c  -1011..SELECT AL
2c4a0 4c 20 2b 20 2b 20 63 6f 6c 30 20 2f 20 31 37 20  L + + col0 / 17 
2c4b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2c4c0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2c4d0 0a 30 0d 0a 35 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79  .0..5..5....only
2c4e0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
2c4f0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2c500 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2c510 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2c520 32 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b 20  2..SELECT + ( + 
2c530 32 34 20 29 20 44 49 56 20 2b 20 63 6f 6c 32 20  24 ) DIV + col2 
2c540 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
2c550 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2c560 0a 30 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..2....skipif 
2c570 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2c580 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
2c590 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2c5a0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2c5b0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2c5c0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2c5d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c5e0 20 6c 61 62 65 6c 2d 31 30 31 32 0d 0a 53 45 4c   label-1012..SEL
2c5f0 45 43 54 20 2b 20 28 20 2b 20 32 34 20 29 20 2f  ECT + ( + 24 ) /
2c600 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f   + col2 col0 FRO
2c610 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2c620 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 32 0d 0a 0d  ----..0..0..2...
2c630 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2c640 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
2c650 38 38 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f  88 AS col1, + co
2c660 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 33 37  l2 + - col1 + 37
2c670 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - - col2 AS col
2c680 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
2c690 2d 0d 0a 2d 38 38 0d 0a 31 32 36 0d 0a 2d 38 38  -..-88..126..-88
2c6a0 0d 0a 31 35 30 0d 0a 2d 38 38 0d 0a 32 31 35 0d  ..150..-88..215.
2c6b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c6c0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2c6d0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2c6e0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2c6f0 6c 61 62 65 6c 2d 31 30 31 34 0d 0a 53 45 4c 45  label-1014..SELE
2c700 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
2c710 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c  HERE NOT + - col
2c720 32 20 49 4e 20 28 20 2b 20 2d 20 63 6f 6c 31 2c  2 IN ( + - col1,
2c730 20 43 41 53 54 28 20 63 6f 6c 30 20 41 53 20 53   CAST( col0 AS S
2c740 49 47 4e 45 44 20 29 20 2a 20 2b 20 2b 20 63 6f  IGNED ) * + + co
2c750 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  l1 )..----..9 va
2c760 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
2c770 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
2c780 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
2c790 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2c7a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2c7b0 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
2c7c0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 34 0d  sort label-1014.
2c7d0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2c7e0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
2c7f0 2d 20 63 6f 6c 32 20 49 4e 20 28 20 2b 20 2d 20  - col2 IN ( + - 
2c800 63 6f 6c 31 2c 20 43 41 53 54 20 28 20 63 6f 6c  col1, CAST ( col
2c810 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  0 AS INTEGER ) *
2c820 20 2b 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   + + col1 )..---
2c830 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
2c840 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
2c850 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
2c860 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69  7fb43b7....onlyi
2c870 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2c880 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2c890 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
2c8a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 35  wsort label-1015
2c8b0 0d 0a 53 45 4c 45 43 54 20 2b 20 39 35 20 2d 20  ..SELECT + 95 - 
2c8c0 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20  + col0 + + col1 
2c8d0 2b 20 30 20 2a 20 63 6f 6c 32 20 2b 20 36 35 20  + 0 * col2 + 65 
2c8e0 2b 20 2d 20 63 6f 6c 31 20 2b 20 43 41 53 54 28  + - col1 + CAST(
2c8f0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2c900 29 20 2a 20 31 38 20 2f 20 2d 20 43 41 53 54 28  ) * 18 / - CAST(
2c910 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45   - col1 AS SIGNE
2c920 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  D ) AS col0 FROM
2c930 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
2c940 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
2c950 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
2c960 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2c970 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2c980 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 35 0d  sort label-1015.
2c990 0a 53 45 4c 45 43 54 20 2b 20 39 35 20 2d 20 2b  .SELECT + 95 - +
2c9a0 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 2b   col0 + + col1 +
2c9b0 20 30 20 2a 20 63 6f 6c 32 20 2b 20 36 35 20 2b   0 * col2 + 65 +
2c9c0 20 2d 20 63 6f 6c 31 20 2b 20 43 41 53 54 20 28   - col1 + CAST (
2c9d0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
2c9e0 20 29 20 2a 20 31 38 20 2f 20 2d 20 43 41 53 54   ) * 18 / - CAST
2c9f0 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54   ( - col1 AS INT
2ca00 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46  EGER ) AS col0 F
2ca10 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
2ca20 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
2ca30 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2ca40 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2ca50 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 31 33 20  T + col1 * + 13 
2ca60 2a 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 46  * - col2, col2 F
2ca70 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2ca80 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 32 34 39 0d 0a  ..----..-15249..
2ca90 32 33 0d 0a 2d 34 30 30 34 30 0d 0a 34 30 0d 0a  23..-40040..40..
2caa0 2d 35 30 35 31 38 0d 0a 35 38 0d 0a 0d 0a 6f 6e  -50518..58....on
2cab0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2cac0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2cad0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2cae0 20 6c 61 62 65 6c 2d 31 30 31 37 0d 0a 53 45 4c   label-1017..SEL
2caf0 45 43 54 20 2b 20 39 31 20 2b 20 2d 20 28 20 2d  ECT + 91 + - ( -
2cb00 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53   COUNT( * ) ) AS
2cb10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
2cb20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
2cb30 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
2cb40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2cb50 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2cb60 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 37 0d 0a  ort label-1017..
2cb70 53 45 4c 45 43 54 20 2b 20 39 31 20 2b 20 2d 20  SELECT + 91 + - 
2cb80 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( - COUNT ( * ) 
2cb90 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2cba0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2cbb0 2d 0d 0a 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49  -..94....query I
2cbc0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2cbd0 20 2d 20 35 36 20 2f 20 2d 20 33 38 20 2a 20 2d   - 56 / - 38 * -
2cbe0 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 41 53 20   col1 + col2 AS 
2cbf0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
2cc00 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
2cc10 2f 20 2b 20 2d 20 32 20 3c 3e 20 2d 20 2d 20 34  / + - 2 <> - - 4
2cc20 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  3..----....query
2cc30 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2cc40 43 54 20 2d 20 2d 20 39 30 20 46 52 4f 4d 20 28  CT - - 90 FROM (
2cc50 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
2cc60 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f  OSS JOIN tab0 co
2cc70 72 31 20 29 20 57 48 45 52 45 20 4e 4f 54 20 35  r1 ) WHERE NOT 5
2cc80 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2cc90 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
2cca0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2ccb0 4c 20 2d 20 2d 20 39 34 20 41 53 20 63 6f 6c 30  L - - 94 AS col0
2ccc0 20 46 52 4f 4d 20 28 20 74 61 62 31 20 41 53 20   FROM ( tab1 AS 
2ccd0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
2cce0 74 61 62 31 20 41 53 20 63 6f 72 31 20 29 0d 0a  tab1 AS cor1 )..
2ccf0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2cd00 61 73 68 69 6e 67 20 74 6f 20 62 30 66 66 62 37  ashing to b0ffb7
2cd10 35 32 37 66 34 66 62 66 34 34 66 33 30 39 34 35  527f4fbf44f30945
2cd20 65 31 63 63 62 35 38 63 32 34 0d 0a 0d 0a 71 75  e1ccb58c24....qu
2cd30 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
2cd40 53 45 4c 45 43 54 20 39 36 2c 20 2b 20 63 6f 6c  SELECT 96, + col
2cd50 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
2cd60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 34  or0..----..96..4
2cd70 36 0d 0a 39 36 0d 0a 36 34 0d 0a 39 36 0d 0a 37  6..96..64..96..7
2cd80 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
2cd90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2cda0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2b 20  col1 AS col2, + 
2cdb0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
2cdc0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
2cdd0 0a 39 37 0d 0a 32 31 0d 0a 38 37 0d 0a 38 31 0d  .97..21..87..81.
2cde0 0a 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .15....onlyif my
2cdf0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2ce00 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2ce10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2ce20 31 30 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1023..SELECT ALL
2ce30 20 2d 20 43 4f 55 4e 54 28 20 2b 20 2b 20 63 6f   - COUNT( + + co
2ce40 6c 30 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l0 ) col2 FROM t
2ce50 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2ce60 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
2ce70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2ce80 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
2ce90 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2cea0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2ceb0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2cec0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2ced0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2cee0 20 6c 61 62 65 6c 2d 31 30 32 33 0d 0a 53 45 4c   label-1023..SEL
2cef0 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20  ECT ALL - COUNT 
2cf00 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 63 6f 6c  ( + + col0 ) col
2cf10 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
2cf20 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  or0..----..-3...
2cf30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2cf40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
2cf50 20 38 39 20 2b 20 2b 20 63 6f 6c 31 20 2d 20 2b   89 + + col1 - +
2cf60 20 37 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   77 AS col0 FROM
2cf70 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2cf80 2d 2d 2d 0d 0a 31 33 0d 0a 33 33 0d 0a 39 33 0d  ---..13..33..93.
2cf90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2cfa0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
2cfb0 20 2d 20 36 35 20 46 52 4f 4d 20 74 61 62 30 20   - 65 FROM tab0 
2cfc0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 38 35  AS cor0 WHERE 85
2cfd0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2cfe0 2d 2d 0d 0a 2d 36 35 0d 0a 2d 36 35 0d 0a 2d 36  --..-65..-65..-6
2cff0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
2d000 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2d010 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
2d020 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2d030 30 32 36 0d 0a 53 45 4c 45 43 54 20 2d 20 34 39  026..SELECT - 49
2d040 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43 4f 55 4e   AS col2, - COUN
2d050 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
2d060 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2d070 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 2d 33 0d  ..----..-49..-3.
2d080 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2d090 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2d0a0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2d0b0 72 74 20 6c 61 62 65 6c 2d 31 30 32 36 0d 0a 53  rt label-1026..S
2d0c0 45 4c 45 43 54 20 2d 20 34 39 20 41 53 20 63 6f  ELECT - 49 AS co
2d0d0 6c 32 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  l2, - COUNT ( * 
2d0e0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2d0f0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2d100 2d 0d 0a 2d 34 39 0d 0a 2d 33 0d 0a 0d 0a 6f 6e  -..-49..-3....on
2d110 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2d120 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2d130 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2d140 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2d150 30 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  027..SELECT + + 
2d160 63 6f 6c 31 20 2d 20 2b 20 34 33 20 2a 20 2d 20  col1 - + 43 * - 
2d170 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
2d180 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32  GNED ) FROM tab2
2d190 20 57 48 45 52 45 20 2d 20 36 33 20 49 53 20 4e   WHERE - 63 IS N
2d1a0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  OT NULL..----..N
2d1b0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
2d1c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2d1d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2d1e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d1f0 74 20 6c 61 62 65 6c 2d 31 30 32 37 0d 0a 53 45  t label-1027..SE
2d200 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2d 20  LECT + + col1 - 
2d210 2b 20 34 33 20 2a 20 2d 20 43 41 53 54 20 28 20  + 43 * - CAST ( 
2d220 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2d230 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
2d240 45 20 2d 20 36 33 20 49 53 20 4e 4f 54 20 4e 55  E - 63 IS NOT NU
2d250 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
2d260 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
2d270 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2d280 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2d 20 2b  ELECT + col1 - +
2d290 20 31 36 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f   16 * + col1 FRO
2d2a0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
2d2b0 32 31 35 0d 0a 2d 31 35 0d 0a 2d 33 31 35 0d 0a  215..-15..-315..
2d2c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d2d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2d2e0 43 54 20 2b 20 37 20 2b 20 37 34 20 2b 20 2d 20  CT + 7 + 74 + - 
2d2f0 37 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  78 FROM tab1..--
2d300 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
2d310 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2d320 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2d330 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2d340 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2d350 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d360 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2d370 35 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  51 col1 FROM tab
2d380 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35 31 0d  2..----..51..51.
2d390 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .51....query III
2d3a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d3b0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
2d3c0 63 6f 72 30 20 57 48 45 52 45 20 2b 20 34 33 20  cor0 WHERE + 43 
2d3d0 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 2d 20  NOT BETWEEN + - 
2d3e0 63 6f 6c 30 20 41 4e 44 20 2b 20 2b 20 63 6f 6c  col0 AND + + col
2d3f0 31 20 2b 20 34 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  1 + 45..----....
2d400 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2d410 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2d420 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2d430 72 74 20 6c 61 62 65 6c 2d 31 30 33 32 0d 0a 53  rt label-1032..S
2d440 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
2d450 54 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 2b 20  T( ALL col0 ) + 
2d460 2b 20 2b 20 38 30 20 41 53 20 63 6f 6c 30 20 46  + + 80 AS col0 F
2d470 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
2d480 2d 2d 2d 0d 0a 38 33 0d 0a 0d 0a 73 6b 69 70 69  ---..83....skipi
2d490 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2d4a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2d4b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d4c0 31 30 33 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1032..SELECT ALL
2d4d0 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 63   + COUNT ( ALL c
2d4e0 6f 6c 30 20 29 20 2b 20 2b 20 2b 20 38 30 20 41  ol0 ) + + + 80 A
2d4f0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
2d500 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 33 0d   cor0..----..83.
2d510 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2d520 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2d530 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  INCT + col1 + - 
2d540 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 41 53  + col1 * col1 AS
2d550 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 41 53 20 63   col1, col0 AS c
2d560 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
2d570 2d 2d 2d 0d 0a 2d 34 32 30 0d 0a 38 37 0d 0a 2d  ---..-420..87..-
2d580 36 34 38 30 0d 0a 31 35 0d 0a 30 0d 0a 39 37 0d  6480..15..0..97.
2d590 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d5a0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  rt..SELECT ALL (
2d5b0 20 2d 20 32 20 29 20 46 52 4f 4d 20 74 61 62 31   - 2 ) FROM tab1
2d5c0 20 57 48 45 52 45 20 2b 20 2b 20 36 38 20 3e 20   WHERE + + 68 > 
2d5d0 2b 20 38 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  + 88..----....on
2d5e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2d5f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2d600 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2d610 74 20 6c 61 62 65 6c 2d 31 30 33 35 0d 0a 53 45  t label-1035..SE
2d620 4c 45 43 54 20 2b 20 36 34 2c 20 43 4f 55 4e 54  LECT + 64, COUNT
2d630 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
2d640 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab1..----..6
2d650 34 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  4..3....skipif m
2d660 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2d670 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
2d680 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d690 33 35 0d 0a 53 45 4c 45 43 54 20 2b 20 36 34 2c  35..SELECT + 64,
2d6a0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2d6b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
2d6c0 2d 2d 2d 2d 0d 0a 36 34 0d 0a 33 0d 0a 0d 0a 71  ----..64..3....q
2d6d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2d6e0 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 38 31 20  SELECT - ( + 81 
2d6f0 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
2d700 2d 0d 0a 2d 38 31 0d 0a 2d 38 31 0d 0a 2d 38 31  -..-81..-81..-81
2d710 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2d720 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
2d730 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2d 20  col2 * - col2 - 
2d740 2b 20 34 30 20 2d 20 2b 20 63 6f 6c 30 20 41 53  + 40 - + col0 AS
2d750 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
2d760 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2d770 31 37 30 34 0d 0a 2d 33 34 37 39 0d 0a 2d 36 31  1704..-3479..-61
2d780 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
2d790 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
2d7a0 2b 20 31 35 20 41 53 20 63 6f 6c 30 2c 20 63 6f  + 15 AS col0, co
2d7b0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
2d7c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  cor0..----..15..
2d7d0 32 33 0d 0a 31 35 0d 0a 34 30 0d 0a 31 35 0d 0a  23..15..40..15..
2d7e0 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  58....query II r
2d7f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2d800 4c 4c 20 2d 20 2b 20 63 6f 6c 31 2c 20 63 6f 6c  LL - + col1, col
2d810 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
2d820 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a  or0..----..-14..
2d830 35 31 0d 0a 2d 34 37 0d 0a 39 31 0d 0a 2d 35 0d  51..-47..91..-5.
2d840 0a 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .85....query II 
2d850 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2d860 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2d 20  col0 AS col2, - 
2d870 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
2d880 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 32 0d 0a  ..----..51..-2..
2d890 38 35 0d 0a 2d 32 0d 0a 39 31 0d 0a 2d 32 0d 0a  85..-2..91..-2..
2d8a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2d8b0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2d8c0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2d8d0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 31 0d  sort label-1041.
2d8e0 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 2b  .SELECT - SUM( +
2d8f0 20 63 6f 6c 32 20 29 20 2a 20 2b 20 31 35 20 46   col2 ) * + 15 F
2d900 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
2d910 2d 2d 2d 0d 0a 2d 32 33 34 30 0d 0a 0d 0a 73 6b  ---..-2340....sk
2d920 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2d930 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2d940 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2d950 65 6c 2d 31 30 34 31 0d 0a 53 45 4c 45 43 54 20  el-1041..SELECT 
2d960 2d 20 53 55 4d 20 28 20 2b 20 63 6f 6c 32 20 29  - SUM ( + col2 )
2d970 20 2a 20 2b 20 31 35 20 46 52 4f 4d 20 74 61 62   * + 15 FROM tab
2d980 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  0 cor0..----..-2
2d990 33 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  340....query I r
2d9a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2d9b0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 2a  ISTINCT - col1 *
2d9c0 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
2d9d0 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  2 FROM tab2 cor0
2d9e0 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 33 0d 0a 33 30  ..----..1173..30
2d9f0 38 30 0d 0a 33 38 38 36 0d 0a 0d 0a 6f 6e 6c 79  80..3886....only
2da00 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2da10 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
2da20 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
2da30 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2da40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2da50 30 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  043..SELECT ALL 
2da60 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2f 20 2d  + COUNT( * ) / -
2da70 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2da80 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20  IGNED ) AS col1 
2da90 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2daa0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
2dab0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2dac0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2dad0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2dae0 6c 61 62 65 6c 2d 31 30 34 33 0d 0a 53 45 4c 45  label-1043..SELE
2daf0 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28  CT ALL + COUNT (
2db00 20 2a 20 29 20 2f 20 2d 20 43 41 53 54 20 28 20   * ) / - CAST ( 
2db10 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2db20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2db30 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2db40 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
2db50 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2db60 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20 37 34 20  CT ALL - ( + 74 
2db70 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
2db80 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a  ab1..----..-74..
2db90 2d 37 34 0d 0a 2d 37 34 0d 0a 0d 0a 6f 6e 6c 79  -74..-74....only
2dba0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2dbb0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2dbc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2dbd0 61 62 65 6c 2d 31 30 34 35 0d 0a 53 45 4c 45 43  abel-1045..SELEC
2dbe0 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  T + COUNT( * ) *
2dbf0 20 2d 20 2b 20 33 30 20 41 53 20 63 6f 6c 32 20   - + 30 AS col2 
2dc00 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2dc10 0a 2d 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-90....skipif m
2dc20 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2dc30 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2dc40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2dc50 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  5..SELECT + COUN
2dc60 54 20 28 20 2a 20 29 20 2a 20 2d 20 2b 20 33 30  T ( * ) * - + 30
2dc70 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2dc80 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 30 0d 0a 0d  b1..----..-90...
2dc90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2dca0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2dcb0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2dcc0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2dcd0 6c 2d 31 30 34 36 0d 0a 53 45 4c 45 43 54 20 63  l-1046..SELECT c
2dce0 6f 6c 31 20 44 49 56 20 2d 20 31 34 20 46 52 4f  ol1 DIV - 14 FRO
2dcf0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
2dd00 0d 0a 2d 35 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ..-5..0....skipi
2dd10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2dd20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2dd30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2dd40 31 30 34 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  1046..SELECT col
2dd50 31 20 2f 20 2d 20 31 34 20 46 52 4f 4d 20 74 61  1 / - 14 FROM ta
2dd60 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 35  b0..----..-1..-5
2dd70 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
2dd80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
2dd90 20 2b 20 34 30 20 29 20 46 52 4f 4d 20 74 61 62   + 40 ) FROM tab
2dda0 32 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 34 30 0d  2..----..40..40.
2ddb0 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .40....onlyif my
2ddc0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2ddd0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2dde0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2ddf0 31 30 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1048..SELECT ALL
2de00 20 2d 20 43 4f 55 4e 54 28 20 2d 20 35 30 20 29   - COUNT( - 50 )
2de10 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
2de20 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
2de30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2de40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2de50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2de60 6c 2d 31 30 34 38 0d 0a 53 45 4c 45 43 54 20 41  l-1048..SELECT A
2de70 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 35  LL - COUNT ( - 5
2de80 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  0 ) FROM tab1 co
2de90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  r0..----..-3....
2dea0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2deb0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2dec0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2ded0 72 74 20 6c 61 62 65 6c 2d 31 30 34 39 0d 0a 53  rt label-1049..S
2dee0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20  ELECT ALL - ( - 
2def0 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
2df00 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
2df10 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
2df20 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a  N tab1 AS cor1..
2df30 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69  ----..9....skipi
2df40 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2df50 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2df60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2df70 31 30 34 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1049..SELECT ALL
2df80 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a   - ( - COUNT ( *
2df90 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
2dfa0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  M tab0 AS cor0 C
2dfb0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
2dfc0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d  S cor1..----..9.
2dfd0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
2dfe0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2dff0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
2e000 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20  cor0 WHERE col1 
2e010 2d 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55  - + + col0 IS NU
2e020 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
2e030 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2e040 45 43 54 20 2d 20 2d 20 34 39 20 2b 20 2b 20 2b  ECT - - 49 + + +
2e050 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
2e060 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2e070 0a 2d 2d 2d 2d 0d 0a 31 33 30 0d 0a 35 30 0d 0a  .----..130..50..
2e080 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  70....query I ro
2e090 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2e0a0 4c 20 32 30 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  L 20 + col1 FROM
2e0b0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2e0c0 2d 2d 2d 0d 0a 37 31 0d 0a 38 37 0d 0a 39 37 0d  ---..71..87..97.
2e0d0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2e0e0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
2e0f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2e100 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2e110 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e120 6c 61 62 65 6c 2d 31 30 35 33 0d 0a 53 45 4c 45  label-1053..SELE
2e130 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
2e140 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2e150 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
2e160 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
2e170 47 4e 45 44 20 29 20 3c 3d 20 4e 55 4c 4c 0d 0a  GNED ) <= NULL..
2e180 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
2e190 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2e1a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2e1b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e1c0 31 30 35 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1053..SELECT + C
2e1d0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
2e1e0 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2e1f0 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 20  cor0 WHERE CAST 
2e200 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2e210 52 20 29 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  R ) <= NULL..---
2e220 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..0....query II
2e230 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e240 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
2e250 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
2e260 28 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 63 6f 6c  ( NOT col2 + col
2e270 30 20 3c 3d 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d  0 <= + col0 )..-
2e280 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
2e290 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
2e2a0 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
2e2b0 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65  b962d0a49....que
2e2c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2e2d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2e2e0 28 20 2d 20 63 6f 6c 32 20 29 20 2a 20 36 37 20  ( - col2 ) * 67 
2e2f0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2e300 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
2e310 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 39 35  NULL..----..-395
2e320 33 0d 0a 2d 34 35 35 36 0d 0a 2d 36 34 33 32 0d  3..-4556..-6432.
2e330 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2e340 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2e350 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d  NCT + + col1 + -
2e360 20 31 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53   17 FROM tab1 AS
2e370 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 28 20   cor0 WHERE ( ( 
2e380 2b 20 32 31 20 29 20 49 53 20 4e 4f 54 20 4e 55  + 21 ) IS NOT NU
2e390 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d  LL )..----..-12.
2e3a0 0a 2d 33 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72 79  .-3..30....query
2e3b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2e3c0 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2d 20  CT ALL col2 + - 
2e3d0 32 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  26 AS col0 FROM 
2e3e0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2e3f0 2d 2d 0d 0a 33 33 0d 0a 34 32 0d 0a 37 30 0d 0a  --..33..42..70..
2e400 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e410 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
2e420 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 31 20 41 53  col2 / - col1 AS
2e430 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
2e440 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
2e450 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
2e460 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2e470 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
2e480 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
2e490 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2e4a0 72 74 20 6c 61 62 65 6c 2d 31 30 35 39 0d 0a 53  rt label-1059..S
2e4b0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32  ELECT DISTINCT 2
2e4c0 32 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b  2 * + col0 * - +
2e4d0 20 36 37 20 2b 20 2b 20 2d 20 33 32 20 44 49 56   67 + + - 32 DIV
2e4e0 20 31 37 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20   17 * col1 FROM 
2e4f0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2e500 2d 2d 0d 0a 2d 31 32 38 32 35 39 0d 0a 2d 31 34  --..-128259..-14
2e510 32 39 37 39 0d 0a 2d 32 32 31 39 31 0d 0a 0d 0a  2979..-22191....
2e520 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2e530 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2e540 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2e550 61 62 65 6c 2d 31 30 35 39 0d 0a 53 45 4c 45 43  abel-1059..SELEC
2e560 54 20 44 49 53 54 49 4e 43 54 20 32 32 20 2a 20  T DISTINCT 22 * 
2e570 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 36 37 20  + col0 * - + 67 
2e580 2b 20 2b 20 2d 20 33 32 20 2f 20 31 37 20 2a 20  + + - 32 / 17 * 
2e590 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
2e5a0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2e5b0 32 38 32 35 39 0d 0a 2d 31 34 32 39 37 39 0d 0a  28259..-142979..
2e5c0 2d 32 32 31 39 31 0d 0a 0d 0a 71 75 65 72 79 20  -22191....query 
2e5d0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2e5e0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
2e5f0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
2e600 35 33 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 4e 4f  53 + + + col0 NO
2e610 54 20 42 45 54 57 45 45 4e 20 2b 20 39 36 20 2a  T BETWEEN + 96 *
2e620 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30   + col2 * - col0
2e630 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 41 4e 44 20   + - - col2 AND 
2e640 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
2e650 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
2e660 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
2e670 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
2e680 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
2e690 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
2e6a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e6b0 54 20 2d 20 37 35 2c 20 2b 20 37 39 20 63 6f 6c  T - 75, + 79 col
2e6c0 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
2e6d0 2d 0d 0a 2d 37 35 0d 0a 37 39 0d 0a 2d 37 35 0d  -..-75..79..-75.
2e6e0 0a 37 39 0d 0a 2d 37 35 0d 0a 37 39 0d 0a 0d 0a  .79..-75..79....
2e6f0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
2e700 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
2e710 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
2e720 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
2e730 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
2e740 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e750 20 41 4c 4c 20 2b 20 2d 20 34 34 20 63 6f 6c 31   ALL + - 44 col1
2e760 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2e770 20 4e 55 4c 4c 20 3c 3e 20 2d 20 2b 20 39 34 20   NULL <> - + 94 
2e780 2a 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  * - - col1..----
2e790 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2e7a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
2e7b0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   + col1 AS col0 
2e7c0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2e7d0 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 63 6f 6c 31  NULL IN ( - col1
2e7e0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
2e7f0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2e800 4c 45 43 54 20 2b 20 63 6f 6c 30 20 41 53 20 63  LECT + col0 AS c
2e810 6f 6c 31 2c 20 63 6f 6c 32 20 2a 20 2d 20 63 6f  ol1, col2 * - co
2e820 6c 31 20 2b 20 2b 20 32 37 20 2b 20 2d 20 35 37  l1 + + 27 + - 57
2e830 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2e840 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 2d 31  b2..----..46..-1
2e850 32 30 33 0d 0a 36 34 0d 0a 2d 33 31 31 30 0d 0a  203..64..-3110..
2e860 37 35 0d 0a 2d 33 39 31 36 0d 0a 0d 0a 71 75 65  75..-3916....que
2e870 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2e880 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2d 20  LECT ALL col0 - 
2e890 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  + - col2 AS col2
2e8a0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2e8b0 0d 0a 31 34 34 0d 0a 31 34 37 0d 0a 31 35 39 0d  ..144..147..159.
2e8c0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2e8d0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34  rt..SELECT ALL 4
2e8e0 30 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  0 - col2 FROM ta
2e8f0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d  b0..----..-59..-
2e900 37 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49  7..30....query I
2e910 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e920 20 44 49 53 54 49 4e 43 54 20 2d 20 39 36 20 46   DISTINCT - 96 F
2e930 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
2e940 55 4c 4c 20 3c 3e 20 2b 20 31 32 0d 0a 2d 2d 2d  ULL <> + 12..---
2e950 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2e960 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2e970 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2e980 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2e990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e9a0 74 20 6c 61 62 65 6c 2d 31 30 36 38 0d 0a 53 45  t label-1068..SE
2e9b0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28  LECT ALL + CAST(
2e9c0 20 2b 20 31 20 41 53 20 53 49 47 4e 45 44 20 29   + 1 AS SIGNED )
2e9d0 20 2a 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2b 20   * + SUM( ALL + 
2e9e0 33 39 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  39 ) AS col1 FRO
2e9f0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2ea00 2d 0d 0a 31 31 37 0d 0a 0d 0a 73 6b 69 70 69 66  -..117....skipif
2ea10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2ea20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2ea30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ea40 30 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  068..SELECT ALL 
2ea50 2b 20 43 41 53 54 20 28 20 2b 20 31 20 41 53 20  + CAST ( + 1 AS 
2ea60 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 53 55  INTEGER ) * + SU
2ea70 4d 20 28 20 41 4c 4c 20 2b 20 33 39 20 29 20 41  M ( ALL + 39 ) A
2ea80 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
2ea90 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37   cor0..----..117
2eaa0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2eab0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2eac0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2ead0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
2eae0 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  9..SELECT ALL + 
2eaf0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 37  + COUNT( * ) * 7
2eb00 34 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  4 FROM tab1 AS c
2eb10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 32 0d 0a  or0..----..222..
2eb20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2eb30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2eb40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2eb50 20 6c 61 62 65 6c 2d 31 30 36 39 0d 0a 53 45 4c   label-1069..SEL
2eb60 45 43 54 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e  ECT ALL + + COUN
2eb70 54 20 28 20 2a 20 29 20 2a 20 37 34 20 46 52 4f  T ( * ) * 74 FRO
2eb80 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2eb90 2d 2d 2d 2d 0d 0a 32 32 32 0d 0a 0d 0a 71 75 65  ----..222....que
2eba0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2ebb0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2ebc0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2ebd0 20 4e 4f 54 20 31 30 20 2a 20 2d 20 2d 20 39 33   NOT 10 * - - 93
2ebe0 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54   * - col1 IS NOT
2ebf0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
2ec00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
2ec10 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2ec20 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2ec30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2ec40 31 30 37 31 0d 0a 53 45 4c 45 43 54 20 2b 20 32  1071..SELECT + 2
2ec50 36 20 44 49 56 20 2d 20 63 6f 6c 30 20 41 53 20  6 DIV - col0 AS 
2ec60 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
2ec70 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2ec80 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
2ec90 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2eca0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2ecb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2ecc0 37 31 0d 0a 53 45 4c 45 43 54 20 2b 20 32 36 20  71..SELECT + 26 
2ecd0 2f 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  / - col0 AS col1
2ece0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2ecf0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
2ed00 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
2ed10 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2ed20 54 49 4e 43 54 20 2b 20 33 35 20 2a 20 2d 20 2d  TINCT + 35 * - -
2ed30 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 41 53 20   col0 + col0 AS 
2ed40 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
2ed50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
2ed60 35 36 0d 0a 32 33 30 34 0d 0a 32 37 30 30 0d 0a  56..2304..2700..
2ed70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ed80 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2ed90 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  CT col2 FROM tab
2eda0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
2edb0 4e 4f 54 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55  NOT - col2 IS NU
2edc0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38  LL..----..59..68
2edd0 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..96....onlyif m
2ede0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
2edf0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
2ee00 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
2ee10 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 34 0d 0a  ort label-1074..
2ee20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2ee30 2b 20 32 37 20 44 49 56 20 2d 20 2d 20 63 6f 6c  + 27 DIV - - col
2ee40 31 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  1 AS col2, col1 
2ee50 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2ee60 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 37 0d 0a  0..----..0..47..
2ee70 31 0d 0a 31 34 0d 0a 35 0d 0a 35 0d 0a 0d 0a 73  1..14..5..5....s
2ee80 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ee90 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2eea0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2eeb0 61 62 65 6c 2d 31 30 37 34 0d 0a 53 45 4c 45 43  abel-1074..SELEC
2eec0 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32 37 20  T DISTINCT + 27 
2eed0 2f 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  / - - col1 AS co
2eee0 6c 32 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  l2, col1 FROM ta
2eef0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2ef00 0d 0a 30 0d 0a 34 37 0d 0a 31 0d 0a 31 34 0d 0a  ..0..47..1..14..
2ef10 35 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5..5....onlyif m
2ef20 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2ef30 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2ef40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ef50 2d 31 30 37 35 0d 0a 53 45 4c 45 43 54 20 2b 20  -1075..SELECT + 
2ef60 36 38 20 2a 20 2b 20 2d 20 4d 49 4e 28 20 2d 20  68 * + - MIN( - 
2ef70 2b 20 37 37 20 29 20 41 53 20 63 6f 6c 32 20 46  + 77 ) AS col2 F
2ef80 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2ef90 0d 0a 2d 2d 2d 2d 0d 0a 35 32 33 36 0d 0a 0d 0a  ..----..5236....
2efa0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2efb0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2efc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2efd0 61 62 65 6c 2d 31 30 37 35 0d 0a 53 45 4c 45 43  abel-1075..SELEC
2efe0 54 20 2b 20 36 38 20 2a 20 2b 20 2d 20 4d 49 4e  T + 68 * + - MIN
2eff0 20 28 20 2d 20 2b 20 37 37 20 29 20 41 53 20 63   ( - + 77 ) AS c
2f000 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
2f010 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 33   cor0..----..523
2f020 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
2f030 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2f040 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  LL * FROM tab0 A
2f050 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2f060 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57 45 45   col2 NOT BETWEE
2f070 4e 20 2d 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c  N - col2 AND NUL
2f080 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
2f090 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2f0a0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
2f0b0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2f0c0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2f0d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f0e0 37 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43  77..SELECT + - C
2f0f0 4f 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d  OUNT( DISTINCT -
2f100 20 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 44 49   ( - col2 ) ) DI
2f110 56 20 2d 20 32 37 20 46 52 4f 4d 20 74 61 62 30  V - 27 FROM tab0
2f120 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f130 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2f140 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2f150 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2f160 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 37 0d 0a  ort label-1077..
2f170 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54  SELECT + - COUNT
2f180 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20   ( DISTINCT - ( 
2f190 2d 20 63 6f 6c 32 20 29 20 29 20 2f 20 2d 20 32  - col2 ) ) / - 2
2f1a0 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  7 FROM tab0 AS c
2f1b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
2f1c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2f1d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2f1e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2f1f0 72 74 20 6c 61 62 65 6c 2d 31 30 37 38 0d 0a 53  rt label-1078..S
2f200 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
2f210 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
2f220 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
2f230 45 20 4e 4f 54 20 2d 20 28 20 2b 20 63 6f 6c 30  E NOT - ( + col0
2f240 20 29 20 2a 20 34 36 20 2b 20 2d 20 63 6f 6c 31   ) * 46 + - col1
2f250 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20   + + col0 + - - 
2f260 63 6f 6c 31 20 2b 20 33 34 20 49 53 20 4e 55 4c  col1 + 34 IS NUL
2f270 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  L..----..3....sk
2f280 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2f290 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2f2a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2f2b0 65 6c 2d 31 30 37 38 0d 0a 53 45 4c 45 43 54 20  el-1078..SELECT 
2f2c0 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
2f2d0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
2f2e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2f2f0 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20   - ( + col0 ) * 
2f300 34 36 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20  46 + - col1 + + 
2f310 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  col0 + - - col1 
2f320 2b 20 33 34 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 34 IS NULL..--
2f330 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
2f340 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2f350 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 63 6f   - col1 / - - co
2f360 6c 32 20 2b 20 2d 20 38 38 20 46 52 4f 4d 20 74  l2 + - 88 FROM t
2f370 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab2 WHERE NOT NU
2f380 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
2f390 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2f3a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2f3b0 49 4e 43 54 20 2b 20 32 31 20 46 52 4f 4d 20 74  INCT + 21 FROM t
2f3c0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab2 WHERE NOT - 
2f3d0 2d 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31 20  - col1 - - col1 
2f3e0 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  NOT BETWEEN NULL
2f3f0 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
2f400 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2f410 72 74 0d 0a 53 45 4c 45 43 54 20 32 31 20 2a 20  rt..SELECT 21 * 
2f420 2b 20 31 35 20 2a 20 2b 20 35 35 20 41 53 20 63  + 15 * + 55 AS c
2f430 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
2f440 2d 2d 2d 0d 0a 31 37 33 32 35 0d 0a 31 37 33 32  ---..17325..1732
2f450 35 0d 0a 31 37 33 32 35 0d 0a 0d 0a 73 6b 69 70  5..17325....skip
2f460 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2f470 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2f480 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2f490 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2f4a0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2f4b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
2f4c0 54 49 4e 43 54 20 2d 20 2b 20 37 34 20 2a 20 2d  TINCT - + 74 * -
2f4d0 20 34 31 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 20   41 + col0 col0 
2f4e0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2f4f0 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  NOT NULL IS NULL
2f500 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2f510 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f520 54 20 63 6f 6c 30 20 2a 20 2b 20 37 33 20 2b 20  T col0 * + 73 + 
2f530 2d 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20  - + col2 * col0 
2f540 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2f550 4e 4f 54 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d  NOT NULL = NULL.
2f560 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2f570 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2f580 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2f590 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2f5a0 6c 2d 31 30 38 34 0d 0a 53 45 4c 45 43 54 20 53  l-1084..SELECT S
2f5b0 55 4d 28 20 2d 20 35 30 20 29 20 63 6f 6c 30 20  UM( - 50 ) col0 
2f5c0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2f5d0 30 20 57 48 45 52 45 20 4e 4f 54 20 31 35 20 3e  0 WHERE NOT 15 >
2f5e0 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 4e   - col2..----..N
2f5f0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
2f600 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2f610 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
2f620 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2f630 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2f640 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2f650 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2f660 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f670 61 62 65 6c 2d 31 30 38 34 0d 0a 53 45 4c 45 43  abel-1084..SELEC
2f680 54 20 53 55 4d 20 28 20 2d 20 35 30 20 29 20 63  T SUM ( - 50 ) c
2f690 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
2f6a0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2f6b0 31 35 20 3e 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d  15 > - col2..---
2f6c0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
2f6d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2f6e0 43 54 20 2d 20 33 35 20 41 53 20 63 6f 6c 32 20  CT - 35 AS col2 
2f6f0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2f700 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35 0d 0a 2d 33  0..----..-35..-3
2f710 35 0d 0a 2d 33 35 0d 0a 0d 0a 71 75 65 72 79 20  5..-35....query 
2f720 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2f730 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
2f740 2c 20 38 36 20 2a 20 2b 20 33 39 20 46 52 4f 4d  , 86 * + 39 FROM
2f750 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2f760 2d 2d 2d 0d 0a 31 35 0d 0a 33 33 35 34 0d 0a 38  ---..15..3354..8
2f770 37 0d 0a 33 33 35 34 0d 0a 39 37 0d 0a 33 33 35  7..3354..97..335
2f780 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
2f790 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 33  sort..SELECT + 3
2f7a0 37 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  7 + + - col0 FRO
2f7b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2f7c0 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 38 0d 0a  ----..-14..-48..
2f7d0 2d 35 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -54....onlyif my
2f7e0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2f7f0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2f800 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f810 31 30 38 38 0d 0a 53 45 4c 45 43 54 20 2d 20 28  1088..SELECT - (
2f820 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 2b 20   COUNT( * ) ) + 
2f830 2d 20 31 37 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 17 AS col2 FRO
2f840 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2f850 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a 0d 0a 73 6b 69  ----..-20....ski
2f860 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2f870 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2f880 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2f890 6c 2d 31 30 38 38 0d 0a 53 45 4c 45 43 54 20 2d  l-1088..SELECT -
2f8a0 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   ( COUNT ( * ) )
2f8b0 20 2b 20 2d 20 31 37 20 41 53 20 63 6f 6c 32 20   + - 17 AS col2 
2f8c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2f8d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d 0a 0d 0a  0..----..-20....
2f8e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2f8f0 0a 53 45 4c 45 43 54 20 2d 20 35 30 20 2b 20 2d  .SELECT - 50 + -
2f900 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
2f910 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2f920 0a 2d 31 30 39 0d 0a 2d 31 31 38 0d 0a 2d 31 34  .-109..-118..-14
2f930 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
2f940 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2f950 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2f960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f970 39 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  90..SELECT DISTI
2f980 4e 43 54 20 2d 20 2b 20 33 36 20 2b 20 2d 20 2b  NCT - + 36 + - +
2f990 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   ( COUNT( * ) ) 
2f9a0 2a 20 2b 20 2b 20 31 39 20 46 52 4f 4d 20 74 61  * + + 19 FROM ta
2f9b0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2f9c0 0d 0a 2d 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-93....skipif 
2f9d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2f9e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2f9f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2fa00 39 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  90..SELECT DISTI
2fa10 4e 43 54 20 2d 20 2b 20 33 36 20 2b 20 2d 20 2b  NCT - + 36 + - +
2fa20 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   ( COUNT ( * ) )
2fa30 20 2a 20 2b 20 2b 20 31 39 20 46 52 4f 4d 20 74   * + + 19 FROM t
2fa40 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2fa50 2d 0d 0a 2d 39 33 0d 0a 0d 0a 71 75 65 72 79 20  -..-93....query 
2fa60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2fa70 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20 2b  T ALL + col0 + +
2fa80 20 32 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   22 AS col2 FROM
2fa90 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2faa0 2d 2d 2d 0d 0a 31 30 37 0d 0a 31 31 33 0d 0a 37  ---..107..113..7
2fab0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
2fac0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31 36 20  sort..SELECT 16 
2fad0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2fae0 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
2faf0 4a 4f 49 4e 20 74 61 62 31 20 63 6f 72 31 0d 0a  JOIN tab1 cor1..
2fb00 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2fb10 61 73 68 69 6e 67 20 74 6f 20 33 66 64 62 30 38  ashing to 3fdb08
2fb20 65 63 32 65 33 64 34 62 36 34 32 64 64 34 35 39  ec2e3d4b642dd459
2fb30 34 37 37 38 63 63 61 38 62 33 0d 0a 0d 0a 6f 6e  4778cca8b3....on
2fb40 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2fb50 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2fb60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2fb70 20 6c 61 62 65 6c 2d 31 30 39 33 0d 0a 53 45 4c   label-1093..SEL
2fb80 45 43 54 20 2d 20 2d 20 4d 41 58 28 20 41 4c 4c  ECT - - MAX( ALL
2fb90 20 2d 20 28 20 2d 20 34 30 20 29 20 29 20 41 53   - ( - 40 ) ) AS
2fba0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
2fbb0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
2fbc0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2fbd0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2fbe0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2fbf0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 33 0d 0a  ort label-1093..
2fc00 53 45 4c 45 43 54 20 2d 20 2d 20 4d 41 58 20 28  SELECT - - MAX (
2fc10 20 41 4c 4c 20 2d 20 28 20 2d 20 34 30 20 29 20   ALL - ( - 40 ) 
2fc20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2fc30 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2fc40 2d 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..40....onlyif 
2fc50 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2fc60 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2fc70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2fc80 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 34 0d 0a  ort label-1094..
2fc90 53 45 4c 45 43 54 20 2d 20 2b 20 43 41 53 54 28  SELECT - + CAST(
2fca0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
2fcb0 29 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2d 20 2b  ) * + - col2 - +
2fcc0 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
2fcd0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2fce0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
2fcf0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
2fd00 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2fd10 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2fd20 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 34 0d 0a  ort label-1094..
2fd30 53 45 4c 45 43 54 20 2d 20 2b 20 43 41 53 54 20  SELECT - + CAST 
2fd40 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2fd50 52 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2d  R ) * + - col2 -
2fd60 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + - col1 FROM t
2fd70 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2fd80 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
2fd90 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
2fda0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2fdb0 49 53 54 49 4e 43 54 20 2b 20 31 39 20 2b 20 2b  ISTINCT + 19 + +
2fdc0 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2a   col2 + + col1 *
2fdd0 20 2d 20 28 20 33 37 20 29 20 46 52 4f 4d 20 74   - ( 37 ) FROM t
2fde0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab2 WHERE NOT NU
2fdf0 4c 4c 20 3c 3e 20 28 20 2b 20 32 38 20 29 0d 0a  LL <> ( + 28 )..
2fe00 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
2fe10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2fe20 32 30 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  20 + col0 AS col
2fe30 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
2fe40 2d 0d 0a 31 30 37 0d 0a 31 31 37 0d 0a 33 35 0d  -..107..117..35.
2fe50 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2fe60 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
2fe70 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f 6c 32   col2 * - - col2
2fe80 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   - + col2 * + co
2fe90 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
2fea0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 38  tab2..----..-148
2feb0 30 0d 0a 2d 35 32 32 0d 0a 2d 36 34 34 0d 0a 0d  0..-522..-644...
2fec0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2fed0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
2fee0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
2fef0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2ff00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2ff10 62 65 6c 2d 31 30 39 38 0d 0a 53 45 4c 45 43 54  bel-1098..SELECT
2ff20 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
2ff30 20 53 49 47 4e 45 44 20 29 20 2b 20 43 4f 55 4e   SIGNED ) + COUN
2ff40 54 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d  T( * ) col2 FROM
2ff50 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
2ff60 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
2ff70 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2ff80 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
2ff90 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2ffa0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2ffb0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2ffc0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2ffd0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2ffe0 65 6c 2d 31 30 39 38 0d 0a 53 45 4c 45 43 54 20  el-1098..SELECT 
2fff0 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
30000 20 49 4e 54 45 47 45 52 20 29 20 2b 20 43 4f 55   INTEGER ) + COU
30010 4e 54 20 28 20 2a 20 29 20 63 6f 6c 32 20 46 52  NT ( * ) col2 FR
30020 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
30030 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
30040 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
30050 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
30060 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30070 74 20 6c 61 62 65 6c 2d 31 30 39 39 0d 0a 53 45  t label-1099..SE
30080 4c 45 43 54 20 2b 20 28 20 2d 20 63 6f 6c 31 20  LECT + ( - col1 
30090 29 20 44 49 56 20 2b 20 2d 20 31 32 20 2b 20 2d  ) DIV + - 12 + -
300a0 20 36 38 20 2a 20 32 32 20 46 52 4f 4d 20 74 61   68 * 22 FROM ta
300b0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 39 33 0d  b1..----..-1493.
300c0 0a 2d 31 34 39 35 0d 0a 2d 31 34 39 36 0d 0a 0d  .-1495..-1496...
300d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
300e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
300f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30100 6c 61 62 65 6c 2d 31 30 39 39 0d 0a 53 45 4c 45  label-1099..SELE
30110 43 54 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20  CT + ( - col1 ) 
30120 2f 20 2b 20 2d 20 31 32 20 2b 20 2d 20 36 38 20  / + - 12 + - 68 
30130 2a 20 32 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  * 22 FROM tab1..
30140 2d 2d 2d 2d 0d 0a 2d 31 34 39 33 0d 0a 2d 31 34  ----..-1493..-14
30150 39 35 0d 0a 2d 31 34 39 36 0d 0a 0d 0a 71 75 65  95..-1496....que
30160 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
30170 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 32 38 20  LECT ALL + - 28 
30180 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + + col1 AS col2
30190 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
301a0 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d   NULL = NULL..--
301b0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
301c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
301d0 6c 32 20 2b 20 2d 20 31 36 20 41 53 20 63 6f 6c  l2 + - 16 AS col
301e0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
301f0 2d 0d 0a 34 33 0d 0a 35 32 0d 0a 38 30 0d 0a 0d  -..43..52..80...
30200 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30210 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32  ..SELECT ALL + 2
30220 39 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f  9 * - + col0 FRO
30230 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
30240 35 32 33 0d 0a 2d 32 38 31 33 0d 0a 2d 34 33 35  523..-2813..-435
30250 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
30260 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
30270 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
30280 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30290 61 62 65 6c 2d 31 31 30 33 0d 0a 53 45 4c 45 43  abel-1103..SELEC
302a0 54 20 2b 20 63 6f 6c 31 20 44 49 56 20 34 30 20  T + col1 DIV 40 
302b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
302c0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 32  0..----..0..0..2
302d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
302e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
302f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
30300 72 74 20 6c 61 62 65 6c 2d 31 31 30 33 0d 0a 53  rt label-1103..S
30310 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 34  ELECT + col1 / 4
30320 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
30330 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab0..----..0..0.
30340 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .2....onlyif mys
30350 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
30360 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
30370 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30380 31 30 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28  104..SELECT MAX(
30390 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
303a0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
303b0 2d 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-5....skipif 
303c0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
303d0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
303e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
303f0 30 34 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28  04..SELECT MAX (
30400 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
30410 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
30420 2d 0d 0a 2d 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-5....onlyif 
30430 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
30440 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
30450 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
30460 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
30470 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30  owsort label-110
30480 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  5..SELECT COUNT(
30490 20 2a 20 29 2c 20 4d 49 4e 28 20 2b 20 43 41 53   * ), MIN( + CAS
304a0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
304b0 44 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  D ) ) AS col1 FR
304c0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab2..----..3
304d0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
304e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
304f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30500 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30510 31 31 30 35 0d 0a 53 45 4c 45 43 54 20 43 4f 55  1105..SELECT COU
30520 4e 54 20 28 20 2a 20 29 2c 20 4d 49 4e 20 28 20  NT ( * ), MIN ( 
30530 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
30540 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53 20   INTEGER ) ) AS 
30550 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
30560 2d 2d 2d 2d 0d 0a 33 0d 0a 4e 55 4c 4c 0d 0a 0d  ----..3..NULL...
30570 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
30580 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
30590 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
305a0 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45  E NOT NULL BETWE
305b0 45 4e 20 63 6f 6c 30 20 41 4e 44 20 2b 20 35 0d  EN col0 AND + 5.
305c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
305d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
305e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
305f0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
30600 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 37 0d  sort label-1107.
30610 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
30620 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
30630 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 2c  IGNED ) AS col2,
30640 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f   + col1 * + - co
30650 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
30660 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
30670 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 31 0d 0a 4e 55  --..NULL..-1..NU
30680 4c 4c 0d 0a 2d 34 34 31 0d 0a 4e 55 4c 4c 0d 0a  LL..-441..NULL..
30690 2d 36 35 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -6561....skipif 
306a0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
306b0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
306c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
306d0 31 30 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  107..SELECT DIST
306e0 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  INCT CAST ( NULL
306f0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
30700 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20 2a 20   col2, + col1 * 
30710 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  + - col1 AS col1
30720 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
30730 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
30740 2d 31 0d 0a 4e 55 4c 4c 0d 0a 2d 34 34 31 0d 0a  -1..NULL..-441..
30750 4e 55 4c 4c 0d 0a 2d 36 35 36 31 0d 0a 0d 0a 71  NULL..-6561....q
30760 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
30770 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
30780 2a 20 2d 20 36 36 20 2b 20 2d 20 2b 20 31 36 20  * - 66 + - + 16 
30790 2a 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63  * - col2 * + - c
307a0 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
307b0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
307c0 2d 2d 2d 0d 0a 2d 31 34 33 38 32 0d 0a 2d 31 34  ---..-14382..-14
307d0 35 38 30 0d 0a 2d 31 36 30 31 38 32 0d 0a 0d 0a  580..-160182....
307e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
307f0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
30800 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
30810 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
30820 2d 31 31 30 39 0d 0a 53 45 4c 45 43 54 20 44 49  -1109..SELECT DI
30830 53 54 49 4e 43 54 20 63 6f 6c 31 20 46 52 4f 4d  STINCT col1 FROM
30840 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
30850 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20  ERE NOT NULL IN 
30860 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  ( CAST( NULL AS 
30870 53 49 47 4e 45 44 20 29 2c 20 63 6f 6c 32 20 2b  SIGNED ), col2 +
30880 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f   + col2 * + + co
30890 6c 30 2c 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29  l0, + ( + col2 )
308a0 2c 20 2b 20 2b 20 36 37 20 29 0d 0a 2d 2d 2d 2d  , + + 67 )..----
308b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
308c0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
308d0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
308e0 72 74 20 6c 61 62 65 6c 2d 31 31 30 39 0d 0a 53  rt label-1109..S
308f0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
30900 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
30910 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
30920 4e 55 4c 4c 20 49 4e 20 28 20 43 41 53 54 20 28  NULL IN ( CAST (
30930 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
30940 20 29 2c 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c   ), col2 + + col
30950 32 20 2a 20 2b 20 2b 20 63 6f 6c 30 2c 20 2b 20  2 * + + col0, + 
30960 28 20 2b 20 63 6f 6c 32 20 29 2c 20 2b 20 2b 20  ( + col2 ), + + 
30970 36 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  67 )..----....qu
30980 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
30990 45 4c 45 43 54 20 28 20 2d 20 2b 20 63 6f 6c 32  ELECT ( - + col2
309a0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
309b0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
309c0 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 32 39 20 49   col2 * + + 29 I
309d0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
309e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
309f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
30a00 2b 20 31 34 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 14 AS col1 FRO
30a10 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
30a20 2d 0d 0a 31 34 0d 0a 31 34 0d 0a 31 34 0d 0a 0d  -..14..14..14...
30a30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30a40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36  ..SELECT ALL + 6
30a50 36 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  6 FROM tab1 AS c
30a60 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
30a70 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
30a80 2d 2d 0d 0a 36 36 0d 0a 36 36 0d 0a 36 36 0d 0a  --..66..66..66..
30a90 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
30aa0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
30ab0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
30ac0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
30ad0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
30ae0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
30af0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20  CT ALL + col0 + 
30b00 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col0 col0 FROM t
30b10 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab1 WHERE NOT co
30b20 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
30b30 0d 0a 31 30 32 0d 0a 31 37 30 0d 0a 31 38 32 0d  ..102..170..182.
30b40 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
30b50 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
30b60 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
30b70 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
30b80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30b90 6c 61 62 65 6c 2d 31 31 31 34 0d 0a 53 45 4c 45  label-1114..SELE
30ba0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41  CT DISTINCT + MA
30bb0 58 28 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e  X( ALL - CAST( N
30bc0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
30bd0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
30be0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
30bf0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30c00 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
30c10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30c20 31 31 31 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  1114..SELECT DIS
30c30 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20 41 4c  TINCT + MAX ( AL
30c40 4c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  L - CAST ( NULL 
30c50 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 46  AS INTEGER ) ) F
30c60 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
30c70 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
30c80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
30c90 41 4c 4c 20 2d 20 32 39 20 2a 20 2d 20 2d 20 28  ALL - 29 * - - (
30ca0 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20   col2 ) AS col1 
30cb0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
30cc0 0a 2d 31 31 36 30 0d 0a 2d 31 36 38 32 0d 0a 2d  .-1160..-1682..-
30cd0 36 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  667....query I r
30ce0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
30cf0 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 41  ol2 + + - col2 A
30d00 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
30d10 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
30d20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
30d30 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
30d40 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
30d50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 37  wsort label-1117
30d60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
30d70 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  T + COUNT( * ) *
30d80 20 2d 20 37 33 20 46 52 4f 4d 20 74 61 62 31 0d   - 73 FROM tab1.
30d90 0a 2d 2d 2d 2d 0d 0a 2d 32 31 39 0d 0a 0d 0a 73  .----..-219....s
30da0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30db0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30dc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30dd0 62 65 6c 2d 31 31 31 37 0d 0a 53 45 4c 45 43 54  bel-1117..SELECT
30de0 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
30df0 54 20 28 20 2a 20 29 20 2a 20 2d 20 37 33 20 46  T ( * ) * - 73 F
30e00 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
30e10 2d 32 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -219....onlyif m
30e20 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
30e30 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
30e40 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
30e50 72 74 20 6c 61 62 65 6c 2d 31 31 31 38 0d 0a 53  rt label-1118..S
30e60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
30e70 6f 6c 32 20 44 49 56 20 2d 20 2b 20 63 6f 6c 30  ol2 DIV - + col0
30e80 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
30e90 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  b2..----..0....s
30ea0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30eb0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30ec0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30ed0 62 65 6c 2d 31 31 31 38 0d 0a 53 45 4c 45 43 54  bel-1118..SELECT
30ee0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f   DISTINCT col2 /
30ef0 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   - + col0 AS col
30f00 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
30f10 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..0....onlyif m
30f20 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
30f30 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
30f40 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
30f50 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
30f60 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 39 0d  sort label-1119.
30f70 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 41 53 54  .SELECT + - CAST
30f80 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
30f90 20 29 20 2f 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) / + COUNT( * 
30fa0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
30fb0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
30fc0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
30fd0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30fe0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
30ff0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31000 31 31 31 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  1119..SELECT + -
31010 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
31020 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20 43 4f  INTEGER ) / + CO
31030 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
31040 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
31050 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
31060 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
31070 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 37  rt..SELECT - + 7
31080 36 20 2a 20 2b 20 37 39 20 41 53 20 63 6f 6c 31  6 * + 79 AS col1
31090 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
310a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 30 34 0d  r0..----..-6004.
310b0 0a 2d 36 30 30 34 0d 0a 2d 36 30 30 34 0d 0a 0d  .-6004..-6004...
310c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
310d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 20 46  ..SELECT ALL 4 F
310e0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
310f0 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 49 53   WHERE - col2 IS
31100 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
31110 0a 34 0d 0a 34 0d 0a 34 0d 0a 0d 0a 71 75 65 72  .4..4..4....quer
31120 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
31130 45 43 54 20 39 35 20 2b 20 2d 20 63 6f 6c 32 20  ECT 95 + - col2 
31140 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
31150 32 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 35 35 0d  2..----..37..55.
31160 0a 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .72....query I r
31170 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
31180 20 35 36 20 2b 20 32 38 20 46 52 4f 4d 20 74 61   56 + 28 FROM ta
31190 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 38 34  b1..----..84..84
311a0 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..84....query I 
311b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
311c0 2b 20 2d 20 32 32 20 46 52 4f 4d 20 74 61 62 31  + - 22 FROM tab1
311d0 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
311e0 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
311f0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
31200 20 68 61 73 68 69 6e 67 20 74 6f 20 66 61 65 34   hashing to fae4
31210 36 66 38 31 34 38 62 30 32 39 36 34 66 37 31 34  6f8148b02964f714
31220 35 65 62 36 65 64 35 38 31 39 66 39 0d 0a 0d 0a  5eb6ed5819f9....
31230 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
31240 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b  .SELECT + col0 +
31250 20 2d 20 35 35 20 46 52 4f 4d 20 74 61 62 31 0d   - 55 FROM tab1.
31260 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 33 30 0d 0a 33  .----..-4..30..3
31270 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
31280 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
31290 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
312a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
312b0 32 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  26..SELECT COUNT
312c0 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  ( DISTINCT col0 
312d0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
312e0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
312f0 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  E NULL IS NOT NU
31300 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
31310 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
31320 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
31330 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31340 62 65 6c 2d 31 31 32 36 0d 0a 53 45 4c 45 43 54  bel-1126..SELECT
31350 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43   COUNT ( DISTINC
31360 54 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32  T col0 ) AS col2
31370 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
31380 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  r0 WHERE NULL IS
31390 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
313a0 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
313b0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
313c0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
313d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
313e0 20 6c 61 62 65 6c 2d 31 31 32 37 0d 0a 53 45 4c   label-1127..SEL
313f0 45 43 54 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  ECT + + CAST( NU
31400 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
31410 20 2b 20 63 6f 6c 30 20 2a 20 33 33 20 41 53 20   + col0 * 33 AS 
31420 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
31430 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
31440 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
31450 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
31460 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
31470 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31480 20 6c 61 62 65 6c 2d 31 31 32 37 0d 0a 53 45 4c   label-1127..SEL
31490 45 43 54 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  ECT + + CAST ( N
314a0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
314b0 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 33 33 20 41   + + col0 * 33 A
314c0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
314d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
314e0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
314f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
31500 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
31510 36 30 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 46 52  60 + - + col2 FR
31520 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
31530 0a 2d 2d 2d 2d 0d 0a 2d 33 36 0d 0a 2d 38 0d 0a  .----..-36..-8..
31540 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
31550 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
31560 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
31570 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
31580 32 39 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 4d  29..SELECT + - M
31590 41 58 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  AX( col2 ) AS co
315a0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
315b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d  cor0..----..-58.
315c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
315d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
315e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
315f0 74 20 6c 61 62 65 6c 2d 31 31 32 39 0d 0a 53 45  t label-1129..SE
31600 4c 45 43 54 20 2b 20 2d 20 4d 41 58 20 28 20 63  LECT + - MAX ( c
31610 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
31620 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
31630 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 0d 0a 6f 6e  .----..-58....on
31640 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
31650 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
31660 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
31670 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31680 31 33 30 0d 0a 53 45 4c 45 43 54 20 38 32 20 2f  130..SELECT 82 /
31690 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
316a0 20 53 49 47 4e 45 44 20 29 20 2f 20 2b 20 63 6f   SIGNED ) / + co
316b0 6c 32 20 2a 20 2d 20 43 41 53 54 28 20 2b 20 38  l2 * - CAST( + 8
316c0 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 63 6f  7 AS SIGNED ) co
316d0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
316e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
316f0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
31700 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
31710 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
31720 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
31730 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
31740 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
31750 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
31760 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31770 6c 61 62 65 6c 2d 31 31 33 30 0d 0a 53 45 4c 45  label-1130..SELE
31780 43 54 20 38 32 20 2f 20 2b 20 43 41 53 54 20 28  CT 82 / + CAST (
31790 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
317a0 20 29 20 2f 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   ) / + col2 * - 
317b0 43 41 53 54 20 28 20 2b 20 38 37 20 41 53 20 49  CAST ( + 87 AS I
317c0 4e 54 45 47 45 52 20 29 20 63 6f 6c 31 20 46 52  NTEGER ) col1 FR
317d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
317e0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
317f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
31800 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
31810 20 39 35 20 2d 20 2d 20 2d 20 63 6f 6c 31 20 41   95 - - - col1 A
31820 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
31830 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a 38 31 0d 0a  ..----..48..81..
31840 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  90....onlyif mys
31850 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
31860 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
31870 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
31880 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
31890 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 32 0d 0a  ort label-1132..
318a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
318b0 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 63 6f  MAX( DISTINCT co
318c0 6c 30 20 29 20 41 53 20 63 6f 6c 30 2c 20 2d 20  l0 ) AS col0, - 
318d0 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2b  COUNT( * ) DIV +
318e0 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b   MIN( DISTINCT +
318f0 20 37 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52   70 ) AS col1 FR
31900 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab0..----..9
31910 37 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  7..0....skipif m
31920 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
31930 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
31940 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
31950 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  32..SELECT DISTI
31960 4e 43 54 20 4d 41 58 20 28 20 44 49 53 54 49 4e  NCT MAX ( DISTIN
31970 43 54 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c  CT col0 ) AS col
31980 30 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  0, - COUNT ( * )
31990 20 2f 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49   / + MIN ( DISTI
319a0 4e 43 54 20 2b 20 37 30 20 29 20 41 53 20 63 6f  NCT + 70 ) AS co
319b0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
319c0 2d 2d 0d 0a 39 37 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  --..97..0....onl
319d0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
319e0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
319f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
31a00 6c 61 62 65 6c 2d 31 31 33 33 0d 0a 53 45 4c 45  label-1133..SELE
31a10 43 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54  CT SUM( DISTINCT
31a20 20 2d 20 2b 20 32 33 20 29 20 41 53 20 63 6f 6c   - + 23 ) AS col
31a30 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
31a40 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..-23....skipif
31a50 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
31a60 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
31a70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31a80 31 33 33 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20  133..SELECT SUM 
31a90 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 32  ( DISTINCT - + 2
31aa0 33 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  3 ) AS col1 FROM
31ab0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   tab2..----..-23
31ac0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31ad0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
31ae0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
31af0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
31b00 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  34..SELECT ALL -
31b10 20 2d 20 35 34 20 2a 20 43 4f 55 4e 54 28 20 2a   - 54 * COUNT( *
31b20 20 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e   ) AS col0, COUN
31b30 54 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 41 53  T( - + col1 ) AS
31b40 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
31b50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d  cor0..----..162.
31b60 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
31b70 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31b80 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
31b90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 34  wsort label-1134
31ba0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
31bb0 20 35 34 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20   54 * COUNT ( * 
31bc0 29 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54  ) AS col0, COUNT
31bd0 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 41 53   ( - + col1 ) AS
31be0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
31bf0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d  cor0..----..162.
31c00 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
31c10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
31c20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 2b 20  col0 * + col0 + 
31c30 2d 20 28 20 63 6f 6c 31 20 29 20 2b 20 63 6f 6c  - ( col1 ) + col
31c40 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
31c50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 36 34  or0..----..-2564
31c60 0d 0a 2d 37 31 34 35 0d 0a 2d 38 32 33 37 0d 0a  ..-7145..-8237..
31c70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31c80 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 38 35  t..SELECT + + 85
31c90 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
31ca0 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
31cb0 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
31cc0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
31cd0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 61 61  es hashing to aa
31ce0 66 61 38 65 35 63 66 62 39 65 30 32 63 65 61 38  fa8e5cfb9e02cea8
31cf0 37 31 37 38 33 33 65 37 35 38 31 66 37 62 0d 0a  717833e7581f7b..
31d00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
31d10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
31d20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
31d30 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32  or0 WHERE + col2
31d40 20 2b 20 35 37 20 2a 20 35 30 20 2a 20 2b 20 2b   + 57 * 50 * + +
31d50 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
31d60 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
31d70 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
31d80 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30  ISTINCT + - col0
31d90 20 2a 20 2b 20 2d 20 36 38 20 41 53 20 63 6f 6c   * + - 68 AS col
31da0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
31db0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 32 38 0d  or0..----..3128.
31dc0 0a 34 33 35 32 0d 0a 35 31 30 30 0d 0a 0d 0a 6f  .4352..5100....o
31dd0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
31de0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
31df0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31e00 74 20 6c 61 62 65 6c 2d 31 31 33 39 0d 0a 53 45  t label-1139..SE
31e10 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
31e20 55 4e 54 28 20 63 6f 6c 32 20 29 20 41 53 20 63  UNT( col2 ) AS c
31e30 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
31e40 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
31e50 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
31e60 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
31e70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31e80 62 65 6c 2d 31 31 33 39 0d 0a 53 45 4c 45 43 54  bel-1139..SELECT
31e90 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
31ea0 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31  ( col2 ) AS col1
31eb0 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
31ec0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
31ed0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
31ee0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
31ef0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
31f00 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
31f10 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
31f20 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
31f30 20 36 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   62 col0 FROM ta
31f40 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
31f50 0d 0a 36 32 0d 0a 36 32 0d 0a 36 32 0d 0a 0d 0a  ..62..62..62....
31f60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
31f70 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
31f80 20 2b 20 32 32 20 2b 20 2b 20 37 38 20 46 52 4f   + 22 + + 78 FRO
31f90 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
31fa0 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 0d 0a 71 75 65  ----..100....que
31fb0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
31fc0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
31fd0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
31fe0 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3c 3e   NOT ( NULL ) <>
31ff0 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 0d   + - ( + col2 ).
32000 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
32010 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
32020 20 41 4c 4c 20 28 20 2b 20 2d 20 31 34 20 29 20   ALL ( + - 14 ) 
32030 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 28 20 2d  + col1 + - - ( -
32040 20 35 37 20 29 20 46 52 4f 4d 20 74 61 62 32 20   57 ) FROM tab2 
32050 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
32060 32 30 0d 0a 2d 34 0d 0a 36 0d 0a 0d 0a 71 75 65  20..-4..6....que
32070 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
32080 4c 45 43 54 20 63 6f 6c 32 20 2a 20 33 38 20 46  LECT col2 * 38 F
32090 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
320a0 31 35 32 30 0d 0a 32 32 30 34 0d 0a 38 37 34 0d  1520..2204..874.
320b0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
320c0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
320d0 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 2a   col2 * + col1 *
320e0 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
320f0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
32100 2d 0d 0a 2d 33 30 38 33 36 37 0d 0a 2d 34 34 31  -..-308367..-441
32110 30 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..-99....onlyif
32120 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
32130 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
32140 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32150 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45 43 54 20  el-1146..SELECT 
32160 44 49 53 54 49 4e 43 54 20 2b 20 36 32 20 2a 20  DISTINCT + 62 * 
32170 2b 20 2d 20 28 20 43 4f 55 4e 54 28 20 2a 20 29  + - ( COUNT( * )
32180 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
32190 2d 2d 0d 0a 2d 31 38 36 0d 0a 0d 0a 73 6b 69 70  --..-186....skip
321a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
321b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
321c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
321d0 2d 31 31 34 36 0d 0a 53 45 4c 45 43 54 20 44 49  -1146..SELECT DI
321e0 53 54 49 4e 43 54 20 2b 20 36 32 20 2a 20 2b 20  STINCT + 62 * + 
321f0 2d 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - ( COUNT ( * ) 
32200 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
32210 2d 0d 0a 2d 31 38 36 0d 0a 0d 0a 6f 6e 6c 79 69  -..-186....onlyi
32220 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
32230 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
32240 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32250 62 65 6c 2d 31 31 34 37 0d 0a 53 45 4c 45 43 54  bel-1147..SELECT
32260 20 41 4c 4c 20 4d 41 58 28 20 2d 20 2d 20 31 35   ALL MAX( - - 15
32270 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) * + COUNT( * 
32280 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
32290 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d  ab0..----..45...
322a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
322b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
322c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
322d0 6c 61 62 65 6c 2d 31 31 34 37 0d 0a 53 45 4c 45  label-1147..SELE
322e0 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 2d 20 2d  CT ALL MAX ( - -
322f0 20 31 35 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20   15 ) * + COUNT 
32300 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
32310 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab0..----..4
32320 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
32330 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
32340 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
32350 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32360 34 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35  48..SELECT ALL 5
32370 33 20 2a 20 43 4f 55 4e 54 28 20 41 4c 4c 20 63  3 * COUNT( ALL c
32380 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol0 ) FROM tab2.
32390 0a 2d 2d 2d 2d 0d 0a 31 35 39 0d 0a 0d 0a 73 6b  .----..159....sk
323a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
323b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
323c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
323d0 65 6c 2d 31 31 34 38 0d 0a 53 45 4c 45 43 54 20  el-1148..SELECT 
323e0 41 4c 4c 20 35 33 20 2a 20 43 4f 55 4e 54 20 28  ALL 53 * COUNT (
323f0 20 41 4c 4c 20 63 6f 6c 30 20 29 20 46 52 4f 4d   ALL col0 ) FROM
32400 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 39   tab2..----..159
32410 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
32420 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
32430 49 4e 43 54 20 2d 20 37 36 20 46 52 4f 4d 20 74  INCT - 76 FROM t
32440 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
32450 2d 20 2d 20 63 6f 6c 31 20 29 20 49 53 20 4e 55  - - col1 ) IS NU
32460 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 36 0d 0a 0d  LL..----..-76...
32470 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
32480 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
32490 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
324a0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 30 0d 0a  ort label-1150..
324b0 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20  SELECT ALL MAX( 
324c0 41 4c 4c 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 32  ALL + ( - - col2
324d0 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
324e0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
324f0 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70  ----..99....skip
32500 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
32510 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
32520 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32530 2d 31 31 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c  -1150..SELECT AL
32540 4c 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 28 20  L MAX ( ALL + ( 
32550 2d 20 2d 20 63 6f 6c 32 20 29 20 29 20 41 53 20  - - col2 ) ) AS 
32560 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
32570 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39  S cor0..----..99
32580 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
32590 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
325a0 63 6f 6c 31 20 2b 20 2b 20 34 32 20 2a 20 2b 20  col1 + + 42 * + 
325b0 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
325c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
325d0 2d 2d 2d 2d 0d 0a 32 34 38 33 0d 0a 32 39 30 33  ----..2483..2903
325e0 0d 0a 34 30 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..4046....onlyif
325f0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
32600 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
32610 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  e: DIV for integ
32620 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
32630 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
32640 6c 61 62 65 6c 2d 31 31 35 32 0d 0a 53 45 4c 45  label-1152..SELE
32650 43 54 20 63 6f 6c 32 20 2a 20 2d 20 33 33 20 2d  CT col2 * - 33 -
32660 20 2d 20 39 20 2b 20 63 6f 6c 32 20 44 49 56 20   - 9 + col2 DIV 
32670 2d 20 2b 20 36 33 20 2b 20 2b 20 63 6f 6c 32 20  - + 63 + + col2 
32680 63 6f 6c 30 2c 20 2b 20 43 41 53 54 28 20 4e 55  col0, + CAST( NU
32690 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
326a0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
326b0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
326c0 0a 2d 2d 2d 2d 0d 0a 2d 31 32 37 31 0d 0a 4e 55  .----..-1271..NU
326d0 4c 4c 0d 0a 2d 31 38 34 37 0d 0a 4e 55 4c 4c 0d  LL..-1847..NULL.
326e0 0a 2d 37 32 37 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .-727..NULL....s
326f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
32700 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
32710 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
32720 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
32730 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
32740 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
32750 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
32760 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32770 35 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  52..SELECT col2 
32780 2a 20 2d 20 33 33 20 2d 20 2d 20 39 20 2b 20 63  * - 33 - - 9 + c
32790 6f 6c 32 20 2f 20 2d 20 2b 20 36 33 20 2b 20 2b  ol2 / - + 63 + +
327a0 20 63 6f 6c 32 20 63 6f 6c 30 2c 20 2b 20 43 41   col2 col0, + CA
327b0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
327c0 45 47 45 52 20 29 20 2a 20 63 6f 6c 31 20 41 53  EGER ) * col1 AS
327d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
327e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
327f0 31 32 37 31 0d 0a 4e 55 4c 4c 0d 0a 2d 31 38 34  1271..NULL..-184
32800 37 0d 0a 4e 55 4c 4c 0d 0a 2d 37 32 37 0d 0a 4e  7..NULL..-727..N
32810 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
32820 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
32830 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
32840 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32850 31 31 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1153..SELECT ALL
32860 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
32870 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  + + COUNT( * ) *
32880 20 38 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53   82 FROM tab1 AS
32890 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 33   cor0..----..243
328a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
328b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
328c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
328d0 72 74 20 6c 61 62 65 6c 2d 31 31 35 33 0d 0a 53  rt label-1153..S
328e0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
328f0 54 20 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43 4f  T ( * ) + + + CO
32900 55 4e 54 20 28 20 2a 20 29 20 2a 20 38 32 20 46  UNT ( * ) * 82 F
32910 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
32920 0d 0a 2d 2d 2d 2d 0d 0a 32 34 33 0d 0a 0d 0a 6f  ..----..243....o
32930 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
32940 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
32950 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
32960 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
32970 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
32980 6c 2d 31 31 35 34 0d 0a 53 45 4c 45 43 54 20 2b  l-1154..SELECT +
32990 20 33 37 20 44 49 56 20 2d 20 43 4f 55 4e 54 28   37 DIV - COUNT(
329a0 20 2a 20 29 20 2b 20 2d 20 2b 20 43 4f 55 4e 54   * ) + - + COUNT
329b0 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43 4f 55 4e  ( * ) + + + COUN
329c0 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
329d0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   cor0..----..-12
329e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
329f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
32a00 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
32a10 72 74 20 6c 61 62 65 6c 2d 31 31 35 34 0d 0a 53  rt label-1154..S
32a20 45 4c 45 43 54 20 2b 20 33 37 20 2f 20 2d 20 43  ELECT + 37 / - C
32a30 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 2b  OUNT ( * ) + - +
32a40 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
32a50 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
32a60 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
32a70 2d 2d 2d 0d 0a 2d 31 32 0d 0a 0d 0a 71 75 65 72  ---..-12....quer
32a80 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
32a90 45 43 54 20 2b 20 2d 20 28 20 2b 20 2b 20 63 6f  ECT + - ( + + co
32aa0 6c 30 20 29 20 2b 20 2d 20 2b 20 37 31 20 41 53  l0 ) + - + 71 AS
32ab0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
32ac0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
32ad0 31 31 37 0d 0a 2d 31 33 35 0d 0a 2d 31 34 36 0d  117..-135..-146.
32ae0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
32af0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
32b00 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
32b10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32b20 62 65 6c 2d 31 31 35 36 0d 0a 53 45 4c 45 43 54  bel-1156..SELECT
32b30 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31   col2 + - + col1
32b40 20 2d 20 63 6f 6c 30 20 44 49 56 20 2b 20 2d 20   - col0 DIV + - 
32b50 32 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  20 FROM tab1 AS 
32b60 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a  cor0..----..25..
32b70 35 38 0d 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66  58..84....skipif
32b80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
32b90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
32ba0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32bb0 31 35 36 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  156..SELECT col2
32bc0 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2d 20 63 6f   + - + col1 - co
32bd0 6c 30 20 2f 20 2b 20 2d 20 32 30 20 46 52 4f 4d  l0 / + - 20 FROM
32be0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
32bf0 2d 2d 2d 0d 0a 32 35 0d 0a 35 38 0d 0a 38 34 0d  ---..25..58..84.
32c00 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20  ...query IIIIII 
32c10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
32c20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
32c30 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
32c40 61 62 31 20 41 53 20 63 6f 72 31 20 57 48 45 52  ab1 AS cor1 WHER
32c50 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 28 20 2d  E NOT NULL < ( -
32c60 20 28 20 2b 20 2d 20 37 34 20 29 20 29 0d 0a 2d   ( + - 74 ) )..-
32c70 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
32c80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
32c90 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2a   col1 * + col1 *
32ca0 20 33 36 20 2a 20 2d 20 34 30 20 46 52 4f 4d 20   36 * - 40 FROM 
32cb0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 32 32  tab1..----..2822
32cc0 34 30 0d 0a 33 31 38 30 39 36 30 0d 0a 33 36 30  40..3180960..360
32cd0 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  00....onlyif mys
32ce0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
32cf0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
32d00 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32d10 31 31 35 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  1159..SELECT DIS
32d20 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  TINCT COUNT( * )
32d30 20 41 53 20 63 6f 6c 31 2c 20 4d 41 58 28 20 41   AS col1, MAX( A
32d40 4c 4c 20 28 20 2d 20 63 6f 6c 31 20 29 20 29 20  LL ( - col1 ) ) 
32d50 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
32d60 4e 4f 54 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c  NOT col0 + + col
32d70 32 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  2 < NULL..----..
32d80 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  0..NULL....skipi
32d90 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
32da0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
32db0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
32dc0 2d 31 31 35 39 0d 0a 53 45 4c 45 43 54 20 44 49  -1159..SELECT DI
32dd0 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
32de0 20 29 20 41 53 20 63 6f 6c 31 2c 20 4d 41 58 20   ) AS col1, MAX 
32df0 28 20 41 4c 4c 20 28 20 2d 20 63 6f 6c 31 20 29  ( ALL ( - col1 )
32e00 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   ) FROM tab1 WHE
32e10 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2b 20 2b 20  RE NOT col0 + + 
32e20 63 6f 6c 32 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d  col2 < NULL..---
32e30 2d 0d 0a 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  -..0..NULL....on
32e40 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
32e50 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
32e60 20 74 79 70 65 3a 20 44 45 43 49 4d 41 4c 20 74   type: DECIMAL t
32e70 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
32e80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32e90 31 36 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  160..SELECT DIST
32ea0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
32eb0 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53 54 28   WHERE NOT CAST(
32ec0 20 2d 20 33 38 20 41 53 20 53 49 47 4e 45 44 20   - 38 AS SIGNED 
32ed0 29 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ) + CAST( NULL A
32ee0 53 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20 4e  S DECIMAL ) IS N
32ef0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
32f00 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
32f10 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
32f20 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
32f30 62 65 6c 2d 31 31 36 30 0d 0a 53 45 4c 45 43 54  bel-1160..SELECT
32f40 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
32f50 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
32f60 43 41 53 54 20 28 20 2d 20 33 38 20 41 53 20 49  CAST ( - 38 AS I
32f70 4e 54 45 47 45 52 20 29 20 2b 20 43 41 53 54 20  NTEGER ) + CAST 
32f80 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
32f90 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
32fa0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32fb0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
32fc0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
32fd0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 31 0d  sort label-1161.
32fe0 0a 53 45 4c 45 43 54 20 34 32 20 2d 20 2d 20 4d  .SELECT 42 - - M
32ff0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  IN( DISTINCT col
33000 30 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  0 ) col0 FROM ta
33010 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
33020 0d 0a 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..93....skipif m
33030 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33040 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
33050 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
33060 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
33070 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
33080 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
33090 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
330a0 6c 61 62 65 6c 2d 31 31 36 31 0d 0a 53 45 4c 45  label-1161..SELE
330b0 43 54 20 34 32 20 2d 20 2d 20 4d 49 4e 20 28 20  CT 42 - - MIN ( 
330c0 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29 20  DISTINCT col0 ) 
330d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
330e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 33  S cor0..----..93
330f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33100 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
33110 49 4e 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20 74  INCT col0 FROM t
33120 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
33130 45 20 28 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 3c  E ( NOT - col2 <
33140 3d 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  = NULL )..----..
33150 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
33160 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
33170 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
33180 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 33 0d  sort label-1163.
33190 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
331a0 20 4d 41 58 28 20 41 4c 4c 20 2b 20 33 39 20 29   MAX( ALL + 39 )
331b0 20 2a 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e   * - MAX( DISTIN
331c0 43 54 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74  CT col2 ) FROM t
331d0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 36 31  ab0..----..-3861
331e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
331f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
33200 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
33210 72 74 20 6c 61 62 65 6c 2d 31 31 36 33 0d 0a 53  rt label-1163..S
33220 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
33230 41 58 20 28 20 41 4c 4c 20 2b 20 33 39 20 29 20  AX ( ALL + 39 ) 
33240 2a 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e  * - MAX ( DISTIN
33250 43 54 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74  CT col2 ) FROM t
33260 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 36 31  ab0..----..-3861
33270 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
33280 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
33290 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
332a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36  owsort label-116
332b0 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
332c0 43 54 20 2d 20 4d 41 58 28 20 2b 20 28 20 63 6f  CT - MAX( + ( co
332d0 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  l1 ) ) AS col1 F
332e0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
332f0 2d 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -77....skipif my
33300 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
33310 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
33320 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 34  wsort label-1164
33330 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
33340 54 20 2d 20 4d 41 58 20 28 20 2b 20 28 20 63 6f  T - MAX ( + ( co
33350 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  l1 ) ) AS col1 F
33360 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
33370 2d 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -77....onlyif my
33380 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
33390 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
333a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
333b0 31 31 36 35 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  1165..SELECT MIN
333c0 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 46 52 4f  ( ALL col2 ) FRO
333d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33  M tab2..----..23
333e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
333f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
33400 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
33410 72 74 20 6c 61 62 65 6c 2d 31 31 36 35 0d 0a 53  rt label-1165..S
33420 45 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20  ELECT MIN ( ALL 
33430 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
33440 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 6f 6e  ..----..23....on
33450 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
33460 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
33470 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33480 20 6c 61 62 65 6c 2d 31 31 36 36 0d 0a 53 45 4c   label-1166..SEL
33490 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  ECT - - COUNT( *
334a0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
334b0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
334c0 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
334d0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
334e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
334f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33500 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33510 2d 31 31 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20  -1166..SELECT - 
33520 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
33530 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
33540 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
33550 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
33560 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
33570 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
33580 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
33590 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
335a0 31 31 36 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1167..SELECT + C
335b0 4f 55 4e 54 28 20 2b 20 2b 20 63 6f 6c 31 20 29  OUNT( + + col1 )
335c0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
335d0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  b0..----..3....s
335e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
335f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
33600 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
33610 62 65 6c 2d 31 31 36 37 0d 0a 53 45 4c 45 43 54  bel-1167..SELECT
33620 20 2b 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20 63   + COUNT ( + + c
33630 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol1 ) AS col1 FR
33640 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
33650 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
33660 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
33670 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
33680 62 30 20 57 48 45 52 45 20 28 20 2d 20 2d 20 36  b0 WHERE ( - - 6
33690 30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  0 ) IS NOT NULL.
336a0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
336b0 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
336c0 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
336d0 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f  0e537fb43b7....o
336e0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
336f0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
33700 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33710 74 20 6c 61 62 65 6c 2d 31 31 36 39 0d 0a 53 45  t label-1169..SE
33720 4c 45 43 54 20 2b 20 4d 41 58 28 20 2b 20 63 6f  LECT + MAX( + co
33730 6c 30 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74  l0 ) col1 FROM t
33740 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d  ab0..----..97...
33750 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33760 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33770 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
33780 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
33790 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
337a0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
337b0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
337c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
337d0 31 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41  169..SELECT + MA
337e0 58 20 28 20 2b 20 63 6f 6c 30 20 29 20 63 6f 6c  X ( + col0 ) col
337f0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
33800 2d 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..97....onlyif 
33810 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
33820 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
33830 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
33840 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
33850 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 30  wsort label-1170
33860 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20 2d  ..SELECT + - ( -
33870 20 43 41 53 54 28 20 4d 49 4e 28 20 63 6f 6c 32   CAST( MIN( col2
33880 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 29   ) AS SIGNED ) )
33890 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
338a0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
338b0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
338c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
338d0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
338e0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
338f0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
33900 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
33910 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
33920 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33930 65 6c 2d 31 31 37 30 0d 0a 53 45 4c 45 43 54 20  el-1170..SELECT 
33940 2b 20 2d 20 28 20 2d 20 43 41 53 54 20 28 20 4d  + - ( - CAST ( M
33950 49 4e 20 28 20 63 6f 6c 32 20 29 20 41 53 20 49  IN ( col2 ) AS I
33960 4e 54 45 47 45 52 20 29 20 29 20 63 6f 6c 30 20  NTEGER ) ) col0 
33970 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
33980 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 71  0..----..10....q
33990 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
339a0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 37 20 41  .SELECT ALL 77 A
339b0 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 46 52 4f  S col0, col2 FRO
339c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
339d0 2d 2d 2d 2d 0d 0a 37 37 0d 0a 32 33 0d 0a 37 37  ----..77..23..77
339e0 0d 0a 34 30 0d 0a 37 37 0d 0a 35 38 0d 0a 0d 0a  ..40..77..58....
339f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
33a00 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
33a10 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
33a20 72 74 20 6c 61 62 65 6c 2d 31 31 37 32 0d 0a 53  rt label-1172..S
33a30 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
33a40 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
33a50 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 33  cor0 WHERE NOT 3
33a60 39 20 3d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63  9 = - col0 + + c
33a70 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  ol2..----..-3...
33a80 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
33a90 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
33aa0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33ab0 6c 61 62 65 6c 2d 31 31 37 32 0d 0a 53 45 4c 45  label-1172..SELE
33ac0 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
33ad0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
33ae0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 33 39 20  r0 WHERE NOT 39 
33af0 3d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c  = - col0 + + col
33b00 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71  2..----..-3....q
33b10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
33b20 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 35  SELECT ALL + - 5
33b30 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  9 AS col1 FROM t
33b40 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
33b50 2d 0d 0a 2d 35 39 0d 0a 2d 35 39 0d 0a 2d 35 39  -..-59..-59..-59
33b60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
33b70 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
33b80 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
33b90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33ba0 61 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c 45 43  abel-1174..SELEC
33bb0 54 20 2d 20 43 41 53 54 28 20 2b 20 43 41 53 54  T - CAST( + CAST
33bc0 28 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  ( + col0 AS SIGN
33bd0 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  ED ) AS SIGNED )
33be0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
33bf0 0d 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37 0d  ..-15..-87..-97.
33c00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
33c10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
33c20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33c30 74 20 6c 61 62 65 6c 2d 31 31 37 34 0d 0a 53 45  t label-1174..SE
33c40 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 2b 20  LECT - CAST ( + 
33c50 43 41 53 54 20 28 20 2b 20 63 6f 6c 30 20 41 53  CAST ( + col0 AS
33c60 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e   INTEGER ) AS IN
33c70 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
33c80 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38  0..----..-15..-8
33c90 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-97....onlyif
33ca0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
33cb0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
33cc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33cd0 65 6c 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54 20  el-1175..SELECT 
33ce0 41 4c 4c 20 2b 20 4d 49 4e 28 20 44 49 53 54 49  ALL + MIN( DISTI
33cf0 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41  NCT + - col0 ) A
33d00 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
33d10 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
33d20 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
33d30 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b  .----..-75....sk
33d40 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33d50 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33d60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33d70 65 6c 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54 20  el-1175..SELECT 
33d80 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  ALL + MIN ( DIST
33d90 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20 29 20  INCT + - col0 ) 
33da0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
33db0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
33dc0 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
33dd0 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a 0d 0a 71  ..----..-75....q
33de0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
33df0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2d 20  SELECT col1 + - 
33e00 2b 20 32 39 20 46 52 4f 4d 20 74 61 62 31 20 41  + 29 FROM tab1 A
33e10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
33e20 35 0d 0a 2d 32 34 0d 0a 31 38 0d 0a 0d 0a 6f 6e  5..-24..18....on
33e30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
33e40 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
33e50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33e60 20 6c 61 62 65 6c 2d 31 31 37 37 0d 0a 53 45 4c   label-1177..SEL
33e70 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 35  ECT DISTINCT - 5
33e80 31 20 2b 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 39  1 + - MIN( ALL 9
33e90 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  2 ) FROM tab0 AS
33ea0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   cor0..----..-14
33eb0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
33ec0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
33ed0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
33ee0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 37 0d 0a  ort label-1177..
33ef0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33f00 2d 20 35 31 20 2b 20 2d 20 4d 49 4e 20 28 20 41  - 51 + - MIN ( A
33f10 4c 4c 20 39 32 20 29 20 46 52 4f 4d 20 74 61 62  LL 92 ) FROM tab
33f20 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
33f30 0a 2d 31 34 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-143....onlyif 
33f40 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
33f50 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
33f60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33f70 6c 2d 31 31 37 38 0d 0a 53 45 4c 45 43 54 20 41  l-1178..SELECT A
33f80 4c 4c 20 2b 20 28 20 28 20 2d 20 2b 20 43 4f 55  LL + ( ( - + COU
33f90 4e 54 28 20 2a 20 29 20 29 20 29 20 46 52 4f 4d  NT( * ) ) ) FROM
33fa0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
33fb0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ---..-3....skipi
33fc0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33fd0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33fe0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33ff0 31 31 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1178..SELECT ALL
34000 20 2b 20 28 20 28 20 2d 20 2b 20 43 4f 55 4e 54   + ( ( - + COUNT
34010 20 28 20 2a 20 29 20 29 20 29 20 46 52 4f 4d 20   ( * ) ) ) FROM 
34020 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
34030 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20  --..-3....query 
34040 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34050 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
34060 2a 20 63 6f 6c 32 20 2d 20 63 6f 6c 32 20 2a 20  * col2 - col2 * 
34070 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  - - col2 AS col0
34080 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
34090 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
340a0 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
340b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
340c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
340d0 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 33  ALL - col1 * + 3
340e0 35 20 2b 20 2b 20 32 32 2c 20 2d 20 31 38 20 41  5 + + 22, - 18 A
340f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
34100 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 36 33 0d 0a 2d  ..----..-1763..-
34110 31 38 0d 0a 2d 32 33 32 33 0d 0a 2d 31 38 0d 0a  18..-2323..-18..
34120 2d 32 36 37 33 0d 0a 2d 31 38 0d 0a 0d 0a 6f 6e  -2673..-18....on
34130 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
34140 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
34150 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
34160 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
34170 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34180 2d 31 31 38 31 0d 0a 53 45 4c 45 43 54 20 43 41  -1181..SELECT CA
34190 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
341a0 45 44 20 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54  ED ) + + + COUNT
341b0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ( * ) FROM tab2.
341c0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
341d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
341e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
341f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34200 62 65 6c 2d 31 31 38 31 0d 0a 53 45 4c 45 43 54  bel-1181..SELECT
34210 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
34220 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 2b 20  INTEGER ) + + + 
34230 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
34240 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
34250 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
34260 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
34270 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
34280 48 45 52 45 20 2d 20 2d 20 39 31 20 49 53 20 4e  HERE - - 91 IS N
34290 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
342a0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
342b0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
342c0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
342d0 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
342e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
342f0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
34300 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
34310 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
34320 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
34330 65 6c 2d 31 31 38 33 0d 0a 53 45 4c 45 43 54 20  el-1183..SELECT 
34340 2b 20 37 31 20 41 53 20 63 6f 6c 30 2c 20 2d 20  + 71 AS col0, - 
34350 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 44 49 56  ( - + col1 ) DIV
34360 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 63 6f   + + col0 - + co
34370 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 2a 20  l1 + - - col0 * 
34380 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49  CAST( col1 AS SI
34390 47 4e 45 44 20 29 20 44 49 56 20 2d 20 36 20 2b  GNED ) DIV - 6 +
343a0 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 28 20   - + col1 * - ( 
343b0 2d 20 36 32 20 29 20 46 52 4f 4d 20 74 61 62 32  - 62 ) FROM tab2
343c0 0d 0a 2d 2d 2d 2d 0d 0a 37 31 0d 0a 2d 33 36 30  ..----..71..-360
343d0 33 0d 0a 37 31 0d 0a 2d 35 30 35 38 0d 0a 37 31  3..71..-5058..71
343e0 0d 0a 2d 35 36 37 31 0d 0a 0d 0a 73 6b 69 70 69  ..-5671....skipi
343f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
34400 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
34410 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
34420 2d 31 31 38 33 0d 0a 53 45 4c 45 43 54 20 2b 20  -1183..SELECT + 
34430 37 31 20 41 53 20 63 6f 6c 30 2c 20 2d 20 28 20  71 AS col0, - ( 
34440 2d 20 2b 20 63 6f 6c 31 20 29 20 2f 20 2b 20 2b  - + col1 ) / + +
34450 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 31 20 2b   col0 - + col1 +
34460 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 43 41 53 54   - - col0 * CAST
34470 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   ( col1 AS INTEG
34480 45 52 20 29 20 2f 20 2d 20 36 20 2b 20 2d 20 2b  ER ) / - 6 + - +
34490 20 63 6f 6c 31 20 2a 20 2d 20 28 20 2d 20 36 32   col1 * - ( - 62
344a0 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
344b0 2d 2d 0d 0a 37 31 0d 0a 2d 33 36 30 33 0d 0a 37  --..71..-3603..7
344c0 31 0d 0a 2d 35 30 35 38 0d 0a 37 31 0d 0a 2d 35  1..-5058..71..-5
344d0 36 37 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  671....onlyif my
344e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
344f0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
34500 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34510 74 20 6c 61 62 65 6c 2d 31 31 38 34 0d 0a 53 45  t label-1184..SE
34520 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
34530 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
34540 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46  GNED ) AS col1 F
34550 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
34560 4f 54 20 28 20 2b 20 63 6f 6c 32 20 29 20 2f 20  OT ( + col2 ) / 
34570 2d 20 38 31 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  - 81 * - - col1 
34580 2a 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55  * + - col1 IS NU
34590 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
345a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
345b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
345c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
345d0 20 6c 61 62 65 6c 2d 31 31 38 34 0d 0a 53 45 4c   label-1184..SEL
345e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
345f0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
34600 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20  TEGER ) AS col1 
34610 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
34620 4e 4f 54 20 28 20 2b 20 63 6f 6c 32 20 29 20 2f  NOT ( + col2 ) /
34630 20 2d 20 38 31 20 2a 20 2d 20 2d 20 63 6f 6c 31   - 81 * - - col1
34640 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e   * + - col1 IS N
34650 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
34660 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
34670 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d  rt..SELECT - ( -
34680 20 37 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   7 ) FROM tab1..
34690 2d 2d 2d 2d 0d 0a 37 0d 0a 37 0d 0a 37 0d 0a 0d  ----..7..7..7...
346a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
346b0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
346c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
346d0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 36 0d 0a  ort label-1186..
346e0 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20 41 4c  SELECT + MIN( AL
346f0 4c 20 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 31 20  L + col2 ) col1 
34700 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
34710 0a 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .23....skipif my
34720 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
34730 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
34740 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
34750 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
34760 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
34770 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
34780 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34790 61 62 65 6c 2d 31 31 38 36 0d 0a 53 45 4c 45 43  abel-1186..SELEC
347a0 54 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2b 20  T + MIN ( ALL + 
347b0 63 6f 6c 32 20 29 20 63 6f 6c 31 20 46 52 4f 4d  col2 ) col1 FROM
347c0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d   tab2..----..23.
347d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
347e0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
347f0 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20 46 52 4f   col0 + col1 FRO
34800 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
34810 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
34820 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 0d 0a 31 34  L..----..141..14
34830 32 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  2..97....skipif 
34840 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
34850 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
34860 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
34870 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
34880 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34890 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
348a0 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f  CT - col0 + - co
348b0 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
348c0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
348d0 0a 2d 31 34 34 0d 0a 2d 31 34 37 0d 0a 2d 31 35  .-144..-147..-15
348e0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
348f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
34900 20 33 32 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 63   32 - - col1 + c
34910 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
34920 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
34930 2d 2d 2d 0d 0a 36 34 0d 0a 36 36 0d 0a 37 36 0d  ---..64..66..76.
34940 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
34950 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
34960 2b 20 2b 20 38 20 46 52 4f 4d 20 74 61 62 31 20  + + 8 FROM tab1 
34970 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
34980 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  NULL ) IS NULL..
34990 2d 2d 2d 2d 0d 0a 35 39 0d 0a 39 33 0d 0a 39 39  ----..59..93..99
349a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
349b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 33  ort..SELECT + 83
349c0 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 39 34   * - col2 + - 94
349d0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
349e0 0d 0a 2d 33 39 39 35 0d 0a 2d 38 33 31 31 0d 0a  ..-3995..-8311..
349f0 2d 39 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -924....query I 
34a00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34a10 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
34a20 2a 20 2b 20 28 20 2b 20 36 36 20 29 20 46 52 4f  * + ( + 66 ) FRO
34a30 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
34a40 2d 2d 2d 2d 0d 0a 2d 31 35 31 38 0d 0a 2d 32 36  ----..-1518..-26
34a50 34 30 0d 0a 2d 33 38 32 38 0d 0a 0d 0a 71 75 65  40..-3828....que
34a60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
34a70 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20  LECT ALL + col0 
34a80 2a 20 2b 20 2d 20 37 36 20 46 52 4f 4d 20 74 61  * + - 76 FROM ta
34a90 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
34aa0 0d 0a 2d 33 34 39 36 0d 0a 2d 34 38 36 34 0d 0a  ..-3496..-4864..
34ab0 2d 35 37 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -5700....query I
34ac0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
34ad0 20 44 49 53 54 49 4e 43 54 20 2d 20 39 36 20 2a   DISTINCT - 96 *
34ae0 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 28 20   + - col1 * + ( 
34af0 2d 20 2b 20 28 20 2d 20 2b 20 28 20 2d 20 63 6f  - + ( - + ( - co
34b00 6c 30 20 29 20 29 20 29 20 2a 20 38 35 20 41 53  l0 ) ) ) * 85 AS
34b10 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
34b20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
34b30 33 34 36 38 30 30 30 0d 0a 2d 33 34 39 30 30 33  3468000..-349003
34b40 32 30 0d 0a 2d 35 38 32 36 32 34 30 0d 0a 0d 0a  20..-5826240....
34b50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
34b60 0a 53 45 4c 45 43 54 20 2d 20 33 35 20 41 53 20  .SELECT - 35 AS 
34b70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
34b80 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
34b90 20 2d 20 63 6f 6c 31 20 3c 3e 20 2b 20 2b 20 63   - col1 <> + + c
34ba0 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
34bb0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
34bc0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
34bd0 32 37 20 2a 20 2b 20 2b 20 37 32 20 46 52 4f 4d  27 * + + 72 FROM
34be0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
34bf0 2d 2d 2d 0d 0a 31 39 34 34 0d 0a 0d 0a 6f 6e 6c  ---..1944....onl
34c00 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
34c10 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
34c20 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e  type: DIV for in
34c30 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
34c40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34c50 74 20 6c 61 62 65 6c 2d 31 31 39 37 0d 0a 53 45  t label-1197..SE
34c60 4c 45 43 54 20 2b 20 28 20 63 6f 6c 31 20 29 20  LECT + ( col1 ) 
34c70 44 49 56 20 43 41 53 54 28 20 2b 20 63 6f 6c 30  DIV CAST( + col0
34c80 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
34c90 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
34ca0 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 35 0d 0a 0d  ----..0..0..5...
34cb0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34cc0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34cd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34ce0 6c 61 62 65 6c 2d 31 31 39 37 0d 0a 53 45 4c 45  label-1197..SELE
34cf0 43 54 20 2b 20 28 20 63 6f 6c 31 20 29 20 2f 20  CT + ( col1 ) / 
34d00 43 41 53 54 20 28 20 2b 20 63 6f 6c 30 20 41 53  CAST ( + col0 AS
34d10 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
34d20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
34d30 2d 2d 0d 0a 30 0d 0a 30 0d 0a 35 0d 0a 0d 0a 71  --..0..0..5....q
34d40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34d50 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
34d60 30 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20  0 * - - col2 AS 
34d70 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
34d80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
34d90 30 35 0d 0a 2d 38 37 30 0d 0a 2d 39 36 30 33 0d  05..-870..-9603.
34da0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34db0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
34dc0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
34dd0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 39  wsort label-1199
34de0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
34df0 54 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54 49  T - COUNT( DISTI
34e00 4e 43 54 20 2d 20 33 33 20 29 20 41 53 20 63 6f  NCT - 33 ) AS co
34e10 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
34e20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
34e30 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d   NULL ) IS NULL.
34e40 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
34e50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
34e60 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
34e70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
34e80 2d 31 31 39 39 0d 0a 53 45 4c 45 43 54 20 44 49  -1199..SELECT DI
34e90 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28  STINCT - COUNT (
34ea0 20 44 49 53 54 49 4e 43 54 20 2d 20 33 33 20 29   DISTINCT - 33 )
34eb0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
34ec0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
34ed0 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53   NOT ( NULL ) IS
34ee0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
34ef0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34f00 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
34f10 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66  GNED type: DIV f
34f20 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
34f30 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
34f40 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30  owsort label-120
34f50 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
34f60 43 54 20 2d 20 2b 20 63 6f 6c 32 20 44 49 56 20  CT - + col2 DIV 
34f70 2b 20 2b 20 43 41 53 54 28 20 63 6f 6c 30 20 41  + + CAST( col0 A
34f80 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
34f90 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
34fa0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  cor0..----..0...
34fb0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34fc0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34fd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34fe0 6c 61 62 65 6c 2d 31 32 30 30 0d 0a 53 45 4c 45  label-1200..SELE
34ff0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
35000 63 6f 6c 32 20 2f 20 2b 20 2b 20 43 41 53 54 20  col2 / + + CAST 
35010 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  ( col0 AS INTEGE
35020 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  R ) AS col2 FROM
35030 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
35040 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
35050 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
35060 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
35070 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
35080 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 31 0d  sort label-1201.
35090 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44  .SELECT + col0 D
350a0 49 56 20 63 6f 6c 30 20 44 49 56 20 2d 20 37 35  IV col0 DIV - 75
350b0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
350c0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
350d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
350e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
350f0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
35100 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
35110 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
35120 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
35130 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
35140 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35150 31 32 30 31 0d 0a 53 45 4c 45 43 54 20 2b 20 63  1201..SELECT + c
35160 6f 6c 30 20 2f 20 63 6f 6c 30 20 2f 20 2d 20 37  ol0 / col0 / - 7
35170 35 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  5 col1 FROM tab0
35180 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
35190 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
351a0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
351b0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
351c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
351d0 62 65 6c 2d 31 32 30 32 0d 0a 53 45 4c 45 43 54  bel-1202..SELECT
351e0 20 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   ( + CAST( NULL 
351f0 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2a 20  AS SIGNED ) ) * 
35200 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
35210 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
35220 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
35230 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35240 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35250 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
35260 72 74 20 6c 61 62 65 6c 2d 31 32 30 32 0d 0a 53  rt label-1202..S
35270 45 4c 45 43 54 20 28 20 2b 20 43 41 53 54 20 28  ELECT ( + CAST (
35280 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
35290 20 29 20 29 20 2a 20 2b 20 63 6f 6c 30 20 41 53   ) ) * + col0 AS
352a0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
352b0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
352c0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
352d0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
352e0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
352f0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
35300 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
35310 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
35320 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  ort..SELECT - ( 
35330 2d 20 38 34 20 29 20 63 6f 6c 31 20 46 52 4f 4d  - 84 ) col1 FROM
35340 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d   tab2..----..84.
35350 0a 38 34 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79  .84..84....query
35360 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
35370 43 54 20 2d 20 31 35 20 2a 20 2d 20 63 6f 6c 30  CT - 15 * - col0
35380 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
35390 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32 35 0d 0a  b2..----..1125..
353a0 36 39 30 0d 0a 39 36 30 0d 0a 0d 0a 6f 6e 6c 79  690..960....only
353b0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
353c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
353d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
353e0 61 62 65 6c 2d 31 32 30 35 0d 0a 53 45 4c 45 43  abel-1205..SELEC
353f0 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
35400 28 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20 31  ( - col0 ) * + 1
35410 39 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  9 * COUNT( * ) c
35420 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
35430 2d 2d 2d 0d 0a 31 37 31 0d 0a 0d 0a 73 6b 69 70  ---..171....skip
35440 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
35450 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
35460 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
35470 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
35480 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
35490 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
354a0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
354b0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 35 0d 0a  ort label-1205..
354c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
354d0 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20 29  COUNT ( - col0 )
354e0 20 2a 20 2b 20 31 39 20 2a 20 43 4f 55 4e 54 20   * + 19 * COUNT 
354f0 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  ( * ) col0 FROM 
35500 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 37 31 0d  tab1..----..171.
35510 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
35520 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
35530 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
35540 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
35550 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
35560 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
35570 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 63 6f  LECT ALL col0 co
35580 6c 30 2c 20 2b 20 31 20 2f 20 2d 20 39 37 20 46  l0, + 1 / - 97 F
35590 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d  ROM tab1 WHERE -
355a0 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2b 20   col2 BETWEEN + 
355b0 36 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  6 AND NULL..----
355c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
355d0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
355e0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
355f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30  owsort label-120
35600 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41  7..SELECT + - MA
35610 58 28 20 2d 20 28 20 2b 20 2d 20 36 31 20 29 20  X( - ( + - 61 ) 
35620 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  ) col1 FROM tab2
35630 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35640 2d 36 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -61....skipif my
35650 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
35660 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
35670 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
35680 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
35690 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
356a0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
356b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
356c0 61 62 65 6c 2d 31 32 30 37 0d 0a 53 45 4c 45 43  abel-1207..SELEC
356d0 54 20 2b 20 2d 20 4d 41 58 20 28 20 2d 20 28 20  T + - MAX ( - ( 
356e0 2b 20 2d 20 36 31 20 29 20 29 20 63 6f 6c 31 20  + - 61 ) ) col1 
356f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
35700 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 31 0d 0a 0d 0a  0..----..-61....
35710 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
35720 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
35730 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
35740 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
35750 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 38 33 20 4e   col0 * - - 83 N
35760 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 32 2c 20  OT IN ( + col2, 
35770 2b 20 36 32 2c 20 2b 20 63 6f 6c 32 20 29 0d 0a  + 62, + col2 )..
35780 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
35790 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
357a0 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 41 53 20 63   ALL - col0 AS c
357b0 6f 6c 32 2c 20 63 6f 6c 30 20 41 53 20 63 6f 6c  ol2, col0 AS col
357c0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
357d0 2d 0d 0a 2d 34 36 0d 0a 34 36 0d 0a 2d 36 34 0d  -..-46..46..-64.
357e0 0a 36 34 0d 0a 2d 37 35 0d 0a 37 35 0d 0a 0d 0a  .64..-75..75....
357f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
35800 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34 32  .SELECT ALL + 42
35810 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
35820 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
35830 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 37 38 0d  or0..----..2478.
35840 0a 32 38 35 36 0d 0a 34 30 33 32 0d 0a 0d 0a 6f  .2856..4032....o
35850 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
35860 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
35870 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35880 74 20 6c 61 62 65 6c 2d 31 32 31 31 0d 0a 53 45  t label-1211..SE
35890 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
358a0 4d 49 4e 28 20 2b 20 63 6f 6c 32 20 29 20 46 52  MIN( + col2 ) FR
358b0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
358c0 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 73 6b 69  .----..59....ski
358d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
358e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
358f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
35900 6c 2d 31 32 31 31 0d 0a 53 45 4c 45 43 54 20 44  l-1211..SELECT D
35910 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20  ISTINCT + MIN ( 
35920 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
35930 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
35940 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..59....query I 
35950 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
35960 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20  DISTINCT - col1 
35970 2b 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  + - + col2 AS co
35980 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
35990 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30  cor0..----..-100
359a0 0d 0a 2d 31 32 38 0d 0a 2d 33 31 0d 0a 0d 0a 71  ..-128..-31....q
359b0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
359c0 0a 53 45 4c 45 43 54 20 2b 20 39 37 2c 20 32 33  .SELECT + 97, 23
359d0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
359e0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
359f0 0d 0a 39 37 0d 0a 32 33 0d 0a 39 37 0d 0a 32 33  ..97..23..97..23
35a00 0d 0a 39 37 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79  ..97..23....only
35a10 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
35a20 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
35a30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35a40 61 62 65 6c 2d 31 32 31 34 0d 0a 53 45 4c 45 43  abel-1214..SELEC
35a50 54 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  T - MIN( DISTINC
35a60 54 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  T + col0 ) FROM 
35a70 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
35a80 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 73 6b 69 70 69  --..-15....skipi
35a90 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
35aa0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
35ab0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35ac0 31 32 31 34 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  1214..SELECT - M
35ad0 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  IN ( DISTINCT + 
35ae0 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
35af0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35b00 2d 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -15....query I r
35b10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
35b20 49 53 54 49 4e 43 54 20 2b 20 38 33 20 2b 20 63  ISTINCT + 83 + c
35b30 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
35b40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 36   cor0..----..106
35b50 0d 0a 31 32 33 0d 0a 31 34 31 0d 0a 0d 0a 71 75  ..123..141....qu
35b60 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
35b70 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41 53  SELECT + col2 AS
35b80 20 63 6f 6c 30 2c 20 2d 20 32 30 20 46 52 4f 4d   col0, - 20 FROM
35b90 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
35ba0 2d 2d 2d 0d 0a 35 39 0d 0a 2d 32 30 0d 0a 36 38  ---..59..-20..68
35bb0 0d 0a 2d 32 30 0d 0a 39 36 0d 0a 2d 32 30 0d 0a  ..-20..96..-20..
35bc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
35bd0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
35be0 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
35bf0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
35c00 61 62 65 6c 2d 31 32 31 37 0d 0a 53 45 4c 45 43  abel-1217..SELEC
35c10 54 20 2d 20 2d 20 43 41 53 54 28 20 2d 20 37 34  T - - CAST( - 74
35c20 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20   AS DECIMAL ) + 
35c30 2d 20 34 33 2c 20 2d 20 63 6f 6c 32 20 46 52 4f  - 43, - col2 FRO
35c40 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
35c50 48 45 52 45 20 63 6f 6c 31 20 2a 20 2b 20 31 38  HERE col1 * + 18
35c60 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
35c70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
35c80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
35c90 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
35ca0 74 20 6c 61 62 65 6c 2d 31 32 31 37 0d 0a 53 45  t label-1217..SE
35cb0 4c 45 43 54 20 2d 20 2d 20 43 41 53 54 20 28 20  LECT - - CAST ( 
35cc0 2d 20 37 34 20 41 53 20 52 45 41 4c 20 29 20 2b  - 74 AS REAL ) +
35cd0 20 2d 20 34 33 2c 20 2d 20 63 6f 6c 32 20 46 52   - 43, - col2 FR
35ce0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
35cf0 57 48 45 52 45 20 63 6f 6c 31 20 2a 20 2b 20 31  WHERE col1 * + 1
35d00 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  8 IS NULL..----.
35d10 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
35d20 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
35d30 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
35d40 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
35d50 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
35d60 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
35d70 45 43 54 20 41 4c 4c 20 2d 20 2d 20 37 20 2a 20  ECT ALL - - 7 * 
35d80 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20  - col0 + - col1 
35d90 2d 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  - - + col1 * col
35da0 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  1 col1 FROM tab1
35db0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35dc0 2d 31 37 35 0d 0a 2d 35 37 35 0d 0a 31 35 32 35  -175..-575..1525
35dd0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
35de0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
35df0 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 32 20  col0 + + - col2 
35e00 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
35e10 2d 2d 2d 2d 0d 0a 31 37 0d 0a 32 33 0d 0a 32 34  ----..17..23..24
35e20 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
35e30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
35e40 2d 20 2d 20 34 37 20 46 52 4f 4d 20 74 61 62 30  - - 47 FROM tab0
35e50 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
35e60 4f 54 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20  OT - ( - col2 ) 
35e70 2b 20 2d 20 2b 20 28 20 2b 20 2b 20 35 34 20 29  + - + ( + + 54 )
35e80 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 63   NOT BETWEEN - c
35e90 6f 6c 32 20 41 4e 44 20 2b 20 2d 20 63 6f 6c 31  ol2 AND + - col1
35ea0 20 2b 20 2d 20 34 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   + - 42..----...
35eb0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
35ec0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
35ed0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
35ee0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 31 0d 0a  ort label-1221..
35ef0 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 2b 20  SELECT - SUM( + 
35f00 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  + col0 ) FROM ta
35f10 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
35f20 31 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  185....skipif my
35f30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
35f40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
35f50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 31  wsort label-1221
35f60 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
35f70 20 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d   + + col0 ) FROM
35f80 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
35f90 0d 0a 2d 31 38 35 0d 0a 0d 0a 71 75 65 72 79 20  ..-185....query 
35fa0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
35fb0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
35fc0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
35fd0 38 38 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  88 IS NOT NULL..
35fe0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
35ff0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
36000 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
36010 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
36020 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
36030 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46  ELECT ALL col0 F
36040 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
36050 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  OT NULL NOT IN (
36060 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col2 )..----...
36070 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
36080 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
36090 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
360a0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a  WHERE NOT col0 *
360b0 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   - col2 IS NULL.
360c0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
360d0 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
360e0 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
360f0 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f  0e537fb43b7....o
36100 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
36110 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
36120 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36130 74 20 6c 61 62 65 6c 2d 31 32 32 35 0d 0a 53 45  t label-1225..SE
36140 4c 45 43 54 20 2d 20 36 30 20 2b 20 2b 20 4d 49  LECT - 60 + + MI
36150 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  N( DISTINCT - co
36160 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l0 ) AS col2 FRO
36170 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
36180 33 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  35....skipif mys
36190 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
361a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
361b0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 35 0d  sort label-1225.
361c0 0a 53 45 4c 45 43 54 20 2d 20 36 30 20 2b 20 2b  .SELECT - 60 + +
361d0 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20   MIN ( DISTINCT 
361e0 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32  - col0 ) AS col2
361f0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
36200 0d 0a 2d 31 33 35 0d 0a 0d 0a 71 75 65 72 79 20  ..-135....query 
36210 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36220 54 20 2d 20 37 38 20 2b 20 2b 20 36 38 20 41 53  T - 78 + + 68 AS
36230 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
36240 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 31 30 0d  .----..-10..-10.
36250 0a 2d 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-10....query I 
36260 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36270 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 28 20 2d  DISTINCT + + ( -
36280 20 28 20 2d 20 36 33 20 29 20 29 20 46 52 4f 4d   ( - 63 ) ) FROM
36290 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
362a0 2b 20 2b 20 31 39 20 3c 3d 20 4e 55 4c 4c 0d 0a  + + 19 <= NULL..
362b0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
362c0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
362d0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
362e0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
362f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 38 0d  sort label-1228.
36300 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
36310 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
36320 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 28  cor0 WHERE CAST(
36330 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   + col2 AS SIGNE
36340 44 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 63  D ) * - col2 + c
36350 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 49 53 20  ol0 + + col1 IS 
36360 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
36370 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
36380 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
36390 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
363a0 34 63 61 64 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  4cad....skipif m
363b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
363c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
363d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
363e0 32 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  228..SELECT DIST
363f0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
36400 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 43   AS cor0 WHERE C
36410 41 53 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20  AST ( + col2 AS 
36420 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f  INTEGER ) * - co
36430 6c 32 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f  l2 + col0 + + co
36440 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l1 IS NOT NULL..
36450 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
36460 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
36470 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
36480 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
36490 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
364a0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
364b0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
364c0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
364d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
364e0 2d 31 32 32 39 0d 0a 53 45 4c 45 43 54 20 44 49  -1229..SELECT DI
364f0 53 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 41 4c  STINCT - MAX( AL
36500 4c 20 2b 20 2b 20 31 38 20 29 20 2b 20 2b 20 43  L + + 18 ) + + C
36510 41 53 54 28 20 2d 20 28 20 2b 20 32 32 20 29 20  AST( - ( + 22 ) 
36520 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
36530 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
36540 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30   cor0..----..-40
36550 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
36560 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
36570 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
36580 72 74 20 6c 61 62 65 6c 2d 31 32 32 39 0d 0a 53  rt label-1229..S
36590 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
365a0 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 2b 20 31   MAX ( ALL + + 1
365b0 38 20 29 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  8 ) + + CAST ( -
365c0 20 28 20 2b 20 32 32 20 29 20 41 53 20 49 4e 54   ( + 22 ) AS INT
365d0 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46  EGER ) AS col2 F
365e0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
365f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 0d 0a 0d 0a 71  ..----..-40....q
36600 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
36610 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
36620 2d 20 2b 20 28 20 2b 20 39 31 20 29 20 46 52 4f  - + ( + 91 ) FRO
36630 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
36640 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
36650 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor1..----..-9
36660 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
36670 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
36680 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
36690 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
366a0 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  31..SELECT ALL (
366b0 20 32 30 20 29 20 2d 20 43 4f 55 4e 54 28 20 2a   20 ) - COUNT( *
366c0 20 29 20 2b 20 2b 20 28 20 2d 20 4d 49 4e 28 20   ) + + ( - MIN( 
366d0 2d 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f  - col2 ) ) AS co
366e0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
366f0 2d 2d 0d 0a 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  --..75....skipif
36700 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
36710 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
36720 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
36730 32 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  231..SELECT ALL 
36740 28 20 32 30 20 29 20 2d 20 43 4f 55 4e 54 20 28  ( 20 ) - COUNT (
36750 20 2a 20 29 20 2b 20 2b 20 28 20 2d 20 4d 49 4e   * ) + + ( - MIN
36760 20 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 41 53   ( - col2 ) ) AS
36770 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
36780 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a 71 75 65  .----..75....que
36790 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
367a0 4c 45 43 54 20 2b 20 31 34 20 46 52 4f 4d 20 74  LECT + 14 FROM t
367b0 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab1 cor0 CROSS J
367c0 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
367d0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
367e0 20 68 61 73 68 69 6e 67 20 74 6f 20 38 33 65 35   hashing to 83e5
367f0 37 37 39 64 32 34 38 37 64 31 32 34 39 35 65 37  779d2487d12495e7
36800 64 38 31 36 63 37 39 37 32 36 34 66 0d 0a 0d 0a  d816c797264f....
36810 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
36820 0d 0a 53 45 4c 45 43 54 20 2b 20 38 30 2c 20 2b  ..SELECT + 80, +
36830 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
36840 0a 2d 2d 2d 2d 0d 0a 38 30 0d 0a 31 0d 0a 38 30  .----..80..1..80
36850 0d 0a 32 31 0d 0a 38 30 0d 0a 38 31 0d 0a 0d 0a  ..21..80..81....
36860 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
36870 0a 53 45 4c 45 43 54 20 2d 20 28 20 37 34 20 29  .SELECT - ( 74 )
36880 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
36890 0d 0a 2d 37 34 0d 0a 2d 37 34 0d 0a 2d 37 34 0d  ..-74..-74..-74.
368a0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
368b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
368c0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
368d0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
368e0 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 4e 4f 54   col2 * col1 NOT
368f0 20 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a   IN ( + col1 )..
36900 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
36910 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36920 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 31 20  col0 * - - col1 
36930 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
36940 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
36950 0a 32 33 34 36 0d 0a 34 39 32 38 0d 0a 35 30 32  .2346..4928..502
36960 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
36970 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
36980 6c 32 2c 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  l2, - col1 FROM 
36990 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
369a0 2d 2d 0d 0a 31 30 0d 0a 2d 32 31 0d 0a 34 37 0d  --..10..-21..47.
369b0 0a 2d 38 31 0d 0a 39 39 0d 0a 2d 31 0d 0a 0d 0a  .-81..99..-1....
369c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
369d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
369e0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
369f0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 38 0d 0a  ort label-1238..
36a00 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
36a10 2d 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 2d 20  - COUNT( * ), - 
36a20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 2d 20 63  COUNT( ALL + - c
36a30 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol0 ) FROM tab2.
36a40 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 0d 0a 0d  .----..-3..-3...
36a50 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
36a60 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
36a70 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
36a80 20 6c 61 62 65 6c 2d 31 32 33 38 0d 0a 53 45 4c   label-1238..SEL
36a90 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
36aa0 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2d 20 43 4f  OUNT ( * ), - CO
36ab0 55 4e 54 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f  UNT ( ALL + - co
36ac0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  l0 ) FROM tab2..
36ad0 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 2d 33 0d 0a 0d 0a  ----..-3..-3....
36ae0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
36af0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
36b00 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32   + col2 * - col2
36b10 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
36b20 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 38 31 0d  b1..----..-3481.
36b30 0a 2d 34 36 32 34 0d 0a 2d 39 32 31 36 0d 0a 0d  .-4624..-9216...
36b40 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
36b50 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
36b60 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
36b70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36b80 6c 2d 31 32 34 30 0d 0a 53 45 4c 45 43 54 20 2d  l-1240..SELECT -
36b90 20 38 34 20 44 49 56 20 2d 20 63 6f 6c 31 20 46   84 DIV - col1 F
36ba0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
36bb0 31 0d 0a 31 36 0d 0a 36 0d 0a 0d 0a 73 6b 69 70  1..16..6....skip
36bc0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36bd0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36be0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36bf0 2d 31 32 34 30 0d 0a 53 45 4c 45 43 54 20 2d 20  -1240..SELECT - 
36c00 38 34 20 2f 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  84 / - col1 FROM
36c10 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab1..----..1..
36c20 31 36 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49  16..6....query I
36c30 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36c40 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 30   col1 * - + col0
36c50 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
36c60 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 35 0d  b0..----..-1215.
36c70 0a 2d 31 38 32 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f  .-1827..-97....o
36c80 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
36c90 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
36ca0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
36cb0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
36cc0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
36cd0 65 6c 2d 31 32 34 32 0d 0a 53 45 4c 45 43 54 20  el-1242..SELECT 
36ce0 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
36cf0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
36d00 2c 20 4d 41 58 28 20 41 4c 4c 20 2d 20 2b 20 63  , MAX( ALL - + c
36d10 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol2 ) AS col1 FR
36d20 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
36d30 55 4c 4c 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b 69 70  ULL..-23....skip
36d40 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
36d50 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
36d60 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
36d70 6c 2d 31 32 34 32 0d 0a 53 45 4c 45 43 54 20 2b  l-1242..SELECT +
36d80 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
36d90 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
36da0 31 2c 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 2b  1, MAX ( ALL - +
36db0 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20   col2 ) AS col1 
36dc0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
36dd0 0a 4e 55 4c 4c 0d 0a 2d 32 33 0d 0a 0d 0a 6f 6e  .NULL..-23....on
36de0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
36df0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
36e00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36e10 20 6c 61 62 65 6c 2d 31 32 34 33 0d 0a 53 45 4c   label-1243..SEL
36e20 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  ECT COUNT( * ) *
36e30 20 2b 20 4d 41 58 28 20 63 6f 6c 32 20 29 20 46   + MAX( col2 ) F
36e40 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
36e50 32 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  297....skipif my
36e60 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
36e70 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
36e80 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 33  wsort label-1243
36e90 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
36ea0 20 2a 20 29 20 2a 20 2b 20 4d 41 58 20 28 20 63   * ) * + MAX ( c
36eb0 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol2 ) FROM tab0.
36ec0 0a 2d 2d 2d 2d 0d 0a 32 39 37 0d 0a 0d 0a 6f 6e  .----..297....on
36ed0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
36ee0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
36ef0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
36f00 74 20 6c 61 62 65 6c 2d 31 32 34 34 0d 0a 53 45  t label-1244..SE
36f10 4c 45 43 54 20 35 36 20 41 53 20 63 6f 6c 31 2c  LECT 56 AS col1,
36f20 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54   + MAX( DISTINCT
36f30 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d 20 33 32   - col0 ) + - 32
36f40 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
36f50 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 2d 37  b2..----..56..-7
36f60 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
36f70 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
36f80 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
36f90 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 34 0d  sort label-1244.
36fa0 0a 53 45 4c 45 43 54 20 35 36 20 41 53 20 63 6f  .SELECT 56 AS co
36fb0 6c 31 2c 20 2b 20 4d 41 58 20 28 20 44 49 53 54  l1, + MAX ( DIST
36fc0 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 2b 20  INCT - col0 ) + 
36fd0 2d 20 33 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 32 AS col0 FRO
36fe0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 36  M tab2..----..56
36ff0 0d 0a 2d 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-78....query I
37000 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37010 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  T - col2 AS col0
37020 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  , + col1 AS col2
37030 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
37040 0d 0a 2d 35 39 0d 0a 35 0d 0a 2d 36 38 0d 0a 34  ..-59..5..-68..4
37050 37 0d 0a 2d 39 36 0d 0a 31 34 0d 0a 0d 0a 71 75  7..-96..14....qu
37060 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
37070 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
37080 6f 6c 32 20 2a 20 2d 20 34 32 20 2a 20 2b 20 63  ol2 * - 42 * + c
37090 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
370a0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab2..----..-10
370b0 37 35 32 30 0d 0a 2d 31 38 32 37 30 30 0d 0a 2d  7520..-182700..-
370c0 34 34 34 33 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  44436....onlyif 
370d0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
370e0 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
370f0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
37100 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
37110 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 37  wsort label-1247
37120 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
37130 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44  T - COUNT( * ) D
37140 49 56 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  IV + COUNT( * ) 
37150 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
37160 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
37170 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37180 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37190 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
371a0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
371b0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
371c0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
371d0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
371e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
371f0 6c 2d 31 32 34 37 0d 0a 53 45 4c 45 43 54 20 44  l-1247..SELECT D
37200 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20  ISTINCT - COUNT 
37210 28 20 2a 20 29 20 2f 20 2b 20 43 4f 55 4e 54 20  ( * ) / + COUNT 
37220 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  ( * ) col1 FROM 
37230 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
37240 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20  --..-1....query 
37250 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
37260 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
37270 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
37280 54 20 2d 20 63 6f 6c 30 20 42 45 54 57 45 45 4e  T - col0 BETWEEN
37290 20 2d 20 38 30 20 41 4e 44 20 2d 20 34 33 20 2b   - 80 AND - 43 +
372a0 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39   - col2..----..9
372b0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
372c0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
372d0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
372e0 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
372f0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
37300 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
37310 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
37320 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 39 0d  sort label-1249.
37330 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
37340 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
37350 45 20 4e 4f 54 20 28 20 4e 4f 54 20 28 20 63 6f  E NOT ( NOT ( co
37360 6c 31 20 2f 20 2d 20 2d 20 43 41 53 54 28 20 4e  l1 / - - CAST( N
37370 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
37380 20 2a 20 2b 20 39 33 20 3d 20 2d 20 2b 20 36 20   * + 93 = - + 6 
37390 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ) )..----....ski
373a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
373b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
373c0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
373d0 62 65 6c 2d 31 32 34 39 0d 0a 53 45 4c 45 43 54  bel-1249..SELECT
373e0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
373f0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
37400 20 4e 4f 54 20 28 20 63 6f 6c 31 20 2f 20 2d 20   NOT ( col1 / - 
37410 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
37420 20 52 45 41 4c 20 29 20 2a 20 2b 20 39 33 20 3d   REAL ) * + 93 =
37430 20 2d 20 2b 20 36 20 29 20 29 0d 0a 2d 2d 2d 2d   - + 6 ) )..----
37440 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
37450 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
37460 20 2b 20 32 33 20 41 53 20 63 6f 6c 32 2c 20 63   + 23 AS col2, c
37470 6f 6c 32 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d  ol2 - - col2 * -
37480 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20   - ( + + col1 ) 
37490 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  * + col0 AS col0
374a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
374b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32 35  r0..----..23..25
374c0 31 33 34 0d 0a 32 33 0d 0a 32 39 30 39 30 34 0d  134..23..290904.
374d0 0a 32 33 0d 0a 36 38 36 34 30 0d 0a 0d 0a 6f 6e  .23..68640....on
374e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
374f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
37500 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37510 20 6c 61 62 65 6c 2d 31 32 35 31 0d 0a 53 45 4c   label-1251..SEL
37520 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d  ECT DISTINCT + M
37530 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20 38  AX( DISTINCT - 8
37540 33 20 29 20 2b 20 2d 20 2b 20 30 20 46 52 4f 4d  3 ) + - + 0 FROM
37550 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
37560 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
37570 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33   cor1..----..-83
37580 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37590 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
375a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
375b0 72 74 20 6c 61 62 65 6c 2d 31 32 35 31 0d 0a 53  rt label-1251..S
375c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
375d0 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20   MAX ( DISTINCT 
375e0 2d 20 38 33 20 29 20 2b 20 2d 20 2b 20 30 20 46  - 83 ) + - + 0 F
375f0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
37600 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
37610 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
37620 2d 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -83....query I r
37630 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
37640 49 53 54 49 4e 43 54 20 2d 20 32 38 20 2a 20 39  ISTINCT - 28 * 9
37650 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  7 AS col0 FROM t
37660 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 31 36  ab0..----..-2716
37670 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
37680 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
37690 63 6f 6c 32 20 2b 20 2b 20 33 20 41 53 20 63 6f  col2 + + 3 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 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d  cor0..----..102.
376c0 0a 31 33 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c 79 69  .13..50....onlyi
376d0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
376e0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
376f0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
37700 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
37710 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37720 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  54..SELECT ALL C
37730 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
37740 4e 45 44 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a  NED ) * COUNT( *
37750 20 29 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) - COUNT( * ) 
37760 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
37770 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
37780 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
37790 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
377a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
377b0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 34 0d  sort label-1254.
377c0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
377d0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
377e0 45 52 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a  ER ) * COUNT ( *
377f0 20 29 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) - COUNT ( * )
37800 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
37810 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
37820 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
37830 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
37840 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
37850 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
37860 2d 31 32 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20  -1255..SELECT - 
37870 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d 20  SUM( DISTINCT - 
37880 31 30 20 29 20 2a 20 2b 20 37 30 20 41 53 20 63  10 ) * + 70 AS c
37890 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
378a0 2d 2d 2d 0d 0a 37 30 30 0d 0a 0d 0a 73 6b 69 70  ---..700....skip
378b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
378c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
378d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
378e0 2d 31 32 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20  -1255..SELECT - 
378f0 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d  SUM ( DISTINCT -
37900 20 31 30 20 29 20 2a 20 2b 20 37 30 20 41 53 20   10 ) * + 70 AS 
37910 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
37920 2d 2d 2d 2d 0d 0a 37 30 30 0d 0a 0d 0a 6f 6e 6c  ----..700....onl
37930 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
37940 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
37950 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37960 6c 61 62 65 6c 2d 31 32 35 36 0d 0a 53 45 4c 45  label-1256..SELE
37970 43 54 20 2d 20 43 4f 55 4e 54 28 20 2d 20 31 36  CT - COUNT( - 16
37980 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
37990 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  --..-3....skipif
379a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
379b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
379c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
379d0 32 35 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  256..SELECT - CO
379e0 55 4e 54 20 28 20 2d 20 31 36 20 29 20 46 52 4f  UNT ( - 16 ) FRO
379f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab2..----..-3
37a00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37a10 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
37a20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
37a30 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
37a40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37a50 20 6c 61 62 65 6c 2d 31 32 35 37 0d 0a 53 45 4c   label-1257..SEL
37a60 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
37a70 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 43 41 53 54  OUNT( ALL + CAST
37a80 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  ( col1 AS SIGNED
37a90 20 29 20 29 20 2d 20 2b 20 43 4f 55 4e 54 28 20   ) ) - + COUNT( 
37aa0 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * ) col2 FROM ta
37ab0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  b2..----..0....s
37ac0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
37ad0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
37ae0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
37af0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
37b00 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
37b10 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
37b20 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
37b30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35  owsort label-125
37b40 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
37b50 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c  CT + COUNT ( ALL
37b60 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41   + CAST ( col1 A
37b70 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 2d 20  S INTEGER ) ) - 
37b80 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f  + COUNT ( * ) co
37b90 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
37ba0 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  --..0....query I
37bb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
37bc0 20 41 4c 4c 20 36 39 20 2d 20 63 6f 6c 30 20 46   ALL 69 - col0 F
37bd0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
37be0 2d 36 0d 0a 32 33 0d 0a 35 0d 0a 0d 0a 6f 6e 6c  -6..23..5....onl
37bf0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
37c00 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
37c10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37c20 6c 61 62 65 6c 2d 31 32 35 39 0d 0a 53 45 4c 45  label-1259..SELE
37c30 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2d 20  CT ALL COUNT( - 
37c40 31 38 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  18 ) FROM tab1..
37c50 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
37c60 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
37c70 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
37c80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37c90 31 32 35 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1259..SELECT ALL
37ca0 20 43 4f 55 4e 54 20 28 20 2d 20 31 38 20 29 20   COUNT ( - 18 ) 
37cb0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
37cc0 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  .3....skipif pos
37cd0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
37ce0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
37cf0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
37d00 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
37d10 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
37d20 0a 53 45 4c 45 43 54 20 36 36 20 63 6f 6c 32 2c  .SELECT 66 col2,
37d30 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
37d40 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab0..----..6
37d50 36 0d 0a 31 35 0d 0a 36 36 0d 0a 38 37 0d 0a 36  6..15..66..87..6
37d60 36 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..97....onlyif 
37d70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
37d80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
37d90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37da0 6c 2d 31 32 36 31 0d 0a 53 45 4c 45 43 54 20 2b  l-1261..SELECT +
37db0 20 35 35 20 2a 20 2d 20 28 20 2b 20 2d 20 43 4f   55 * - ( + - CO
37dc0 55 4e 54 28 20 2a 20 29 20 29 20 2d 20 2b 20 28  UNT( * ) ) - + (
37dd0 20 2d 20 30 20 29 20 46 52 4f 4d 20 74 61 62 31   - 0 ) FROM tab1
37de0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
37df0 31 36 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  165....skipif my
37e00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
37e10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
37e20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 31  wsort label-1261
37e30 0d 0a 53 45 4c 45 43 54 20 2b 20 35 35 20 2a 20  ..SELECT + 55 * 
37e40 2d 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  - ( + - COUNT ( 
37e50 2a 20 29 20 29 20 2d 20 2b 20 28 20 2d 20 30 20  * ) ) - + ( - 0 
37e60 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
37e70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 0d 0a  or0..----..165..
37e80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37e90 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  t..SELECT + col1
37ea0 20 2b 20 2d 20 39 38 20 41 53 20 63 6f 6c 31 20   + - 98 AS col1 
37eb0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
37ec0 0a 2d 32 31 0d 0a 2d 33 31 0d 0a 2d 34 37 0d 0a  .-21..-31..-47..
37ed0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
37ee0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
37ef0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
37f00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37f10 65 6c 2d 31 32 36 33 0d 0a 53 45 4c 45 43 54 20  el-1263..SELECT 
37f20 63 6f 6c 31 20 44 49 56 20 38 31 20 2b 20 2b 20  col1 DIV 81 + + 
37f30 32 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  20 AS col1 FROM 
37f40 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a  tab1..----..20..
37f50 32 30 0d 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66  20..20....skipif
37f60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
37f70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
37f80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37f90 32 36 33 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  263..SELECT col1
37fa0 20 2f 20 38 31 20 2b 20 2b 20 32 30 20 41 53 20   / 81 + + 20 AS 
37fb0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
37fc0 2d 2d 2d 2d 0d 0a 32 30 0d 0a 32 30 0d 0a 32 30  ----..20..20..20
37fd0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37fe0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
37ff0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
38000 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36  owsort label-126
38010 34 0d 0a 53 45 4c 45 43 54 20 2d 20 38 37 20 2b  4..SELECT - 87 +
38020 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
38030 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
38040 0a 2d 2d 2d 2d 0d 0a 2d 38 34 0d 0a 0d 0a 73 6b  .----..-84....sk
38050 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
38060 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
38070 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
38080 65 6c 2d 31 32 36 34 0d 0a 53 45 4c 45 43 54 20  el-1264..SELECT 
38090 2d 20 38 37 20 2b 20 2b 20 43 4f 55 4e 54 20 28  - 87 + + COUNT (
380a0 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
380b0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  M tab0..----..-8
380c0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
380d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
380e0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  LL * FROM tab1 W
380f0 48 45 52 45 20 4e 4f 54 20 2d 20 37 39 20 3c 3e  HERE NOT - 79 <>
38100 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col2..----...
38110 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
38120 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
38130 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
38140 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 36 0d 0a  ort label-1266..
38150 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
38160 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
38170 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
38180 4e 4f 54 20 2b 20 38 30 20 3d 20 63 6f 6c 32 20  NOT + 80 = col2 
38190 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  * col2..----..3.
381a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
381b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
381c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
381d0 74 20 6c 61 62 65 6c 2d 31 32 36 36 0d 0a 53 45  t label-1266..SE
381e0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
381f0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
38200 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
38210 4f 54 20 2b 20 38 30 20 3d 20 63 6f 6c 32 20 2a  OT + 80 = col2 *
38220 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   col2..----..3..
38230 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
38240 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  t..SELECT col2 *
38250 20 2d 20 38 39 20 2d 20 2b 20 63 6f 6c 32 20 2a   - 89 - + col2 *
38260 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
38270 32 20 57 48 45 52 45 20 63 6f 6c 31 20 49 4e 20  2 WHERE col1 IN 
38280 28 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  ( + col0 )..----
38290 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
382a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 20 2b 20  ort..SELECT 5 + 
382b0 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
382c0 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 36 0d 0a 38  ..----..26..6..8
382d0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  6....query III r
382e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
382f0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
38300 20 63 6f 6c 30 20 49 4e 20 28 20 2b 20 38 38 20   col0 IN ( + 88 
38310 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
38320 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38330 43 54 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  CT + col0 FROM t
38340 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
38350 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  NULL ) IS NOT NU
38360 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35  LL..----..51..85
38370 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..91....query II
38380 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
38390 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
383a0 45 52 45 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  ERE col1 * + col
383b0 31 20 2b 20 36 33 20 2a 20 2d 20 63 6f 6c 30 20  1 + 63 * - col0 
383c0 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 4e 55  NOT BETWEEN ( NU
383d0 4c 4c 20 29 20 41 4e 44 20 2b 20 33 31 20 2b 20  LL ) AND + 31 + 
383e0 33 36 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 37 37  36..----..64..77
383f0 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..40....onlyif m
38400 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
38410 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
38420 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38430 2d 31 32 37 32 0d 0a 53 45 4c 45 43 54 20 43 4f  -1272..SELECT CO
38440 55 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52  UNT( * ) col1 FR
38450 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
38460 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f  T ( NULL ) IS NO
38470 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  T NULL..----..3.
38480 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
38490 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
384a0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
384b0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
384c0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
384d0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
384e0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
384f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38500 2d 31 32 37 32 0d 0a 53 45 4c 45 43 54 20 43 4f  -1272..SELECT CO
38510 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46  UNT ( * ) col1 F
38520 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
38530 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e  OT ( NULL ) IS N
38540 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33  OT NULL..----..3
38550 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
38560 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
38570 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
38580 4e 4f 54 20 28 20 63 6f 6c 30 20 2a 20 63 6f 6c  NOT ( col0 * col
38590 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  0 ) IS NULL..---
385a0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
385b0 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
385c0 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
385d0 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
385e0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
385f0 43 54 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30  CT col1 * - col0
38600 20 2b 20 28 20 2d 20 33 38 20 29 20 41 53 20 63   + ( - 38 ) AS c
38610 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
38620 2d 2d 2d 0d 0a 2d 32 33 38 34 0d 0a 2d 34 39 36  ---..-2384..-496
38630 36 0d 0a 2d 35 30 36 33 0d 0a 0d 0a 6f 6e 6c 79  6..-5063....only
38640 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
38650 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
38660 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
38670 61 62 65 6c 2d 31 32 37 35 0d 0a 53 45 4c 45 43  abel-1275..SELEC
38680 54 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43  T + SUM( DISTINC
38690 54 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  T + col0 ) FROM 
386a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d  tab0..----..199.
386b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
386c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
386d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
386e0 74 20 6c 61 62 65 6c 2d 31 32 37 35 0d 0a 53 45  t label-1275..SE
386f0 4c 45 43 54 20 2b 20 53 55 4d 20 28 20 44 49 53  LECT + SUM ( DIS
38700 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 46  TINCT + col0 ) F
38710 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
38720 31 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  199....onlyif my
38730 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
38740 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
38750 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
38760 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
38770 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 36 0d 0a  ort label-1276..
38780 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e  SELECT - CAST( N
38790 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
387a0 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  + SUM( DISTINCT 
387b0 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46  col2 ) AS col2 F
387c0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
387d0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
387e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
387f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
38800 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37  owsort label-127
38810 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  6..SELECT - CAST
38820 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
38830 45 52 20 29 20 2b 20 53 55 4d 20 28 20 44 49 53  ER ) + SUM ( DIS
38840 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 41 53 20  TINCT col2 ) AS 
38850 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
38860 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  ----..NULL....on
38870 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
38880 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
38890 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
388a0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
388b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
388c0 2d 31 32 37 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1277..SELECT DI
388d0 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20  STINCT - COUNT( 
388e0 2a 20 29 20 44 49 56 20 2d 20 34 33 20 2b 20 33  * ) DIV - 43 + 3
388f0 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  4 AS col1 FROM t
38900 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 42  ab2 WHERE NULL B
38910 45 54 57 45 45 4e 20 28 20 63 6f 6c 32 20 2a 20  ETWEEN ( col2 * 
38920 2b 20 63 6f 6c 30 20 29 20 41 4e 44 20 63 6f 6c  + col0 ) AND col
38930 32 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 73  2..----..34....s
38940 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
38950 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
38960 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
38970 62 65 6c 2d 31 32 37 37 0d 0a 53 45 4c 45 43 54  bel-1277..SELECT
38980 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e   DISTINCT - COUN
38990 54 20 28 20 2a 20 29 20 2f 20 2d 20 34 33 20 2b  T ( * ) / - 43 +
389a0 20 33 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   34 AS col1 FROM
389b0 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c   tab2 WHERE NULL
389c0 20 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 32 20   BETWEEN ( col2 
389d0 2a 20 2b 20 63 6f 6c 30 20 29 20 41 4e 44 20 63  * + col0 ) AND c
389e0 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 0d  ol2..----..34...
389f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38a00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
38a10 54 20 2d 20 38 31 20 2d 20 2b 20 63 6f 6c 32 20  T - 81 - + col2 
38a20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
38a30 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 30 0d 0a 2d  1..----..-140..-
38a40 31 34 39 0d 0a 2d 31 37 37 0d 0a 0d 0a 71 75 65  149..-177....que
38a50 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
38a60 4c 45 43 54 20 28 20 2d 20 31 39 20 29 20 2a 20  LECT ( - 19 ) * 
38a70 38 34 20 2b 20 28 20 63 6f 6c 31 20 29 20 46 52  84 + ( col1 ) FR
38a80 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
38a90 31 35 31 35 0d 0a 2d 31 35 37 35 0d 0a 2d 31 35  1515..-1575..-15
38aa0 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  95....skipif pos
38ab0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
38ac0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
38ad0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
38ae0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
38af0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
38b00 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
38b10 2b 20 38 32 20 2a 20 63 6f 6c 31 20 2b 20 63 6f  + 82 * col1 + co
38b20 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l0 col1 FROM tab
38b30 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 39 0d 0a 31 38  0..----..179..18
38b40 30 39 0d 0a 36 36 35 37 0d 0a 0d 0a 6f 6e 6c 79  09..6657....only
38b50 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
38b60 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
38b70 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
38b80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 38  owsort label-128
38b90 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  1..SELECT ALL co
38ba0 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
38bb0 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c  tab2 WHERE ( NUL
38bc0 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20 2d 20 43  L ) NOT IN ( - C
38bd0 41 53 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47  AST( col0 AS SIG
38be0 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  NED ) )..----...
38bf0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20