sqllogictest
Hex Artifact Content
Not logged in

Artifact b80b2512716b65f0273fc9dc349be1655618619d:


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 49 49 20 72 6f  ....query III ro
02d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
02e0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
02f0: 30 20 57 48 45 52 45 20 4e 4f 54 20 32 20 3c 20  0 WHERE NOT 2 < 
0300: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  col0..----....qu
0310: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
0320: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
0330: 2b 20 63 6f 6c 31 20 2a 20 39 38 2c 20 63 6f 6c  + col1 * 98, col
0340: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
0350: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 37 32 0d  or0..----..1372.
0360: 0a 39 36 0d 0a 34 36 30 36 0d 0a 36 38 0d 0a 34  .96..4606..68..4
0370: 39 30 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20  90..59....query 
0380: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
0390: 43 54 20 44 49 53 54 49 4e 43 54 20 33 30 20 2a  CT DISTINCT 30 *
03a0: 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c   - col1 AS col1,
03b0: 20 36 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   6 FROM tab0 cor
03c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 33 30 0d 0a  0..----..-2430..
03d0: 36 0d 0a 2d 33 30 0d 0a 36 0d 0a 2d 36 33 30 0d  6..-30..6..-630.
03e0: 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .6....query I ro
03f0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 38  wsort..SELECT 28
0400: 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   + + - col0 FROM
0410: 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
0420: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
0430: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
0440: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
0450: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38 32 20 2a  ELECT ALL - 82 *
0460: 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + + col1 AS col
0470: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
0480: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 34 38  or0..----..-1148
0490: 0d 0a 2d 33 38 35 34 0d 0a 2d 34 31 30 0d 0a 0d  ..-3854..-410...
04a0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
04b0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
04c0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
04d0: 6f 72 74 20 6c 61 62 65 6c 2d 35 0d 0a 53 45 4c  ort label-5..SEL
04e0: 45 43 54 20 41 4c 4c 20 2b 20 2d 20 28 20 2b 20  ECT ALL + - ( + 
04f0: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 63  + COUNT( * ) ) c
0500: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
0510: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
0520: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
0530: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
0540: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
0550: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
0560: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
0570: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
0580: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
0590: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
05a0: 2d 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  -5..SELECT ALL +
05b0: 20 2d 20 28 20 2b 20 2b 20 43 4f 55 4e 54 20 28   - ( + + COUNT (
05c0: 20 2a 20 29 20 29 20 63 6f 6c 30 20 46 52 4f 4d   * ) ) col0 FROM
05d0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
05e0: 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
05f0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
0600: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
0610: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
0620: 4f 54 20 2d 20 28 20 37 33 20 29 20 2a 20 2d 20  OT - ( 73 ) * - 
0630: 2d 20 28 20 34 31 20 29 20 2d 20 28 20 2d 20 37  - ( 41 ) - ( - 7
0640: 37 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  7 ) IS NULL..---
0650: 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
0660: 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
0670: 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
0680: 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69  62d0a49....skipi
0690: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
06a0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
06b0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
06c0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
06d0: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
06e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
06f0: 35 39 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  59 col2 FROM tab
0700: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
0710: 0a 35 39 0d 0a 35 39 0d 0a 35 39 0d 0a 0d 0a 73  .59..59..59....s
0720: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
0730: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
0740: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
0750: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
0760: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
0770: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
0780: 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 39 36 20  DISTINCT - + 96 
0790: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
07a0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
07b0: 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
07c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39  sort..SELECT - 9
07d0: 31 20 2a 20 28 20 32 20 29 20 41 53 20 63 6f 6c  1 * ( 2 ) AS col
07e0: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
07f0: 2d 0d 0a 2d 31 38 32 0d 0a 2d 31 38 32 0d 0a 2d  -..-182..-182..-
0800: 31 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  182....query III
0810: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
0820: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
0830: 52 45 20 4e 4f 54 20 2b 20 34 32 20 2d 20 63 6f  RE NOT + 42 - co
0840: 6c 32 20 2f 20 2d 20 37 36 20 3e 20 2b 20 35 35  l2 / - 76 > + 55
0850: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
0860: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
0870: 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
0880: 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
0890: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
08a0: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a  .SELECT + col1 *
08b0: 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   + + col0 * + co
08c0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
08d0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
08e0: 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
08f0: 0a 2d 2d 2d 2d 0d 0a 32 30 31 30 31 39 0d 0a 32  .----..201019..2
0900: 31 32 35 0d 0a 39 39 39 36 0d 0a 0d 0a 71 75 65  125..9996....que
0910: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
0920: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
0930: 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
0940: 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  or0 WHERE NULL <
0950: 3d 20 2d 20 33 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = - 35..----....
0960: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
0970: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
0980: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
0990: 6f 72 74 20 6c 61 62 65 6c 2d 31 33 0d 0a 53 45  ort label-13..SE
09a0: 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
09b0: 28 20 2a 20 29 20 63 6f 6c 30 2c 20 38 31 20 46  ( * ) col0, 81 F
09c0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
09d0: 2d 33 0d 0a 38 31 0d 0a 0d 0a 73 6b 69 70 69 66  -3..81....skipif
09e0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
09f0: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
0a00: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
0a10: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
0a20: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
0a30: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
0a40: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
0a50: 72 74 20 6c 61 62 65 6c 2d 31 33 0d 0a 53 45 4c  rt label-13..SEL
0a60: 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20  ECT ALL - COUNT 
0a70: 28 20 2a 20 29 20 63 6f 6c 30 2c 20 38 31 20 46  ( * ) col0, 81 F
0a80: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
0a90: 2d 33 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  -3..81....onlyif
0aa0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
0ab0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
0ac0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
0ad0: 65 6c 2d 31 34 0d 0a 53 45 4c 45 43 54 20 44 49  el-14..SELECT DI
0ae0: 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54  STINCT - + COUNT
0af0: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63  ( DISTINCT + + c
0b00: 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol0 ) FROM tab2 
0b10: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
0b20: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
0b30: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
0b40: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
0b50: 6f 72 74 20 6c 61 62 65 6c 2d 31 34 0d 0a 53 45  ort label-14..SE
0b60: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
0b70: 2b 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e  + COUNT ( DISTIN
0b80: 43 54 20 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52  CT + + col0 ) FR
0b90: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
0ba0: 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  .----..-3....onl
0bb0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
0bc0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
0bd0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
0be0: 6c 61 62 65 6c 2d 31 35 0d 0a 53 45 4c 45 43 54  label-15..SELECT
0bf0: 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d   SUM( DISTINCT -
0c00: 20 38 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   8 ) FROM tab0 A
0c10: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  S cor0..----..-8
0c20: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
0c30: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0c40: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
0c50: 72 74 20 6c 61 62 65 6c 2d 31 35 0d 0a 53 45 4c  rt label-15..SEL
0c60: 45 43 54 20 53 55 4d 20 28 20 44 49 53 54 49 4e  ECT SUM ( DISTIN
0c70: 43 54 20 2d 20 38 20 29 20 46 52 4f 4d 20 74 61  CT - 8 ) FROM ta
0c80: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
0c90: 0d 0a 2d 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-8....query I 
0ca0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
0cb0: 44 49 53 54 49 4e 43 54 20 2d 20 38 20 2b 20 37  DISTINCT - 8 + 7
0cc0: 38 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  8 FROM tab2 AS c
0cd0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 30 0d 0a 0d  or0..----..70...
0ce0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
0cf0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  t..SELECT + + co
0d00: 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d 20  l1 + - col0 + - 
0d10: 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2b 20  col0 AS col1, + 
0d20: 34 35 20 2a 20 2b 20 34 30 20 41 53 20 63 6f 6c  45 * + 40 AS col
0d30: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
0d40: 6f 72 30 20 57 48 45 52 45 20 2d 20 36 39 20 2a  or0 WHERE - 69 *
0d50: 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   - col2 IS NOT N
0d60: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 33 0d  ULL..----..-153.
0d70: 0a 31 38 30 30 0d 0a 2d 31 39 33 0d 0a 31 38 30  .1800..-193..180
0d80: 30 0d 0a 35 31 0d 0a 31 38 30 30 0d 0a 0d 0a 71  0..51..1800....q
0d90: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
0da0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 38  .SELECT ALL - 98
0db0: 2c 20 2b 20 31 33 20 41 53 20 63 6f 6c 32 20 46  , + 13 AS col2 F
0dc0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
0dd0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 38 0d 0a 31 33 0d  ..----..-98..13.
0de0: 0a 2d 39 38 0d 0a 31 33 0d 0a 2d 39 38 0d 0a 31  .-98..13..-98..1
0df0: 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
0e00: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
0e10: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
0e20: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
0e30: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0e40: 74 20 6c 61 62 65 6c 2d 31 39 0d 0a 53 45 4c 45  t label-19..SELE
0e50: 43 54 20 2b 20 43 41 53 54 28 20 4d 49 4e 28 20  CT + CAST( MIN( 
0e60: 2d 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47 4e  - col0 ) AS SIGN
0e70: 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ED ) AS col0 FRO
0e80: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
0e90: 2d 2d 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69  ----..-91....ski
0ea0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
0eb0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
0ec0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
0ed0: 6c 2d 31 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43  l-19..SELECT + C
0ee0: 41 53 54 20 28 20 4d 49 4e 20 28 20 2d 20 63 6f  AST ( MIN ( - co
0ef0: 6c 30 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  l0 ) AS INTEGER 
0f00: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
0f10: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
0f20: 2d 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66  -..-91....skipif
0f30: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
0f40: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
0f50: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
0f60: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
0f70: 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
0f80: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
0f90: 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 41 53  INCT - + col1 AS
0fa0: 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 63 6f   col0, + col2 co
0fb0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
0fc0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
0fd0: 39 39 0d 0a 2d 32 31 0d 0a 31 30 0d 0a 2d 38 31  99..-21..10..-81
0fe0: 0d 0a 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..47....onlyif m
0ff0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1000: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1010: 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
1020: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1030: 20 6c 61 62 65 6c 2d 32 31 0d 0a 53 45 4c 45 43   label-21..SELEC
1040: 54 20 2b 20 38 37 20 2b 20 43 41 53 54 28 20 2b  T + 87 + CAST( +
1050: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1060: 49 47 4e 45 44 20 29 20 41 53 20 44 45 43 49 4d  IGNED ) AS DECIM
1070: 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  AL ) FROM tab0 A
1080: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1090: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
10a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10d0: 20 6c 61 62 65 6c 2d 32 31 0d 0a 53 45 4c 45 43   label-21..SELEC
10e0: 54 20 2b 20 38 37 20 2b 20 43 41 53 54 20 28 20  T + 87 + CAST ( 
10f0: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
1100: 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 52 45   INTEGER ) AS RE
1110: 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  AL ) FROM tab0 A
1120: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1130: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
1140: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1150: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1160: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1170: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1180: 65 6c 2d 32 32 0d 0a 53 45 4c 45 43 54 20 2d 20  el-22..SELECT - 
1190: 63 6f 6c 30 20 2b 20 43 41 53 54 28 20 2b 20 63  col0 + CAST( + c
11a0: 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol1 AS SIGNED ) 
11b0: 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * - col1 FROM ta
11c0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
11d0: 0d 0a 2d 35 32 38 0d 0a 2d 36 35 37 36 0d 0a 2d  ..-528..-6576..-
11e0: 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  98....skipif mys
11f0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1200: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1210: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 0d 0a 53  sort label-22..S
1220: 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 43  ELECT - col0 + C
1230: 41 53 54 20 28 20 2b 20 63 6f 6c 31 20 41 53 20  AST ( + col1 AS 
1240: 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f  INTEGER ) * - co
1250: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
1260: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 38  cor0..----..-528
1270: 0d 0a 2d 36 35 37 36 0d 0a 2d 39 38 0d 0a 0d 0a  ..-6576..-98....
1280: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1290: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
12a0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
12b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12c0: 2d 32 33 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  -23..SELECT + co
12d0: 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 41 53  l1 + + - col0 AS
12e0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
12f0: 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 28  cor0 WHERE CAST(
1300: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
1310: 29 20 3e 20 35 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  ) > 50..----....
1320: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1330: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1340: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1350: 61 62 65 6c 2d 32 33 0d 0a 53 45 4c 45 43 54 20  abel-23..SELECT 
1360: 2b 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c  + col1 + + - col
1370: 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
1380: 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 43  ab2 cor0 WHERE C
1390: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
13a0: 54 45 47 45 52 20 29 20 3e 20 35 30 0d 0a 2d 2d  TEGER ) > 50..--
13b0: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
13c0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
13d0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
13e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13f0: 20 6c 61 62 65 6c 2d 32 34 0d 0a 53 45 4c 45 43   label-24..SELEC
1400: 54 20 2b 20 2b 20 36 33 20 46 52 4f 4d 20 74 61  T + + 63 FROM ta
1410: 62 32 20 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c  b2 WHERE + + col
1420: 30 20 2a 20 43 41 53 54 28 20 2d 20 33 32 20 41  0 * CAST( - 32 A
1430: 53 20 53 49 47 4e 45 44 20 29 20 3c 20 2d 20 63  S SIGNED ) < - c
1440: 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a 36  ol0..----..63..6
1450: 33 0d 0a 36 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  3..63....skipif 
1460: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1470: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1480: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34  rowsort label-24
1490: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 36 33 20  ..SELECT + + 63 
14a0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
14b0: 2b 20 2b 20 63 6f 6c 30 20 2a 20 43 41 53 54 20  + + col0 * CAST 
14c0: 28 20 2d 20 33 32 20 41 53 20 49 4e 54 45 47 45  ( - 32 AS INTEGE
14d0: 52 20 29 20 3c 20 2d 20 63 6f 6c 30 0d 0a 2d 2d  R ) < - col0..--
14e0: 2d 2d 0d 0a 36 33 0d 0a 36 33 0d 0a 36 33 0d 0a  --..63..63..63..
14f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1500: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1510: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1520: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 0d 0a 53  sort label-25..S
1530: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28  ELECT ALL + SUM(
1540: 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2d 20 36 20   + col0 ) + - 6 
1550: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1560: 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 31 0d 0a 0d 0a  1..----..221....
1570: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1580: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1590: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15a0: 61 62 65 6c 2d 32 35 0d 0a 53 45 4c 45 43 54 20  abel-25..SELECT 
15b0: 41 4c 4c 20 2b 20 53 55 4d 20 28 20 2b 20 63 6f  ALL + SUM ( + co
15c0: 6c 30 20 29 20 2b 20 2d 20 36 20 41 53 20 63 6f  l0 ) + - 6 AS co
15d0: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
15e0: 2d 2d 0d 0a 32 32 31 0d 0a 0d 0a 6f 6e 6c 79 69  --..221....onlyi
15f0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1600: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1610: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1620: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 0d 0a  wsort label-26..
1630: 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 33  SELECT CAST( + 3
1640: 36 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  6 AS SIGNED ) + 
1650: 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 37 30 20  + + col2 + - 70 
1660: 2b 20 2d 20 63 6f 6c 32 20 2a 20 43 41 53 54 28  + - col2 * CAST(
1670: 20 2b 20 38 35 20 41 53 20 53 49 47 4e 45 44 20   + 85 AS SIGNED 
1680: 29 20 2a 20 2b 20 2b 20 28 20 63 6f 6c 30 20 29  ) * + + ( col0 )
1690: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
16a0: 0d 0a 2d 34 31 36 30 39 38 0d 0a 2d 34 32 36 32  ..-416098..-4262
16b0: 35 30 0d 0a 2d 35 32 35 39 34 36 0d 0a 0d 0a 73  50..-525946....s
16c0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
16d0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
16e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16f0: 62 65 6c 2d 32 36 0d 0a 53 45 4c 45 43 54 20 43  bel-26..SELECT C
1700: 41 53 54 20 28 20 2b 20 33 36 20 41 53 20 49 4e  AST ( + 36 AS IN
1710: 54 45 47 45 52 20 29 20 2b 20 2b 20 2b 20 63 6f  TEGER ) + + + co
1720: 6c 32 20 2b 20 2d 20 37 30 20 2b 20 2d 20 63 6f  l2 + - 70 + - co
1730: 6c 32 20 2a 20 43 41 53 54 20 28 20 2b 20 38 35  l2 * CAST ( + 85
1740: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
1750: 2b 20 2b 20 28 20 63 6f 6c 30 20 29 20 46 52 4f  + + ( col0 ) FRO
1760: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab1..----..-4
1770: 31 36 30 39 38 0d 0a 2d 34 32 36 32 35 30 0d 0a  16098..-426250..
1780: 2d 35 32 35 39 34 36 0d 0a 0d 0a 71 75 65 72 79  -525946....query
1790: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
17a0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 39 38  CT DISTINCT + 98
17b0: 20 2b 20 2b 20 2d 20 28 20 2b 20 2d 20 31 33 20   + + - ( + - 13 
17c0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
17d0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
17e0: 2d 0d 0a 31 31 31 0d 0a 0d 0a 71 75 65 72 79 20  -..111....query 
17f0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1800: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
1810: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
1820: 31 32 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 49 53  12 + - - col0 IS
1830: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1840: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1850: 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
1860: 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
1870: 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
1880: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1890: 20 41 4c 4c 20 39 37 20 41 53 20 63 6f 6c 32 20   ALL 97 AS col2 
18a0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
18b0: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
18c0: 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  2 AS cor1..----.
18d0: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
18e0: 67 20 74 6f 20 35 65 30 64 33 31 61 63 34 31 39  g to 5e0d31ac419
18f0: 38 31 62 63 64 66 36 61 36 36 35 35 33 38 61 37  81bcdf6a665538a7
1900: 31 61 30 39 63 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1a09c....onlyif 
1910: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1920: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1930: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1940: 6c 2d 33 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-30..SELECT DIS
1950: 54 49 4e 43 54 20 2b 20 53 55 4d 28 20 2d 20 35  TINCT + SUM( - 5
1960: 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  5 ) AS col0 FROM
1970: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1980: 2d 2d 2d 0d 0a 2d 31 36 35 0d 0a 0d 0a 73 6b 69  ---..-165....ski
1990: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
19a0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
19b0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19c0: 6c 2d 33 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-30..SELECT DIS
19d0: 54 49 4e 43 54 20 2b 20 53 55 4d 20 28 20 2d 20  TINCT + SUM ( - 
19e0: 35 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  55 ) AS col0 FRO
19f0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1a00: 2d 2d 2d 2d 0d 0a 2d 31 36 35 0d 0a 0d 0a 6f 6e  ----..-165....on
1a10: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1a20: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1a30: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1a40: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
1a50: 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
1a60: 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20 41  - CAST( + col2 A
1a70: 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63  S SIGNED ) * + c
1a80: 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  ol1 col0 FROM ta
1a90: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
1aa0: 0d 0a 31 33 34 34 0d 0a 32 39 35 0d 0a 33 31 39  ..1344..295..319
1ab0: 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
1ac0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1ad0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
1ae0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1af0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1b00: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1b10: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1b20: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1b30: 65 6c 2d 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c  el-31..SELECT AL
1b40: 4c 20 2d 20 2d 20 43 41 53 54 20 28 20 2b 20 63  L - - CAST ( + c
1b50: 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol2 AS INTEGER )
1b60: 20 2a 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46   * + col1 col0 F
1b70: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1b80: 0d 0a 2d 2d 2d 2d 0d 0a 31 33 34 34 0d 0a 32 39  ..----..1344..29
1b90: 35 0d 0a 33 31 39 36 0d 0a 0d 0a 6f 6e 6c 79 69  5..3196....onlyi
1ba0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1bb0: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
1bc0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1bd0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1be0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
1bf0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c00: 54 20 2d 20 53 55 4d 28 20 2b 20 2d 20 43 41 53  T - SUM( + - CAS
1c10: 54 28 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47  T( + col1 AS SIG
1c20: 4e 45 44 20 29 20 29 20 63 6f 6c 30 20 46 52 4f  NED ) ) col0 FRO
1c30: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1c40: 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 0d 0a 73 6b 69  ----..103....ski
1c50: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c60: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
1c70: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
1c80: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
1c90: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
1ca0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
1cb0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
1cc0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 0d 0a 53  sort label-32..S
1cd0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
1ce0: 20 53 55 4d 20 28 20 2b 20 2d 20 43 41 53 54 20   SUM ( + - CAST 
1cf0: 28 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45  ( + col1 AS INTE
1d00: 47 45 52 20 29 20 29 20 63 6f 6c 30 20 46 52 4f  GER ) ) col0 FRO
1d10: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1d20: 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 0d 0a 73 6b 69  ----..103....ski
1d30: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1d40: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1d50: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1d60: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1d70: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
1d80: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1d90: 2d 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 63  - ( - - col0 ) c
1da0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
1db0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   cor0..----..51.
1dc0: 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79  .85..91....query
1dd0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1de0: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
1df0: 6c 31 20 2a 20 2b 20 33 38 20 2a 20 2b 20 63 6f  l1 * + 38 * + co
1e00: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
1e10: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 32  cor0..----..-112
1e20: 31 30 0d 0a 2d 31 32 31 34 34 38 0d 0a 2d 35 31  10..-121448..-51
1e30: 30 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  072....query I r
1e40: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
1e50: 20 2b 20 63 6f 6c 32 20 29 20 2a 20 36 34 20 41   + col2 ) * 64 A
1e60: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
1e70: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37   cor0..----..147
1e80: 32 0d 0a 32 35 36 30 0d 0a 33 37 31 32 0d 0a 0d  2..2560..3712...
1e90: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1ea0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1eb0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1ec0: 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r0 WHERE ( NULL 
1ed0: 29 20 3e 3d 20 2d 20 2d 20 63 6f 6c 30 0d 0a 2d  ) >= - - col0..-
1ee0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
1ef0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1f00: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
1f10: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 63 6f  OM tab1 WHERE co
1f20: 6c 32 20 2b 20 39 37 20 3e 20 4e 55 4c 4c 20 41  l2 + 97 > NULL A
1f30: 4e 44 20 35 35 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ND 55 IS NULL..-
1f40: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1f50: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1f60: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1f70: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1f80: 33 38 0d 0a 53 45 4c 45 43 54 20 38 38 20 2a 20  38..SELECT 88 * 
1f90: 2b 20 4d 49 4e 28 20 63 6f 6c 31 20 29 20 46 52  + MIN( col1 ) FR
1fa0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38  OM tab0..----..8
1fb0: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
1fc0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1fd0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1fe0: 6f 72 74 20 6c 61 62 65 6c 2d 33 38 0d 0a 53 45  ort label-38..SE
1ff0: 4c 45 43 54 20 38 38 20 2a 20 2b 20 4d 49 4e 20  LECT 88 * + MIN 
2000: 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  ( col1 ) FROM ta
2010: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 38 0d 0a 0d 0a  b0..----..88....
2020: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2030: 0a 53 45 4c 45 43 54 20 28 20 2b 20 2d 20 28 20  .SELECT ( + - ( 
2040: 2b 20 34 36 20 29 20 29 20 2a 20 2d 20 2d 20 63  + 46 ) ) * - - c
2050: 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
2060: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30   tab0..----..-40
2070: 30 32 0d 0a 2d 34 34 36 32 0d 0a 2d 36 39 30 0d  02..-4462..-690.
2080: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2090: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31  rt..SELECT ALL 1
20a0: 36 20 2a 20 2b 20 33 32 20 46 52 4f 4d 20 74 61  6 * + 32 FROM ta
20b0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 32 0d 0a 35  b2..----..512..5
20c0: 31 32 0d 0a 35 31 32 0d 0a 0d 0a 6f 6e 6c 79 69  12..512....onlyi
20d0: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
20e0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
20f0: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2100: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 0d 0a  wsort label-41..
2110: 53 45 4c 45 43 54 20 63 6f 6c 32 20 44 49 56 20  SELECT col2 DIV 
2120: 2b 20 34 37 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 47 FROM tab0..
2130: 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 32 0d 0a 0d  ----..0..1..2...
2140: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2150: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2160: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2170: 6c 61 62 65 6c 2d 34 31 0d 0a 53 45 4c 45 43 54  label-41..SELECT
2180: 20 63 6f 6c 32 20 2f 20 2b 20 34 37 20 46 52 4f   col2 / + 47 FRO
2190: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
21a0: 0a 31 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .1..2....query I
21b0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
21c0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
21d0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
21e0: 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 2a   col1 * - col2 *
21f0: 20 2d 20 2b 20 34 39 20 2b 20 2b 20 63 6f 6c 30   - + 49 + + col0
2200: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2210: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
2220: 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
2230: 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
2240: 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  0a49....query II
2250: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2260: 20 44 49 53 54 49 4e 43 54 20 2d 20 35 36 20 2a   DISTINCT - 56 *
2270: 20 2d 20 34 33 20 2b 20 28 20 2b 20 63 6f 6c 32   - 43 + ( + col2
2280: 20 29 2c 20 2b 20 36 31 20 41 53 20 63 6f 6c 31   ), + 61 AS col1
2290: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
22a0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 36 37 0d 0a  r0..----..2467..
22b0: 36 31 0d 0a 32 34 37 36 0d 0a 36 31 0d 0a 32 35  61..2476..61..25
22c0: 30 34 0d 0a 36 31 0d 0a 0d 0a 73 6b 69 70 69 66  04..61....skipif
22d0: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
22e0: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
22f0: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2300: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2310: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
2320: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
2330: 31 20 2a 20 32 34 20 63 6f 6c 32 20 46 52 4f 4d  1 * 24 col2 FROM
2340: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 32   tab2..----..122
2350: 34 0d 0a 31 36 30 38 0d 0a 31 38 34 38 0d 0a 0d  4..1608..1848...
2360: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2370: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2380: 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 63  M tab1 WHERE - c
2390: 6f 6c 32 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  ol2 BETWEEN NULL
23a0: 20 41 4e 44 20 2b 20 28 20 31 30 20 29 20 2d 20   AND + ( 10 ) - 
23b0: 2d 20 63 6f 6c 30 20 2a 20 2d 20 31 39 0d 0a 2d  - col0 * - 19..-
23c0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
23d0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
23e0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
23f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2400: 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  46..SELECT ALL +
2410: 20 4d 41 58 28 20 41 4c 4c 20 63 6f 6c 32 20 29   MAX( ALL col2 )
2420: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2430: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2440: 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..99....skipif m
2450: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2460: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2470: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 0d  owsort label-46.
2480: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41  .SELECT ALL + MA
2490: 58 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 41  X ( ALL col2 ) A
24a0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
24b0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24c0: 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  99....query I ro
24d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
24e0: 4c 20 2d 20 2d 20 38 20 2a 20 63 6f 6c 32 20 2a  L - - 8 * col2 *
24f0: 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + - col1 FROM t
2500: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
2510: 45 20 4e 4f 54 20 2b 20 28 20 36 20 29 20 2b 20  E NOT + ( 6 ) + 
2520: 2d 20 32 37 20 2f 20 2b 20 2b 20 63 6f 6c 31 20  - 27 / + + col1 
2530: 2a 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45  * col0 NOT BETWE
2540: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 31  EN NULL AND col1
2550: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2560: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2570: 54 20 2b 20 2d 20 28 20 2b 20 33 20 29 20 2b 20  T + - ( + 3 ) + 
2580: 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
2590: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
25a0: 2d 32 36 0d 0a 2d 34 33 0d 0a 2d 36 31 0d 0a 0d  -26..-43..-61...
25b0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
25c0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
25d0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
25e0: 6f 72 74 20 6c 61 62 65 6c 2d 34 39 0d 0a 53 45  ort label-49..SE
25f0: 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20  LECT ALL + SUM( 
2600: 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30  col2 ) FROM tab0
2610: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2620: 31 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  156....skipif my
2630: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2640: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2650: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 0d 0a  wsort label-49..
2660: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d  SELECT ALL + SUM
2670: 20 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   ( col2 ) FROM t
2680: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2690: 2d 0d 0a 31 35 36 0d 0a 0d 0a 71 75 65 72 79 20  -..156....query 
26a0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
26b0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
26c0: 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20  cor0 WHERE col0 
26d0: 2a 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  * col1 IS NULL..
26e0: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
26f0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2700: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2710: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2720: 2d 35 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -51..SELECT DIST
2730: 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  INCT + COUNT( * 
2740: 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) + - COUNT( * )
2750: 20 2a 20 2b 20 31 32 20 2a 20 2b 20 43 4f 55 4e   * + 12 * + COUN
2760: 54 28 20 2a 20 29 20 2b 20 2b 20 2d 20 28 20 2d  T( * ) + + - ( -
2770: 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52   COUNT( * ) ) FR
2780: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
2790: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e  WHERE NOT NULL N
27a0: 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c  OT BETWEEN + col
27b0: 30 20 41 4e 44 20 2d 20 2b 20 34 36 20 2a 20 2d  0 AND - + 46 * -
27c0: 20 2d 20 35 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d   - 5..----..0...
27d0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
27e0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
27f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2800: 6c 61 62 65 6c 2d 35 31 0d 0a 53 45 4c 45 43 54  label-51..SELECT
2810: 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
2820: 54 20 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55 4e  T ( * ) + - COUN
2830: 54 20 28 20 2a 20 29 20 2a 20 2b 20 31 32 20 2a  T ( * ) * + 12 *
2840: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   + COUNT ( * ) +
2850: 20 2b 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28   + - ( - COUNT (
2860: 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31   * ) ) FROM tab1
2870: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2880: 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  OT NULL NOT BETW
2890: 45 45 4e 20 2b 20 63 6f 6c 30 20 41 4e 44 20 2d  EEN + col0 AND -
28a0: 20 2b 20 34 36 20 2a 20 2d 20 2d 20 35 0d 0a 2d   + 46 * - - 5..-
28b0: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
28c0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
28d0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
28e0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
28f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 0d 0a 53  sort label-52..S
2900: 45 4c 45 43 54 20 2b 20 35 39 20 44 49 56 20 38  ELECT + 59 DIV 8
2910: 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
2920: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2930: 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b  -..0..0..0....sk
2940: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2950: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2960: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2970: 65 6c 2d 35 32 0d 0a 53 45 4c 45 43 54 20 2b 20  el-52..SELECT + 
2980: 35 39 20 2f 20 38 37 20 41 53 20 63 6f 6c 31 20  59 / 87 AS col1 
2990: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
29a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  0..----..0..0..0
29b0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29c0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
29d0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
29e0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 0d  owsort label-53.
29f0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2a00: 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54   + MAX( DISTINCT
2a10: 20 2b 20 32 35 20 29 20 46 52 4f 4d 20 74 61 62   + 25 ) FROM tab
2a20: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2a30: 0a 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .25....skipif my
2a40: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2a50: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2a60: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 0d 0a  wsort label-53..
2a70: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2a80: 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  + MAX ( DISTINCT
2a90: 20 2b 20 32 35 20 29 20 46 52 4f 4d 20 74 61 62   + 25 ) FROM tab
2aa0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2ab0: 0a 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .25....onlyif my
2ac0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2ad0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2ae0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2af0: 35 34 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28  54..SELECT - + (
2b00: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
2b10: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2b20: 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
2b30: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2b40: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2b50: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2b60: 65 6c 2d 35 34 0d 0a 53 45 4c 45 43 54 20 2d 20  el-54..SELECT - 
2b70: 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  + ( - COUNT ( * 
2b80: 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ) ) FROM tab2 AS
2b90: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
2ba0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2bb0: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2bc0: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2bd0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2be0: 65 6c 2d 35 35 0d 0a 53 45 4c 45 43 54 20 63 6f  el-55..SELECT co
2bf0: 6c 31 20 2f 20 2b 20 2d 20 43 41 53 54 28 20 4e  l1 / + - CAST( N
2c00: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2c10: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2c20: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
2c30: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
2c40: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2c50: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2c60: 6f 72 74 20 6c 61 62 65 6c 2d 35 35 0d 0a 53 45  ort label-55..SE
2c70: 4c 45 43 54 20 63 6f 6c 31 20 2f 20 2b 20 2d 20  LECT col1 / + - 
2c80: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2c90: 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
2ca0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
2cb0: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
2cc0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2cd0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34 39 20 2a  ELECT ALL + 49 *
2ce0: 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
2cf0: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 39 39 0d 0a  2..----..-2499..
2d00: 2d 33 32 38 33 0d 0a 2d 33 37 37 33 0d 0a 0d 0a  -3283..-3773....
2d10: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2d20: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2d30: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2d40: 72 74 20 6c 61 62 65 6c 2d 35 37 0d 0a 53 45 4c  rt label-57..SEL
2d50: 45 43 54 20 28 20 2d 20 2d 20 53 55 4d 28 20 41  ECT ( - - SUM( A
2d60: 4c 4c 20 33 32 20 29 20 29 20 41 53 20 63 6f 6c  LL 32 ) ) AS col
2d70: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
2d80: 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..96....skipif 
2d90: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2da0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2db0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37  rowsort label-57
2dc0: 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 2d 20 53  ..SELECT ( - - S
2dd0: 55 4d 20 28 20 41 4c 4c 20 33 32 20 29 20 29 20  UM ( ALL 32 ) ) 
2de0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2df0: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71  0..----..96....q
2e00: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2e10: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 35  .SELECT ALL - 95
2e20: 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 46   AS col2, col2 F
2e30: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2e40: 2d 39 35 0d 0a 35 39 0d 0a 2d 39 35 0d 0a 36 38  -95..59..-95..68
2e50: 0d 0a 2d 39 35 0d 0a 39 36 0d 0a 0d 0a 71 75 65  ..-95..96....que
2e60: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2e70: 4c 45 43 54 20 41 4c 4c 20 2b 20 31 30 20 2b 20  LECT ALL + 10 + 
2e80: 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  - col1 FROM tab0
2e90: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d 37 31  ..----..-11..-71
2ea0: 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..9....query I r
2eb0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2ec0: 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f  LL + col1 + - co
2ed0: 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 46 52  l2 * + + col0 FR
2ee0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2ef0: 36 32 34 0d 0a 2d 38 34 39 0d 0a 2d 39 36 30 32  624..-849..-9602
2f00: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2f10: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 31  ort..SELECT - 31
2f20: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2f30: 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  b0 cor0 WHERE co
2f40: 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
2f50: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2f60: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2f70: 49 4e 43 54 20 2d 20 32 32 20 2b 20 2d 20 63 6f  INCT - 22 + - co
2f80: 6c 30 20 2a 20 34 37 20 46 52 4f 4d 20 74 61 62  l0 * 47 FROM tab
2f90: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2fa0: 0a 2d 32 34 31 39 0d 0a 2d 34 30 31 37 0d 0a 2d  .-2419..-4017..-
2fb0: 34 32 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4299....onlyif m
2fc0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2fd0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2fe0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ff0: 2d 36 33 0d 0a 53 45 4c 45 43 54 20 34 34 20 2a  -63..SELECT 44 *
3000: 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 2b 20   - MAX( ALL + + 
3010: 39 38 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  98 ) AS col1 FRO
3020: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
3030: 2d 2d 2d 2d 0d 0a 2d 34 33 31 32 0d 0a 0d 0a 73  ----..-4312....s
3040: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
3050: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
3060: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3070: 62 65 6c 2d 36 33 0d 0a 53 45 4c 45 43 54 20 34  bel-63..SELECT 4
3080: 34 20 2a 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  4 * - MAX ( ALL 
3090: 2b 20 2b 20 39 38 20 29 20 41 53 20 63 6f 6c 31  + + 98 ) AS col1
30a0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
30b0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 31 32 0d  r0..----..-4312.
30c0: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
30d0: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
30e0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
30f0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
3100: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
3110: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3120: 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d  ECT DISTINCT ( -
3130: 20 39 34 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20   94 ) col1 FROM 
3140: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 34 0d  tab1..----..-94.
3150: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
3160: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
3170: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
3180: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
3190: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
31a0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
31b0: 45 43 54 20 41 4c 4c 20 39 37 20 63 6f 6c 30 20  ECT ALL 97 col0 
31c0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
31d0: 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 39 37 0d  0..----..97..97.
31e0: 0a 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .97....query III
31f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3200: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
3210: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
3220: 55 4c 4c 20 3e 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  ULL > + col0..--
3230: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
3240: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
3250: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
3260: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
3270: 74 20 6c 61 62 65 6c 2d 36 37 0d 0a 53 45 4c 45  t label-67..SELE
3280: 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT - CAST( NULL 
3290: 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
32a0: 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20  col2 AS col2, - 
32b0: 31 36 20 2b 20 2b 20 31 20 2b 20 2b 20 36 32 20  16 + + 1 + + 62 
32c0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
32d0: 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30  0 WHERE NOT col0
32e0: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 39   NOT BETWEEN - 9
32f0: 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  2 AND NULL..----
3300: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
3310: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
3320: 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
3330: 6f 72 74 20 6c 61 62 65 6c 2d 36 37 0d 0a 53 45  ort label-67..SE
3340: 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55  LECT - CAST ( NU
3350: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
3360: 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32  + - col2 AS col2
3370: 2c 20 2d 20 31 36 20 2b 20 2b 20 31 20 2b 20 2b  , - 16 + + 1 + +
3380: 20 36 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53   62 FROM tab0 AS
3390: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
33a0: 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45 45 4e  col0 NOT BETWEEN
33b0: 20 2d 20 39 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a   - 92 AND NULL..
33c0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
33d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33e0: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
33f0: 30 20 63 6f 72 30 20 57 48 45 52 45 20 36 31 20  0 cor0 WHERE 61 
3400: 2f 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  / col0 IS NULL..
3410: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
3420: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
3430: 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 39 38 2c 20   ALL col2 * 98, 
3440: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  - col0 AS col1 F
3450: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
3460: 0d 0a 2d 2d 2d 2d 0d 0a 32 32 35 34 0d 0a 2d 34  ..----..2254..-4
3470: 36 0d 0a 33 39 32 30 0d 0a 2d 36 34 0d 0a 35 36  6..3920..-64..56
3480: 38 34 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79  84..-75....query
3490: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
34a0: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
34b0: 2d 20 33 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  - 3 ) FROM tab1.
34c0: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
34d0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
34e0: 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2b  ECT ALL col2 * +
34f0: 20 2b 20 36 34 20 46 52 4f 4d 20 74 61 62 30 0d   + 64 FROM tab0.
3500: 0a 2d 2d 2d 2d 0d 0a 33 30 30 38 0d 0a 36 33 33  .----..3008..633
3510: 36 0d 0a 36 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  6..640....onlyif
3520: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
3530: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
3540: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
3550: 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 0d 0a 53  sort label-72..S
3560: 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2b 20 43  ELECT col0 * + C
3570: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
3580: 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
3590: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
35a0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
35b0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
35c0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
35d0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35e0: 74 20 6c 61 62 65 6c 2d 37 32 0d 0a 53 45 4c 45  t label-72..SELE
35f0: 43 54 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54  CT col0 * + CAST
3600: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
3610: 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ER ) AS col1 FRO
3620: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
3630: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
3640: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
3650: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
3660: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
3670: 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a 53  sort label-73..S
3680: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
3690: 20 4d 41 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 32   MAX( ALL - col2
36a0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
36b0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d  tab1..----..-59.
36c0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36d0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36e0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
36f0: 74 20 6c 61 62 65 6c 2d 37 33 0d 0a 53 45 4c 45  t label-73..SELE
3700: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41  CT DISTINCT + MA
3710: 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29  X ( ALL - col2 )
3720: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
3730: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d  b1..----..-59...
3740: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
3750: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
3760: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  NCT * FROM tab1 
3770: 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63 6f  WHERE NOT + + co
3780: 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
3790: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
37a0: 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
37b0: 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
37c0: 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66  d54cad....onlyif
37d0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
37e0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
37f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3800: 65 6c 2d 37 35 0d 0a 53 45 4c 45 43 54 20 41 4c  el-75..SELECT AL
3810: 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  L + COUNT( * ) F
3820: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
3830: 4f 54 20 31 39 20 2b 20 2d 20 2d 20 63 6f 6c 31  OT 19 + - - col1
3840: 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30   < NULL..----..0
3850: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
3860: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
3870: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
3880: 72 74 20 6c 61 62 65 6c 2d 37 35 0d 0a 53 45 4c  rt label-75..SEL
3890: 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20  ECT ALL + COUNT 
38a0: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
38b0: 57 48 45 52 45 20 4e 4f 54 20 31 39 20 2b 20 2d  WHERE NOT 19 + -
38c0: 20 2d 20 63 6f 6c 31 20 3c 20 4e 55 4c 4c 0d 0a   - col1 < NULL..
38d0: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
38e0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38f0: 43 54 20 28 20 2d 20 36 32 20 29 20 2a 20 63 6f  CT ( - 62 ) * co
3900: 6c 32 20 2a 20 2d 20 2b 20 39 39 20 41 53 20 63  l2 * - + 99 AS c
3910: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol0 FROM tab2 WH
3920: 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49  ERE NOT - col2 I
3930: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
3940: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
3950: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
3960: 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20   + - col0 * + - 
3970: 63 6f 6c 32 20 2a 20 63 6f 6c 30 2c 20 63 6f 6c  col2 * col0, col
3980: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
3990: 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
39a0: 31 30 35 37 35 0d 0a 38 31 0d 0a 37 35 36 39 30  10575..81..75690
39b0: 0d 0a 32 31 0d 0a 39 33 31 34 39 31 0d 0a 31 0d  ..21..931491..1.
39c0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
39d0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
39e0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
39f0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 0d 0a  wsort label-78..
3a00: 53 45 4c 45 43 54 20 2d 20 2b 20 39 38 20 2b 20  SELECT - + 98 + 
3a10: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b  - COUNT( * ) - +
3a20: 20 32 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   25 AS col2 FROM
3a30: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
3a40: 2d 2d 2d 0d 0a 2d 31 32 36 0d 0a 0d 0a 73 6b 69  ---..-126....ski
3a50: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
3a60: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
3a70: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3a80: 6c 2d 37 38 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  l-78..SELECT - +
3a90: 20 39 38 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20   98 + - COUNT ( 
3aa0: 2a 20 29 20 2d 20 2b 20 32 35 20 41 53 20 63 6f  * ) - + 25 AS co
3ab0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
3ac0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36  cor0..----..-126
3ad0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
3ae0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39 32  ort..SELECT + 92
3af0: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
3b00: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
3b10: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a  or0..----..107..
3b20: 31 37 39 0d 0a 31 38 39 0d 0a 0d 0a 71 75 65 72  179..189....quer
3b30: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3b40: 45 43 54 20 41 4c 4c 20 28 20 2b 20 28 20 2b 20  ECT ALL ( + ( + 
3b50: 38 36 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  86 ) ) FROM tab1
3b60: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
3b70: 38 36 0d 0a 38 36 0d 0a 38 36 0d 0a 0d 0a 71 75  86..86..86....qu
3b80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
3b90: 45 4c 45 43 54 20 2b 20 2b 20 34 34 20 2b 20 63  ELECT + + 44 + c
3ba0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
3bb0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 31  r0..----..108..1
3bc0: 31 39 0d 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  19..90....onlyif
3bd0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
3be0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
3bf0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
3c00: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 0d 0a 53  sort label-82..S
3c10: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31  ELECT DISTINCT 1
3c20: 38 20 2a 20 2b 20 2b 20 28 20 43 41 53 54 28 20  8 * + + ( CAST( 
3c30: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
3c40: 20 29 20 2a 20 2b 20 63 6f 6c 30 20 2b 20 2d 20   ) * + col0 + - 
3c50: 31 35 20 2b 20 2d 20 2b 20 35 32 20 2a 20 2d 20  15 + - + 52 * - 
3c60: 2d 20 33 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - 3 col0 FROM ta
3c70: 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  b2 WHERE NULL NO
3c80: 54 20 49 4e 20 28 20 2d 20 38 33 20 2d 20 2d 20  T IN ( - 83 - - 
3c90: 63 6f 6c 32 2c 20 63 6f 6c 32 2c 20 32 32 20 2a  col2, col2, 22 *
3ca0: 20 2d 20 2b 20 33 36 20 2a 20 2d 20 63 6f 6c 31   - + 36 * - col1
3cb0: 20 2a 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   * + col1 )..---
3cc0: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
3cd0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
3ce0: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
3cf0: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
3d00: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
3d10: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
3d20: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
3d30: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3d40: 65 6c 2d 38 32 0d 0a 53 45 4c 45 43 54 20 44 49  el-82..SELECT DI
3d50: 53 54 49 4e 43 54 20 31 38 20 2a 20 2b 20 2b 20  STINCT 18 * + + 
3d60: 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  ( CAST ( NULL AS
3d70: 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2b   INTEGER ) ) * +
3d80: 20 63 6f 6c 30 20 2b 20 2d 20 31 35 20 2b 20 2d   col0 + - 15 + -
3d90: 20 2b 20 35 32 20 2a 20 2d 20 2d 20 33 20 63 6f   + 52 * - - 3 co
3da0: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
3db0: 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  RE NULL NOT IN (
3dc0: 20 2d 20 38 33 20 2d 20 2d 20 63 6f 6c 32 2c 20   - 83 - - col2, 
3dd0: 63 6f 6c 32 2c 20 32 32 20 2a 20 2d 20 2b 20 33  col2, 22 * - + 3
3de0: 36 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63  6 * - col1 * + c
3df0: 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol1 )..----....q
3e00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
3e10: 53 45 4c 45 43 54 20 2b 20 34 32 20 41 53 20 63  SELECT + 42 AS c
3e20: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
3e30: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
3e40: 20 74 61 62 31 20 63 6f 72 31 0d 0a 2d 2d 2d 2d   tab1 cor1..----
3e50: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
3e60: 6e 67 20 74 6f 20 36 34 63 32 39 64 62 39 66 31  ng to 64c29db9f1
3e70: 63 64 37 65 64 34 64 64 65 62 31 37 33 35 65 33  cd7ed4ddeb1735e3
3e80: 65 30 64 34 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  e0d442....onlyif
3e90: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
3ea0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
3eb0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
3ec0: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 0d 0a 53  sort label-84..S
3ed0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38 32 20 44  ELECT ALL + 82 D
3ee0: 49 56 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f  IV - col0 + - co
3ef0: 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
3f00: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 0d  tab0..----..-20.
3f10: 0a 2d 38 37 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69  .-87..-97....ski
3f20: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
3f30: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
3f40: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3f50: 6c 2d 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-84..SELECT ALL
3f60: 20 2b 20 38 32 20 2f 20 2d 20 63 6f 6c 30 20 2b   + 82 / - col0 +
3f70: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   - col0 AS col1 
3f80: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
3f90: 0a 2d 32 30 0d 0a 2d 38 37 0d 0a 2d 39 37 0d 0a  .-20..-87..-97..
3fa0: 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72  ..query IIIIII r
3fb0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
3fc0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
3fd0: 72 30 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  r0 JOIN tab2 AS 
3fe0: 63 6f 72 31 20 4f 4e 20 4e 55 4c 4c 20 3e 20 2b  cor1 ON NULL > +
3ff0: 20 2d 20 36 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   - 63..----....q
4000: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
4010: 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20  SELECT + col1 * 
4020: 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  + - col1 AS col1
4030: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
4040: 0d 0a 2d 31 39 36 0d 0a 2d 32 32 30 39 0d 0a 2d  ..-196..-2209..-
4050: 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  25....query III 
4060: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
4070: 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
4080: 45 20 28 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 2b  E ( NOT col2 + +
4090: 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
40a0: 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
40b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
40c0: 4c 45 43 54 20 41 4c 4c 20 31 37 20 2d 20 2b 20  LECT ALL 17 - + 
40d0: 37 34 20 2b 20 2d 20 2b 20 35 35 20 41 53 20 63  74 + - + 55 AS c
40e0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
40f0: 2d 2d 2d 0d 0a 2d 31 31 32 0d 0a 2d 31 31 32 0d  ---..-112..-112.
4100: 0a 2d 31 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49  .-112....query I
4110: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4120: 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 36 36   DISTINCT - + 66
4130: 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   * col1 AS col2 
4140: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
4150: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 30 32 0d 0a  0..----..-3102..
4160: 2d 33 33 30 0d 0a 2d 39 32 34 0d 0a 0d 0a 71 75  -330..-924....qu
4170: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4180: 45 4c 45 43 54 20 2b 20 34 33 20 41 53 20 63 6f  ELECT + 43 AS co
4190: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
41a0: 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29  0 WHERE ( NULL )
41b0: 20 3c 3d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a   <= col1..----..
41c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
41d0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
41e0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
41f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4200: 65 6c 2d 39 31 0d 0a 53 45 4c 45 43 54 20 2b 20  el-91..SELECT + 
4210: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 44 49  col2 + + col0 DI
4220: 56 20 2d 20 36 39 20 46 52 4f 4d 20 74 61 62 31  V - 69 FROM tab1
4230: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
4240: 35 38 0d 0a 36 37 0d 0a 39 36 0d 0a 0d 0a 73 6b  58..67..96....sk
4250: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
4260: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
4270: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
4280: 65 6c 2d 39 31 0d 0a 53 45 4c 45 43 54 20 2b 20  el-91..SELECT + 
4290: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 2f 20  col2 + + col0 / 
42a0: 2d 20 36 39 20 46 52 4f 4d 20 74 61 62 31 20 41  - 69 FROM tab1 A
42b0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
42c0: 0d 0a 36 37 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79  ..67..96....only
42d0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
42e0: 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
42f0: 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
4300: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
4310: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
4320: 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  2..SELECT ALL CA
4330: 53 54 28 20 2d 20 2d 20 53 55 4d 28 20 35 37 20  ST( - - SUM( 57 
4340: 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  ) AS SIGNED ) FR
4350: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
4360: 0a 2d 2d 2d 2d 0d 0a 31 37 31 0d 0a 0d 0a 73 6b  .----..171....sk
4370: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
4380: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
4390: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
43a0: 65 6c 2d 39 32 0d 0a 53 45 4c 45 43 54 20 41 4c  el-92..SELECT AL
43b0: 4c 20 43 41 53 54 20 28 20 2d 20 2d 20 53 55 4d  L CAST ( - - SUM
43c0: 20 28 20 35 37 20 29 20 41 53 20 49 4e 54 45 47   ( 57 ) AS INTEG
43d0: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  ER ) FROM tab2 A
43e0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37  S cor0..----..17
43f0: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  1....skipif post
4400: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
4410: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
4420: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
4430: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
4440: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4450: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
4460: 20 2d 20 35 32 20 63 6f 6c 30 20 46 52 4f 4d 20   - 52 col0 FROM 
4470: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
4480: 2d 2d 0d 0a 2d 35 32 0d 0a 0d 0a 71 75 65 72 79  --..-52....query
4490: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
44a0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
44b0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
44c0: 55 4c 4c 20 3c 3e 20 2b 20 31 35 20 2a 20 28 20  ULL <> + 15 * ( 
44d0: 2d 20 38 33 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - 83 )..----....
44e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
44f0: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b  .SELECT - col1 +
4500: 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30   - col0 * + col0
4510: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
4520: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 36 37 0d  r0..----..-2167.
4530: 0a 2d 34 31 37 33 0d 0a 2d 35 36 39 32 0d 0a 0d  .-4173..-5692...
4540: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
4550: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
4560: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4570: 6f 72 74 20 6c 61 62 65 6c 2d 39 36 0d 0a 53 45  ort label-96..SE
4580: 4c 45 43 54 20 41 4c 4c 20 38 39 20 2b 20 2b 20  LECT ALL 89 + + 
4590: 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
45a0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
45b0: 2d 2d 2d 2d 0d 0a 38 36 0d 0a 0d 0a 73 6b 69 70  ----..86....skip
45c0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
45d0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
45e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
45f0: 2d 39 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -96..SELECT ALL 
4600: 38 39 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28  89 + + - COUNT (
4610: 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
4620: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 36  M tab2..----..86
4630: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
4640: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
4650: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
4660: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
4670: 61 62 65 6c 2d 39 37 0d 0a 53 45 4c 45 43 54 20  abel-97..SELECT 
4680: 2d 20 28 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  - ( + - CAST( NU
4690: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
46a0: 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 63 6f   + + - col1 + co
46b0: 6c 31 20 2a 20 2b 20 31 31 20 46 52 4f 4d 20 74  l1 * + 11 FROM t
46c0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
46d0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
46e0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
46f0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4700: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4710: 62 65 6c 2d 39 37 0d 0a 53 45 4c 45 43 54 20 2d  bel-97..SELECT -
4720: 20 28 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55   ( + - CAST ( NU
4730: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
4740: 29 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 63  ) + + - col1 + c
4750: 6f 6c 31 20 2a 20 2b 20 31 31 20 46 52 4f 4d 20  ol1 * + 11 FROM 
4760: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
4770: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
4780: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
4790: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
47a0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
47b0: 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
47c0: 65 6c 2d 39 38 0d 0a 53 45 4c 45 43 54 20 2a 20  el-98..SELECT * 
47d0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
47e0: 43 41 53 54 28 20 2d 20 63 6f 6c 31 20 41 53 20  CAST( - col1 AS 
47f0: 53 49 47 4e 45 44 20 29 20 49 53 20 4e 4f 54 20  SIGNED ) IS NOT 
4800: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
4810: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
4820: 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
4830: 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
4840: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
4850: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
4860: 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
4870: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 0d 0a 53  sort label-98..S
4880: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
4890: 31 20 57 48 45 52 45 20 43 41 53 54 20 28 20 2d  1 WHERE CAST ( -
48a0: 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
48b0: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
48c0: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
48d0: 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
48e0: 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
48f0: 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
4900: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
4910: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
4920: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
4930: 20 6c 61 62 65 6c 2d 39 39 0d 0a 53 45 4c 45 43   label-99..SELEC
4940: 54 20 2b 20 4d 49 4e 28 20 36 38 20 29 20 41 53  T + MIN( 68 ) AS
4950: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
4960: 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 0d 0a 73 6b 69  .----..68....ski
4970: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4980: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4990: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
49a0: 6c 2d 39 39 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  l-99..SELECT + M
49b0: 49 4e 20 28 20 36 38 20 29 20 41 53 20 63 6f 6c  IN ( 68 ) AS col
49c0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
49d0: 2d 0d 0a 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49  -..68....query I
49e0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
49f0: 20 44 49 53 54 49 4e 43 54 20 37 34 20 2a 20 2b   DISTINCT 74 * +
4a00: 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 28 20 2d 20   - col0 + - ( - 
4a10: 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 41 53 20  ( - col2 ) ) AS 
4a20: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
4a30: 2d 2d 2d 2d 0d 0a 2d 33 38 37 30 0d 0a 2d 36 33  ----..-3870..-63
4a40: 34 39 0d 0a 2d 36 38 30 32 0d 0a 0d 0a 6f 6e 6c  49..-6802....onl
4a50: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
4a60: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
4a70: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
4a80: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
4a90: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
4aa0: 2d 31 30 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -101..SELECT + C
4ab0: 4f 55 4e 54 28 20 31 20 29 20 2a 20 28 20 2d 20  OUNT( 1 ) * ( - 
4ac0: 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 2d 20 63  COUNT( ALL + - c
4ad0: 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 2c  ol2 ) ) AS col2,
4ae0: 20 2d 20 4d 49 4e 28 20 2b 20 43 41 53 54 28 20   - MIN( + CAST( 
4af0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
4b00: 20 29 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e   ) - MIN( DISTIN
4b10: 43 54 20 2b 20 28 20 2b 20 28 20 2d 20 63 6f 6c  CT + ( + ( - col
4b20: 32 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62  2 ) ) ) FROM tab
4b30: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  1 cor0..----..-9
4b40: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
4b50: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
4b60: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
4b70: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4b80: 31 30 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  101..SELECT + CO
4b90: 55 4e 54 20 28 20 31 20 29 20 2a 20 28 20 2d 20  UNT ( 1 ) * ( - 
4ba0: 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 2d 20  COUNT ( ALL + - 
4bb0: 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32  col2 ) ) AS col2
4bc0: 2c 20 2d 20 4d 49 4e 20 28 20 2b 20 43 41 53 54  , - MIN ( + CAST
4bd0: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
4be0: 45 52 20 29 20 29 20 2d 20 4d 49 4e 20 28 20 44  ER ) ) - MIN ( D
4bf0: 49 53 54 49 4e 43 54 20 2b 20 28 20 2b 20 28 20  ISTINCT + ( + ( 
4c00: 2d 20 63 6f 6c 32 20 29 20 29 20 29 20 46 52 4f  - col2 ) ) ) FRO
4c10: 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
4c20: 2d 0d 0a 2d 39 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  -..-9..NULL....q
4c30: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
4c40: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4c50: 20 35 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f   5 AS col1, + co
4c60: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
4c70: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 31  cor0..----..5..1
4c80: 30 0d 0a 35 0d 0a 34 37 0d 0a 35 0d 0a 39 39 0d  0..5..47..5..99.
4c90: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
4ca0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
4cb0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
4cc0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 0d  wsort label-103.
4cd0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
4ce0: 20 2d 20 2b 20 4d 41 58 28 20 36 32 20 29 20 41   - + MAX( 62 ) A
4cf0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
4d00: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32   cor0..----..-62
4d10: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
4d20: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
4d30: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
4d40: 72 74 20 6c 61 62 65 6c 2d 31 30 33 0d 0a 53 45  rt label-103..SE
4d50: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
4d60: 2b 20 4d 41 58 20 28 20 36 32 20 29 20 41 53 20  + MAX ( 62 ) AS 
4d70: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
4d80: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a  or0..----..-62..
4d90: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
4da0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
4db0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
4dc0: 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 4e  WHERE NOT col1 N
4dd0: 4f 54 20 49 4e 20 28 20 2d 20 2b 20 28 20 2d 20  OT IN ( - + ( - 
4de0: 2b 20 32 31 20 29 2c 20 2d 20 28 20 2b 20 2b 20  + 21 ), - ( + + 
4df0: 63 6f 6c 31 20 29 2c 20 2b 20 63 6f 6c 31 2c 20  col1 ), + col1, 
4e00: 2b 20 63 6f 6c 32 2c 20 2d 20 2d 20 39 39 20 29  + col2, - - 99 )
4e10: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
4e20: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
4e30: 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
4e40: 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
4e50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
4e60: 0a 53 45 4c 45 43 54 20 2b 20 2b 20 32 32 20 46  .SELECT + + 22 F
4e70: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
4e80: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
4e90: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
4ea0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
4eb0: 20 74 6f 20 63 35 35 65 65 37 34 33 33 64 38 64   to c55ee7433d8d
4ec0: 33 39 61 35 39 62 31 64 65 32 61 61 64 64 39 35  39a59b1de2aadd95
4ed0: 33 38 63 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  38c9....query I 
4ee0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
4ef0: 44 49 53 54 49 4e 43 54 20 32 32 20 2a 20 2b 20  DISTINCT 22 * + 
4f00: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
4f10: 2d 2d 2d 2d 0d 0a 31 30 33 34 0d 0a 31 31 30 0d  ----..1034..110.
4f20: 0a 33 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .308....skipif p
4f30: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
4f40: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
4f50: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
4f60: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
4f70: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
4f80: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
4f90: 6c 32 2c 20 2b 20 32 38 20 63 6f 6c 32 20 46 52  l2, + 28 col2 FR
4fa0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
4fb0: 39 0d 0a 32 38 0d 0a 36 38 0d 0a 32 38 0d 0a 39  9..28..68..28..9
4fc0: 36 0d 0a 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..28....onlyif 
4fd0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
4fe0: 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
4ff0: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
5000: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
5010: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 0d  wsort label-108.
5020: 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 63 6f 6c  .SELECT MAX( col
5030: 32 20 29 20 44 49 56 20 2d 20 4d 49 4e 28 20 44  2 ) DIV - MIN( D
5040: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29  ISTINCT + col1 )
5050: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
5060: 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b  .----..-99....sk
5070: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5080: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5090: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
50a0: 65 6c 2d 31 30 38 0d 0a 53 45 4c 45 43 54 20 4d  el-108..SELECT M
50b0: 41 58 20 28 20 63 6f 6c 32 20 29 20 2f 20 2d 20  AX ( col2 ) / - 
50c0: 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MIN ( DISTINCT +
50d0: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
50e0: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  0 cor0..----..-9
50f0: 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
5100: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
5110: 30 20 2a 20 2b 20 2b 20 34 37 20 2d 20 2d 20 63  0 * + + 47 - - c
5120: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
5130: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 34 38 0d 0a  r0..----..2448..
5140: 34 30 38 30 0d 0a 34 33 36 38 0d 0a 0d 0a 6f 6e  4080..4368....on
5150: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
5160: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
5170: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
5180: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
5190: 31 31 30 0d 0a 53 45 4c 45 43 54 20 2b 20 36 37  110..SELECT + 67
51a0: 20 44 49 56 20 35 32 20 2b 20 35 34 20 2a 20 2d   DIV 52 + 54 * -
51b0: 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c   + col0 AS col2,
51c0: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
51d0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
51e0: 0a 2d 34 36 39 37 0d 0a 38 37 0d 0a 2d 35 32 33  .-4697..87..-523
51f0: 37 0d 0a 39 37 0d 0a 2d 38 30 39 0d 0a 31 35 0d  7..97..-809..15.
5200: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
5210: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
5220: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
5230: 72 74 20 6c 61 62 65 6c 2d 31 31 30 0d 0a 53 45  rt label-110..SE
5240: 4c 45 43 54 20 2b 20 36 37 20 2f 20 35 32 20 2b  LECT + 67 / 52 +
5250: 20 35 34 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41   54 * - + col0 A
5260: 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20 46  S col2, + col0 F
5270: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
5280: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 39 37 0d 0a 38  ..----..-4697..8
5290: 37 0d 0a 2d 35 32 33 37 0d 0a 39 37 0d 0a 2d 38  7..-5237..97..-8
52a0: 30 39 0d 0a 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  09..15....onlyif
52b0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
52c0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
52d0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
52e0: 65 6c 2d 31 31 31 0d 0a 53 45 4c 45 43 54 20 53  el-111..SELECT S
52f0: 55 4d 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f  UM( - col0 ) FRO
5300: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
5310: 2d 2d 2d 2d 0d 0a 2d 31 39 39 0d 0a 0d 0a 73 6b  ----..-199....sk
5320: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5330: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5340: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5350: 65 6c 2d 31 31 31 0d 0a 53 45 4c 45 43 54 20 53  el-111..SELECT S
5360: 55 4d 20 28 20 2d 20 63 6f 6c 30 20 29 20 46 52  UM ( - col0 ) FR
5370: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
5380: 0a 2d 2d 2d 2d 0d 0a 2d 31 39 39 0d 0a 0d 0a 71  .----..-199....q
5390: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
53a0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
53b0: 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2a 20  - col2 * col2 * 
53c0: 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
53d0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
53e0: 2d 2d 2d 0d 0a 2d 31 30 32 34 30 30 0d 0a 2d 32  ---..-102400..-2
53f0: 34 33 33 34 0d 0a 2d 32 35 32 33 30 30 0d 0a 0d  4334..-252300...
5400: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
5410: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
5420: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
5430: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2b 20  HERE NOT col2 + 
5440: 2b 20 2d 20 63 6f 6c 31 20 3d 20 4e 55 4c 4c 0d  + - col1 = NULL.
5450: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
5460: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
5470: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d  T DISTINCT + ( -
5480: 20 63 6f 6c 31 20 29 20 2b 20 2b 20 34 33 20 41   col1 ) + + 43 A
5490: 53 20 63 6f 6c 32 2c 20 39 36 20 46 52 4f 4d 20  S col2, 96 FROM 
54a0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
54b0: 52 45 20 4e 4f 54 20 37 30 20 3d 20 2b 20 34 35  RE NOT 70 = + 45
54c0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a 39 36 0d  ..----..-38..96.
54d0: 0a 32 32 0d 0a 39 36 0d 0a 34 32 0d 0a 39 36 0d  .22..96..42..96.
54e0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
54f0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b  rt..SELECT - ( +
5500: 20 2d 20 28 20 63 6f 6c 32 20 29 20 29 20 2a 20   - ( col2 ) ) * 
5510: 2b 20 2b 20 28 20 2b 20 2d 20 38 34 20 29 20 46  + + ( + - 84 ) F
5520: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
5530: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 35 36 0d 0a 2d  ..----..-4956..-
5540: 35 37 31 32 0d 0a 2d 38 30 36 34 0d 0a 0d 0a 6f  5712..-8064....o
5550: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
5560: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
5570: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
5580: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
5590: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
55a0: 6c 2d 31 31 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-116..SELECT DI
55b0: 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20  STINCT + COUNT( 
55c0: 2a 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29  * ) * COUNT( * )
55d0: 20 44 49 56 20 2b 20 36 35 20 2a 20 2d 20 2b 20   DIV + 65 * - + 
55e0: 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 63 6f 6c  COUNT( ALL + col
55f0: 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
5600: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
5610: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
5620: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
5630: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
5640: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
5650: 31 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  16..SELECT DISTI
5660: 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  NCT + COUNT ( * 
5670: 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) * COUNT ( * ) 
5680: 2f 20 2b 20 36 35 20 2a 20 2d 20 2b 20 43 4f 55  / + 65 * - + COU
5690: 4e 54 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  NT ( ALL + col1 
56a0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
56b0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
56c0: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
56d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
56e0: 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
56f0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
5700: 45 20 4e 4f 54 20 63 6f 6c 32 20 2b 20 2d 20 63  E NOT col2 + - c
5710: 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b  ol2 + - col0 * +
5720: 20 63 6f 6c 32 20 3e 20 28 20 2b 20 63 6f 6c 32   col2 > ( + col2
5730: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 32 0d 0a   )..----..2..2..
5740: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
5750: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
5760: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
5770: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
5780: 45 20 2b 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54  E + col1 NOT BET
5790: 57 45 45 4e 20 2d 20 2d 20 34 20 41 4e 44 20 2b  WEEN - - 4 AND +
57a0: 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 0d 0a 2d 2d   col1 + col2..--
57b0: 2d 2d 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d 0a 0d  --..97..1..99...
57c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
57d0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
57e0: 54 20 36 33 20 2b 20 2b 20 63 6f 6c 31 20 46 52  T 63 + + col1 FR
57f0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
5800: 31 34 0d 0a 31 33 30 0d 0a 31 34 30 0d 0a 0d 0a  14..130..140....
5810: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
5820: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
5830: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5840: 72 74 20 6c 61 62 65 6c 2d 31 32 30 0d 0a 53 45  rt label-120..SE
5850: 4c 45 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54  LECT - SUM( DIST
5860: 49 4e 43 54 20 63 6f 6c 30 20 29 20 41 53 20 63  INCT col0 ) AS c
5870: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
5880: 2d 2d 2d 0d 0a 2d 32 32 37 0d 0a 0d 0a 73 6b 69  ---..-227....ski
5890: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
58a0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
58b0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
58c0: 6c 2d 31 32 30 0d 0a 53 45 4c 45 43 54 20 2d 20  l-120..SELECT - 
58d0: 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 63  SUM ( DISTINCT c
58e0: 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol0 ) AS col2 FR
58f0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
5900: 32 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  227....query I r
5910: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
5920: 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a  ol2 * + - col0 *
5930: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
5940: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
5950: 2d 0d 0a 2d 31 30 35 37 35 0d 0a 2d 37 35 36 39  -..-10575..-7569
5960: 30 0d 0a 2d 39 33 31 34 39 31 0d 0a 0d 0a 6f 6e  0..-931491....on
5970: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
5980: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
5990: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
59a0: 20 6c 61 62 65 6c 2d 31 32 32 0d 0a 53 45 4c 45   label-122..SELE
59b0: 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e  CT - MAX( DISTIN
59c0: 43 54 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d  CT - col0 ) FROM
59d0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   tab2..----..46.
59e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
59f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
5a00: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5a10: 74 20 6c 61 62 65 6c 2d 31 32 32 0d 0a 53 45 4c  t label-122..SEL
5a20: 45 43 54 20 2d 20 4d 41 58 20 28 20 44 49 53 54  ECT - MAX ( DIST
5a30: 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 46 52  INCT - col0 ) FR
5a40: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab2..----..4
5a50: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
5a60: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
5a70: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
5a80: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
5a90: 20 6c 61 62 65 6c 2d 31 32 33 0d 0a 53 45 4c 45   label-123..SELE
5aa0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32 20  CT DISTINCT + 2 
5ab0: 41 53 20 63 6f 6c 32 2c 20 33 31 20 41 53 20 63  AS col2, 31 AS c
5ac0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
5ad0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
5ae0: 63 6f 6c 31 20 2b 20 2d 20 34 35 20 2a 20 2b 20  col1 + - 45 * + 
5af0: 34 39 20 2d 20 2d 20 2d 20 31 31 20 49 4e 20 28  49 - - - 11 IN (
5b00: 20 2d 20 28 20 2b 20 2d 20 32 38 20 29 20 2d 20   - ( + - 28 ) - 
5b10: 2d 20 2b 20 35 38 20 2b 20 2d 20 43 41 53 54 28  - + 58 + - CAST(
5b20: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
5b30: 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ) )..----....ski
5b40: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
5b50: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
5b60: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
5b70: 65 6c 2d 31 32 33 0d 0a 53 45 4c 45 43 54 20 44  el-123..SELECT D
5b80: 49 53 54 49 4e 43 54 20 2b 20 32 20 41 53 20 63  ISTINCT + 2 AS c
5b90: 6f 6c 32 2c 20 33 31 20 41 53 20 63 6f 6c 31 20  ol2, 31 AS col1 
5ba0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
5bb0: 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  0 WHERE NOT col1
5bc0: 20 2b 20 2d 20 34 35 20 2a 20 2b 20 34 39 20 2d   + - 45 * + 49 -
5bd0: 20 2d 20 2d 20 31 31 20 49 4e 20 28 20 2d 20 28   - - 11 IN ( - (
5be0: 20 2b 20 2d 20 32 38 20 29 20 2d 20 2d 20 2b 20   + - 28 ) - - + 
5bf0: 35 38 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55  58 + - CAST ( NU
5c00: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
5c10: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
5c20: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
5c30: 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20  CT ALL + + col2 
5c40: 2b 20 2d 20 31 30 20 2a 20 35 35 20 2a 20 2b 20  + - 10 * 55 * + 
5c50: 2d 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  - ( col0 ) FROM 
5c60: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
5c70: 0a 32 38 31 34 36 0d 0a 34 36 38 30 39 0d 0a 35  .28146..46809..5
5c80: 30 31 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  0118....skipif p
5c90: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
5ca0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
5cb0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
5cc0: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
5cd0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5ce0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
5cf0: 54 20 38 37 20 2a 20 2b 20 35 37 20 2d 20 38 35  T 87 * + 57 - 85
5d00: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
5d10: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
5d20: 38 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  874....onlyif my
5d30: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
5d40: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
5d50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5d60: 74 20 6c 61 62 65 6c 2d 31 32 36 0d 0a 53 45 4c  t label-126..SEL
5d70: 45 43 54 20 41 4c 4c 20 2b 20 37 37 20 2a 20 2d  ECT ALL + 77 * -
5d80: 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53   CAST( col1 AS S
5d90: 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
5da0: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  2 cor0..----..-3
5db0: 39 32 37 0d 0a 2d 35 31 35 39 0d 0a 2d 35 39 32  927..-5159..-592
5dc0: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
5dd0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
5de0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
5df0: 6f 72 74 20 6c 61 62 65 6c 2d 31 32 36 0d 0a 53  ort label-126..S
5e00: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 37 37 20 2a  ELECT ALL + 77 *
5e10: 20 2d 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41   - CAST ( col1 A
5e20: 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
5e30: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
5e40: 0d 0a 2d 33 39 32 37 0d 0a 2d 35 31 35 39 0d 0a  ..-3927..-5159..
5e50: 2d 35 39 32 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -5929....onlyif 
5e60: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
5e70: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
5e80: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
5e90: 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 0d 0a 53  ort label-127..S
5ea0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 63 6f  ELECT ALL - - co
5eb0: 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 44 49 56 20  l0 * + col1 DIV 
5ec0: 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
5ed0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
5ee0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36 34  ..----..-46..-64
5ef0: 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-75....skipif 
5f00: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
5f10: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
5f20: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
5f30: 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
5f40: 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20  - col0 * + col1 
5f50: 2f 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  / - col1 AS col1
5f60: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
5f70: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d  r0..----..-46..-
5f80: 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79  64..-75....query
5f90: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
5fa0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
5fb0: 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 2b 20 39  ol0 AS col0, + 9
5fc0: 20 2d 20 2d 20 37 39 20 41 53 20 63 6f 6c 30 20   - - 79 AS col0 
5fd0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
5fe0: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
5ff0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  NULL..----..15..
6000: 38 38 0d 0a 38 37 0d 0a 38 38 0d 0a 39 37 0d 0a  88..87..88..97..
6010: 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  88....query I ro
6020: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
6030: 53 54 49 4e 43 54 20 32 37 20 2b 20 63 6f 6c 30  STINCT 27 + col0
6040: 20 2b 20 28 20 33 39 20 29 20 41 53 20 63 6f 6c   + ( 39 ) AS col
6050: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
6060: 2d 0d 0a 31 31 32 0d 0a 31 33 30 0d 0a 31 34 31  -..112..130..141
6070: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
6080: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
6090: 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  INCT - col2 + - 
60a0: 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  - col2 FROM tab1
60b0: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
60c0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
60d0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
60e0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
60f0: 20 6c 61 62 65 6c 2d 31 33 31 0d 0a 53 45 4c 45   label-131..SELE
6100: 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
6110: 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 28 20 2a 20   col0, COUNT( * 
6120: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
6130: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
6140: 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  -..3..3....skipi
6150: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
6160: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
6170: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
6180: 2d 31 33 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -131..SELECT COU
6190: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
61a0: 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  , COUNT ( * ) AS
61b0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
61c0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
61d0: 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
61e0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
61f0: 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
6200: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
6210: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
6220: 6f 72 74 20 6c 61 62 65 6c 2d 31 33 32 0d 0a 53  ort label-132..S
6230: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
6240: 20 34 37 20 44 49 56 20 2d 20 2b 20 4d 49 4e 28   47 DIV - + MIN(
6250: 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20 29 20   ALL - - col0 ) 
6260: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
6270: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
6280: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
6290: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
62a0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
62b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 32 0d 0a  sort label-132..
62c0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
62d0: 2d 20 34 37 20 2f 20 2d 20 2b 20 4d 49 4e 20 28  - 47 / - + MIN (
62e0: 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30 20 29 20   ALL - - col0 ) 
62f0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
6300: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
6310: 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
6320: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
6330: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
6340: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6350: 20 6c 61 62 65 6c 2d 31 33 33 0d 0a 53 45 4c 45   label-133..SELE
6360: 43 54 20 41 4c 4c 20 28 20 33 39 20 29 20 44 49  CT ALL ( 39 ) DI
6370: 56 20 2b 20 38 36 20 2a 20 38 37 20 41 53 20 63  V + 86 * 87 AS c
6380: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
6390: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
63a0: 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....skipif m
63b0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
63c0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
63d0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33 33  owsort label-133
63e0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 33  ..SELECT ALL ( 3
63f0: 39 20 29 20 2f 20 2b 20 38 36 20 2a 20 38 37 20  9 ) / + 86 * 87 
6400: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
6410: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
6420: 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .0..0..0....quer
6430: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6440: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
6450: 6f 6c 32 20 2d 20 2b 20 2d 20 63 6f 6c 32 20 41  ol2 - + - col2 A
6460: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
6470: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
6480: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
6490: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
64a0: 32 20 2a 20 2d 20 28 20 2d 20 2d 20 33 35 20 29  2 * - ( - - 35 )
64b0: 20 2d 20 2b 20 2b 20 28 20 2d 20 28 20 2b 20 2b   - + + ( - ( + +
64c0: 20 38 36 20 29 20 29 20 41 53 20 63 6f 6c 30 20   86 ) ) AS col0 
64d0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
64e0: 0a 2d 31 39 37 39 0d 0a 2d 32 32 39 34 0d 0a 2d  .-1979..-2294..-
64f0: 33 32 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3274....onlyif m
6500: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
6510: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
6520: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6530: 2d 31 33 36 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -136..SELECT MIN
6540: 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20 2d 20 2d  ( + - col0 ) - -
6550: 20 33 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   38 AS col0 FROM
6560: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   tab0..----..-59
6570: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
6580: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
6590: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
65a0: 72 74 20 6c 61 62 65 6c 2d 31 33 36 0d 0a 53 45  rt label-136..SE
65b0: 4c 45 43 54 20 4d 49 4e 20 28 20 2b 20 2d 20 63  LECT MIN ( + - c
65c0: 6f 6c 30 20 29 20 2d 20 2d 20 33 38 20 41 53 20  ol0 ) - - 38 AS 
65d0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
65e0: 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 71 75 65  ----..-59....que
65f0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
6600: 4c 45 43 54 20 63 6f 6c 32 20 2a 20 63 6f 6c 32  LECT col2 * col2
6610: 20 2d 20 2d 20 2b 20 35 20 41 53 20 63 6f 6c 31   - - + 5 AS col1
6620: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
6630: 0d 0a 31 36 30 35 0d 0a 33 33 36 39 0d 0a 35 33  ..1605..3369..53
6640: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
6650: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
6660: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
6670: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
6680: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
6690: 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 32 33 20  COUNT( * ) * 23 
66a0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
66b0: 32 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 73  2..----..69....s
66c0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
66d0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
66e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
66f0: 62 65 6c 2d 31 33 38 0d 0a 53 45 4c 45 43 54 20  bel-138..SELECT 
6700: 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ALL + COUNT ( * 
6710: 29 20 2a 20 32 33 20 41 53 20 63 6f 6c 31 20 46  ) * 23 AS col1 F
6720: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
6730: 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  69....query II r
6740: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
6750: 49 53 54 49 4e 43 54 20 2b 20 2b 20 34 34 20 2a  ISTINCT + + 44 *
6760: 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2b 20   ( - col0 ) + + 
6770: 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f  col2 AS col1, co
6780: 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
6790: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
67a0: 0a 2d 32 31 34 38 0d 0a 39 36 0d 0a 2d 33 36 38  .-2148..96..-368
67b0: 31 0d 0a 35 39 0d 0a 2d 33 39 33 36 0d 0a 36 38  1..59..-3936..68
67c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
67d0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
67e0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
67f0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
6800: 20 2b 20 63 6f 6c 30 20 29 20 3c 20 36 0d 0a 2d   + col0 ) < 6..-
6810: 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a 2d 38  ---..-1..-21..-8
6820: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  1....query II ro
6830: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
6840: 53 54 49 4e 43 54 20 63 6f 6c 31 2c 20 35 32 20  STINCT col1, 52 
6850: 2b 20 2d 20 2d 20 31 33 20 41 53 20 63 6f 6c 30  + - - 13 AS col0
6860: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
6870: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 35  r0..----..51..65
6880: 0d 0a 36 37 0d 0a 36 35 0d 0a 37 37 0d 0a 36 35  ..67..65..77..65
6890: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
68a0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
68b0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
68c0: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
68d0: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 4e   NOT BETWEEN ( N
68e0: 55 4c 4c 20 29 20 41 4e 44 20 2b 20 37 0d 0a 2d  ULL ) AND + 7..-
68f0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
6900: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
6910: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   * FROM tab0 cor
6920: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
6930: 20 4e 4f 54 20 49 4e 20 28 20 33 34 2c 20 36 20   NOT IN ( 34, 6 
6940: 2a 20 2b 20 63 6f 6c 30 2c 20 63 6f 6c 32 2c 20  * + col0, col2, 
6950: 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
6960: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
6970: 0a 53 45 4c 45 43 54 20 2d 20 2d 20 37 33 20 2a  .SELECT - - 73 *
6980: 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 2b 20   + + ( col1 ) + 
6990: 2b 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 33 39 20  + col1 - + + 39 
69a0: 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  * - col0 + - col
69b0: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
69c0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
69d0: 2d 0d 0a 33 38 35 36 0d 0a 34 39 32 36 0d 0a 36  -..3856..4926..6
69e0: 34 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  498....skipif po
69f0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
6a00: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
6a10: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
6a20: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
6a30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
6a40: 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28 20 28 20  .SELECT - + ( ( 
6a50: 2b 20 33 31 20 29 20 29 20 63 6f 6c 31 20 46 52  + 31 ) ) col1 FR
6a60: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
6a70: 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 33 31 0d  .----..-31..-31.
6a80: 0a 2d 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-31....onlyif m
6a90: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
6aa0: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
6ab0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
6ac0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
6ad0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 36 0d 0a  sort label-146..
6ae0: 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 43 41 53  SELECT + ( - CAS
6af0: 54 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  T( COUNT( * ) AS
6b00: 20 53 49 47 4e 45 44 20 29 20 29 20 2b 20 2d 20   SIGNED ) ) + - 
6b10: 53 55 4d 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20  SUM( - + col2 ) 
6b20: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
6b30: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
6b40: 4e 4f 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 31  NOT + col0 + + 1
6b50: 39 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  9 IS NOT NULL..-
6b60: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
6b70: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6b80: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6b90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6ba0: 6c 2d 31 34 36 0d 0a 53 45 4c 45 43 54 20 2b 20  l-146..SELECT + 
6bb0: 28 20 2d 20 43 41 53 54 20 28 20 43 4f 55 4e 54  ( - CAST ( COUNT
6bc0: 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47 45   ( * ) AS INTEGE
6bd0: 52 20 29 20 29 20 2b 20 2d 20 53 55 4d 20 28 20  R ) ) + - SUM ( 
6be0: 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  - + col2 ) AS co
6bf0: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
6c00: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
6c10: 20 63 6f 6c 30 20 2b 20 2b 20 31 39 20 49 53 20   col0 + + 19 IS 
6c20: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
6c30: 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
6c40: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
6c50: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
6c60: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
6c70: 72 74 20 6c 61 62 65 6c 2d 31 34 37 0d 0a 53 45  rt label-147..SE
6c80: 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c  LECT + CAST( NUL
6c90: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
6ca0: 2b 20 36 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 60 AS col1 FRO
6cb0: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
6cc0: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
6cd0: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
6ce0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
6cf0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
6d00: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 37 0d  wsort label-147.
6d10: 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28  .SELECT + CAST (
6d20: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
6d30: 20 29 20 2a 20 2b 20 36 30 20 41 53 20 63 6f 6c   ) * + 60 AS col
6d40: 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
6d50: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
6d60: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
6d70: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
6d80: 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d  ECT + col0 + + -
6d90: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
6da0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
6db0: 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a  WHERE NOT col0 *
6dc0: 20 34 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   44 IS NOT NULL.
6dd0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
6de0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
6df0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
6e00: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6e10: 6c 2d 31 34 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-149..SELECT AL
6e20: 4c 20 2b 20 43 4f 55 4e 54 28 20 31 39 20 29 20  L + COUNT( 19 ) 
6e30: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
6e40: 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  1..----..3....sk
6e50: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
6e60: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
6e70: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
6e80: 65 6c 2d 31 34 39 0d 0a 53 45 4c 45 43 54 20 41  el-149..SELECT A
6e90: 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 31 39 20  LL + COUNT ( 19 
6ea0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
6eb0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab1..----..3....
6ec0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
6ed0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
6ee0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
6ef0: 72 74 20 6c 61 62 65 6c 2d 31 35 30 0d 0a 53 45  rt label-150..SE
6f00: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 41 4c  LECT + COUNT( AL
6f10: 4c 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31  L col0 ) AS col1
6f20: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
6f30: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
6f40: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
6f50: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
6f60: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 30 0d  wsort label-150.
6f70: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
6f80: 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 41 53 20  ( ALL col0 ) AS 
6f90: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
6fa0: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  ----..3....query
6fb0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
6fc0: 45 43 54 20 41 4c 4c 20 63 6f 6c 31 2c 20 63 6f  ECT ALL col1, co
6fd0: 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63  l2 + - col0 AS c
6fe0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
6ff0: 2d 2d 2d 0d 0a 31 34 0d 0a 34 35 0d 0a 34 37 0d  ---..14..45..47.
7000: 0a 2d 32 33 0d 0a 35 0d 0a 2d 32 36 0d 0a 0d 0a  .-23..5..-26....
7010: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
7020: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
7030: 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 33 32   tab1 WHERE + 32
7040: 20 3e 3d 20 2d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d   >= - - col1..--
7050: 2d 2d 0d 0a 35 31 0d 0a 31 34 0d 0a 39 36 0d 0a  --..51..14..96..
7060: 38 35 0d 0a 35 0d 0a 35 39 0d 0a 0d 0a 6f 6e 6c  85..5..59....onl
7070: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
7080: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
7090: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
70a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35  rowsort label-15
70b0: 33 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20  3..SELECT CAST( 
70c0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
70d0: 20 2b 20 2b 20 34 32 20 41 53 20 63 6f 6c 31 20   + + 42 AS col1 
70e0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
70f0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
7100: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
7110: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7120: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7130: 6f 72 74 20 6c 61 62 65 6c 2d 31 35 33 0d 0a 53  ort label-153..S
7140: 45 4c 45 43 54 20 43 41 53 54 20 28 20 4e 55 4c  ELECT CAST ( NUL
7150: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
7160: 20 2b 20 34 32 20 41 53 20 63 6f 6c 31 20 46 52   + 42 AS col1 FR
7170: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
7180: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
7190: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
71a0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
71b0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
71c0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
71d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
71e0: 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c 45 43  label-154..SELEC
71f0: 54 20 41 4c 4c 20 28 20 43 4f 55 4e 54 28 20 2b  T ALL ( COUNT( +
7200: 20 63 6f 6c 32 20 29 20 29 20 2b 20 2b 20 43 41   col2 ) ) + + CA
7210: 53 54 28 20 38 33 20 41 53 20 53 49 47 4e 45 44  ST( 83 AS SIGNED
7220: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
7230: 2d 2d 0d 0a 38 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..86....skipif
7240: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
7250: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
7260: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
7270: 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  54..SELECT ALL (
7280: 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 32 20   COUNT ( + col2 
7290: 29 20 29 20 2b 20 2b 20 43 41 53 54 20 28 20 38  ) ) + + CAST ( 8
72a0: 33 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  3 AS INTEGER ) F
72b0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
72c0: 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  86....query I ro
72d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
72e0: 53 54 49 4e 43 54 20 2b 20 36 38 20 2b 20 63 6f  STINCT + 68 + co
72f0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
7300: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 0d  cor0..----..115.
7310: 0a 31 36 37 0d 0a 37 38 0d 0a 0d 0a 6f 6e 6c 79  .167..78....only
7320: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
7330: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
7340: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7350: 61 62 65 6c 2d 31 35 36 0d 0a 53 45 4c 45 43 54  abel-156..SELECT
7360: 20 2d 20 38 31 20 2b 20 43 4f 55 4e 54 28 20 2a   - 81 + COUNT( *
7370: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
7380: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
7390: 2d 2d 0d 0a 2d 37 38 0d 0a 0d 0a 73 6b 69 70 69  --..-78....skipi
73a0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
73b0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
73c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
73d0: 31 35 36 0d 0a 53 45 4c 45 43 54 20 2d 20 38 31  156..SELECT - 81
73e0: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
73f0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
7400: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7410: 2d 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -78....query II 
7420: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7430: 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 41 53  DISTINCT col2 AS
7440: 20 63 6f 6c 30 2c 20 2d 20 37 33 20 46 52 4f 4d   col0, - 73 FROM
7450: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
7460: 2d 2d 2d 0d 0a 31 30 0d 0a 2d 37 33 0d 0a 34 37  ---..10..-73..47
7470: 0d 0a 2d 37 33 0d 0a 39 39 0d 0a 2d 37 33 0d 0a  ..-73..99..-73..
7480: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
7490: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
74a0: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
74b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
74c0: 65 6c 2d 31 35 38 0d 0a 53 45 4c 45 43 54 20 2b  el-158..SELECT +
74d0: 20 63 6f 6c 31 20 44 49 56 20 2d 20 33 30 20 2b   col1 DIV - 30 +
74e0: 20 2d 20 28 20 2d 20 36 37 20 29 20 2a 20 2b 20   - ( - 67 ) * + 
74f0: 2d 20 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  - 0 AS col1 FROM
7500: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
7510: 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a 2d 32 0d  ---..-1..-2..-2.
7520: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
7530: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
7540: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7550: 74 20 6c 61 62 65 6c 2d 31 35 38 0d 0a 53 45 4c  t label-158..SEL
7560: 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 33  ECT + col1 / - 3
7570: 30 20 2b 20 2d 20 28 20 2d 20 36 37 20 29 20 2a  0 + - ( - 67 ) *
7580: 20 2b 20 2d 20 30 20 41 53 20 63 6f 6c 31 20 46   + - 0 AS col1 F
7590: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
75a0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 0d 0a  ..----..-1..-2..
75b0: 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  -2....skipif pos
75c0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
75d0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
75e0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
75f0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
7600: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
7610: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
7620: 36 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  60 col2 FROM tab
7630: 32 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  2 cor0 CROSS JOI
7640: 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d  N tab2 cor1..---
7650: 2d 0d 0a 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..60....onlyif 
7660: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
7670: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
7680: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7690: 6c 2d 31 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-160..SELECT AL
76a0: 4c 20 2b 20 2d 20 4d 49 4e 28 20 2d 20 31 33 20  L + - MIN( - 13 
76b0: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
76c0: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
76d0: 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
76e0: 2d 0d 0a 31 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..13....skipif 
76f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7700: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
7710: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
7720: 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  0..SELECT ALL + 
7730: 2d 20 4d 49 4e 20 28 20 2d 20 31 33 20 29 20 46  - MIN ( - 13 ) F
7740: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7750: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
7760: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
7770: 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  13....query I ro
7780: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
7790: 6c 31 20 2d 20 34 35 20 2a 20 2d 20 63 6f 6c 31  l1 - 45 * - col1
77a0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
77b0: 0d 0a 32 31 36 32 0d 0a 32 33 30 0d 0a 36 34 34  ..2162..230..644
77c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
77d0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
77e0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
77f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7800: 61 62 65 6c 2d 31 36 32 0d 0a 53 45 4c 45 43 54  abel-162..SELECT
7810: 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 43 41 53 54   + col1 - + CAST
7820: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
7830: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
7840: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
7850: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
7860: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
7870: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
7880: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7890: 61 62 65 6c 2d 31 36 32 0d 0a 53 45 4c 45 43 54  abel-162..SELECT
78a0: 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 43 41 53 54   + col1 - + CAST
78b0: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
78c0: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  ER ) FROM tab1 A
78d0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
78e0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
78f0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
7900: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
7910: 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 30   - + col0 + col0
7920: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
7930: 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
7940: 20 2d 20 31 31 20 2b 20 2b 20 63 6f 6c 30 20 49   - 11 + + col0 I
7950: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
7960: 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a  ..46..64..75....
7970: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
7980: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
7990: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
79a0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
79b0: 2d 31 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -164..SELECT DIS
79c0: 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 44 49 56  TINCT - col0 DIV
79d0: 20 2d 20 2b 20 63 6f 6c 30 20 2d 20 63 6f 6c 30   - + col0 - col0
79e0: 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   - + col0 AS col
79f0: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
7a00: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 33 0d  or0..----..-173.
7a10: 0a 2d 31 39 33 0d 0a 2d 32 39 0d 0a 0d 0a 73 6b  .-193..-29....sk
7a20: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
7a30: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
7a40: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7a50: 65 6c 2d 31 36 34 0d 0a 53 45 4c 45 43 54 20 44  el-164..SELECT D
7a60: 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2f  ISTINCT - col0 /
7a70: 20 2d 20 2b 20 63 6f 6c 30 20 2d 20 63 6f 6c 30   - + col0 - col0
7a80: 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   - + col0 AS col
7a90: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
7aa0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 33 0d  or0..----..-173.
7ab0: 0a 2d 31 39 33 0d 0a 2d 32 39 0d 0a 0d 0a 71 75  .-193..-29....qu
7ac0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
7ad0: 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20 38  ELECT - col1 + 8
7ae0: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
7af0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
7b00: 2d 0d 0a 33 34 0d 0a 36 37 0d 0a 37 36 0d 0a 0d  -..34..67..76...
7b10: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
7b20: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
7b30: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
7b40: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
7b50: 62 65 6c 2d 31 36 36 0d 0a 53 45 4c 45 43 54 20  bel-166..SELECT 
7b60: 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  * FROM tab0 cor0
7b70: 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
7b80: 42 45 54 57 45 45 4e 20 2d 20 31 36 20 41 4e 44  BETWEEN - 16 AND
7b90: 20 2b 20 2d 20 43 41 53 54 28 20 2b 20 2b 20 63   + - CAST( + + c
7ba0: 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol1 AS SIGNED ) 
7bb0: 2d 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 31 35 0d  - + col2 - + 15.
7bc0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
7bd0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7be0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
7bf0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
7c00: 31 36 36 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  166..SELECT * FR
7c10: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
7c20: 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  RE NULL NOT BETW
7c30: 45 45 4e 20 2d 20 31 36 20 41 4e 44 20 2b 20 2d  EEN - 16 AND + -
7c40: 20 43 41 53 54 20 28 20 2b 20 2b 20 63 6f 6c 31   CAST ( + + col1
7c50: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20   AS INTEGER ) - 
7c60: 2b 20 63 6f 6c 32 20 2d 20 2b 20 31 35 0d 0a 2d  + col2 - + 15..-
7c70: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
7c80: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
7c90: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
7ca0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
7cb0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
7cc0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
7cd0: 0a 53 45 4c 45 43 54 20 2d 20 36 20 2b 20 2d 20  .SELECT - 6 + - 
7ce0: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 63 6f  col2 + + col2 co
7cf0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
7d00: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a  cor0..----..-6..
7d10: 2d 36 0d 0a 2d 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  -6..-6....onlyif
7d20: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
7d30: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
7d40: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
7d50: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 38 0d 0a  sort label-168..
7d60: 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20  SELECT + + col2 
7d70: 2b 20 2d 20 32 33 20 44 49 56 20 63 6f 6c 31 20  + - 23 DIV col1 
7d80: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
7d90: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
7da0: 0a 34 37 0d 0a 37 36 0d 0a 39 0d 0a 0d 0a 73 6b  .47..76..9....sk
7db0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
7dc0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
7dd0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
7de0: 65 6c 2d 31 36 38 0d 0a 53 45 4c 45 43 54 20 2b  el-168..SELECT +
7df0: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 32 33 20 2f   + col2 + - 23 /
7e00: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
7e10: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
7e20: 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a 37 36 0d 0a 39  .----..47..76..9
7e30: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7e40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
7e50: 49 4e 43 54 20 2d 20 28 20 2b 20 63 6f 6c 30 20  INCT - ( + col0 
7e60: 29 20 2d 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f  ) - + + col2 FRO
7e70: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7e80: 2d 2d 2d 2d 0d 0a 2d 31 30 34 0d 0a 2d 31 33 33  ----..-104..-133
7e90: 0d 0a 2d 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-69....query I
7ea0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
7eb0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
7ec0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 28  S cor0 WHERE - (
7ed0: 20 2b 20 63 6f 6c 30 20 29 20 49 53 20 4e 55 4c   + col0 ) IS NUL
7ee0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
7ef0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
7f00: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
7f10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
7f20: 62 65 6c 2d 31 37 31 0d 0a 53 45 4c 45 43 54 20  bel-171..SELECT 
7f30: 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  - + COUNT( * ) +
7f40: 20 2d 20 2b 20 36 38 20 2a 20 2d 20 43 4f 55 4e   - + 68 * - COUN
7f50: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
7f60: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7f70: 0d 0a 2d 2d 2d 2d 0d 0a 32 30 31 0d 0a 0d 0a 73  ..----..201....s
7f80: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
7f90: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
7fa0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
7fb0: 62 65 6c 2d 31 37 31 0d 0a 53 45 4c 45 43 54 20  bel-171..SELECT 
7fc0: 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - + COUNT ( * ) 
7fd0: 2b 20 2d 20 2b 20 36 38 20 2a 20 2d 20 43 4f 55  + - + 68 * - COU
7fe0: 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
7ff0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
8000: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 31 0d 0a 0d  r0..----..201...
8010: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
8020: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
8030: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
8040: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 38  r0 WHERE NOT + 8
8050: 39 20 42 45 54 57 45 45 4e 20 2d 20 36 37 20 41  9 BETWEEN - 67 A
8060: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
8070: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8080: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
8090: 2b 20 38 35 20 2a 20 35 36 20 41 53 20 63 6f 6c  + 85 * 56 AS col
80a0: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
80b0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 38 33 0d  or0..----..4683.
80c0: 0a 34 36 39 33 0d 0a 34 37 30 39 0d 0a 0d 0a 6f  .4693..4709....o
80d0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
80e0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
80f0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
8100: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
8110: 31 37 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  174..SELECT DIST
8120: 49 4e 43 54 20 2d 20 35 36 20 44 49 56 20 63 6f  INCT - 56 DIV co
8130: 6c 31 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 30 20  l1 - ( + + col0 
8140: 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  ) col0 FROM tab1
8150: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35   cor0..----..-55
8160: 0d 0a 2d 39 32 0d 0a 2d 39 36 0d 0a 0d 0a 73 6b  ..-92..-96....sk
8170: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
8180: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
8190: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
81a0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
81b0: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
81c0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
81d0: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
81e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 34 0d  wsort label-174.
81f0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8200: 20 2d 20 35 36 20 2f 20 63 6f 6c 31 20 2d 20 28   - 56 / col1 - (
8210: 20 2b 20 2b 20 63 6f 6c 30 20 29 20 63 6f 6c 30   + + col0 ) col0
8220: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
8230: 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 2d 39 32 0d  .----..-55..-92.
8240: 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-96....onlyif m
8250: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
8260: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
8270: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
8280: 72 74 20 6c 61 62 65 6c 2d 31 37 35 0d 0a 53 45  rt label-175..SE
8290: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 44 49 56 20  LECT - col2 DIV 
82a0: 39 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  93 AS col0 FROM 
82b0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab1..----..-1..
82c0: 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....skipif m
82d0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
82e0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
82f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 35  owsort label-175
8300: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
8310: 2f 20 39 33 20 41 53 20 63 6f 6c 30 20 46 52 4f  / 93 AS col0 FRO
8320: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
8330: 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ..0..0....query 
8340: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8350: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 39 20  T DISTINCT - 89 
8360: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
8370: 4e 4f 54 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 63  NOT - col1 - - c
8380: 6f 6c 32 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol2 = NULL..----
8390: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
83a0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
83b0: 49 4e 43 54 20 2b 20 28 20 2b 20 2b 20 63 6f 6c  INCT + ( + + col
83c0: 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  0 ) AS col0 FROM
83d0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   tab2..----..46.
83e0: 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79  .64..75....query
83f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
8400: 43 54 20 32 30 20 2a 20 2b 20 36 38 20 41 53 20  CT 20 * + 68 AS 
8410: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
8420: 2d 2d 2d 2d 0d 0a 31 33 36 30 0d 0a 31 33 36 30  ----..1360..1360
8430: 0d 0a 31 33 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..1360....onlyif
8440: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8450: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
8460: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8470: 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43 54 20 41  el-179..SELECT A
8480: 4c 4c 20 53 55 4d 28 20 2b 20 2b 20 39 37 20 29  LL SUM( + + 97 )
8490: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
84a0: 0d 0a 32 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..291....skipif 
84b0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
84c0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
84d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
84e0: 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55  9..SELECT ALL SU
84f0: 4d 20 28 20 2b 20 2b 20 39 37 20 29 20 46 52 4f  M ( + + 97 ) FRO
8500: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39  M tab1..----..29
8510: 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
8520: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
8530: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
8540: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38  rowsort label-18
8550: 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  0..SELECT COUNT(
8560: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57   * ) FROM tab1 W
8570: 48 45 52 45 20 4e 4f 54 20 28 20 37 30 20 49 53  HERE NOT ( 70 IS
8580: 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33   NULL )..----..3
8590: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
85a0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
85b0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
85c0: 72 74 20 6c 61 62 65 6c 2d 31 38 30 0d 0a 53 45  rt label-180..SE
85d0: 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
85e0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
85f0: 20 4e 4f 54 20 28 20 37 30 20 49 53 20 4e 55 4c   NOT ( 70 IS NUL
8600: 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  L )..----..3....
8610: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
8620: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
8630: 20 63 6f 6c 30 20 2a 20 28 20 2d 20 37 36 20 29   col0 * ( - 76 )
8640: 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * + col0 AS col
8650: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
8660: 2d 0d 0a 2d 31 36 30 38 31 36 0d 0a 2d 33 31 31  -..-160816..-311
8670: 32 39 36 0d 0a 2d 34 32 37 35 30 30 0d 0a 0d 0a  296..-427500....
8680: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
8690: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
86a0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
86b0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
86c0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
86d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
86e0: 54 20 63 6f 6c 32 20 63 6f 6c 30 2c 20 2b 20 39  T col2 col0, + 9
86f0: 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  4 AS col0 FROM t
8700: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
8710: 2d 0d 0a 31 30 0d 0a 39 34 0d 0a 34 37 0d 0a 39  -..10..94..47..9
8720: 34 0d 0a 39 39 0d 0a 39 34 0d 0a 0d 0a 6f 6e 6c  4..99..94....onl
8730: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
8740: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
8750: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8760: 6c 61 62 65 6c 2d 31 38 33 0d 0a 53 45 4c 45 43  label-183..SELEC
8770: 54 20 41 4c 4c 20 53 55 4d 28 20 63 6f 6c 30 20  T ALL SUM( col0 
8780: 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
8790: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
87a0: 31 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  199....skipif my
87b0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
87c0: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
87d0: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
87e0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
87f0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
8800: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
8810: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
8820: 61 62 65 6c 2d 31 38 33 0d 0a 53 45 4c 45 43 54  abel-183..SELECT
8830: 20 41 4c 4c 20 53 55 4d 20 28 20 63 6f 6c 30 20   ALL SUM ( col0 
8840: 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
8850: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
8860: 31 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  199....onlyif my
8870: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
8880: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
8890: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
88a0: 74 20 6c 61 62 65 6c 2d 31 38 34 0d 0a 53 45 4c  t label-184..SEL
88b0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
88c0: 31 20 44 49 56 20 2b 20 33 37 20 41 53 20 63 6f  1 DIV + 37 AS co
88d0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
88e0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31  cor0..----..0..1
88f0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8900: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8910: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8920: 72 74 20 6c 61 62 65 6c 2d 31 38 34 0d 0a 53 45  rt label-184..SE
8930: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
8940: 6c 31 20 2f 20 2b 20 33 37 20 41 53 20 63 6f 6c  l1 / + 37 AS col
8950: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
8960: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  or0..----..0..1.
8970: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
8980: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
8990: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
89a0: 4f 54 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32  OT col1 / - col2
89b0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
89c0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
89d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
89e0: 6c 31 20 2b 20 2d 20 38 20 2a 20 38 36 20 46 52  l1 + - 8 * 86 FR
89f0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
8a00: 36 34 31 0d 0a 2d 36 37 34 0d 0a 2d 36 38 33 0d  641..-674..-683.
8a10: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
8a20: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
8a30: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
8a40: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 4e 20 28  RE NOT NULL IN (
8a50: 20 31 34 20 2d 20 2b 20 63 6f 6c 32 20 29 0d 0a   14 - + col2 )..
8a60: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
8a70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8a80: 35 39 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 30 20  59 + + ( - col0 
8a90: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
8aa0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a  ab0..----..-28..
8ab0: 2d 33 38 0d 0a 34 34 0d 0a 0d 0a 71 75 65 72 79  -38..44....query
8ac0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
8ad0: 43 54 20 41 4c 4c 20 2d 20 36 38 20 41 53 20 63  CT ALL - 68 AS c
8ae0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol1 FROM tab1 WH
8af0: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
8b00: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
8b10: 2d 36 38 0d 0a 2d 36 38 0d 0a 2d 36 38 0d 0a 0d  -68..-68..-68...
8b20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8b30: 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
8b40: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
8b50: 4e 4f 54 20 37 32 20 2a 20 63 6f 6c 32 20 49 53  NOT 72 * col2 IS
8b60: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   NULL..----..10.
8b70: 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69  .47..99....onlyi
8b80: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
8b90: 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
8ba0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
8bb0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
8bc0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39  rowsort label-19
8bd0: 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  1..SELECT ALL MA
8be0: 58 28 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20  X( CAST( + col2 
8bf0: 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 46 52  AS SIGNED ) ) FR
8c00: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab0..----..9
8c10: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
8c20: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8c30: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
8c40: 6f 72 74 20 6c 61 62 65 6c 2d 31 39 31 0d 0a 53  ort label-191..S
8c50: 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 20 28 20  ELECT ALL MAX ( 
8c60: 43 41 53 54 20 28 20 2b 20 63 6f 6c 32 20 41 53  CAST ( + col2 AS
8c70: 20 49 4e 54 45 47 45 52 20 29 20 29 20 46 52 4f   INTEGER ) ) FRO
8c80: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39  M tab0..----..99
8c90: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
8ca0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
8cb0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
8cc0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 32  owsort label-192
8cd0: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
8ce0: 2a 20 29 20 2a 20 2b 20 28 20 2d 20 39 38 20 2a  * ) * + ( - 98 *
8cf0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20   - COUNT( * ) ) 
8d00: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
8d10: 2d 2d 2d 2d 0d 0a 38 38 32 0d 0a 0d 0a 73 6b 69  ----..882....ski
8d20: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
8d30: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
8d40: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
8d50: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
8d60: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
8d70: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
8d80: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
8d90: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 32 0d 0a  sort label-192..
8da0: 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
8db0: 20 29 20 2a 20 2b 20 28 20 2d 20 39 38 20 2a 20   ) * + ( - 98 * 
8dc0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  - COUNT ( * ) ) 
8dd0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
8de0: 2d 2d 2d 2d 0d 0a 38 38 32 0d 0a 0d 0a 71 75 65  ----..882....que
8df0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
8e00: 4c 45 43 54 20 41 4c 4c 20 28 20 63 6f 6c 31 20  LECT ALL ( col1 
8e10: 29 20 2b 20 38 39 20 41 53 20 63 6f 6c 31 20 46  ) + 89 AS col1 F
8e20: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
8e30: 31 30 33 0d 0a 31 33 36 0d 0a 39 34 0d 0a 0d 0a  103..136..94....
8e40: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
8e50: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
8e60: 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 32   tab2 WHERE col2
8e70: 20 2a 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   * col2 IS NULL.
8e80: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
8e90: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
8ea0: 20 41 4c 4c 20 28 20 2d 20 28 20 2d 20 31 37 20   ALL ( - ( - 17 
8eb0: 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ) ) FROM tab2..-
8ec0: 2d 2d 2d 0d 0a 31 37 0d 0a 31 37 0d 0a 31 37 0d  ---..17..17..17.
8ed0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
8ee0: 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
8ef0: 2b 20 63 6f 6c 30 20 2a 20 37 35 20 46 52 4f 4d  + col0 * 75 FROM
8f00: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34   tab0..----..114
8f10: 30 0d 0a 36 36 31 32 0d 0a 37 33 37 32 0d 0a 0d  0..6612..7372...
8f20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8f30: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 37  ..SELECT ALL - 7
8f40: 36 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  6 FROM tab1 WHER
8f50: 45 20 28 20 2d 20 39 32 20 29 20 49 53 20 4e 55  E ( - 92 ) IS NU
8f60: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
8f70: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
8f80: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
8f90: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
8fa0: 20 34 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   47 IS NOT NULL.
8fb0: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
8fc0: 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
8fd0: 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
8fe0: 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
8ff0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
9000: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9010: 2d 20 33 39 20 46 52 4f 4d 20 74 61 62 30 20 57  - 39 FROM tab0 W
9020: 48 45 52 45 20 2d 20 28 20 2d 20 38 31 20 29 20  HERE - ( - 81 ) 
9030: 2a 20 35 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  * 52 IS NULL..--
9040: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
9050: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
9060: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
9070: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9080: 20 6c 61 62 65 6c 2d 32 30 30 0d 0a 53 45 4c 45   label-200..SELE
9090: 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e  CT ALL - CAST( N
90a0: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
90b0: 2a 20 2b 20 33 20 41 53 20 63 6f 6c 30 20 46 52  * + 3 AS col0 FR
90c0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
90d0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
90e0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
90f0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9100: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9110: 74 20 6c 61 62 65 6c 2d 32 30 30 0d 0a 53 45 4c  t label-200..SEL
9120: 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28  ECT ALL - CAST (
9130: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
9140: 20 29 20 2a 20 2b 20 33 20 41 53 20 63 6f 6c 30   ) * + 3 AS col0
9150: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
9160: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
9170: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  LL....query III 
9180: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
9190: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
91a0: 57 48 45 52 45 20 2d 20 28 20 2d 20 63 6f 6c 32  WHERE - ( - col2
91b0: 20 29 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20   ) BETWEEN col0 
91c0: 2b 20 33 36 20 2a 20 63 6f 6c 32 20 41 4e 44 20  + 36 * col2 AND 
91d0: 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( NULL )..----..
91e0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
91f0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
9200: 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
9210: 45 20 4e 4f 54 20 37 33 20 2b 20 39 31 20 49 4e  E NOT 73 + 91 IN
9220: 20 28 20 2b 20 28 20 35 32 20 29 20 29 0d 0a 2d   ( + ( 52 ) )..-
9230: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
9240: 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
9250: 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
9260: 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
9270: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
9280: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52  LECT ALL col0 FR
9290: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
92a0: 54 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 28 20  T NULL IN ( - ( 
92b0: 63 6f 6c 30 20 29 20 2b 20 38 35 20 29 0d 0a 2d  col0 ) + 85 )..-
92c0: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
92d0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
92e0: 4c 4c 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20  LL + ( + col0 ) 
92f0: 2a 20 2b 20 36 36 20 41 53 20 63 6f 6c 31 20 46  * + 66 AS col1 F
9300: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
9310: 33 33 36 36 0d 0a 35 36 31 30 0d 0a 36 30 30 36  3366..5610..6006
9320: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
9330: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
9340: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
9350: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 35  owsort label-205
9360: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
9370: 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  AX( DISTINCT + c
9380: 6f 6c 31 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28  ol1 ) * + COUNT(
9390: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   * ) FROM tab0..
93a0: 2d 2d 2d 2d 0d 0a 32 34 33 0d 0a 0d 0a 73 6b 69  ----..243....ski
93b0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
93c0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
93d0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
93e0: 6c 2d 32 30 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-205..SELECT AL
93f0: 4c 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e  L + MAX ( DISTIN
9400: 43 54 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2b 20  CT + col1 ) * + 
9410: 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
9420: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 33   tab0..----..243
9430: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
9440: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
9450: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
9460: 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3e 3d 20  NOT ( NULL ) >= 
9470: 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2b 20  col1 * + col2 + 
9480: 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col2..----....
9490: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
94a0: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
94b0: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
94c0: 4e 55 4c 4c 20 3c 3e 20 2d 20 30 20 2b 20 2b 20  NULL <> - 0 + + 
94d0: 32 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  25..----....quer
94e0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
94f0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
9500: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20  0 WHERE NULL >= 
9510: 28 20 31 33 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d  ( 13 + col2 )..-
9520: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
9530: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9540: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
9550: 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3c 20 63 6f  RE NOT col0 < co
9560: 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l0..----..9 valu
9570: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34  es hashing to c4
9580: 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34  b42765dff94eaaa4
9590: 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a  6040e537fb43b7..
95a0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
95b0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
95c0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
95d0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
95e0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
95f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
9600: 43 54 20 63 6f 6c 32 20 2b 20 2d 20 31 33 20 63  CT col2 + - 13 c
9610: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
9620: 2d 2d 2d 0d 0a 31 30 0d 0a 32 37 0d 0a 34 35 0d  ---..10..27..45.
9630: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9640: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
9650: 4e 43 54 20 41 56 47 20 28 20 41 4c 4c 20 2b 20  NCT AVG ( ALL + 
9660: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32  col1 ) FROM tab2
9670: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
9680: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
9690: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
96a0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
96b0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
96c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
96d0: 32 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  212..SELECT ALL 
96e0: 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20  SUM( DISTINCT + 
96f0: 38 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  80 ) FROM tab1..
9700: 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d 0a 73 6b 69 70  ----..80....skip
9710: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
9720: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
9730: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
9740: 2d 32 31 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -212..SELECT ALL
9750: 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
9760: 2b 20 38 30 20 29 20 46 52 4f 4d 20 74 61 62 31  + 80 ) FROM tab1
9770: 0d 0a 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d 0a 71 75  ..----..80....qu
9780: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
9790: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
97a0: 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
97b0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
97c0: 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2f 20 2d  ERE NOT col1 / -
97d0: 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
97e0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
97f0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
9800: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
9810: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
9820: 20 38 36 20 29 20 42 45 54 57 45 45 4e 20 28 20   86 ) BETWEEN ( 
9830: 4e 55 4c 4c 20 29 20 41 4e 44 20 2b 20 63 6f 6c  NULL ) AND + col
9840: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  1..----....query
9850: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
9860: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
9870: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
9880: 52 45 20 4e 4f 54 20 38 35 20 49 53 20 4e 55 4c  RE NOT 85 IS NUL
9890: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
98a0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
98b0: 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
98c0: 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
98d0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
98e0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
98f0: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
9900: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
9910: 54 20 35 31 20 3e 3d 20 28 20 4e 55 4c 4c 20 29  T 51 >= ( NULL )
9920: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
9930: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9940: 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2d 20 63  T ALL - col1 - c
9950: 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
9960: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
9970: 0d 0a 2d 31 36 32 0d 0a 2d 32 0d 0a 2d 34 32 0d  ..-162..-2..-42.
9980: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
9990: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
99a0: 4e 43 54 20 2b 20 35 35 20 46 52 4f 4d 20 74 61  NCT + 55 FROM ta
99b0: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
99c0: 20 4e 4f 54 20 28 20 63 6f 6c 30 20 29 20 49 53   NOT ( col0 ) IS
99d0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d   NULL..----..55.
99e0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
99f0: 72 74 0d 0a 53 45 4c 45 43 54 20 31 36 20 2b 20  rt..SELECT 16 + 
9a00: 31 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  15 AS col2 FROM 
9a10: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
9a20: 2d 2d 0d 0a 33 31 0d 0a 33 31 0d 0a 33 31 0d 0a  --..31..31..31..
9a30: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
9a40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
9a50: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
9a60: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
9a70: 20 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 2b 20 63   col0 / col2 + c
9a80: 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol2 IS NULL..---
9a90: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
9aa0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
9ab0: 54 49 4e 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20  TINCT col2 FROM 
9ac0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
9ad0: 52 45 20 28 20 31 35 20 29 20 3c 20 28 20 63 6f  RE ( 15 ) < ( co
9ae0: 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  l1 )..----..10..
9af0: 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  47....onlyif mys
9b00: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
9b10: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
9b20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
9b30: 32 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  22..SELECT DISTI
9b40: 4e 43 54 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2b  NCT + MIN( ALL +
9b50: 20 63 6f 6c 30 20 29 20 63 6f 6c 32 20 46 52 4f   col0 ) col2 FRO
9b60: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
9b70: 2d 0d 0a 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..15....skipif 
9b80: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
9b90: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
9ba0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
9bb0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
9bc0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
9bd0: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
9be0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9bf0: 20 6c 61 62 65 6c 2d 32 32 32 0d 0a 53 45 4c 45   label-222..SELE
9c00: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49  CT DISTINCT + MI
9c10: 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29  N ( ALL + col0 )
9c20: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
9c30: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  cor0..----..15..
9c40: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
9c50: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
9c60: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
9c70: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
9c80: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
9c90: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
9ca0: 43 54 20 44 49 53 54 49 4e 43 54 20 31 32 20 63  CT DISTINCT 12 c
9cb0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
9cc0: 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f   cor0 WHERE - co
9cd0: 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2b 20 37 20  l2 NOT IN ( + 7 
9ce0: 29 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 6f  )..----..12....o
9cf0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
9d00: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
9d10: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9d20: 74 20 6c 61 62 65 6c 2d 32 32 34 0d 0a 53 45 4c  t label-224..SEL
9d30: 45 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49  ECT - SUM( DISTI
9d40: 4e 43 54 20 31 30 20 29 20 41 53 20 63 6f 6c 32  NCT 10 ) AS col2
9d50: 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
9d60: 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 0d 0a 73 6b  .----..-10....sk
9d70: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
9d80: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
9d90: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9da0: 65 6c 2d 32 32 34 0d 0a 53 45 4c 45 43 54 20 2d  el-224..SELECT -
9db0: 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
9dc0: 31 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  10 ) AS col2 FRO
9dd0: 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
9de0: 2d 0d 0a 2d 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-10....onlyif
9df0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
9e00: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
9e10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9e20: 65 6c 2d 32 32 35 0d 0a 53 45 4c 45 43 54 20 44  el-225..SELECT D
9e30: 49 53 54 49 4e 43 54 20 2d 20 4d 49 4e 28 20 2b  ISTINCT - MIN( +
9e40: 20 36 35 20 29 20 46 52 4f 4d 20 74 61 62 31 20   65 ) FROM tab1 
9e50: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
9e60: 54 20 28 20 2d 20 63 6f 6c 32 20 29 20 3e 3d 20  T ( - col2 ) >= 
9e70: 63 6f 6c 30 20 2a 20 63 6f 6c 32 20 2b 20 2b 20  col0 * col2 + + 
9e80: 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d  col0..----..-65.
9e90: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
9ea0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
9eb0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9ec0: 74 20 6c 61 62 65 6c 2d 32 32 35 0d 0a 53 45 4c  t label-225..SEL
9ed0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d  ECT DISTINCT - M
9ee0: 49 4e 20 28 20 2b 20 36 35 20 29 20 46 52 4f 4d  IN ( + 65 ) FROM
9ef0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
9f00: 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 32  ERE NOT ( - col2
9f10: 20 29 20 3e 3d 20 63 6f 6c 30 20 2a 20 63 6f 6c   ) >= col0 * col
9f20: 32 20 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  2 + + col0..----
9f30: 0d 0a 2d 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-65....query I
9f40: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9f50: 20 2d 20 28 20 63 6f 6c 31 20 29 20 2a 20 63 6f   - ( col1 ) * co
9f60: 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
9f70: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
9f80: 0a 2d 31 39 36 0d 0a 2d 32 32 30 39 0d 0a 2d 32  .-196..-2209..-2
9f90: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
9fa0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
9fb0: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
9fc0: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab1 WHERE NOT co
9fd0: 6c 31 20 2a 20 2b 20 36 37 20 2b 20 2b 20 28 20  l1 * + 67 + + ( 
9fe0: 2d 20 35 32 20 2b 20 2d 20 37 33 20 2a 20 2b 20  - 52 + - 73 * + 
9ff0: 36 37 20 29 20 2a 20 2b 20 38 35 20 4e 4f 54 20  67 ) * + 85 NOT 
a000: 49 4e 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d  IN ( col1 )..---
a010: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
a020: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
a030: 54 49 4e 43 54 20 2d 20 34 37 20 2a 20 2b 20 63  TINCT - 47 * + c
a040: 6f 6c 31 20 2a 20 2d 20 35 38 20 46 52 4f 4d 20  ol1 * - 58 FROM 
a050: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 30 38  tab0..----..2208
a060: 30 36 0d 0a 32 37 32 36 0d 0a 35 37 32 34 36 0d  06..2726..57246.
a070: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
a080: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
a090: 4e 43 54 20 63 6f 6c 30 20 2a 20 2b 20 34 36 20  NCT col0 * + 46 
a0a0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
a0b0: 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31 31 36 0d 0a 32  2..----..2116..2
a0c0: 39 34 34 0d 0a 33 34 35 30 0d 0a 0d 0a 6f 6e 6c  944..3450....onl
a0d0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
a0e0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
a0f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
a100: 6c 61 62 65 6c 2d 32 33 30 0d 0a 53 45 4c 45 43  label-230..SELEC
a110: 54 20 41 4c 4c 20 53 55 4d 28 20 41 4c 4c 20 63  T ALL SUM( ALL c
a120: 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol0 ) AS col0 FR
a130: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
a140: 54 20 2d 20 63 6f 6c 30 20 2b 20 37 30 20 2f 20  T - col0 + 70 / 
a150: 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
a160: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
a170: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a180: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a190: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a1a0: 61 62 65 6c 2d 32 33 30 0d 0a 53 45 4c 45 43 54  abel-230..SELECT
a1b0: 20 41 4c 4c 20 53 55 4d 20 28 20 41 4c 4c 20 63   ALL SUM ( ALL c
a1c0: 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol0 ) AS col0 FR
a1d0: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
a1e0: 54 20 2d 20 63 6f 6c 30 20 2b 20 37 30 20 2f 20  T - col0 + 70 / 
a1f0: 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
a200: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
a210: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
a220: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
a230: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
a240: 72 74 20 6c 61 62 65 6c 2d 32 33 31 0d 0a 53 45  rt label-231..SE
a250: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 38  LECT DISTINCT 88
a260: 20 2a 20 2b 20 2b 20 53 55 4d 28 20 2d 20 63 6f   * + + SUM( - co
a270: 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
a280: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
a290: 37 31 36 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  7160....skipif m
a2a0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
a2b0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
a2c0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 31  owsort label-231
a2d0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
a2e0: 54 20 38 38 20 2a 20 2b 20 2b 20 53 55 4d 20 28  T 88 * + + SUM (
a2f0: 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
a300: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
a310: 2d 0d 0a 2d 31 37 31 36 30 0d 0a 0d 0a 6f 6e 6c  -..-17160....onl
a320: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
a330: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
a340: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
a350: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33  rowsort label-23
a360: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
a370: 43 54 20 2b 20 38 34 20 2a 20 2d 20 2d 20 43 41  CT + 84 * - - CA
a380: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
a390: 45 44 20 29 20 2f 20 63 6f 6c 31 20 41 53 20 63  ED ) / col1 AS c
a3a0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
a3b0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
a3c0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
a3d0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
a3e0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
a3f0: 6c 2d 32 33 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-232..SELECT DI
a400: 53 54 49 4e 43 54 20 2b 20 38 34 20 2a 20 2d 20  STINCT + 84 * - 
a410: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
a420: 20 49 4e 54 45 47 45 52 20 29 20 2f 20 63 6f 6c   INTEGER ) / col
a430: 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
a440: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
a450: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
a460: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
a470: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
a480: 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20  RE NOT - col1 * 
a490: 2b 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20  + col0 + - col1 
a4a0: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
a4b0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
a4c0: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
a4d0: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
a4e0: 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  cad....onlyif my
a4f0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a500: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a510: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a520: 32 33 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  234..SELECT - CO
a530: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
a540: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
a550: 20 4e 4f 54 20 2b 20 34 30 20 49 53 20 4e 55 4c   NOT + 40 IS NUL
a560: 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  L..----..-3....s
a570: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
a580: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
a590: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
a5a0: 62 65 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54 20  bel-234..SELECT 
a5b0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
a5c0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
a5d0: 57 48 45 52 45 20 4e 4f 54 20 2b 20 34 30 20 49  WHERE NOT + 40 I
a5e0: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S NULL..----..-3
a5f0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
a600: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
a610: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
a620: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 35  owsort label-235
a630: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
a640: 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c  T - + COUNT( ALL
a650: 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
a660: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
a670: 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
a680: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
a690: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
a6a0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 35 0d  wsort label-235.
a6b0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
a6c0: 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c   - + COUNT ( ALL
a6d0: 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
a6e0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
a6f0: 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-3....onlyif my
a700: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a710: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a720: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a730: 32 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  236..SELECT DIST
a740: 49 4e 43 54 20 2d 20 4d 41 58 28 20 63 6f 6c 31  INCT - MAX( col1
a750: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
a760: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d  cor0..----..-81.
a770: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
a780: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
a790: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a7a0: 74 20 6c 61 62 65 6c 2d 32 33 36 0d 0a 53 45 4c  t label-236..SEL
a7b0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d  ECT DISTINCT - M
a7c0: 41 58 20 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d  AX ( col1 ) FROM
a7d0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
a7e0: 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72  ---..-81....quer
a7f0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
a800: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
a810: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
a820: 57 48 45 52 45 20 28 20 63 6f 6c 31 20 29 20 3c  WHERE ( col1 ) <
a830: 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
a840: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
a850: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
a860: 20 2d 20 31 20 2a 20 2b 20 63 6f 6c 31 20 46 52   - 1 * + col1 FR
a870: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
a880: 31 34 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 71  14..-47..-5....q
a890: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
a8a0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
a8b0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
a8c0: 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 4e  ERE NOT + col1 N
a8d0: 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 32 20  OT BETWEEN col2 
a8e0: 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND + col0..----
a8f0: 0d 0a 37 35 0d 0a 36 37 0d 0a 35 38 0d 0a 0d 0a  ..75..67..58....
a900: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
a910: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
a920: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
a930: 72 74 20 6c 61 62 65 6c 2d 32 34 30 0d 0a 53 45  rt label-240..SE
a940: 4c 45 43 54 20 2b 20 2b 20 28 20 2b 20 43 4f 55  LECT + + ( + COU
a950: 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c  NT( * ) ) AS col
a960: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
a970: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
a980: 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
a990: 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..9....skipif m
a9a0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
a9b0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
a9c0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 30  owsort label-240
a9d0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 28 20 2b  ..SELECT + + ( +
a9e0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 41   COUNT ( * ) ) A
a9f0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
aa00: 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
aa10: 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31  OIN tab1 AS cor1
aa20: 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c  ..----..9....onl
aa30: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
aa40: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
aa50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
aa60: 6c 61 62 65 6c 2d 32 34 31 0d 0a 53 45 4c 45 43  label-241..SELEC
aa70: 54 20 41 4c 4c 20 2d 20 53 55 4d 28 20 63 6f 6c  T ALL - SUM( col
aa80: 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  1 ) FROM tab0 co
aa90: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 0d 0a  r0..----..-103..
aaa0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
aab0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
aac0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
aad0: 20 6c 61 62 65 6c 2d 32 34 31 0d 0a 53 45 4c 45   label-241..SELE
aae0: 43 54 20 41 4c 4c 20 2d 20 53 55 4d 20 28 20 63  CT ALL - SUM ( c
aaf0: 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol1 ) FROM tab0 
ab00: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33  cor0..----..-103
ab10: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
ab20: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
ab30: 33 34 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63  34 * + col1 AS c
ab40: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol1 FROM tab1 co
ab50: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 39 38 0d 0a  r0..----..1598..
ab60: 31 37 30 0d 0a 34 37 36 0d 0a 0d 0a 71 75 65 72  170..476....quer
ab70: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ab80: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
ab90: 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2d 20 2b  2 * + - col2 - +
aba0: 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
abb0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
abc0: 0a 2d 31 35 32 33 0d 0a 2d 33 32 39 37 0d 0a 2d  .-1523..-3297..-
abd0: 34 37 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  478....onlyif my
abe0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
abf0: 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
ac00: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
ac10: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ac20: 6f 72 74 20 6c 61 62 65 6c 2d 32 34 34 0d 0a 53  ort label-244..S
ac30: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
ac40: 20 29 20 44 49 56 20 36 35 20 46 52 4f 4d 20 74   ) DIV 65 FROM t
ac50: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
ac60: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
ac70: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
ac80: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
ac90: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 34  owsort label-244
aca0: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
acb0: 20 28 20 2a 20 29 20 2f 20 36 35 20 46 52 4f 4d   ( * ) / 65 FROM
acc0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
acd0: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
ace0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
acf0: 54 20 2d 20 2b 20 36 34 20 2a 20 2b 20 2b 20 63  T - + 64 * + + c
ad00: 6f 6c 31 20 2a 20 2b 20 2d 20 33 35 20 41 53 20  ol1 * + - 35 AS 
ad10: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
ad20: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
ad30: 35 32 38 30 0d 0a 31 31 32 30 30 0d 0a 33 31 33  5280..11200..313
ad40: 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  60....query II r
ad50: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
ad60: 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63  ol0 AS col1, - c
ad70: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
ad80: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   cor0..----..15.
ad90: 0a 2d 31 35 0d 0a 38 37 0d 0a 2d 38 37 0d 0a 39  .-15..87..-87..9
ada0: 37 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  7..-97....onlyif
adb0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
adc0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
add0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
ade0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 37 0d 0a  sort label-247..
adf0: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20  SELECT - col2 + 
ae00: 2b 20 36 20 44 49 56 20 2b 20 63 6f 6c 30 20 46  + 6 DIV + col0 F
ae10: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
ae20: 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d  ---..-59..-68..-
ae30: 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
ae40: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
ae50: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
ae60: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 37 0d 0a  sort label-247..
ae70: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20  SELECT - col2 + 
ae80: 2b 20 36 20 2f 20 2b 20 63 6f 6c 30 20 46 52 4f  + 6 / + col0 FRO
ae90: 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
aea0: 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36  -..-59..-68..-96
aeb0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
aec0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
aed0: 49 4e 43 54 20 32 20 2a 20 2b 20 39 31 20 41 53  INCT 2 * + 91 AS
aee0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
aef0: 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
af00: 54 20 4e 55 4c 4c 20 41 4e 44 20 28 20 28 20 4e  T NULL AND ( ( N
af10: 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 20 29 0d  ULL ) IS NULL ).
af20: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
af30: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
af40: 20 41 4c 4c 20 2b 20 28 20 2b 20 63 6f 6c 31 20   ALL + ( + col1 
af50: 29 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  ) * col0 AS col1
af60: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
af70: 0d 0a 32 33 34 36 0d 0a 34 39 32 38 0d 0a 35 30  ..2346..4928..50
af80: 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  25....skipif pos
af90: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
afa0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
afb0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
afc0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
afd0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
afe0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
aff0: 2b 20 33 39 20 2a 20 2d 20 35 35 20 2b 20 2d 20  + 39 * - 55 + - 
b000: 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d  + col1 col0 FROM
b010: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab1..----..-21
b020: 35 30 0d 0a 2d 32 31 35 39 0d 0a 2d 32 31 39 32  50..-2159..-2192
b030: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
b040: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20  ort..SELECT ( + 
b050: 63 6f 6c 32 20 29 20 2a 20 2b 20 31 36 20 2a 20  col2 ) * + 16 * 
b060: 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  + col1 + - col2 
b070: 2b 20 39 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  + 90 FROM tab0..
b080: 2d 2d 2d 2d 0d 0a 31 35 37 35 0d 0a 33 34 34 30  ----..1575..3440
b090: 0d 0a 36 30 39 35 35 0d 0a 0d 0a 71 75 65 72 79  ..60955....query
b0a0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
b0b0: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
b0c0: 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 41 53  l0 + - + col1 AS
b0d0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
b0e0: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31 0d 0a 2d 31 34  .----..-141..-14
b0f0: 32 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20  2..-97....query 
b100: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
b110: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
b120: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
b130: 45 20 28 20 2d 20 33 32 20 2d 20 63 6f 6c 30 20  E ( - 32 - col0 
b140: 29 20 3c 3d 20 28 20 2b 20 28 20 63 6f 6c 30 20  ) <= ( + ( col0 
b150: 29 20 2a 20 37 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ) * 74 )..----..
b160: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
b170: 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
b180: 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
b190: 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
b1a0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
b1b0: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
b1c0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
b1d0: 72 74 20 6c 61 62 65 6c 2d 32 35 34 0d 0a 53 45  rt label-254..SE
b1e0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
b1f0: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
b200: 47 4e 45 44 20 29 20 2d 20 2b 20 63 6f 6c 31 20  GNED ) - + col1 
b210: 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 34 30 20  - + col2 * + 40 
b220: 2a 20 32 39 20 46 52 4f 4d 20 74 61 62 31 20 41  * 29 FROM tab1 A
b230: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
b240: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
b250: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
b260: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
b270: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 34 0d 0a  sort label-254..
b280: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
b290: 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
b2a0: 20 49 4e 54 45 47 45 52 20 29 20 2d 20 2b 20 63   INTEGER ) - + c
b2b0: 6f 6c 31 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2b  ol1 - + col2 * +
b2c0: 20 34 30 20 2a 20 32 39 20 46 52 4f 4d 20 74 61   40 * 29 FROM ta
b2d0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
b2e0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
b2f0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
b300: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
b310: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
b320: 65 6c 2d 32 35 35 0d 0a 53 45 4c 45 43 54 20 44  el-255..SELECT D
b330: 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
b340: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
b350: 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
b360: 4c 20 29 20 3c 20 28 20 2d 20 36 35 20 29 0d 0a  L ) < ( - 65 )..
b370: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
b380: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b390: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
b3a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
b3b0: 32 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  255..SELECT DIST
b3c0: 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
b3d0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
b3e0: 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r0 WHERE ( NULL 
b3f0: 29 20 3c 20 28 20 2d 20 36 35 20 29 0d 0a 2d 2d  ) < ( - 65 )..--
b400: 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
b410: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
b420: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
b430: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
b440: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
b450: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
b460: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
b470: 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col2 col0 FROM t
b480: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
b490: 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e  E NOT ( NULL ) N
b4a0: 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20 63  OT BETWEEN ( + c
b4b0: 6f 6c 30 20 29 20 41 4e 44 20 63 6f 6c 32 20 2f  ol0 ) AND col2 /
b4c0: 20 28 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 29   ( col1 * col2 )
b4d0: 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
b4e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b4f0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
b500: 54 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 2d  T + - col0 - - -
b510: 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 37 38 20 46   col0 * + + 78 F
b520: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
b530: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 38 35 0d 0a 2d  ..----..-1185..-
b540: 36 38 37 33 0d 0a 2d 37 36 36 33 0d 0a 0d 0a 6f  6873..-7663....o
b550: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
b560: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
b570: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
b580: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
b590: 6c 2d 32 35 38 0d 0a 53 45 4c 45 43 54 20 2a 20  l-258..SELECT * 
b5a0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
b5b0: 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20  0 WHERE ( NOT ( 
b5c0: 2b 20 63 6f 6c 30 20 2b 20 43 41 53 54 28 20 63  + col0 + CAST( c
b5d0: 6f 6c 30 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 36  ol0 + col1 * - 6
b5e0: 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 49 53  1 AS SIGNED ) IS
b5f0: 20 4e 4f 54 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d   NOT NULL ) )..-
b600: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
b610: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b620: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
b630: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35  rowsort label-25
b640: 38 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  8..SELECT * FROM
b650: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
b660: 45 52 45 20 28 20 4e 4f 54 20 28 20 2b 20 63 6f  ERE ( NOT ( + co
b670: 6c 30 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 30  l0 + CAST ( col0
b680: 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 36 31 20 41   + col1 * - 61 A
b690: 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e  S INTEGER ) IS N
b6a0: 4f 54 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d  OT NULL ) )..---
b6b0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
b6c0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
b6d0: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
b6e0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
b6f0: 45 20 4e 4f 54 20 28 20 33 20 29 20 4e 4f 54 20  E NOT ( 3 ) NOT 
b700: 42 45 54 57 45 45 4e 20 28 20 63 6f 6c 30 20 29  BETWEEN ( col0 )
b710: 20 41 4e 44 20 2d 20 38 38 20 2b 20 63 6f 6c 32   AND - 88 + col2
b720: 20 2f 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   / - col1..----.
b730: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
b740: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
b750: 49 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43 49  IGNED type: DECI
b760: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
b770: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
b780: 6c 2d 32 36 30 0d 0a 53 45 4c 45 43 54 20 63 6f  l-260..SELECT co
b790: 6c 31 20 2a 20 63 6f 6c 30 20 2d 20 43 41 53 54  l1 * col0 - CAST
b7a0: 28 20 2b 20 63 6f 6c 31 20 41 53 20 44 45 43 49  ( + col1 AS DECI
b7b0: 4d 41 4c 20 29 20 2a 20 2b 20 43 41 53 54 28 20  MAL ) * + CAST( 
b7c0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
b7d0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
b7e0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
b7f0: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
b800: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
b810: 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
b820: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
b830: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
b840: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
b850: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
b860: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
b870: 72 74 20 6c 61 62 65 6c 2d 32 36 30 0d 0a 53 45  rt label-260..SE
b880: 4c 45 43 54 20 63 6f 6c 31 20 2a 20 63 6f 6c 30  LECT col1 * col0
b890: 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 31   - CAST ( + col1
b8a0: 20 41 53 20 52 45 41 4c 20 29 20 2a 20 2b 20 43   AS REAL ) * + C
b8b0: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
b8c0: 54 45 47 45 52 20 29 20 63 6f 6c 30 20 46 52 4f  TEGER ) col0 FRO
b8d0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
b8e0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
b8f0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
b900: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
b910: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
b920: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 31 0d 0a  sort label-261..
b930: 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 2d 20  SELECT - SUM( - 
b940: 31 36 20 29 20 2d 20 2d 20 2d 20 4d 41 58 28 20  16 ) - - - MAX( 
b950: 44 49 53 54 49 4e 43 54 20 2b 20 31 32 20 29 20  DISTINCT + 12 ) 
b960: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
b970: 0a 33 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .36....skipif my
b980: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b990: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
b9a0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 31 0d  wsort label-261.
b9b0: 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28 20  .SELECT - SUM ( 
b9c0: 2d 20 31 36 20 29 20 2d 20 2d 20 2d 20 4d 41 58  - 16 ) - - - MAX
b9d0: 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 31 32   ( DISTINCT + 12
b9e0: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
b9f0: 2d 2d 0d 0a 33 36 0d 0a 0d 0a 71 75 65 72 79 20  --..36....query 
ba00: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
ba10: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
ba20: 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32  WHERE NOT - col2
ba30: 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e   - col0 IS NOT N
ba40: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
ba50: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
ba60: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
ba70: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
ba80: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
ba90: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
baa0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
bab0: 49 53 54 49 4e 43 54 20 2d 20 28 20 28 20 2d 20  ISTINCT - ( ( - 
bac0: 63 6f 6c 31 20 29 20 29 20 63 6f 6c 31 2c 20 63  col1 ) ) col1, c
bad0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
bae0: 2d 2d 2d 0d 0a 31 34 0d 0a 35 31 0d 0a 34 37 0d  ---..14..51..47.
baf0: 0a 39 31 0d 0a 35 0d 0a 38 35 0d 0a 0d 0a 6f 6e  .91..5..85....on
bb00: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
bb10: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
bb20: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
bb30: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
bb40: 36 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  64..SELECT col2 
bb50: 44 49 56 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 33  DIV col1 * + - 3
bb60: 39 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  9 FROM tab0 cor0
bb70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 36 31 0d 0a 30  ..----..-3861..0
bb80: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
bb90: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
bba0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
bbb0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 34 0d  wsort label-264.
bbc0: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2f 20 63  .SELECT col2 / c
bbd0: 6f 6c 31 20 2a 20 2b 20 2d 20 33 39 20 46 52 4f  ol1 * + - 39 FRO
bbe0: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
bbf0: 2d 0d 0a 2d 33 38 36 31 0d 0a 30 0d 0a 30 0d 0a  -..-3861..0..0..
bc00: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
bc10: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 41 56  t..SELECT ALL AV
bc20: 47 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20  G ( - col2 ) AS 
bc30: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63  col2 FROM tab2 c
bc40: 6f 72 30 20 57 48 45 52 45 20 28 20 2d 20 37 39  or0 WHERE ( - 79
bc50: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
bc60: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
bc70: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
bc80: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
bc90: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
bca0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
bcb0: 45 45 4e 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c  EEN col2 - - col
bcc0: 32 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a  2 AND ( NULL )..
bcd0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
bce0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
bcf0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
bd00: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
bd10: 63 6f 6c 30 20 3d 20 2d 20 2b 20 63 6f 6c 31 20  col0 = - + col1 
bd20: 2b 20 36 39 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  + 69..----..9 va
bd30: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
bd40: 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
bd50: 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
bd60: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
bd70: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
bd80: 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 39 35 20  ol1 AS col0, 95 
bd90: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
bda0: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  0 cor0..----..1.
bdb0: 0a 39 35 0d 0a 32 31 0d 0a 39 35 0d 0a 38 31 0d  .95..21..95..81.
bdc0: 0a 39 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .95....query I r
bdd0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
bde0: 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2a  ISTINCT + col2 *
bdf0: 20 39 36 20 46 52 4f 4d 20 74 61 62 30 20 63 6f   96 FROM tab0 co
be00: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 31 32 0d 0a  r0..----..4512..
be10: 39 35 30 34 0d 0a 39 36 30 0d 0a 0d 0a 71 75 65  9504..960....que
be20: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
be30: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
be40: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
be50: 48 45 52 45 20 33 33 20 49 53 20 4e 55 4c 4c 0d  HERE 33 IS NULL.
be60: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
be70: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
be80: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
be90: 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
bea0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 31 0d  wsort label-271.
beb0: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
bec0: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab1 WHERE NOT NU
bed0: 4c 4c 20 3d 20 2d 20 32 34 20 2f 20 2b 20 63 6f  LL = - 24 / + co
bee0: 6c 30 20 2a 20 43 41 53 54 28 20 2d 20 35 32 20  l0 * CAST( - 52 
bef0: 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d  AS SIGNED )..---
bf00: 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
bf10: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
bf20: 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
bf30: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 31 0d  wsort label-271.
bf40: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
bf50: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab1 WHERE NOT NU
bf60: 4c 4c 20 3d 20 2d 20 32 34 20 2f 20 2b 20 63 6f  LL = - 24 / + co
bf70: 6c 30 20 2a 20 43 41 53 54 20 28 20 2d 20 35 32  l0 * CAST ( - 52
bf80: 20 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d   AS INTEGER )..-
bf90: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
bfa0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
bfb0: 41 4c 4c 20 2d 20 63 6f 6c 32 2c 20 2d 20 28 20  ALL - col2, - ( 
bfc0: 2b 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2b 20 2d  + + col2 ) * + -
bfd0: 20 32 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   22 AS col0 FROM
bfe0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   tab1..----..-59
bff0: 0d 0a 31 32 39 38 0d 0a 2d 36 38 0d 0a 31 34 39  ..1298..-68..149
c000: 36 0d 0a 2d 39 36 0d 0a 32 31 31 32 0d 0a 0d 0a  6..-96..2112....
c010: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
c020: 0a 53 45 4c 45 43 54 20 2b 20 33 35 20 2a 20 2b  .SELECT + 35 * +
c030: 20 33 37 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   37 FROM tab0..-
c040: 2d 2d 2d 0d 0a 31 32 39 35 0d 0a 31 32 39 35 0d  ---..1295..1295.
c050: 0a 31 32 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .1295....onlyif 
c060: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
c070: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
c080: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c090: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 34 0d 0a 53  ort label-274..S
c0a0: 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55  ELECT - CAST( NU
c0b0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
c0c0: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   - col0 AS col0 
c0d0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
c0e0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
c0f0: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
c100: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
c110: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
c120: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 34 0d 0a 53  ort label-274..S
c130: 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e  ELECT - CAST ( N
c140: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
c150: 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   * - col0 AS col
c160: 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
c170: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
c180: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
c190: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
c1a0: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
c1b0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
c1c0: 72 74 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45  rt label-275..SE
c1d0: 4c 45 43 54 20 2d 20 28 20 28 20 43 41 53 54 28  LECT - ( ( CAST(
c1e0: 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
c1f0: 20 29 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46   ) ) ) AS col0 F
c200: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
c210: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
c220: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
c230: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
c240: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
c250: 72 74 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45  rt label-275..SE
c260: 4c 45 43 54 20 2d 20 28 20 28 20 43 41 53 54 20  LECT - ( ( CAST 
c270: 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
c280: 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   ) ) AS col0 FRO
c290: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
c2a0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
c2b0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
c2c0: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
c2d0: 31 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20  1, col2 AS col0 
c2e0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
c2f0: 0a 31 34 0d 0a 39 36 0d 0a 34 37 0d 0a 36 38 0d  .14..96..47..68.
c300: 0a 35 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20  .5..59....query 
c310: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
c320: 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f  CT - col2 * + co
c330: 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f  l1 AS col0, + co
c340: 6c 31 20 2a 20 2d 20 31 20 46 52 4f 4d 20 74 61  l1 * - 1 FROM ta
c350: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a  b0..----..-210..
c360: 2d 32 31 0d 0a 2d 33 38 30 37 0d 0a 2d 38 31 0d  -21..-3807..-81.
c370: 0a 2d 39 39 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79  .-99..-1....only
c380: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
c390: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
c3a0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
c3b0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 38  owsort label-278
c3c0: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
c3d0: 63 6f 6c 31 20 2a 20 43 41 53 54 28 20 4e 55 4c  col1 * CAST( NUL
c3e0: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
c3f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
c400: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
c410: 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
c420: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
c430: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
c440: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c450: 32 37 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  278..SELECT col0
c460: 20 2a 20 63 6f 6c 31 20 2a 20 43 41 53 54 20 28   * col1 * CAST (
c470: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
c480: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
c490: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
c4a0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
c4b0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
c4c0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
c4d0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
c4e0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
c4f0: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
c500: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
c510: 20 41 4c 4c 20 2b 20 37 31 20 63 6f 6c 31 20 46   ALL + 71 col1 F
c520: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
c530: 37 31 0d 0a 37 31 0d 0a 37 31 0d 0a 0d 0a 71 75  71..71..71....qu
c540: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
c550: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
c560: 20 33 35 20 2a 20 2d 20 2d 20 37 33 20 46 52 4f   35 * - - 73 FRO
c570: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
c580: 35 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  555....onlyif my
c590: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
c5a0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
c5b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c5c0: 32 38 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  281..SELECT DIST
c5d0: 49 4e 43 54 20 2d 20 2b 20 4d 41 58 28 20 41 4c  INCT - + MAX( AL
c5e0: 4c 20 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53 20  L + - col0 ) AS 
c5f0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
c600: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S cor0..----..51
c610: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
c620: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
c630: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
c640: 72 74 20 6c 61 62 65 6c 2d 32 38 31 0d 0a 53 45  rt label-281..SE
c650: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
c660: 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 2d 20  + MAX ( ALL + - 
c670: 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 20 46  col0 ) AS col0 F
c680: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
c690: 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 71 75  ..----..51....qu
c6a0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
c6b0: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
c6c0: 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab2 cor0 WHERE N
c6d0: 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  OT NULL BETWEEN 
c6e0: 2b 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d  + col1 AND NULL.
c6f0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
c700: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
c710: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
c720: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
c730: 20 2b 20 32 34 20 4e 4f 54 20 42 45 54 57 45 45   + 24 NOT BETWEE
c740: 4e 20 2d 20 63 6f 6c 30 20 41 4e 44 20 2b 20 63  N - col0 AND + c
c750: 6f 6c 32 20 2f 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  ol2 / col1..----
c760: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
c770: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
c780: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
c790: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c7a0: 61 62 65 6c 2d 32 38 34 0d 0a 53 45 4c 45 43 54  abel-284..SELECT
c7b0: 20 28 20 43 41 53 54 28 20 2b 20 63 6f 6c 30 20   ( CAST( + col0 
c7c0: 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41 53  AS SIGNED ) ) AS
c7d0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
c7e0: 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37  .----..46..64..7
c7f0: 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
c800: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
c810: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
c820: 6f 72 74 20 6c 61 62 65 6c 2d 32 38 34 0d 0a 53  ort label-284..S
c830: 45 4c 45 43 54 20 28 20 43 41 53 54 20 28 20 2b  ELECT ( CAST ( +
c840: 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
c850: 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
c860: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36  M tab2..----..46
c870: 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72  ..64..75....quer
c880: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
c890: 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
c8a0: 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c   tab0 WHERE NULL
c8b0: 20 3c 3e 20 37 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   <> 71..----....
c8c0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
c8d0: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c  ..SELECT + + col
c8e0: 30 2c 20 2d 20 37 33 20 2a 20 2b 20 63 6f 6c 30  0, - 73 * + col0
c8f0: 20 2a 20 36 33 20 2b 20 2d 20 63 6f 6c 30 20 41   * 63 + - col0 A
c900: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
c910: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
c920: 30 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  0 NOT BETWEEN NU
c930: 4c 4c 20 41 4e 44 20 2b 20 2d 20 63 6f 6c 31 0d  LL AND + - col1.
c940: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
c950: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
c960: 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
c970: 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
c980: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 37 0d  wsort label-287.
c990: 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2b  .SELECT col0 + +
c9a0: 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
c9b0: 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f   DECIMAL ) AS co
c9c0: 6c 30 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  l0, col0 FROM ta
c9d0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
c9e0: 34 36 0d 0a 4e 55 4c 4c 0d 0a 36 34 0d 0a 4e 55  46..NULL..64..NU
c9f0: 4c 4c 0d 0a 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  LL..75....skipif
ca00: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
ca10: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
ca20: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ca30: 32 38 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  287..SELECT col0
ca40: 20 2b 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55   + + - CAST ( NU
ca50: 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 41 53 20  LL AS REAL ) AS 
ca60: 63 6f 6c 30 2c 20 63 6f 6c 30 20 46 52 4f 4d 20  col0, col0 FROM 
ca70: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
ca80: 0d 0a 34 36 0d 0a 4e 55 4c 4c 0d 0a 36 34 0d 0a  ..46..NULL..64..
ca90: 4e 55 4c 4c 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72  NULL..75....quer
caa0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
cab0: 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 39  ECT + col0 * + 9
cac0: 35 20 2b 20 33 33 20 46 52 4f 4d 20 74 61 62 32  5 + 33 FROM tab2
cad0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
cae0: 34 34 30 33 0d 0a 36 31 31 33 0d 0a 37 31 35 38  4403..6113..7158
caf0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
cb00: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
cb10: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
cb20: 48 45 52 45 20 2d 20 32 20 3e 3d 20 63 6f 6c 30  HERE - 2 >= col0
cb30: 20 2a 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30   * col2 + + col0
cb40: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
cb50: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
cb60: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
cb70: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
cb80: 36 38 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  68 <> NULL..----
cb90: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
cba0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
cbb0: 2d 20 28 20 2b 20 37 30 20 29 20 41 53 20 63 6f  - ( + 70 ) AS co
cbc0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
cbd0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 0d 0a 2d 37  0..----..-70..-7
cbe0: 30 0d 0a 2d 37 30 0d 0a 0d 0a 71 75 65 72 79 20  0..-70....query 
cbf0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
cc00: 54 20 37 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20  T 7 * + col0 AS 
cc10: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
cc20: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
cc30: 35 0d 0a 36 30 39 0d 0a 36 37 39 0d 0a 0d 0a 6f  5..609..679....o
cc40: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
cc50: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
cc60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
cc70: 74 20 6c 61 62 65 6c 2d 32 39 33 0d 0a 53 45 4c  t label-293..SEL
cc80: 45 43 54 20 41 4c 4c 20 32 39 20 2a 20 2d 20 43  ECT ALL 29 * - C
cc90: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
cca0: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
ccb0: 2d 0d 0a 2d 38 37 0d 0a 0d 0a 73 6b 69 70 69 66  -..-87....skipif
ccc0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
ccd0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
cce0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
ccf0: 39 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32  93..SELECT ALL 2
cd00: 39 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  9 * - COUNT ( * 
cd10: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
cd20: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 37 0d 0a  or0..----..-87..
cd30: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
cd40: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
cd50: 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 41   + col1 + col0 A
cd60: 53 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 46 52 4f  S col1, col0 FRO
cd70: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
cd80: 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 39 31 0d 0a 36  ----..138..91..6
cd90: 35 0d 0a 35 31 0d 0a 39 30 0d 0a 38 35 0d 0a 0d  5..51..90..85...
cda0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
cdb0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
cdc0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
cdd0: 48 45 52 45 20 28 20 4e 4f 54 20 2b 20 63 6f 6c  HERE ( NOT + col
cde0: 30 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2d  0 * - - col1 * -
cdf0: 20 39 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20   94 IS NOT NULL 
ce00: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
ce10: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
ce20: 43 54 20 44 49 53 54 49 4e 43 54 20 37 20 2a 20  CT DISTINCT 7 * 
ce30: 2b 20 2d 20 31 34 20 41 53 20 63 6f 6c 32 20 46  + - 14 AS col2 F
ce40: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
ce50: 2d 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -98....query I r
ce60: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
ce70: 49 53 54 49 4e 43 54 20 37 37 20 2b 20 2d 20 34  ISTINCT 77 + - 4
ce80: 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
ce90: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 0d  ab0..----..37...
cea0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
ceb0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
cec0: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
ced0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
cee0: 6c 2d 32 39 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-298..SELECT AL
cef0: 4c 20 2b 20 31 37 20 44 49 56 20 2b 20 63 6f 6c  L + 17 DIV + col
cf00: 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
cf10: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab1..----..0..0.
cf20: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
cf30: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
cf40: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
cf50: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 38 0d 0a  sort label-298..
cf60: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 37 20  SELECT ALL + 17 
cf70: 2f 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  / + col2 AS col1
cf80: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
cf90: 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65  ..0..0..0....que
cfa0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
cfb0: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20  LECT - col2 * + 
cfc0: 34 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  43 FROM tab0..--
cfd0: 2d 2d 0d 0a 2d 32 30 32 31 0d 0a 2d 34 32 35 37  --..-2021..-4257
cfe0: 0d 0a 2d 34 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-430....onlyif
cff0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
d000: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
d010: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
d020: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 30 0d 0a  sort label-300..
d030: 53 45 4c 45 43 54 20 2d 20 33 31 20 2b 20 2b 20  SELECT - 31 + + 
d040: 2d 20 43 41 53 54 28 20 39 36 20 41 53 20 53 49  - CAST( 96 AS SI
d050: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31  GNED ) FROM tab1
d060: 20 57 48 45 52 45 20 2d 20 2d 20 63 6f 6c 32 20   WHERE - - col2 
d070: 42 45 54 57 45 45 4e 20 2d 20 28 20 34 30 20 29  BETWEEN - ( 40 )
d080: 20 41 4e 44 20 2b 20 2b 20 63 6f 6c 31 0d 0a 2d   AND + + col1..-
d090: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
d0a0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
d0b0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
d0c0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 30 0d  wsort label-300.
d0d0: 0a 53 45 4c 45 43 54 20 2d 20 33 31 20 2b 20 2b  .SELECT - 31 + +
d0e0: 20 2d 20 43 41 53 54 20 28 20 39 36 20 41 53 20   - CAST ( 96 AS 
d0f0: 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
d100: 61 62 31 20 57 48 45 52 45 20 2d 20 2d 20 63 6f  ab1 WHERE - - co
d110: 6c 32 20 42 45 54 57 45 45 4e 20 2d 20 28 20 34  l2 BETWEEN - ( 4
d120: 30 20 29 20 41 4e 44 20 2b 20 2b 20 63 6f 6c 31  0 ) AND + + col1
d130: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
d140: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
d150: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
d160: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
d170: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 31 0d 0a  sort label-301..
d180: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 44 49  SELECT - col0 DI
d190: 56 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  V - + col2 FROM 
d1a0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31  tab1..----..0..1
d1b0: 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
d1c0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
d1d0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
d1e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 31 0d  wsort label-301.
d1f0: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2f  .SELECT - col0 /
d200: 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   - + col2 FROM t
d210: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  ab1..----..0..1.
d220: 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .1....query I ro
d230: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
d240: 4c 20 2d 20 39 31 20 2b 20 2b 20 63 6f 6c 32 20  L - 91 + + col2 
d250: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
d260: 0a 2d 33 33 0d 0a 2d 35 31 0d 0a 2d 36 38 0d 0a  .-33..-51..-68..
d270: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
d280: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
d290: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
d2a0: 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
d2b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d2c0: 6c 61 62 65 6c 2d 33 30 33 0d 0a 53 45 4c 45 43  label-303..SELEC
d2d0: 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T + CAST( NULL A
d2e0: 53 20 44 45 43 49 4d 41 4c 20 29 20 2f 20 2b 20  S DECIMAL ) / + 
d2f0: 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 28 20  SUM( DISTINCT ( 
d300: 2d 20 39 20 29 20 29 20 63 6f 6c 30 20 46 52 4f  - 9 ) ) col0 FRO
d310: 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 38  M tab0 WHERE - 8
d320: 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  6 IS NOT NULL..-
d330: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
d340: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
d350: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
d360: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
d370: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
d380: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
d390: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
d3a0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
d3b0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 33 0d 0a  sort label-303..
d3c0: 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28 20  SELECT + CAST ( 
d3d0: 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2f  NULL AS REAL ) /
d3e0: 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43   + SUM ( DISTINC
d3f0: 54 20 28 20 2d 20 39 20 29 20 29 20 63 6f 6c 30  T ( - 9 ) ) col0
d400: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
d410: 20 2d 20 38 36 20 49 53 20 4e 4f 54 20 4e 55 4c   - 86 IS NOT NUL
d420: 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  L..----..NULL...
d430: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d440: 0d 0a 53 45 4c 45 43 54 20 2d 20 31 38 20 46 52  ..SELECT - 18 FR
d450: 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
d460: 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  LL = NULL..----.
d470: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
d480: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
d490: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
d4a0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
d4b0: 61 62 65 6c 2d 33 30 35 0d 0a 53 45 4c 45 43 54  abel-305..SELECT
d4c0: 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f   - col2 + - - co
d4d0: 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 63 6f  l2 * - col2 * co
d4e0: 6c 31 20 2a 20 2d 20 43 41 53 54 28 20 2b 20 63  l1 * - CAST( + c
d4f0: 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
d500: 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31 20  AS col1, + col1 
d510: 2b 20 37 30 20 2a 20 2d 20 63 6f 6c 31 20 46 52  + 70 * - col1 FR
d520: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
d530: 0a 2d 2d 2d 2d 0d 0a 31 34 37 39 33 36 36 0d 0a  .----..1479366..
d540: 2d 33 34 35 0d 0a 31 39 37 37 36 37 38 30 0d 0a  -345..19776780..
d550: 2d 33 32 34 33 0d 0a 36 35 38 30 31 32 38 0d 0a  -3243..6580128..
d560: 2d 39 36 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -966....skipif m
d570: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
d580: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
d590: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30  rowsort label-30
d5a0: 35 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  5..SELECT - col2
d5b0: 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d 20   + - - col2 * - 
d5c0: 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2a 20 2d 20  col2 * col1 * - 
d5d0: 43 41 53 54 20 28 20 2b 20 63 6f 6c 30 20 41 53  CAST ( + col0 AS
d5e0: 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
d5f0: 6c 31 2c 20 2b 20 63 6f 6c 31 20 2b 20 37 30 20  l1, + col1 + 70 
d600: 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * - col1 FROM ta
d610: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
d620: 0d 0a 31 34 37 39 33 36 36 0d 0a 2d 33 34 35 0d  ..1479366..-345.
d630: 0a 31 39 37 37 36 37 38 30 0d 0a 2d 33 32 34 33  .19776780..-3243
d640: 0d 0a 36 35 38 30 31 32 38 0d 0a 2d 39 36 36 0d  ..6580128..-966.
d650: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
d660: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
d670: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
d680: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
d690: 62 65 6c 2d 33 30 36 0d 0a 53 45 4c 45 43 54 20  bel-306..SELECT 
d6a0: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
d6b0: 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c  SIGNED ) + + col
d6c0: 32 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63  2 * + col1 * + c
d6d0: 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
d6e0: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
d6f0: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
d700: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
d710: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
d720: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
d730: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 36 0d 0a  sort label-306..
d740: 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28 20  SELECT + CAST ( 
d750: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
d760: 29 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63  ) + + col2 * + c
d770: 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20  ol1 * + col0 AS 
d780: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
d790: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
d7a0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .NULL..NULL....q
d7b0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
d7c0: 53 45 4c 45 43 54 20 2b 20 34 37 20 2b 20 63 6f  SELECT + 47 + co
d7d0: 6c 32 20 2d 20 2b 20 37 30 20 46 52 4f 4d 20 74  l2 - + 70 FROM t
d7e0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
d7f0: 2d 0d 0a 33 36 0d 0a 34 35 0d 0a 37 33 0d 0a 0d  -..36..45..73...
d800: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
d810: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
d820: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
d830: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
d840: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
d850: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
d860: 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 2b  T ALL + - col2 +
d870: 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20   col2 col0 FROM 
d880: 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28  tab2 WHERE NOT (
d890: 20 4e 55 4c 4c 20 29 20 3d 20 63 6f 6c 32 0d 0a   NULL ) = col2..
d8a0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
d8b0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
d8c0: 41 4c 4c 20 35 39 20 41 53 20 63 6f 6c 31 20 46  ALL 59 AS col1 F
d8d0: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
d8e0: 2d 2d 2d 0d 0a 35 39 0d 0a 35 39 0d 0a 35 39 0d  ---..59..59..59.
d8f0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
d900: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
d910: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
d920: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 30 0d  wsort label-310.
d930: 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 41  .SELECT + SUM( A
d940: 4c 4c 20 2b 20 28 20 2b 20 2d 20 36 36 20 29 20  LL + ( + - 66 ) 
d950: 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  ) FROM tab0 cor0
d960: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a 0d 0a  ..----..-198....
d970: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
d980: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
d990: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d9a0: 61 62 65 6c 2d 33 31 30 0d 0a 53 45 4c 45 43 54  abel-310..SELECT
d9b0: 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 28   + SUM ( ALL + (
d9c0: 20 2b 20 2d 20 36 36 20 29 20 29 20 46 52 4f 4d   + - 66 ) ) FROM
d9d0: 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
d9e0: 0d 0a 2d 31 39 38 0d 0a 0d 0a 71 75 65 72 79 20  ..-198....query 
d9f0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
da00: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
da10: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
da20: 20 57 48 45 52 45 20 33 39 20 3c 20 4e 55 4c 4c   WHERE 39 < NULL
da30: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
da40: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
da50: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
da60: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
da70: 65 6c 2d 33 31 32 0d 0a 53 45 4c 45 43 54 20 2b  el-312..SELECT +
da80: 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 32 20 29   + MAX( - col2 )
da90: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
daa0: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
dab0: 20 4e 4f 54 20 2d 20 35 31 20 2a 20 63 6f 6c 32   NOT - 51 * col2
dac0: 20 2a 20 2b 20 32 32 20 49 53 20 4e 55 4c 4c 0d   * + 22 IS NULL.
dad0: 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 73 6b  .----..-59....sk
dae0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
daf0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
db00: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
db10: 65 6c 2d 33 31 32 0d 0a 53 45 4c 45 43 54 20 2b  el-312..SELECT +
db20: 20 2b 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20   + MAX ( - col2 
db30: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
db40: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
db50: 45 20 4e 4f 54 20 2d 20 35 31 20 2a 20 63 6f 6c  E NOT - 51 * col
db60: 32 20 2a 20 2b 20 32 32 20 49 53 20 4e 55 4c 4c  2 * + 22 IS NULL
db70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 71  ..----..-59....q
db80: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
db90: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 35 20  SELECT ALL + 15 
dba0: 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57  FROM tab0 cor0 W
dbb0: 48 45 52 45 20 2d 20 63 6f 6c 30 20 49 53 20 4e  HERE - col0 IS N
dbc0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  OT NULL..----..1
dbd0: 35 0d 0a 31 35 0d 0a 31 35 0d 0a 0d 0a 6f 6e 6c  5..15..15....onl
dbe0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
dbf0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
dc00: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
dc10: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31  rowsort label-31
dc20: 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
dc30: 43 54 20 2b 20 43 41 53 54 28 20 39 20 41 53 20  CT + CAST( 9 AS 
dc40: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
dc50: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73  b0..----..9....s
dc60: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
dc70: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
dc80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
dc90: 62 65 6c 2d 33 31 34 0d 0a 53 45 4c 45 43 54 20  bel-314..SELECT 
dca0: 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20  DISTINCT + CAST 
dcb0: 28 20 39 20 41 53 20 49 4e 54 45 47 45 52 20 29  ( 9 AS INTEGER )
dcc0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
dcd0: 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ..9....query II 
dce0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
dcf0: 41 4c 4c 20 2b 20 63 6f 6c 30 2c 20 63 6f 6c 30  ALL + col0, col0
dd00: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
dd10: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 34 36  b2..----..46..46
dd20: 0d 0a 36 34 0d 0a 36 34 0d 0a 37 35 0d 0a 37 35  ..64..64..75..75
dd30: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
dd40: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
dd50: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
dd60: 45 52 45 20 4e 4f 54 20 2b 20 2d 20 31 31 20 49  ERE NOT + - 11 I
dd70: 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  N ( col2 )..----
dd80: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
dd90: 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
dda0: 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
ddb0: 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
ddc0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
ddd0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
dde0: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
ddf0: 4f 54 20 2d 20 2d 20 39 20 2a 20 2d 20 63 6f 6c  OT - - 9 * - col
de00: 31 20 3d 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29  1 = + ( - col0 )
de10: 20 2d 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 34 37   - - col0 / - 47
de20: 20 2f 20 33 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   / 32..----..9 v
de30: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
de40: 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
de50: 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
de60: 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  d....onlyif mysq
de70: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
de80: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
de90: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31  rowsort label-31
dea0: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
deb0: 4d 49 4e 28 20 2d 20 28 20 2d 20 63 6f 6c 31 20  MIN( - ( - col1 
dec0: 29 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ) ) FROM tab0..-
ded0: 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69  ---..-1....skipi
dee0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
def0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
df00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
df10: 33 31 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  318..SELECT ALL 
df20: 2d 20 4d 49 4e 20 28 20 2d 20 28 20 2d 20 63 6f  - MIN ( - ( - co
df30: 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  l1 ) ) FROM tab0
df40: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75  ..----..-1....qu
df50: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
df60: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
df70: 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab1 cor0 WHERE N
df80: 4f 54 20 35 20 3d 20 2b 20 63 6f 6c 32 0d 0a 2d  OT 5 = + col2..-
df90: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
dfa0: 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
dfb0: 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
dfc0: 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
dfd0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
dfe0: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  LECT - col2 + - 
dff0: 2b 20 31 34 20 46 52 4f 4d 20 74 61 62 31 20 41  + 14 FROM tab1 A
e000: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
e010: 31 30 0d 0a 2d 37 33 0d 0a 2d 38 32 0d 0a 0d 0a  10..-73..-82....
e020: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
e030: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
e040: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
e050: 72 74 20 6c 61 62 65 6c 2d 33 32 31 0d 0a 53 45  rt label-321..SE
e060: 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
e070: 2a 20 29 20 2a 20 2d 20 2b 20 31 32 20 46 52 4f  * ) * - + 12 FRO
e080: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
e090: 2d 2d 2d 2d 0d 0a 2d 33 36 0d 0a 0d 0a 73 6b 69  ----..-36....ski
e0a0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
e0b0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
e0c0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e0d0: 6c 2d 33 32 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-321..SELECT AL
e0e0: 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  L COUNT ( * ) * 
e0f0: 2d 20 2b 20 31 32 20 46 52 4f 4d 20 74 61 62 32  - + 12 FROM tab2
e100: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
e110: 2d 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -36....query I r
e120: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
e130: 4c 4c 20 2d 20 37 39 20 2b 20 2d 20 2d 20 63 6f  LL - 79 + - - co
e140: 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 41 53  l1 + - + col1 AS
e150: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
e160: 0a 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a 2d 37 39 0d  .----..-79..-79.
e170: 0a 2d 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-79....onlyif m
e180: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
e190: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
e1a0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
e1b0: 72 74 20 6c 61 62 65 6c 2d 33 32 33 0d 0a 53 45  rt label-323..SE
e1c0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
e1d0: 38 35 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b 20  85 + col2 DIV + 
e1e0: 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 41 53  + col2 + col0 AS
e1f0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
e200: 0a 2d 2d 2d 2d 0d 0a 2d 33 33 0d 0a 31 0d 0a 37  .----..-33..1..7
e210: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
e220: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
e230: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
e240: 72 74 20 6c 61 62 65 6c 2d 33 32 33 0d 0a 53 45  rt label-323..SE
e250: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
e260: 38 35 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 2b 20  85 + col2 / + + 
e270: 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 41 53 20 63  col2 + col0 AS c
e280: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
e290: 2d 2d 2d 0d 0a 2d 33 33 0d 0a 31 0d 0a 37 0d 0a  ---..-33..1..7..
e2a0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
e2b0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
e2c0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
e2d0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
e2e0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
e2f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
e300: 43 54 20 2b 20 32 36 20 2a 20 2d 20 63 6f 6c 32  CT + 26 * - col2
e310: 20 2a 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f   * col1 col2 FRO
e320: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
e330: 2d 2d 2d 2d 0d 0a 2d 33 34 39 34 34 0d 0a 2d 37  ----..-34944..-7
e340: 36 37 30 0d 0a 2d 38 33 30 39 36 0d 0a 0d 0a 71  670..-83096....q
e350: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
e360: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
e370: 30 20 2b 20 2b 20 35 30 20 46 52 4f 4d 20 74 61  0 + + 50 FROM ta
e380: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
e390: 0d 0a 31 33 37 0d 0a 31 34 37 0d 0a 36 35 0d 0a  ..137..147..65..
e3a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e3b0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
e3c0: 20 2b 20 2b 20 32 33 20 46 52 4f 4d 20 74 61 62   + + 23 FROM tab
e3d0: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
e3e0: 28 20 35 20 29 20 3c 3e 20 2d 20 38 37 0d 0a 2d  ( 5 ) <> - 87..-
e3f0: 2d 2d 2d 0d 0a 31 31 39 0d 0a 38 32 0d 0a 39 31  ---..119..82..91
e400: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
e410: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
e420: 6c 32 20 2b 20 2b 20 2b 20 31 36 20 2a 20 63 6f  l2 + + + 16 * co
e430: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
e440: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 0d  cor0..----..115.
e450: 0a 31 33 34 33 0d 0a 33 34 36 0d 0a 0d 0a 71 75  .1343..346....qu
e460: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e470: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
e480: 20 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c 31 20 2b   col0 - - col1 +
e490: 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 31   + col0 + + col1
e4a0: 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   + - col2 * - co
e4b0: 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
e4c0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 36 30  cor0..----..1160
e4d0: 0d 0a 32 37 31 34 0d 0a 34 34 38 34 0d 0a 0d 0a  ..2714..4484....
e4e0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
e4f0: 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
e500: 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
e510: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
e520: 6c 2d 33 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20  l-329..SELECT - 
e530: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
e540: 43 49 4d 41 4c 20 29 20 2b 20 2d 20 2d 20 30 20  CIMAL ) + - - 0 
e550: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
e560: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
e570: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
e580: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
e590: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
e5a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e5b0: 32 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  29..SELECT - CAS
e5c0: 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
e5d0: 20 29 20 2b 20 2d 20 2d 20 30 20 46 52 4f 4d 20   ) + - - 0 FROM 
e5e0: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
e5f0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
e600: 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
e610: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
e620: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
e630: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33  rowsort label-33
e640: 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
e650: 43 54 20 2b 20 32 20 2b 20 2b 20 2d 20 43 4f 55  CT + 2 + + - COU
e660: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
e670: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
e680: 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-1....skipif my
e690: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
e6a0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
e6b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 30 0d  wsort label-330.
e6c0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
e6d0: 20 2b 20 32 20 2b 20 2b 20 2d 20 43 4f 55 4e 54   + 2 + + - COUNT
e6e0: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
e6f0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
e700: 2d 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -1....onlyif mys
e710: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
e720: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
e730: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e740: 20 6c 61 62 65 6c 2d 33 33 31 0d 0a 53 45 4c 45   label-331..SELE
e750: 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28 20 4e  CT ALL + CAST( N
e760: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
e770: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
e780: 31 2c 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  1, tab2 AS cor0.
e790: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
e7a0: 68 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61 37  hashing to cd7a7
e7b0: 39 30 31 65 34 37 63 31 35 31 35 35 34 30 34 61  901e47c15155404a
e7c0: 66 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a 73  ff0d216fe0b....s
e7d0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
e7e0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
e7f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e800: 62 65 6c 2d 33 33 31 0d 0a 53 45 4c 45 43 54 20  bel-331..SELECT 
e810: 41 4c 4c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ALL + CAST ( NUL
e820: 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
e830: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
e840: 2c 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  , tab2 AS cor0..
e850: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
e860: 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39  ashing to cd7a79
e870: 30 31 65 34 37 63 31 35 31 35 35 34 30 34 61 66  01e47c15155404af
e880: 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a 6f 6e  f0d216fe0b....on
e890: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
e8a0: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
e8b0: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
e8c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e8d0: 33 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  32..SELECT DISTI
e8e0: 4e 43 54 20 2b 20 30 20 2b 20 2b 20 43 41 53 54  NCT + 0 + + CAST
e8f0: 28 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 53 49  ( - - col0 AS SI
e900: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32  GNED ) FROM tab2
e910: 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a  ..----..46..64..
e920: 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  75....skipif mys
e930: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
e940: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
e950: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 32 0d 0a  sort label-332..
e960: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
e970: 2b 20 30 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  + 0 + + CAST ( -
e980: 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   - col0 AS INTEG
e990: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  ER ) FROM tab2..
e9a0: 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35  ----..46..64..75
e9b0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
e9c0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
e9d0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
e9e0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 33  owsort label-333
e9f0: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
ea00: 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
ea10: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
ea20: 20 42 45 54 57 45 45 4e 20 2b 20 39 37 20 41 4e   BETWEEN + 97 AN
ea30: 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  D NULL..----..0.
ea40: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
ea50: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
ea60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ea70: 74 20 6c 61 62 65 6c 2d 33 33 33 0d 0a 53 45 4c  t label-333..SEL
ea80: 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
ea90: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
eaa0: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  0 WHERE NULL BET
eab0: 57 45 45 4e 20 2b 20 39 37 20 41 4e 44 20 4e 55  WEEN + 97 AND NU
eac0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  LL..----..0....q
ead0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
eae0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
eaf0: 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c  + col0 + + + col
eb00: 30 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  0 * + col0 AS co
eb10: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
eb20: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 30 0d  cor0..----..240.
eb30: 0a 37 36 35 36 0d 0a 39 35 30 36 0d 0a 0d 0a 6f  .7656..9506....o
eb40: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
eb50: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
eb60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
eb70: 74 20 6c 61 62 65 6c 2d 33 33 35 0d 0a 53 45 4c  t label-335..SEL
eb80: 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28 20 41  ECT ALL - MAX( A
eb90: 4c 4c 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63  LL + col1 ) AS c
eba0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
ebb0: 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b 69 70  ---..-77....skip
ebc0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
ebd0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
ebe0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ebf0: 2d 33 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -335..SELECT ALL
ec00: 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 63   - MAX ( ALL + c
ec10: 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
ec20: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
ec30: 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  77....onlyif mys
ec40: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
ec50: 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
ec60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ec70: 74 20 6c 61 62 65 6c 2d 33 33 36 0d 0a 53 45 4c  t label-336..SEL
ec80: 45 43 54 20 2b 20 38 34 20 2a 20 2b 20 2b 20 43  ECT + 84 * + + C
ec90: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
eca0: 49 4d 41 4c 20 29 20 63 6f 6c 32 20 46 52 4f 4d  IMAL ) col2 FROM
ecb0: 20 28 20 74 61 62 30 20 63 6f 72 30 20 43 52 4f   ( tab0 cor0 CRO
ecc0: 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
ecd0: 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  cor1 )..----..9 
ece0: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
ecf0: 6f 20 63 64 37 61 37 39 30 31 65 34 37 63 31 35  o cd7a7901e47c15
ed00: 31 35 35 34 30 34 61 66 66 30 64 32 31 36 66 65  155404aff0d216fe
ed10: 30 62 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  0b....skipif mys
ed20: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
ed30: 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
ed40: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
ed50: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
ed60: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
ed70: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
ed80: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
ed90: 62 65 6c 2d 33 33 36 0d 0a 53 45 4c 45 43 54 20  bel-336..SELECT 
eda0: 2b 20 38 34 20 2a 20 2b 20 2b 20 43 41 53 54 20  + 84 * + + CAST 
edb0: 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
edc0: 20 63 6f 6c 32 20 46 52 4f 4d 20 28 20 74 61 62   col2 FROM ( tab
edd0: 30 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  0 cor0 CROSS JOI
ede0: 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 20 29  N tab1 AS cor1 )
edf0: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
ee00: 20 68 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61   hashing to cd7a
ee10: 37 39 30 31 65 34 37 63 31 35 31 35 35 34 30 34  7901e47c15155404
ee20: 61 66 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a  aff0d216fe0b....
ee30: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
ee40: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
ee50: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
ee60: 2b 20 63 6f 6c 32 20 2a 20 2b 20 38 36 20 3c 3e  + col2 * + 86 <>
ee70: 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col0..----...
ee80: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
ee90: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
eea0: 43 54 20 2b 20 38 37 20 41 53 20 63 6f 6c 31 2c  CT + 87 AS col1,
eeb0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
eec0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  AS cor0..----..8
eed0: 37 0d 0a 34 36 0d 0a 38 37 0d 0a 36 34 0d 0a 38  7..46..87..64..8
eee0: 37 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  7..75....onlyif 
eef0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
ef00: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
ef10: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
ef20: 6c 2d 33 33 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-339..SELECT DI
ef30: 53 54 49 4e 43 54 20 2b 20 2d 20 4d 41 58 28 20  STINCT + - MAX( 
ef40: 44 49 53 54 49 4e 43 54 20 2b 20 31 37 20 29 20  DISTINCT + 17 ) 
ef50: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
ef60: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
ef70: 0a 2d 31 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-17....skipif m
ef80: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
ef90: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
efa0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 39  owsort label-339
efb0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
efc0: 54 20 2b 20 2d 20 4d 41 58 20 28 20 44 49 53 54  T + - MAX ( DIST
efd0: 49 4e 43 54 20 2b 20 31 37 20 29 20 41 53 20 63  INCT + 17 ) AS c
efe0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
eff0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   cor0..----..-17
f000: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
f010: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
f020: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
f030: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
f040: 6c 61 62 65 6c 2d 33 34 30 0d 0a 53 45 4c 45 43  label-340..SELEC
f050: 54 20 37 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f  T 70 AS col2, co
f060: 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 43 41  l2 + - col0 + CA
f070: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
f080: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  ED ) FROM tab1 A
f090: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 30  S cor0..----..70
f0a0: 0d 0a 4e 55 4c 4c 0d 0a 37 30 0d 0a 4e 55 4c 4c  ..NULL..70..NULL
f0b0: 0d 0a 37 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ..70..NULL....sk
f0c0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
f0d0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
f0e0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
f0f0: 62 65 6c 2d 33 34 30 0d 0a 53 45 4c 45 43 54 20  bel-340..SELECT 
f100: 37 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32  70 AS col2, col2
f110: 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 43 41 53 54   + - col0 + CAST
f120: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
f130: 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  ER ) FROM tab1 A
f140: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 30  S cor0..----..70
f150: 0d 0a 4e 55 4c 4c 0d 0a 37 30 0d 0a 4e 55 4c 4c  ..NULL..70..NULL
f160: 0d 0a 37 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ..70..NULL....qu
f170: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
f180: 45 4c 45 43 54 20 2b 20 39 34 20 46 52 4f 4d 20  ELECT + 94 FROM 
f190: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
f1a0: 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
f1b0: 42 45 54 57 45 45 4e 20 2d 20 36 33 20 41 4e 44  BETWEEN - 63 AND
f1c0: 20 2b 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d   + - col0..----.
f1d0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
f1e0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
f1f0: 6f 6c 31 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  ol1 + col2 AS co
f200: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
f210: 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 4f 54  cor0 WHERE ( NOT
f220: 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 63   ( NOT NULL <= c
f230: 6f 6c 31 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  ol1 ) )..----...
f240: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
f250: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
f260: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
f270: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f280: 6c 2d 33 34 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-343..SELECT - 
f290: 43 41 53 54 28 20 2d 20 43 41 53 54 28 20 4e 55  CAST( - CAST( NU
f2a0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
f2b0: 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
f2c0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
f2d0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
f2e0: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
f2f0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
f300: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
f310: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 33  owsort label-343
f320: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20  ..SELECT - CAST 
f330: 28 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ( - CAST ( NULL 
f340: 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
f350: 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
f360: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
f370: 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
f380: 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
f390: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
f3a0: 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
f3b0: 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
f3c0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 34 0d 0a  sort label-344..
f3d0: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
f3e0: 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b1 cor0 WHERE NO
f3f0: 54 20 32 30 20 2a 20 2b 20 43 41 53 54 28 20 4e  T 20 * + CAST( N
f400: 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
f410: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
f420: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
f430: 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
f440: 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
f450: 65 34 64 35 34 63 61 64 0d 0a 0d 0a 73 6b 69 70  e4d54cad....skip
f460: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
f470: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
f480: 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
f490: 65 6c 2d 33 34 34 0d 0a 53 45 4c 45 43 54 20 2a  el-344..SELECT *
f4a0: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
f4b0: 57 48 45 52 45 20 4e 4f 54 20 32 30 20 2a 20 2b  WHERE NOT 20 * +
f4c0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
f4d0: 52 45 41 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55  REAL ) IS NOT NU
f4e0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
f4f0: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
f500: 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
f510: 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
f520: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
f530: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
f540: 43 54 20 2b 20 63 6f 6c 31 20 2f 20 63 6f 6c 30  CT + col1 / col0
f550: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
f560: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  r0 WHERE NULL IS
f570: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
f580: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
f590: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
f5a0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
f5b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f5c0: 62 65 6c 2d 33 34 36 0d 0a 53 45 4c 45 43 54 20  bel-346..SELECT 
f5d0: 63 6f 6c 32 20 2a 20 2d 20 35 31 20 2b 20 2d 20  col2 * - 51 + - 
f5e0: 63 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c 31 20  col0 DIV + col1 
f5f0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
f600: 4e 4f 54 20 2b 20 36 30 20 2b 20 2d 20 2b 20 35  NOT + 60 + - + 5
f610: 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  9 IS NULL..----.
f620: 0a 2d 33 30 32 36 0d 0a 2d 33 34 36 39 0d 0a 2d  .-3026..-3469..-
f630: 34 38 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  4899....skipif m
f640: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
f650: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
f660: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 36  owsort label-346
f670: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20  ..SELECT col2 * 
f680: 2d 20 35 31 20 2b 20 2d 20 63 6f 6c 30 20 2f 20  - 51 + - col0 / 
f690: 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  + col1 FROM tab1
f6a0: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 36 30 20   WHERE NOT + 60 
f6b0: 2b 20 2d 20 2b 20 35 39 20 49 53 20 4e 55 4c 4c  + - + 59 IS NULL
f6c0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 32 36 0d 0a 2d  ..----..-3026..-
f6d0: 33 34 36 39 0d 0a 2d 34 38 39 39 0d 0a 0d 0a 6f  3469..-4899....o
f6e0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
f6f0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
f700: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
f710: 72 74 20 6c 61 62 65 6c 2d 33 34 37 0d 0a 53 45  rt label-347..SE
f720: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2d 20  LECT + COUNT( - 
f730: 2d 20 37 32 20 29 2c 20 2b 20 43 4f 55 4e 54 28  - 72 ), + COUNT(
f740: 20 36 39 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   69 ) FROM tab0.
f750: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73  .----..3..3....s
f760: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
f770: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
f780: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
f790: 61 62 65 6c 2d 33 34 37 0d 0a 53 45 4c 45 43 54  abel-347..SELECT
f7a0: 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 2d 20 37   + COUNT ( - - 7
f7b0: 32 20 29 2c 20 2b 20 43 4f 55 4e 54 20 28 20 36  2 ), + COUNT ( 6
f7c0: 39 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  9 ) FROM tab0..-
f7d0: 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ---..3..3....onl
f7e0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
f7f0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
f800: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f810: 6c 61 62 65 6c 2d 33 34 38 0d 0a 53 45 4c 45 43  label-348..SELEC
f820: 54 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43  T + MAX( DISTINC
f830: 54 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2a 20 2b  T + + col2 ) * +
f840: 20 2d 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20   - ( + COUNT( * 
f850: 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ) ) AS col0 FROM
f860: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   tab2..----..-17
f870: 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
f880: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f890: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f8a0: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 38 0d 0a 53  ort label-348..S
f8b0: 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 44 49  ELECT + MAX ( DI
f8c0: 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32 20  STINCT + + col2 
f8d0: 29 20 2a 20 2b 20 2d 20 28 20 2b 20 43 4f 55 4e  ) * + - ( + COUN
f8e0: 54 20 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c  T ( * ) ) AS col
f8f0: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
f900: 2d 0d 0a 2d 31 37 34 0d 0a 0d 0a 6f 6e 6c 79 69  -..-174....onlyi
f910: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
f920: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
f930: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
f940: 62 65 6c 2d 33 34 39 0d 0a 53 45 4c 45 43 54 20  bel-349..SELECT 
f950: 2d 20 32 35 20 2a 20 2b 20 43 4f 55 4e 54 28 20  - 25 * + COUNT( 
f960: 41 4c 4c 20 2d 20 2b 20 36 20 29 20 2a 20 2d 20  ALL - + 6 ) * - 
f970: 2b 20 38 39 20 2b 20 2b 20 35 34 20 46 52 4f 4d  + 89 + + 54 FROM
f980: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 37 32   tab0..----..672
f990: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
f9a0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
f9b0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
f9c0: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 39 0d 0a 53  ort label-349..S
f9d0: 45 4c 45 43 54 20 2d 20 32 35 20 2a 20 2b 20 43  ELECT - 25 * + C
f9e0: 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 2b 20 36  OUNT ( ALL - + 6
f9f0: 20 29 20 2a 20 2d 20 2b 20 38 39 20 2b 20 2b 20   ) * - + 89 + + 
fa00: 35 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  54 FROM tab0..--
fa10: 2d 2d 0d 0a 36 37 32 39 0d 0a 0d 0a 6f 6e 6c 79  --..6729....only
fa20: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
fa30: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
fa40: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
fa50: 61 62 65 6c 2d 33 35 30 0d 0a 53 45 4c 45 43 54  abel-350..SELECT
fa60: 20 53 55 4d 28 20 2b 20 2b 20 63 6f 6c 30 20 29   SUM( + + col0 )
fa70: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
fa80: 0d 0a 32 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..227....skipif 
fa90: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
faa0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
fab0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35  rowsort label-35
fac0: 30 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20 28 20  0..SELECT SUM ( 
fad0: 2b 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  + + col0 ) FROM 
fae0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d  tab1..----..227.
faf0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
fb00: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
fb10: 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41 53  l1 * - + col0 AS
fb20: 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 20 2b 20   col2, - col2 + 
fb30: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
fb40: 2d 2d 2d 2d 0d 0a 2d 31 32 31 35 0d 0a 30 0d 0a  ----..-1215..0..
fb50: 2d 31 38 32 37 0d 0a 30 0d 0a 2d 39 37 0d 0a 30  -1827..0..-97..0
fb60: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
fb70: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
fb80: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
fb90: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
fba0: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
fbb0: 4c 20 41 4e 44 20 2b 20 33 31 0d 0a 2d 2d 2d 2d  L AND + 31..----
fbc0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
fbd0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
fbe0: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  L * FROM tab2 AS
fbf0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
fc00: 4e 55 4c 4c 20 49 4e 20 28 20 33 39 20 2a 20 2d  NULL IN ( 39 * -
fc10: 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 30 20 29 0d   col0, + col0 ).
fc20: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
fc30: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
fc40: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
fc50: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
fc60: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
fc70: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
fc80: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 28 20  t..SELECT - + ( 
fc90: 2b 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20 46 52  + col0 ) col0 FR
fca0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
fcb0: 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d  .----..-51..-85.
fcc0: 0a 2d 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-91....query I 
fcd0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
fce0: 2d 20 28 20 63 6f 6c 31 20 29 20 2b 20 2d 20 37  - ( col1 ) + - 7
fcf0: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
fd00: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 32 0d  or0..----..-152.
fd10: 0a 2d 37 32 0d 0a 2d 39 32 0d 0a 0d 0a 71 75 65  .-72..-92....que
fd20: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
fd30: 4c 45 43 54 20 2b 20 38 20 2a 20 2b 20 31 30 20  LECT + 8 * + 10 
fd40: 2b 20 28 20 31 39 20 29 20 41 53 20 63 6f 6c 32  + ( 19 ) AS col2
fd50: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
fd60: 0d 0a 39 39 0d 0a 39 39 0d 0a 39 39 0d 0a 0d 0a  ..99..99..99....
fd70: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
fd80: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
fd90: 20 2b 20 31 38 20 2b 20 2d 20 33 37 20 41 53 20   + 18 + - 37 AS 
fda0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
fdb0: 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 0d 0a 6f 6e 6c  ----..-19....onl
fdc0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
fdd0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
fde0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fdf0: 6c 61 62 65 6c 2d 33 35 38 0d 0a 53 45 4c 45 43  label-358..SELEC
fe00: 54 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20  T MIN( DISTINCT 
fe10: 2d 20 33 37 20 29 20 63 6f 6c 31 20 46 52 4f 4d  - 37 ) col1 FROM
fe20: 20 28 20 74 61 62 30 20 41 53 20 63 6f 72 30 20   ( tab0 AS cor0 
fe30: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20  CROSS JOIN tab0 
fe40: 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d  AS cor1 )..----.
fe50: 0a 2d 33 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-37....skipif m
fe60: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
fe70: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
fe80: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
fe90: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
fea0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
feb0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
fec0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
fed0: 6c 61 62 65 6c 2d 33 35 38 0d 0a 53 45 4c 45 43  label-358..SELEC
fee0: 54 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  T MIN ( DISTINCT
fef0: 20 2d 20 33 37 20 29 20 63 6f 6c 31 20 46 52 4f   - 37 ) col1 FRO
ff00: 4d 20 28 20 74 61 62 30 20 41 53 20 63 6f 72 30  M ( tab0 AS cor0
ff10: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
ff20: 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d   AS cor1 )..----
ff30: 0d 0a 2d 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-37....onlyif 
ff40: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
ff50: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
ff60: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ff70: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 39 0d 0a 53  ort label-359..S
ff80: 45 4c 45 43 54 20 35 35 20 2b 20 31 33 20 44 49  ELECT 55 + 13 DI
ff90: 56 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  V col2 FROM tab1
ffa0: 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 35 35 0d 0a  ..----..55..55..
ffb0: 35 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  55....skipif mys
ffc0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
ffd0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
ffe0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 39 0d 0a  sort label-359..
fff0: 53 45 4c 45 43 54 20 35 35 20 2b 20 31 33 20 2f  SELECT 55 + 13 /
10000 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
10010 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 35 35 0d 0a 35  .----..55..55..5
10020 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
10030 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
10040 4c 20 2b 20 2d 20 63 6f 6c 30 2c 20 2b 20 37 36  L + - col0, + 76
10050 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
10060 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
10070 0d 0a 2d 31 35 0d 0a 37 36 0d 0a 2d 38 37 0d 0a  ..-15..76..-87..
10080 37 36 0d 0a 2d 39 37 0d 0a 37 36 0d 0a 0d 0a 71  76..-97..76....q
10090 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
100a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
100b0 2d 20 37 33 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  - 73 * + col1 + 
100c0 31 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  1 + - col1 AS co
100d0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
100e0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
100f0 6f 6c 32 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol2 > NULL..----
10100 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
10110 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
10120 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
10130 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 32  owsort label-362
10140 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 63 6f  ..SELECT MAX( co
10150 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l0 ) FROM tab0 A
10160 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37  S cor0..----..97
10170 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
10180 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
10190 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
101a0 72 74 20 6c 61 62 65 6c 2d 33 36 32 0d 0a 53 45  rt label-362..SE
101b0 4c 45 43 54 20 4d 41 58 20 28 20 63 6f 6c 30 20  LECT MAX ( col0 
101c0 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
101d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d  or0..----..97...
101e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
101f0 0d 0a 53 45 4c 45 43 54 20 2d 20 34 36 20 2b 20  ..SELECT - 46 + 
10200 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20  - col1 + + col1 
10210 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
10220 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  0 WHERE NULL NOT
10230 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
10240 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
10250 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
10260 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
10270 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30   + col1 * + col0
10280 20 2b 20 2b 20 36 20 2d 20 2b 20 2d 20 63 6f 6c   + + 6 - + - col
10290 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
102a0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
102b0 2d 0d 0a 32 33 39 38 0d 0a 34 39 39 38 0d 0a 35  -..2398..4998..5
102c0 31 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  106....query I r
102d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
102e0 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 31   col1 * + + col1
102f0 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 34 20   - + col0 + + 4 
10300 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
10310 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
10320 0a 2d 39 32 0d 0a 33 35 38 0d 0a 36 35 35 30 0d  .-92..358..6550.
10330 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
10340 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
10350 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
10360 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
10370 20 29 20 49 4e 20 28 20 63 6f 6c 31 20 2f 20 2d   ) IN ( col1 / -
10380 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
10390 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
103a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
103b0 54 20 2d 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 32  T - - ( - + col2
103c0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
103d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d  cor0..----..-59.
103e0 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c  .-68..-96....onl
103f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
10400 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
10410 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10420 6c 61 62 65 6c 2d 33 36 38 0d 0a 53 45 4c 45 43  label-368..SELEC
10430 54 20 4d 41 58 28 20 2d 20 32 35 20 29 20 2a 20  T MAX( - 25 ) * 
10440 35 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  52 AS col0 FROM 
10450 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 30  tab0..----..-130
10460 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
10470 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
10480 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
10490 6f 72 74 20 6c 61 62 65 6c 2d 33 36 38 0d 0a 53  ort label-368..S
104a0 45 4c 45 43 54 20 4d 41 58 20 28 20 2d 20 32 35  ELECT MAX ( - 25
104b0 20 29 20 2a 20 35 32 20 41 53 20 63 6f 6c 30 20   ) * 52 AS col0 
104c0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
104d0 0a 2d 31 33 30 30 0d 0a 0d 0a 71 75 65 72 79 20  .-1300....query 
104e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
104f0 43 54 20 41 4c 4c 20 2b 20 34 34 2c 20 2b 20 63  CT ALL + 44, + c
10500 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol0 AS col2 FROM
10510 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d   tab0..----..44.
10520 0a 31 35 0d 0a 34 34 0d 0a 38 37 0d 0a 34 34 0d  .15..44..87..44.
10530 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .97....onlyif my
10540 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
10550 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
10560 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10570 74 20 6c 61 62 65 6c 2d 33 37 30 0d 0a 53 45 4c  t label-370..SEL
10580 45 43 54 20 36 39 20 44 49 56 20 2d 20 63 6f 6c  ECT 69 DIV - col
10590 32 20 2d 20 39 34 20 2b 20 2b 20 28 20 63 6f 6c  2 - 94 + + ( col
105a0 32 20 29 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20  2 ) * - col1 AS 
105b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
105c0 2d 2d 2d 2d 0d 0a 2d 31 32 37 30 0d 0a 2d 33 31  ----..-1270..-31
105d0 37 35 0d 0a 2d 33 39 38 31 0d 0a 0d 0a 73 6b 69  75..-3981....ski
105e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
105f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
10600 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
10610 6c 2d 33 37 30 0d 0a 53 45 4c 45 43 54 20 36 39  l-370..SELECT 69
10620 20 2f 20 2d 20 63 6f 6c 32 20 2d 20 39 34 20 2b   / - col2 - 94 +
10630 20 2b 20 28 20 63 6f 6c 32 20 29 20 2a 20 2d 20   + ( col2 ) * - 
10640 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
10650 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
10660 32 37 30 0d 0a 2d 33 31 37 35 0d 0a 2d 33 39 38  270..-3175..-398
10670 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
10680 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
10690 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
106a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
106b0 6c 61 62 65 6c 2d 33 37 31 0d 0a 53 45 4c 45 43  label-371..SELEC
106c0 54 20 36 37 20 44 49 56 20 2b 20 32 33 20 2d 20  T 67 DIV + 23 - 
106d0 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  - col1 FROM tab2
106e0 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 36 39 0d 0a  ..----..53..69..
106f0 37 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  79....skipif mys
10700 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
10710 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
10720 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 31 0d 0a  sort label-371..
10730 53 45 4c 45 43 54 20 36 37 20 2f 20 2b 20 32 33  SELECT 67 / + 23
10740 20 2d 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   - - col1 FROM t
10750 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 36  ab2..----..53..6
10760 39 0d 0a 37 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  9..79....onlyif 
10770 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
10780 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
10790 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
107a0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 32 0d 0a  sort label-372..
107b0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 44 49  SELECT - col2 DI
107c0 56 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 32 20  V col1 - - col2 
107d0 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20  AS col2, + col0 
107e0 2b 20 2d 20 2b 20 35 34 20 63 6f 6c 32 20 46 52  + - + 54 col2 FR
107f0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
10800 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
10810 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
10820 0d 0a 30 0d 0a 34 33 0d 0a 31 30 0d 0a 33 33 0d  ..0..43..10..33.
10830 0a 34 37 0d 0a 2d 33 39 0d 0a 0d 0a 73 6b 69 70  .47..-39....skip
10840 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
10850 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
10860 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
10870 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
10880 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
10890 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
108a0 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
108b0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 32 0d 0a  sort label-372..
108c0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f 20  SELECT - col2 / 
108d0 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 32 20 41 53  col1 - - col2 AS
108e0 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20 2b 20   col2, + col0 + 
108f0 2d 20 2b 20 35 34 20 63 6f 6c 32 20 46 52 4f 4d  - + 54 col2 FROM
10900 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
10910 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
10920 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
10930 30 0d 0a 34 33 0d 0a 31 30 0d 0a 33 33 0d 0a 34  0..43..10..33..4
10940 37 0d 0a 2d 33 39 0d 0a 0d 0a 71 75 65 72 79 20  7..-39....query 
10950 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
10960 54 20 41 4c 4c 20 2b 20 2b 20 36 30 20 41 53 20  T ALL + + 60 AS 
10970 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
10980 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 30  S cor0..----..60
10990 0d 0a 36 30 0d 0a 36 30 0d 0a 0d 0a 6f 6e 6c 79  ..60..60....only
109a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
109b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
109c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
109d0 61 62 65 6c 2d 33 37 34 0d 0a 53 45 4c 45 43 54  abel-374..SELECT
109e0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
109f0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
10a00 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
10a10 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
10a20 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73  1..----..-9....s
10a30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
10a40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
10a50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
10a60 62 65 6c 2d 33 37 34 0d 0a 53 45 4c 45 43 54 20  bel-374..SELECT 
10a70 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
10a80 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
10a90 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
10aa0 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
10ab0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 6f  1..----..-9....o
10ac0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
10ad0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
10ae0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10af0 74 20 6c 61 62 65 6c 2d 33 37 35 0d 0a 53 45 4c  t label-375..SEL
10b00 45 43 54 20 41 4c 4c 20 28 20 2b 20 2b 20 4d 41  ECT ALL ( + + MA
10b10 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20  X( ALL - col1 ) 
10b20 29 20 2a 20 2d 20 2d 20 32 33 20 46 52 4f 4d 20  ) * - - 23 FROM 
10b30 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
10b40 2d 2d 0d 0a 2d 31 31 35 0d 0a 0d 0a 73 6b 69 70  --..-115....skip
10b50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
10b60 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
10b70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10b80 2d 33 37 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -375..SELECT ALL
10b90 20 28 20 2b 20 2b 20 4d 41 58 20 28 20 41 4c 4c   ( + + MAX ( ALL
10ba0 20 2d 20 63 6f 6c 31 20 29 20 29 20 2a 20 2d 20   - col1 ) ) * - 
10bb0 2d 20 32 33 20 46 52 4f 4d 20 74 61 62 31 20 41  - 23 FROM tab1 A
10bc0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
10bd0 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  15....onlyif mys
10be0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
10bf0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
10c00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10c10 20 6c 61 62 65 6c 2d 33 37 36 0d 0a 53 45 4c 45   label-376..SELE
10c20 43 54 20 2d 20 63 6f 6c 30 20 44 49 56 20 2d 20  CT - col0 DIV - 
10c30 32 36 20 2b 20 2d 20 35 31 20 2b 20 2d 20 2b 20  26 + - 51 + - + 
10c40 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
10c50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
10c60 30 31 0d 0a 2d 31 33 33 0d 0a 2d 31 33 39 0d 0a  01..-133..-139..
10c70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10c80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10c90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10ca0 20 6c 61 62 65 6c 2d 33 37 36 0d 0a 53 45 4c 45   label-376..SELE
10cb0 43 54 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 32 36  CT - col0 / - 26
10cc0 20 2b 20 2d 20 35 31 20 2b 20 2d 20 2b 20 63 6f   + - 51 + - + co
10cd0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
10ce0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 31  cor0..----..-101
10cf0 0d 0a 2d 31 33 33 0d 0a 2d 31 33 39 0d 0a 0d 0a  ..-133..-139....
10d00 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
10d10 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
10d20 41 53 20 63 6f 6c 32 2c 20 35 20 46 52 4f 4d 20  AS col2, 5 FROM 
10d30 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
10d40 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
10d50 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
10d60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
10d70 4c 45 43 54 20 2b 20 2d 20 39 32 20 46 52 4f 4d  LECT + - 92 FROM
10d80 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
10d90 0d 0a 2d 39 32 0d 0a 2d 39 32 0d 0a 2d 39 32 0d  ..-92..-92..-92.
10da0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
10db0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
10dc0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
10dd0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
10de0 61 62 65 6c 2d 33 37 39 0d 0a 53 45 4c 45 43 54  abel-379..SELECT
10df0 20 2b 20 28 20 2b 20 35 20 29 20 63 6f 6c 32 2c   + ( + 5 ) col2,
10e00 20 38 38 20 2b 20 2d 20 43 41 53 54 28 20 4e 55   88 + - CAST( NU
10e10 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
10e20 20 2b 20 2b 20 28 20 63 6f 6c 32 20 29 20 2a 20   + + ( col2 ) * 
10e30 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c  + col2 + + - col
10e40 32 20 2d 20 2b 20 2d 20 37 20 46 52 4f 4d 20 74  2 - + - 7 FROM t
10e50 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
10e60 2d 0d 0a 35 0d 0a 4e 55 4c 4c 0d 0a 35 0d 0a 4e  -..5..NULL..5..N
10e70 55 4c 4c 0d 0a 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ULL..5..NULL....
10e80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
10e90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
10ea0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
10eb0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
10ec0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
10ed0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
10ee0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
10ef0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10f00 37 39 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2b  79..SELECT + ( +
10f10 20 35 20 29 20 63 6f 6c 32 2c 20 38 38 20 2b 20   5 ) col2, 88 + 
10f20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
10f30 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 2b   INTEGER ) * + +
10f40 20 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63 6f   ( col2 ) * + co
10f50 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 2d 20  l2 + + - col2 - 
10f60 2b 20 2d 20 37 20 46 52 4f 4d 20 74 61 62 31 20  + - 7 FROM tab1 
10f70 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
10f80 0d 0a 4e 55 4c 4c 0d 0a 35 0d 0a 4e 55 4c 4c 0d  ..NULL..5..NULL.
10f90 0a 35 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  .5..NULL....quer
10fa0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
10fb0 4c 45 43 54 20 41 4c 4c 20 2b 20 35 38 2c 20 2d  LECT ALL + 58, -
10fc0 20 33 38 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f   38 * col0 AS co
10fd0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
10fe0 2d 2d 0d 0a 35 38 0d 0a 2d 31 37 34 38 0d 0a 35  --..58..-1748..5
10ff0 38 0d 0a 2d 32 34 33 32 0d 0a 35 38 0d 0a 2d 32  8..-2432..58..-2
11000 38 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  850....onlyif my
11010 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
11020 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
11030 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11040 74 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45 4c  t label-381..SEL
11050 45 43 54 20 43 41 53 54 28 20 2b 20 34 36 20 41  ECT CAST( + 46 A
11060 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
11070 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
11080 2d 2d 0d 0a 34 36 0d 0a 34 36 0d 0a 34 36 0d 0a  --..46..46..46..
11090 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
110a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
110b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
110c0 20 6c 61 62 65 6c 2d 33 38 31 0d 0a 53 45 4c 45   label-381..SELE
110d0 43 54 20 43 41 53 54 20 28 20 2b 20 34 36 20 41  CT CAST ( + 46 A
110e0 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
110f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
11100 2d 2d 2d 0d 0a 34 36 0d 0a 34 36 0d 0a 34 36 0d  ---..46..46..46.
11110 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
11120 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
11130 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
11140 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 32 0d  wsort label-382.
11150 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
11160 20 2b 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d   + - col1 ) FROM
11170 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   tab0..----..-3.
11180 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11190 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
111a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
111b0 74 20 6c 61 62 65 6c 2d 33 38 32 0d 0a 53 45 4c  t label-382..SEL
111c0 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20  ECT - COUNT ( + 
111d0 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
111e0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  b0..----..-3....
111f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11200 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 20  .SELECT ALL + 6 
11210 2b 20 2b 20 2d 20 36 20 46 52 4f 4d 20 74 61 62  + + - 6 FROM tab
11220 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  1..----..0..0..0
11230 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
11240 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
11250 49 4e 43 54 20 2b 20 31 33 20 2b 20 2b 20 2d 20  INCT + 13 + + - 
11260 34 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  46 AS col1 FROM 
11270 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 0d  tab0..----..-33.
11280 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
11290 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
112a0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
112b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
112c0 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c 45 43  label-385..SELEC
112d0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
112e0 45 52 45 20 4e 55 4c 4c 20 3d 20 2b 20 43 41 53  ERE NULL = + CAS
112f0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
11300 44 20 29 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 2b  D ) + - col1 - +
11310 20 39 36 20 2b 20 2d 20 2d 20 37 39 20 2a 20 2b   96 + - - 79 * +
11320 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   col1..----....s
11330 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
11340 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
11350 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
11360 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c 45 43  label-385..SELEC
11370 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
11380 45 52 45 20 4e 55 4c 4c 20 3d 20 2b 20 43 41 53  ERE NULL = + CAS
11390 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
113a0 47 45 52 20 29 20 2b 20 2d 20 63 6f 6c 31 20 2d  GER ) + - col1 -
113b0 20 2b 20 39 36 20 2b 20 2d 20 2d 20 37 39 20 2a   + 96 + - - 79 *
113c0 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col1..----...
113d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
113e0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
113f0 4d 20 74 61 62 32 20 57 48 45 52 45 20 31 30 20  M tab2 WHERE 10 
11400 3e 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  > + col1..----..
11410 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
11420 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
11430 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d 20  OM tab0 WHERE - 
11440 2d 20 32 33 20 2d 20 2d 20 33 20 49 53 20 4e 55  - 23 - - 3 IS NU
11450 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
11460 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
11470 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
11480 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
11490 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
114a0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
114b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
114c0 30 20 2a 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 33  0 * col0 * + - 3
114d0 32 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 63 6f 6c  2 + - + col0 col
114e0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
114f0 2d 0d 0a 2d 32 33 31 32 38 35 0d 0a 2d 32 36 35  -..-231285..-265
11500 30 38 33 0d 0a 2d 38 33 32 38 33 0d 0a 0d 0a 71  083..-83283....q
11510 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
11520 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
11530 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c   + col0 AS col0,
11540 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 37 20 41 53   - col1 * - 7 AS
11550 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
11560 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
11570 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
11580 0d 0a 34 36 0d 0a 33 35 37 0d 0a 36 34 0d 0a 35  ..46..357..64..5
11590 33 39 0d 0a 37 35 0d 0a 34 36 39 0d 0a 0d 0a 6f  39..75..469....o
115a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
115b0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
115c0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
115d0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
115e0 2d 33 39 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -390..SELECT ALL
115f0 20 2d 20 63 6f 6c 32 2c 20 2d 20 43 41 53 54 28   - col2, - CAST(
11600 20 39 34 20 41 53 20 53 49 47 4e 45 44 20 29 20   94 AS SIGNED ) 
11610 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
11620 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
11630 0a 2d 35 39 0d 0a 2d 39 34 0d 0a 2d 36 38 0d 0a  .-59..-94..-68..
11640 2d 39 34 0d 0a 2d 39 36 0d 0a 2d 39 34 0d 0a 0d  -94..-96..-94...
11650 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11660 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11670 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
11680 20 6c 61 62 65 6c 2d 33 39 30 0d 0a 53 45 4c 45   label-390..SELE
11690 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 2c 20 2d  CT ALL - col2, -
116a0 20 43 41 53 54 20 28 20 39 34 20 41 53 20 49 4e   CAST ( 94 AS IN
116b0 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20  TEGER ) AS col1 
116c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
116d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 39  0..----..-59..-9
116e0 34 0d 0a 2d 36 38 0d 0a 2d 39 34 0d 0a 2d 39 36  4..-68..-94..-96
116f0 0d 0a 2d 39 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-94....onlyif 
11700 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
11710 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
11720 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
11730 6f 72 74 20 6c 61 62 65 6c 2d 33 39 31 0d 0a 53  ort label-391..S
11740 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
11750 20 37 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   74 AS col1 FROM
11760 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
11770 45 52 45 20 32 37 20 42 45 54 57 45 45 4e 20 28  ERE 27 BETWEEN (
11780 20 4e 55 4c 4c 20 29 20 41 4e 44 20 2d 20 43 41   NULL ) AND - CA
11790 53 54 28 20 34 36 20 41 53 20 53 49 47 4e 45 44  ST( 46 AS SIGNED
117a0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
117b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
117c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
117d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
117e0 2d 33 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -391..SELECT DIS
117f0 54 49 4e 43 54 20 2b 20 37 34 20 41 53 20 63 6f  TINCT + 74 AS co
11800 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
11810 63 6f 72 30 20 57 48 45 52 45 20 32 37 20 42 45  cor0 WHERE 27 BE
11820 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41  TWEEN ( NULL ) A
11830 4e 44 20 2d 20 43 41 53 54 20 28 20 34 36 20 41  ND - CAST ( 46 A
11840 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d  S INTEGER )..---
11850 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
11860 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
11870 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
11880 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
11890 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  2..SELECT ALL MA
118a0 58 28 20 2b 20 31 38 20 29 20 46 52 4f 4d 20 74  X( + 18 ) FROM t
118b0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
118c0 2d 0d 0a 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..18....skipif 
118d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
118e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
118f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
11900 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41  2..SELECT ALL MA
11910 58 20 28 20 2b 20 31 38 20 29 20 46 52 4f 4d 20  X ( + 18 ) FROM 
11920 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
11930 2d 2d 0d 0a 31 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..18....onlyif
11940 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
11950 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
11960 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
11970 62 65 6c 2d 33 39 33 0d 0a 53 45 4c 45 43 54 20  bel-393..SELECT 
11980 41 4c 4c 20 2b 20 2d 20 32 31 20 41 53 20 63 6f  ALL + - 21 AS co
11990 6c 32 2c 20 53 55 4d 28 20 44 49 53 54 49 4e 43  l2, SUM( DISTINC
119a0 54 20 2d 20 31 38 20 29 20 2b 20 2b 20 38 37 20  T - 18 ) + + 87 
119b0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
119c0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  0 cor0..----..-2
119d0 31 0d 0a 36 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  1..69....skipif 
119e0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
119f0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
11a00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11a10 39 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  93..SELECT ALL +
11a20 20 2d 20 32 31 20 41 53 20 63 6f 6c 32 2c 20 53   - 21 AS col2, S
11a30 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UM ( DISTINCT - 
11a40 31 38 20 29 20 2b 20 2b 20 38 37 20 41 53 20 63  18 ) + + 87 AS c
11a50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
11a60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 36  r0..----..-21..6
11a70 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
11a80 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
11a90 20 2d 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 32 20   - - ( - + col2 
11aa0 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
11ab0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  or0..----..-10..
11ac0 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79  -47..-99....only
11ad0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
11ae0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
11af0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
11b00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 35  owsort label-395
11b10 0d 0a 53 45 4c 45 43 54 20 2b 20 32 37 20 2b 20  ..SELECT + 27 + 
11b20 2b 20 43 41 53 54 28 20 2d 20 2d 20 63 6f 6c 32  + CAST( - - col2
11b30 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
11b40 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
11b50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32  S cor0..----..12
11b60 33 0d 0a 38 36 0d 0a 39 35 0d 0a 0d 0a 73 6b 69  3..86..95....ski
11b70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11b80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11b90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11ba0 6c 2d 33 39 35 0d 0a 53 45 4c 45 43 54 20 2b 20  l-395..SELECT + 
11bb0 32 37 20 2b 20 2b 20 43 41 53 54 20 28 20 2d 20  27 + + CAST ( - 
11bc0 2d 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  - col2 AS INTEGE
11bd0 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  R ) AS col0 FROM
11be0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
11bf0 2d 2d 2d 0d 0a 31 32 33 0d 0a 38 36 0d 0a 39 35  ---..123..86..95
11c00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
11c10 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
11c20 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  tax: DIV for int
11c30 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
11c40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11c50 20 6c 61 62 65 6c 2d 33 39 36 0d 0a 53 45 4c 45   label-396..SELE
11c60 43 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20  CT + - COUNT( * 
11c70 29 20 44 49 56 20 2b 20 2d 20 43 4f 55 4e 54 28  ) DIV + - COUNT(
11c80 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
11c90 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
11ca0 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d  N tab0 cor1..---
11cb0 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..1....skipif m
11cc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11cd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11ce0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 36  owsort label-396
11cf0 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55  ..SELECT + - COU
11d00 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 2d 20 43  NT ( * ) / + - C
11d10 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
11d20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
11d30 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72  SS JOIN tab0 cor
11d40 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 6f 6e  1..----..1....on
11d50 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
11d60 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
11d70 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
11d80 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
11d90 2d 33 39 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -397..SELECT * F
11da0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
11db0 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  ULL BETWEEN NULL
11dc0 20 41 4e 44 20 2b 20 63 6f 6c 32 20 2b 20 2d 20   AND + col2 + - 
11dd0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
11de0 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a  SIGNED )..----..
11df0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11e00 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11e10 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
11e20 72 74 20 6c 61 62 65 6c 2d 33 39 37 0d 0a 53 45  rt label-397..SE
11e30 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
11e40 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
11e50 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63  EEN NULL AND + c
11e60 6f 6c 32 20 2b 20 2d 20 2d 20 43 41 53 54 20 28  ol2 + - - CAST (
11e70 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
11e80 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
11e90 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
11ea0 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
11eb0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
11ec0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11ed0 39 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  98..SELECT DISTI
11ee0 4e 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b  NCT + + col0 + +
11ef0 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
11f00 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f   DECIMAL ) AS co
11f10 6c 32 2c 20 28 20 2b 20 38 32 20 29 20 2b 20 2b  l2, ( + 82 ) + +
11f20 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30   + col1 * - col0
11f30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
11f40 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
11f50 2d 32 32 36 34 0d 0a 4e 55 4c 4c 0d 0a 2d 34 38  -2264..NULL..-48
11f60 34 36 0d 0a 4e 55 4c 4c 0d 0a 2d 34 39 34 33 0d  46..NULL..-4943.
11f70 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11f80 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11f90 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
11fa0 72 74 20 6c 61 62 65 6c 2d 33 39 38 0d 0a 53 45  rt label-398..SE
11fb0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
11fc0 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 43 41 53  + col0 + + - CAS
11fd0 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
11fe0 20 29 20 41 53 20 63 6f 6c 32 2c 20 28 20 2b 20   ) AS col2, ( + 
11ff0 38 32 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 31 20  82 ) + + + col1 
12000 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * - col0 FROM ta
12010 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
12020 0d 0a 4e 55 4c 4c 0d 0a 2d 32 32 36 34 0d 0a 4e  ..NULL..-2264..N
12030 55 4c 4c 0d 0a 2d 34 38 34 36 0d 0a 4e 55 4c 4c  ULL..-4846..NULL
12040 0d 0a 2d 34 39 34 33 0d 0a 0d 0a 6f 6e 6c 79 69  ..-4943....onlyi
12050 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
12060 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
12070 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
12080 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 39  owsort label-399
12090 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20  ..SELECT col2 * 
120a0 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
120b0 53 20 44 45 43 49 4d 41 4c 20 29 20 2b 20 2d 20  S DECIMAL ) + - 
120c0 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
120d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
120e0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
120f0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
12100 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
12110 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
12120 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
12130 39 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  99..SELECT col2 
12140 2a 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  * + - CAST ( NUL
12150 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20 2d 20  L AS REAL ) + - 
12160 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
12170 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
12180 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
12190 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
121a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
121b0 54 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20  T col1 + + col0 
121c0 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  * - col2 * - col
121d0 30 20 2d 20 38 32 20 41 53 20 63 6f 6c 30 20 46  0 - 82 AS col0 F
121e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
121f0 0d 0a 2d 2d 2d 2d 0d 0a 31 36 33 38 33 35 0d 0a  ..----..163835..
12200 33 32 36 32 33 35 0d 0a 34 38 36 33 37 0d 0a 0d  326235..48637...
12210 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12220 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
12230 2b 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  + + - col2 AS co
12240 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
12250 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38  cor0..----..-198
12260 0d 0a 2d 32 30 0d 0a 2d 39 34 0d 0a 0d 0a 73 6b  ..-20..-94....sk
12270 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
12280 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
12290 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
122a0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
122b0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
122c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
122d0 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 63 6f 6c  ISTINCT col0 col
122e0 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
122f0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63   WHERE NOT ( - c
12300 6f 6c 30 20 29 20 49 4e 20 28 20 63 6f 6c 31 20  ol0 ) IN ( col1 
12310 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d  )..----..15..87.
12320 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .97....onlyif my
12330 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
12340 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
12350 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12360 34 30 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  403..SELECT ALL 
12370 2b 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2d 20 63  + SUM( ALL - - c
12380 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
12390 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab1..----..6
123a0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
123b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
123c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
123d0 6f 72 74 20 6c 61 62 65 6c 2d 34 30 33 0d 0a 53  ort label-403..S
123e0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20  ELECT ALL + SUM 
123f0 28 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 31 20 29  ( ALL - - col1 )
12400 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
12410 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a  b1..----..66....
12420 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
12430 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
12440 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
12450 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
12460 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
12470 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
12480 20 44 49 53 54 49 4e 43 54 20 2b 20 37 33 20 2b   DISTINCT + 73 +
12490 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 28 20 2d 20   - col0 - - ( - 
124a0 2b 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20 46 52  + col0 ) col0 FR
124b0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
124c0 31 30 31 0d 0a 2d 31 32 31 0d 0a 34 33 0d 0a 0d  101..-121..43...
124d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
124e0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41  t..SELECT col2 A
124f0 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 46  S col2, + col2 F
12500 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
12510 32 33 0d 0a 32 33 0d 0a 34 30 0d 0a 34 30 0d 0a  23..23..40..40..
12520 35 38 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  58..58....onlyif
12530 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
12540 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
12550 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12560 65 6c 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20 44  el-406..SELECT D
12570 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 4f 55 4e  ISTINCT + - COUN
12580 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
12590 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
125a0 4f 54 20 63 6f 6c 31 20 2b 20 2b 20 34 38 20 3c  OT col1 + + 48 <
125b0 3e 20 32 34 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  > 24..----..0...
125c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
125d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
125e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
125f0 6c 61 62 65 6c 2d 34 30 36 0d 0a 53 45 4c 45 43  label-406..SELEC
12600 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43  T DISTINCT + - C
12610 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
12620 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l2 FROM tab0 WHE
12630 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2b 20 2b 20  RE NOT col1 + + 
12640 34 38 20 3c 3e 20 32 34 0d 0a 2d 2d 2d 2d 0d 0a  48 <> 24..----..
12650 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
12660 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
12670 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
12680 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c  HERE NOT ( + col
12690 32 20 2f 20 2d 20 34 20 29 20 4e 4f 54 20 42 45  2 / - 4 ) NOT BE
126a0 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 34  TWEEN NULL AND 4
126b0 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  4..----....query
126c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
126d0 43 54 20 2b 20 39 39 20 2a 20 2b 20 2b 20 63 6f  CT + 99 * + + co
126e0 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
126f0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 37  tab2..----..2277
12700 0d 0a 33 39 36 30 0d 0a 35 37 34 32 0d 0a 0d 0a  ..3960..5742....
12710 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
12720 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
12730 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
12740 2d 20 2b 20 63 6f 6c 31 20 42 45 54 57 45 45 4e  - + col1 BETWEEN
12750 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 30   NULL AND + col0
12760 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
12770 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12780 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
12790 30 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b  0 * - col0 * + +
127a0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
127b0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
127c0 36 31 32 35 0d 0a 33 36 34 31 34 0d 0a 33 38 39  6125..36414..389
127d0 32 30 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  207....query III
127e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
127f0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
12800 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
12810 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
12820 20 3c 3e 20 2b 20 2d 20 37 37 0d 0a 2d 2d 2d 2d   <> + - 77..----
12830 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
12840 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
12850 31 36 20 2a 20 2d 20 39 34 20 41 53 20 63 6f 6c  16 * - 94 AS col
12860 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
12870 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 30 34 0d  or0..----..1504.
12880 0a 31 35 30 34 0d 0a 31 35 30 34 0d 0a 0d 0a 6f  .1504..1504....o
12890 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
128a0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
128b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
128c0 74 20 6c 61 62 65 6c 2d 34 31 33 0d 0a 53 45 4c  t label-413..SEL
128d0 45 43 54 20 28 20 4d 49 4e 28 20 2d 20 31 37 20  ECT ( MIN( - 17 
128e0 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
128f0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
12900 2d 2d 2d 0d 0a 2d 31 37 0d 0a 0d 0a 73 6b 69 70  ---..-17....skip
12910 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
12920 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
12930 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12940 2d 34 31 33 0d 0a 53 45 4c 45 43 54 20 28 20 4d  -413..SELECT ( M
12950 49 4e 20 28 20 2d 20 31 37 20 29 20 29 20 41 53  IN ( - 17 ) ) AS
12960 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
12970 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
12980 31 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  17....skipif pos
12990 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
129a0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
129b0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
129c0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
129d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
129e0 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20  SELECT col1 * + 
129f0 2d 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 2b  - ( - + col0 ) +
12a00 20 28 20 2d 20 36 33 20 29 20 63 6f 6c 32 20 46   ( - 63 ) col2 F
12a10 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
12a20 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 32 0d 0a 31 37  ..----..1152..17
12a30 36 34 0d 0a 33 34 0d 0a 0d 0a 71 75 65 72 79 20  64..34....query 
12a40 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
12a50 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
12a60 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
12a70 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 4e 4f 54  E NOT + col0 NOT
12a80 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 30 20   BETWEEN - col0 
12a90 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
12aa0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
12ab0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63  rt..SELECT + + c
12ac0 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b 20 2b 20 28  ol2 * col1 + + (
12ad0 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2b 20 2d 20   - col0 ) + + - 
12ae0 28 20 2d 20 63 6f 6c 30 20 29 2c 20 63 6f 6c 31  ( - col0 ), col1
12af0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
12b00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 33 0d 0a  r0..----..1173..
12b10 35 31 0d 0a 33 30 38 30 0d 0a 37 37 0d 0a 33 38  51..3080..77..38
12b20 38 36 0d 0a 36 37 0d 0a 0d 0a 71 75 65 72 79 20  86..67....query 
12b30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12b40 54 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29  T + + ( - col2 )
12b50 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20   + - col1 * + + 
12b60 32 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  27 AS col2 FROM 
12b70 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
12b80 2d 2d 0d 0a 2d 31 33 33 37 0d 0a 2d 31 39 34 0d  --..-1337..-194.
12b90 0a 2d 34 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49  .-474....query I
12ba0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12bb0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
12bc0 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20  AS col2, + col1 
12bd0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
12be0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d  0..----..15..81.
12bf0 0a 38 37 0d 0a 32 31 0d 0a 39 37 0d 0a 31 0d 0a  .87..21..97..1..
12c00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12c10 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 36 20 2a  t..SELECT + 76 *
12c20 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 33 20   + - col2 + + 3 
12c30 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
12c40 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34 35 0d 0a  0..----..-1745..
12c50 2d 33 30 33 37 0d 0a 2d 34 34 30 35 0d 0a 0d 0a  -3037..-4405....
12c60 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
12c70 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
12c80 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
12c90 72 74 20 6c 61 62 65 6c 2d 34 32 30 0d 0a 53 45  rt label-420..SE
12ca0 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 2d 20  LECT ALL MAX( - 
12cb0 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  - col1 ) FROM ta
12cc0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
12cd0 0d 0a 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..81....skipif m
12ce0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
12cf0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
12d00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 30  owsort label-420
12d10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58  ..SELECT ALL MAX
12d20 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 46 52   ( - - col1 ) FR
12d30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
12d40 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c  .----..81....onl
12d50 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
12d60 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
12d70 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
12d80 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
12d90 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
12da0 43 54 20 2b 20 31 30 20 2a 20 2d 20 2b 20 35 39  CT + 10 * - + 59
12db0 20 2f 20 2d 20 31 35 20 2b 20 2b 20 63 6f 6c 31   / - 15 + + col1
12dc0 20 2f 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   / - + col2 * - 
12dd0 63 6f 6c 30 20 2a 20 2d 20 28 20 63 6f 6c 31 20  col0 * - ( col1 
12de0 29 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 35  ) + + + col2 * 5
12df0 38 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d  8 + + - col2 + -
12e00 20 63 6f 6c 30 20 2d 20 63 6f 6c 32 20 2a 20 2b   col0 - col2 * +
12e10 20 43 41 53 54 28 20 2d 20 2d 20 63 6f 6c 31 20   CAST( - - col1 
12e20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
12e30 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
12e40 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3d 20 4e  ERE ( NULL ) = N
12e50 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
12e60 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
12e70 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
12e80 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12e90 6c 2d 34 32 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-421..SELECT DI
12ea0 53 54 49 4e 43 54 20 2b 20 31 30 20 2a 20 2d 20  STINCT + 10 * - 
12eb0 2b 20 35 39 20 2f 20 2d 20 31 35 20 2b 20 2b 20  + 59 / - 15 + + 
12ec0 63 6f 6c 31 20 2f 20 2d 20 2b 20 63 6f 6c 32 20  col1 / - + col2 
12ed0 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 28 20 63  * - col0 * - ( c
12ee0 6f 6c 31 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 32  ol1 ) + + + col2
12ef0 20 2a 20 35 38 20 2b 20 2b 20 2d 20 63 6f 6c 32   * 58 + + - col2
12f00 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 63 6f 6c 32   + - col0 - col2
12f10 20 2a 20 2b 20 43 41 53 54 20 28 20 2d 20 2d 20   * + CAST ( - - 
12f20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
12f30 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
12f40 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
12f50 20 29 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   ) = NULL..----.
12f60 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12f70 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
12f80 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
12f90 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 32 0d  wsort label-422.
12fa0 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20 2d  .SELECT + MIN( -
12fb0 20 2d 20 38 34 20 29 20 46 52 4f 4d 20 74 61 62   - 84 ) FROM tab
12fc0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
12fd0 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .84....skipif my
12fe0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
12ff0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
13000 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 32 0d  wsort label-422.
13010 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20  .SELECT + MIN ( 
13020 2d 20 2d 20 38 34 20 29 20 46 52 4f 4d 20 74 61  - - 84 ) FROM ta
13030 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
13040 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..84....query II
13050 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
13060 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
13070 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
13080 63 6f 6c 31 20 3e 3d 20 2b 20 2d 20 35 31 0d 0a  col1 >= + - 51..
13090 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
130a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
130b0 41 4c 4c 20 2b 20 37 33 20 2b 20 2b 20 2d 20 63  ALL + 73 + + - c
130c0 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
130d0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   tab2..----..15.
130e0 0a 33 33 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c 79 69  .33..50....onlyi
130f0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
13100 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
13110 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
13120 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
13130 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13140 32 35 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20  25..SELECT MAX( 
13150 2b 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  + - col0 ) AS co
13160 6c 31 2c 20 43 41 53 54 28 20 2b 20 41 56 47 20  l1, CAST( + AVG 
13170 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
13180 32 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  2 ) AS SIGNED ) 
13190 2a 20 2b 20 2d 20 38 34 20 46 52 4f 4d 20 74 61  * + - 84 FROM ta
131a0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 34  b0..----..-15..4
131b0 33 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  368....skipif my
131c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
131d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
131e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 35  owsort label-425
131f0 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 2b  ..SELECT MAX ( +
13200 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   - col0 ) AS col
13210 31 2c 20 43 41 53 54 20 28 20 2b 20 41 56 47 20  1, CAST ( + AVG 
13220 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
13230 32 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  2 ) AS INTEGER )
13240 20 2a 20 2b 20 2d 20 38 34 20 46 52 4f 4d 20 74   * + - 84 FROM t
13250 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a  ab0..----..-15..
13260 34 33 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4368....onlyif m
13270 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
13280 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
13290 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
132a0 2d 34 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -426..SELECT ALL
132b0 20 2d 20 35 32 20 2b 20 2d 20 53 55 4d 28 20 63   - 52 + - SUM( c
132c0 6f 6c 31 20 29 20 2a 20 43 4f 55 4e 54 28 20 41  ol1 ) * COUNT( A
132d0 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 29 20 63 6f  LL + + col2 ) co
132e0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
132f0 2d 2d 0d 0a 2d 36 33 37 0d 0a 0d 0a 73 6b 69 70  --..-637....skip
13300 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
13310 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
13320 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
13330 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
13340 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
13350 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
13360 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
13370 6f 72 74 20 6c 61 62 65 6c 2d 34 32 36 0d 0a 53  ort label-426..S
13380 45 4c 45 43 54 20 41 4c 4c 20 2d 20 35 32 20 2b  ELECT ALL - 52 +
13390 20 2d 20 53 55 4d 20 28 20 63 6f 6c 31 20 29 20   - SUM ( col1 ) 
133a0 2a 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20  * COUNT ( ALL + 
133b0 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52  + col2 ) col0 FR
133c0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
133d0 36 33 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  637....onlyif my
133e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
133f0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
13400 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
13410 6f 72 74 20 6c 61 62 65 6c 2d 34 32 37 0d 0a 53  ort label-427..S
13420 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
13430 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
13440 2d 20 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - ( CAST( NULL A
13450 53 20 53 49 47 4e 45 44 20 29 20 29 20 2b 20 2d  S SIGNED ) ) + -
13460 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
13470 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
13480 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
13490 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
134a0 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
134b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
134c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
134d0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
134e0 74 20 6c 61 62 65 6c 2d 34 32 37 0d 0a 53 45 4c  t label-427..SEL
134f0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
13500 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
13510 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  ( CAST ( NULL AS
13520 20 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20 2d   INTEGER ) ) + -
13530 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
13540 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
13550 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
13560 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
13570 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
13580 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
13590 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
135a0 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b 20 63  M tab1 WHERE + c
135b0 6f 6c 31 20 2b 20 2b 20 34 31 20 49 4e 20 28 20  ol1 + + 41 IN ( 
135c0 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2d 20 2d 20  col1 + col1 - - 
135d0 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 32 20 29 0d  col2 / - col2 ).
135e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
135f0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
13600 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
13610 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
13620 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
13630 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
13640 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
13650 20 39 33 20 2a 20 63 6f 6c 32 20 63 6f 6c 31 2c   93 * col2 col1,
13660 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52   col0 AS col1 FR
13670 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
13680 2d 2d 0d 0a 35 34 38 37 0d 0a 38 35 0d 0a 36 33  --..5487..85..63
13690 32 34 0d 0a 39 31 0d 0a 38 39 32 38 0d 0a 35 31  24..91..8928..51
136a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
136b0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
136c0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
136d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
136e0 61 62 65 6c 2d 34 33 30 0d 0a 53 45 4c 45 43 54  abel-430..SELECT
136f0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
13700 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 32  IGNED ) + + col2
13710 20 2f 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20   / - + col2 + + 
13720 39 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  90 FROM tab0 cor
13730 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
13740 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
13750 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
13760 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
13770 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13780 6c 2d 34 33 30 0d 0a 53 45 4c 45 43 54 20 43 41  l-430..SELECT CA
13790 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
137a0 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c 32 20  EGER ) + + col2 
137b0 2f 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 39  / - + col2 + + 9
137c0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
137d0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
137e0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
137f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
13800 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
13810 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f  ol0 * + col2 FRO
13820 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
13830 4c 20 3d 20 2b 20 34 38 0d 0a 2d 2d 2d 2d 0d 0a  L = + 48..----..
13840 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
13850 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
13860 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
13870 52 45 20 37 33 20 49 53 20 4e 4f 54 20 4e 55 4c  RE 73 IS NOT NUL
13880 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
13890 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
138a0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
138b0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
138c0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
138d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
138e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
138f0 6f 72 74 20 6c 61 62 65 6c 2d 34 33 33 0d 0a 53  ort label-433..S
13900 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
13910 20 4d 41 58 28 20 2d 20 63 6f 6c 31 20 29 20 2b   MAX( - col1 ) +
13920 20 2b 20 38 20 2a 20 2d 20 2b 20 33 30 20 46 52   + 8 * - + 30 FR
13930 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
13940 2d 2d 0d 0a 2d 32 34 35 0d 0a 0d 0a 73 6b 69 70  --..-245....skip
13950 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
13960 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
13970 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13980 2d 34 33 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -433..SELECT DIS
13990 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20 2d 20  TINCT + MAX ( - 
139a0 63 6f 6c 31 20 29 20 2b 20 2b 20 38 20 2a 20 2d  col1 ) + + 8 * -
139b0 20 2b 20 33 30 20 46 52 4f 4d 20 74 61 62 31 20   + 30 FROM tab1 
139c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 35  cor0..----..-245
139d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
139e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
139f0 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2d 20  INCT + - col0 - 
13a00 2b 20 32 39 20 46 52 4f 4d 20 74 61 62 30 20 41  + 29 FROM tab0 A
13a10 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
13a20 31 36 0d 0a 2d 31 32 36 0d 0a 2d 34 34 0d 0a 0d  16..-126..-44...
13a30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
13a40 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
13a50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
13a60 6f 72 74 20 6c 61 62 65 6c 2d 34 33 35 0d 0a 53  ort label-435..S
13a70 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
13a80 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2d 20 34 20  OUNT( * ) - - 4 
13a90 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
13aa0 2d 2d 2d 2d 0d 0a 37 0d 0a 0d 0a 73 6b 69 70 69  ----..7....skipi
13ab0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13ac0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13ad0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13ae0 34 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  435..SELECT DIST
13af0 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
13b00 20 2d 20 2d 20 34 20 46 52 4f 4d 20 74 61 62 32   - - 4 FROM tab2
13b10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 0d 0a   cor0..----..7..
13b20 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
13b30 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
13b40 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
13b50 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
13b60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13b70 61 62 65 6c 2d 34 33 36 0d 0a 53 45 4c 45 43 54  abel-436..SELECT
13b80 20 2d 20 2b 20 43 41 53 54 28 20 2d 20 4d 49 4e   - + CAST( - MIN
13b90 28 20 41 4c 4c 20 2b 20 31 32 20 29 20 41 53 20  ( ALL + 12 ) AS 
13ba0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
13bb0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
13bc0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a  r0..----..12....
13bd0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
13be0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
13bf0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13c00 61 62 65 6c 2d 34 33 36 0d 0a 53 45 4c 45 43 54  abel-436..SELECT
13c10 20 2d 20 2b 20 43 41 53 54 20 28 20 2d 20 4d 49   - + CAST ( - MI
13c20 4e 20 28 20 41 4c 4c 20 2b 20 31 32 20 29 20 41  N ( ALL + 12 ) A
13c30 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
13c40 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
13c50 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d   cor0..----..12.
13c60 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
13c70 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63  rt..SELECT + - c
13c80 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
13c90 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
13ca0 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20  ERE NULL NOT IN 
13cb0 28 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2d 20 2b  ( col1 * + ( - +
13cc0 20 63 6f 6c 30 20 29 2c 20 2d 20 32 32 20 2b 20   col0 ), - 22 + 
13cd0 63 6f 6c 32 2c 20 2d 20 63 6f 6c 32 2c 20 2d 20  col2, - col2, - 
13ce0 2d 20 63 6f 6c 32 2c 20 2b 20 2d 20 63 6f 6c 31  - col2, + - col1
13cf0 20 2a 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   * - col2 )..---
13d00 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
13d10 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
13d20 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
13d30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
13d40 6c 61 62 65 6c 2d 34 33 38 0d 0a 53 45 4c 45 43  label-438..SELEC
13d50 54 20 44 49 53 54 49 4e 43 54 20 2b 20 37 39 20  T DISTINCT + 79 
13d60 44 49 56 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  DIV + col1 AS co
13d70 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
13d80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31  cor0..----..1..1
13d90 35 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  5..5....skipif m
13da0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13db0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
13dc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 38  owsort label-438
13dd0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
13de0 54 20 2b 20 37 39 20 2f 20 2b 20 63 6f 6c 31 20  T + 79 / + col1 
13df0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
13e00 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
13e10 0a 31 0d 0a 31 35 0d 0a 35 0d 0a 0d 0a 71 75 65  .1..15..5....que
13e20 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
13e30 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 46 52  LECT ALL col2 FR
13e40 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
13e50 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 3c 3e 20  WHERE - col2 <> 
13e60 2b 20 32 31 20 41 4e 44 20 4e 55 4c 4c 20 49 53  + 21 AND NULL IS
13e70 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
13e80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
13e90 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39  rt..SELECT ALL 9
13ea0 35 20 2a 20 2b 20 63 6f 6c 32 20 2d 20 28 20 2d  5 * + col2 - ( -
13eb0 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
13ec0 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
13ed0 35 36 30 30 0d 0a 36 34 31 33 0d 0a 39 31 30 36  5600..6413..9106
13ee0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
13ef0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
13f00 20 2d 20 63 6f 6c 30 2c 20 2b 20 36 32 20 41 53   - col0, + 62 AS
13f10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
13f20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
13f30 31 35 0d 0a 36 32 0d 0a 2d 38 37 0d 0a 36 32 0d  15..62..-87..62.
13f40 0a 2d 39 37 0d 0a 36 32 0d 0a 0d 0a 6f 6e 6c 79  .-97..62....only
13f50 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13f60 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13f70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13f80 61 62 65 6c 2d 34 34 32 0d 0a 53 45 4c 45 43 54  abel-442..SELECT
13f90 20 39 35 20 2a 20 2b 20 38 37 20 2a 20 43 4f 55   95 * + 87 * COU
13fa0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
13fb0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
13fc0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 37 39 35 0d 0a  0..----..24795..
13fd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13fe0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13ff0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14000 20 6c 61 62 65 6c 2d 34 34 32 0d 0a 53 45 4c 45   label-442..SELE
14010 43 54 20 39 35 20 2a 20 2b 20 38 37 20 2a 20 43  CT 95 * + 87 * C
14020 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
14030 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
14040 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 37 39  cor0..----..2479
14050 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
14060 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
14070 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
14080 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
14090 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  3..SELECT COUNT(
140a0 20 2b 20 35 30 20 29 20 63 6f 6c 32 20 46 52 4f   + 50 ) col2 FRO
140b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab2..----..3.
140c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
140d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
140e0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
140f0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
14100 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
14110 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
14120 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
14130 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
14140 2d 34 34 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -443..SELECT COU
14150 4e 54 20 28 20 2b 20 35 30 20 29 20 63 6f 6c 32  NT ( + 50 ) col2
14160 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
14170 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
14180 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
14190 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
141a0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
141b0 2d 34 34 34 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -444..SELECT + M
141c0 41 58 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  AX( col2 ) AS co
141d0 6c 32 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  l2, COUNT( * ) +
141e0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
141f0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
14200 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
14210 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 30 0d 0a 0d  ----..NULL..0...
14220 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14230 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14240 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
14250 20 6c 61 62 65 6c 2d 34 34 34 0d 0a 53 45 4c 45   label-444..SELE
14260 43 54 20 2b 20 4d 41 58 20 28 20 63 6f 6c 32 20  CT + MAX ( col2 
14270 29 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55 4e 54  ) AS col2, COUNT
14280 20 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54   ( * ) + + COUNT
14290 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30   ( * ) FROM tab0
142a0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
142b0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
142c0 55 4c 4c 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ULL..0....onlyif
142d0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
142e0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
142f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
14300 65 6c 2d 34 34 35 0d 0a 53 45 4c 45 43 54 20 44  el-445..SELECT D
14310 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 28  ISTINCT - COUNT(
14320 20 2a 20 29 20 2a 20 2b 20 33 33 20 46 52 4f 4d   * ) * + 33 FROM
14330 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39   tab1..----..-99
14340 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
14350 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
14360 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
14370 72 74 20 6c 61 62 65 6c 2d 34 34 35 0d 0a 53 45  rt label-445..SE
14380 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
14390 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20  COUNT ( * ) * + 
143a0 33 33 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  33 FROM tab1..--
143b0 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79  --..-99....query
143c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
143d0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
143e0 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 2d 20  l1 + - col0 - - 
143f0 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20 2b  - ( + col2 ) + +
14400 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 2f   col0 * + col2 /
14410 20 36 34 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 33   64 * + col2 + 3
14420 39 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  9 FROM tab1 WHER
14430 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 2b 20 28  E NOT NULL > + (
14440 20 2d 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d   - - col0 )..---
14450 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
14460 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
14470 20 36 32 20 2b 20 2b 20 2d 20 37 38 20 46 52 4f   62 + + - 78 FRO
14480 4d 20 74 61 62 30 2c 20 74 61 62 31 20 41 53 20  M tab0, tab1 AS 
14490 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor0..----..9 va
144a0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
144b0 62 65 32 32 61 63 37 36 62 34 32 63 36 66 37 32  be22ac76b42c6f72
144c0 31 32 65 63 63 30 62 61 37 63 38 39 65 62 33 34  12ecc0ba7c89eb34
144d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
144e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
144f0 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  - col0 FROM tab1
14500 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
14510 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d   NULL ) IS NULL.
14520 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d  .----..-51..-85.
14530 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-91....skipif p
14540 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
14550 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
14560 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
14570 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
14580 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
14590 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 39 32  t..SELECT - ( 92
145a0 20 29 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 46 52   ) col0, col2 FR
145b0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
145c0 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 31 30 0d 0a  .----..-92..10..
145d0 2d 39 32 0d 0a 34 37 0d 0a 2d 39 32 0d 0a 39 39  -92..47..-92..99
145e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
145f0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
14600 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
14610 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 30  owsort label-450
14620 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55  ..SELECT + + COU
14630 4e 54 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29  NT( ALL - col0 )
14640 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
14650 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
14660 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
14670 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
14680 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14690 62 65 6c 2d 34 35 30 0d 0a 53 45 4c 45 43 54 20  bel-450..SELECT 
146a0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  + + COUNT ( ALL 
146b0 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
146c0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
146d0 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
146e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
146f0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
14700 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14710 74 20 6c 61 62 65 6c 2d 34 35 31 0d 0a 53 45 4c  t label-451..SEL
14720 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
14730 20 43 41 53 54 28 20 63 6f 6c 30 20 41 53 20 53   CAST( col0 AS S
14740 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
14750 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
14760 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d 0a  .-46..-64..-75..
14770 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
14780 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14790 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
147a0 20 6c 61 62 65 6c 2d 34 35 31 0d 0a 53 45 4c 45   label-451..SELE
147b0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
147c0 43 41 53 54 20 28 20 63 6f 6c 30 20 41 53 20 49  CAST ( col0 AS I
147d0 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
147e0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
147f0 0d 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d  ..-46..-64..-75.
14800 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
14810 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
14820 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
14830 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
14840 62 65 6c 2d 34 35 32 0d 0a 53 45 4c 45 43 54 20  bel-452..SELECT 
14850 2d 20 63 6f 6c 30 20 44 49 56 20 2b 20 38 37 20  - col0 DIV + 87 
14860 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
14870 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
14880 0a 2d 31 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 73 6b  .-1..-1..0....sk
14890 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
148a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
148b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
148c0 65 6c 2d 34 35 32 0d 0a 53 45 4c 45 43 54 20 2d  el-452..SELECT -
148d0 20 63 6f 6c 30 20 2f 20 2b 20 38 37 20 41 53 20   col0 / + 87 AS 
148e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
148f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
14900 0d 0a 2d 31 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ..-1..0....onlyi
14910 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
14920 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
14930 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
14940 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 33 0d  wsort label-453.
14950 0a 53 45 4c 45 43 54 20 2b 20 35 30 20 44 49 56  .SELECT + 50 DIV
14960 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - - col0 FROM t
14970 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
14980 30 0d 0a 30 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  0..0..3....skipi
14990 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
149a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
149b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
149c0 34 35 33 0d 0a 53 45 4c 45 43 54 20 2b 20 35 30  453..SELECT + 50
149d0 20 2f 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d   / - - col0 FROM
149e0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
149f0 0d 0a 30 0d 0a 30 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..0..0..3....onl
14a00 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
14a10 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
14a20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14a30 6c 61 62 65 6c 2d 34 35 34 0d 0a 53 45 4c 45 43  label-454..SELEC
14a40 54 20 41 4c 4c 20 32 36 20 2a 20 2b 20 2d 20 43  T ALL 26 * + - C
14a50 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
14a60 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
14a70 2d 0d 0a 2d 37 38 0d 0a 0d 0a 73 6b 69 70 69 66  -..-78....skipif
14a80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
14a90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
14aa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14ab0 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32  54..SELECT ALL 2
14ac0 36 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20  6 * + - COUNT ( 
14ad0 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  * ) FROM tab2 AS
14ae0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38   cor0..----..-78
14af0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
14b00 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
14b10 49 4e 43 54 20 2b 20 2b 20 36 32 20 2a 20 2d 20  INCT + + 62 * - 
14b20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
14b30 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
14b40 2d 0d 0a 2d 32 38 35 32 0d 0a 2d 33 39 36 38 0d  -..-2852..-3968.
14b50 0a 2d 34 36 35 30 0d 0a 0d 0a 71 75 65 72 79 20  .-4650....query 
14b60 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
14b70 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
14b80 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f  AS cor0 WHERE co
14b90 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 49 53 20 4e  l2 * + col0 IS N
14ba0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
14bb0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
14bc0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
14bd0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
14be0 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  a49....query I r
14bf0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
14c00 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 46  ISTINCT - col1 F
14c10 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
14c20 20 35 39 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 49   59 + + - col0 I
14c30 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
14c40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
14c50 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 33 30  .SELECT ALL - 30
14c60 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f   + - col2 + - co
14c70 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
14c80 2d 2d 0d 0a 2d 31 32 34 0d 0a 2d 32 32 38 0d 0a  --..-124..-228..
14c90 2d 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -50....onlyif my
14ca0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
14cb0 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
14cc0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
14cd0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
14ce0 6f 72 74 20 6c 61 62 65 6c 2d 34 35 39 0d 0a 53  ort label-459..S
14cf0 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c  ELECT CAST( NULL
14d00 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d   AS SIGNED ) + -
14d10 20 34 32 20 2a 20 2d 20 53 55 4d 28 20 41 4c 4c   42 * - SUM( ALL
14d20 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20   col2 ) AS col0 
14d30 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
14d40 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
14d50 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
14d60 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
14d70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
14d80 39 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28  9..SELECT CAST (
14d90 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
14da0 20 29 20 2b 20 2d 20 34 32 20 2a 20 2d 20 53 55   ) + - 42 * - SU
14db0 4d 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20 41  M ( ALL col2 ) A
14dc0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
14dd0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
14de0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
14df0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
14e00 33 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  33 AS col0 FROM 
14e10 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
14e20 3e 20 2b 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  > + - col1..----
14e30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
14e40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
14e50 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2d  TINCT + col1 + -
14e60 20 34 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63 6f   4 AS col2, - co
14e70 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
14e80 52 45 20 2b 20 39 34 20 49 4e 20 28 20 63 6f 6c  RE + 94 IN ( col
14e90 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  0 )..----....ski
14ea0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
14eb0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
14ec0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
14ed0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
14ee0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
14ef0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
14f00 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 63 6f  STINCT - col0 co
14f10 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
14f20 52 45 20 4e 4f 54 20 2d 20 2b 20 38 32 20 49 53  RE NOT - + 82 IS
14f30 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
14f40 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
14f50 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
14f60 31 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2d  1 + - - col2 + -
14f70 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   + col2 AS col1 
14f80 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
14f90 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  0..----..1..21..
14fa0 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  81....skipif pos
14fb0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
14fc0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
14fd0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
14fe0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
14ff0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
15000 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32 35 20  SELECT ALL + 25 
15010 2a 20 28 20 28 20 2d 20 2b 20 34 30 20 29 20 29  * ( ( - + 40 ) )
15020 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   - + col1 + + co
15030 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l1 col2 FROM tab
15040 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  1 cor0..----..-1
15050 30 30 30 0d 0a 2d 31 30 30 30 0d 0a 2d 31 30 30  000..-1000..-100
15060 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
15070 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
15080 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
15090 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3e 3d  r0 WHERE col1 >=
150a0 20 2b 20 30 20 2b 20 2d 20 2d 20 63 6f 6c 30 20   + 0 + - - col0 
150b0 2b 20 2b 20 30 20 2d 20 2b 20 63 6f 6c 31 0d 0a  + + 0 - + col1..
150c0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
150d0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
150e0 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
150f0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e  eb962d0a49....on
15100 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
15110 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
15120 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
15130 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15140 34 36 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  466..SELECT DIST
15150 49 4e 43 54 20 2d 20 31 32 20 2f 20 43 41 53 54  INCT - 12 / CAST
15160 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
15170 4c 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L ) FROM tab0 AS
15180 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
15190 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
151a0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
151b0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
151c0 6f 72 74 20 6c 61 62 65 6c 2d 34 36 36 0d 0a 53  ort label-466..S
151d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
151e0 20 31 32 20 2f 20 43 41 53 54 20 28 20 4e 55 4c   12 / CAST ( NUL
151f0 4c 20 41 53 20 52 45 41 4c 20 29 20 46 52 4f 4d  L AS REAL ) FROM
15200 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
15210 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
15220 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
15230 45 4c 45 43 54 20 2d 20 31 32 20 2a 20 63 6f 6c  ELECT - 12 * col
15240 30 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c  0 AS col0, - col
15250 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
15260 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 32 0d  or0..----..-552.
15270 0a 2d 32 33 0d 0a 2d 37 36 38 0d 0a 2d 34 30 0d  .-23..-768..-40.
15280 0a 2d 39 30 30 0d 0a 2d 35 38 0d 0a 0d 0a 71 75  .-900..-58....qu
15290 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
152a0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
152b0 31 20 2a 20 36 35 20 41 53 20 63 6f 6c 31 2c 20  1 * 65 AS col1, 
152c0 2b 20 36 32 20 46 52 4f 4d 20 74 61 62 30 20 41  + 62 FROM tab0 A
152d0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33  S cor0..----..13
152e0 36 35 0d 0a 36 32 0d 0a 35 32 36 35 0d 0a 36 32  65..62..5265..62
152f0 0d 0a 36 35 0d 0a 36 32 0d 0a 0d 0a 71 75 65 72  ..65..62....quer
15300 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
15310 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
15320 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
15330 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2b  ERE NOT + col2 +
15340 20 2b 20 63 6f 6c 30 20 2f 20 63 6f 6c 31 20 2b   + col0 / col1 +
15350 20 2b 20 2d 20 38 20 49 53 20 4e 55 4c 4c 0d 0a   + - 8 IS NULL..
15360 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
15370 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
15380 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
15390 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
153a0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
153b0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
153c0 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20  col2 AS col2, - 
153d0 33 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  31 FROM tab1..--
153e0 2d 2d 0d 0a 35 39 0d 0a 2d 33 31 0d 0a 36 38 0d  --..59..-31..68.
153f0 0a 2d 33 31 0d 0a 39 36 0d 0a 2d 33 31 0d 0a 0d  .-31..96..-31...
15400 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15410 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
15420 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
15430 6f 72 74 20 6c 61 62 65 6c 2d 34 37 31 0d 0a 53  ort label-471..S
15440 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
15450 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
15460 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol2 FROM tab2 WH
15470 45 52 45 20 4e 4f 54 20 36 34 20 2a 20 2d 20 63  ERE NOT 64 * - c
15480 6f 6c 31 20 2b 20 2d 20 2b 20 38 30 20 2b 20 35  ol1 + - + 80 + 5
15490 30 20 2f 20 2b 20 63 6f 6c 31 20 4e 4f 54 20 42  0 / + col1 NOT B
154a0 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
154b0 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c  - col1 * - - col
154c0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  0..----..0....sk
154d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
154e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
154f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15500 65 6c 2d 34 37 31 0d 0a 53 45 4c 45 43 54 20 44  el-471..SELECT D
15510 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
15520 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
15530 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
15540 54 20 36 34 20 2a 20 2d 20 63 6f 6c 31 20 2b 20  T 64 * - col1 + 
15550 2d 20 2b 20 38 30 20 2b 20 35 30 20 2f 20 2b 20  - + 80 + 50 / + 
15560 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e  col1 NOT BETWEEN
15570 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f 6c 31   NULL AND - col1
15580 20 2a 20 2d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d   * - - col0..---
15590 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
155a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
155b0 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 41 53  DISTINCT col0 AS
155c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
155d0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
155e0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
155f0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
15600 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
15610 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
15620 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  OT NULL NOT IN (
15630 20 2d 20 31 34 2c 20 63 6f 6c 32 2c 20 2d 20 2d   - 14, col2, - -
15640 20 38 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   81 )..----....o
15650 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
15660 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
15670 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
15680 74 20 6c 61 62 65 6c 2d 34 37 34 0d 0a 53 45 4c  t label-474..SEL
15690 45 43 54 20 53 55 4d 28 20 37 34 20 29 20 46 52  ECT SUM( 74 ) FR
156a0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
156b0 32 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  22....skipif mys
156c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
156d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
156e0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 34 0d 0a  sort label-474..
156f0 53 45 4c 45 43 54 20 53 55 4d 20 28 20 37 34 20  SELECT SUM ( 74 
15700 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
15710 2d 0d 0a 32 32 32 0d 0a 0d 0a 71 75 65 72 79 20  -..222....query 
15720 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
15730 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
15740 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
15750 54 20 31 35 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d  T 15 >= NULL..--
15760 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
15770 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
15780 4c 20 63 6f 6c 31 20 2a 20 2d 20 32 35 20 41 53  L col1 * - 25 AS
15790 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
157a0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
157b0 54 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  T - col0 IS NULL
157c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 32 35 0d 0a 2d  ..----..-2025..-
157d0 32 35 0d 0a 2d 35 32 35 0d 0a 0d 0a 6f 6e 6c 79  25..-525....only
157e0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
157f0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
15800 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
15810 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 37  owsort label-477
15820 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
15830 20 63 6f 6c 30 20 2a 20 43 41 53 54 28 20 4e 55   col0 * CAST( NU
15840 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
15850 20 35 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53   57 FROM tab0 AS
15860 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
15870 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
15880 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
15890 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
158a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
158b0 6c 61 62 65 6c 2d 34 37 37 0d 0a 53 45 4c 45 43  label-477..SELEC
158c0 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 30 20 2a  T ALL + + col0 *
158d0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
158e0 49 4e 54 45 47 45 52 20 29 20 2b 20 35 37 20 46  INTEGER ) + 57 F
158f0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
15900 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
15910 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
15920 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
15930 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
15940 20 32 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   29 AS col0 FROM
15950 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
15960 0d 0a 2d 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-29....query I
15970 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
15980 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
15990 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
159a0 31 20 42 45 54 57 45 45 4e 20 2d 20 2d 20 38 34  1 BETWEEN - - 84
159b0 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
159c0 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
159d0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
159e0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
159f0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
15a00 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
15a10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
15a20 45 43 54 20 41 4c 4c 20 2b 20 39 38 20 2a 20 2d  ECT ALL + 98 * -
15a30 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c 32   col0 * + - col2
15a40 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
15a50 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor0..----..4
15a60 37 39 38 30 38 0d 0a 34 39 31 34 37 30 0d 0a 36  79808..491470..6
15a70 30 36 34 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49  06424....query I
15a80 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
15a90 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
15aa0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
15ab0 32 20 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 28  2 * + col2 * + (
15ac0 20 63 6f 6c 30 20 29 20 49 4e 20 28 20 2d 20 63   col0 ) IN ( - c
15ad0 6f 6c 32 2c 20 2b 20 35 30 20 29 0d 0a 2d 2d 2d  ol2, + 50 )..---
15ae0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
15af0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
15b00 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
15b10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38  rowsort label-48
15b20 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  2..SELECT COUNT(
15b30 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
15b40 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
15b50 45 20 2b 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20  E + col0 NOT IN 
15b60 28 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b  ( + + col1 * - +
15b70 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 31 20 29   col2 - + col1 )
15b80 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
15b90 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
15ba0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
15bb0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15bc0 6c 2d 34 38 32 0d 0a 53 45 4c 45 43 54 20 43 4f  l-482..SELECT CO
15bd0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
15be0 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
15bf0 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 4e 4f   WHERE + col0 NO
15c00 54 20 49 4e 20 28 20 2b 20 2b 20 63 6f 6c 31 20  T IN ( + + col1 
15c10 2a 20 2d 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63  * - + col2 - + c
15c20 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a  ol1 )..----..3..
15c30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15c40 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
15c50 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
15c60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15c70 65 6c 2d 34 38 33 0d 0a 53 45 4c 45 43 54 20 44  el-483..SELECT D
15c80 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 28  ISTINCT col2 * (
15c90 20 2b 20 2b 20 28 20 2b 20 2d 20 38 38 20 29 20   + + ( + - 88 ) 
15ca0 29 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d  ) * + - col0 * -
15cb0 20 63 6f 6c 31 20 2a 20 2d 20 35 31 20 2b 20 2d   col1 * - 51 + -
15cc0 20 31 38 20 44 49 56 20 63 6f 6c 30 20 46 52 4f   18 DIV col0 FRO
15cd0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab1..----..11
15ce0 32 35 33 36 36 30 30 0d 0a 31 33 30 35 32 37 31  2536600..1305271
15cf0 39 36 38 0d 0a 33 30 37 36 32 35 34 37 32 0d 0a  968..307625472..
15d00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
15d10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
15d20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15d30 20 6c 61 62 65 6c 2d 34 38 33 0d 0a 53 45 4c 45   label-483..SELE
15d40 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
15d50 20 2a 20 28 20 2b 20 2b 20 28 20 2b 20 2d 20 38   * ( + + ( + - 8
15d60 38 20 29 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 30  8 ) ) * + - col0
15d70 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 35 31   * - col1 * - 51
15d80 20 2b 20 2d 20 31 38 20 2f 20 63 6f 6c 30 20 46   + - 18 / col0 F
15d90 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
15da0 31 31 32 35 33 36 36 30 30 0d 0a 31 33 30 35 32  112536600..13052
15db0 37 31 39 36 38 0d 0a 33 30 37 36 32 35 34 37 32  71968..307625472
15dc0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15dd0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
15de0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
15df0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 34  owsort label-484
15e00 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
15e10 28 20 2b 20 32 38 20 29 20 46 52 4f 4d 20 74 61  ( + 28 ) FROM ta
15e20 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  b0..----..-3....
15e30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
15e40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
15e50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
15e60 61 62 65 6c 2d 34 38 34 0d 0a 53 45 4c 45 43 54  abel-484..SELECT
15e70 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 32 38 20   - COUNT ( + 28 
15e80 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
15e90 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..-3....onlyif 
15ea0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
15eb0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
15ec0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15ed0 6c 2d 34 38 35 0d 0a 53 45 4c 45 43 54 20 2d 20  l-485..SELECT - 
15ee0 32 34 20 2d 20 35 20 2b 20 2b 20 28 20 4d 41 58  24 - 5 + + ( MAX
15ef0 28 20 2d 20 31 35 20 29 20 29 20 41 53 20 63 6f  ( - 15 ) ) AS co
15f00 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
15f10 2d 2d 0d 0a 2d 34 34 0d 0a 0d 0a 73 6b 69 70 69  --..-44....skipi
15f20 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
15f30 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
15f40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15f50 34 38 35 0d 0a 53 45 4c 45 43 54 20 2d 20 32 34  485..SELECT - 24
15f60 20 2d 20 35 20 2b 20 2b 20 28 20 4d 41 58 20 28   - 5 + + ( MAX (
15f70 20 2d 20 31 35 20 29 20 29 20 41 53 20 63 6f 6c   - 15 ) ) AS col
15f80 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
15f90 2d 0d 0a 2d 34 34 0d 0a 0d 0a 71 75 65 72 79 20  -..-44....query 
15fa0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
15fb0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
15fc0 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 28 20 2d 20   * + col2 + ( - 
15fd0 2d 20 38 32 20 29 20 2a 20 33 34 20 41 53 20 63  - 82 ) * 34 AS c
15fe0 6f 6c 31 2c 20 2b 20 37 38 20 46 52 4f 4d 20 74  ol1, + 78 FROM t
15ff0 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
16000 31 32 30 30 34 0d 0a 37 38 0d 0a 36 32 36 39 0d  12004..78..6269.
16010 0a 37 38 0d 0a 37 34 31 32 0d 0a 37 38 0d 0a 0d  .78..7412..78...
16020 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16030 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20  ..SELECT col1 + 
16040 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
16050 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
16060 20 57 48 45 52 45 20 33 30 20 2a 20 2b 20 37 34   WHERE 30 * + 74
16070 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20   * + + col2 + + 
16080 39 35 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 38 32  95 * - col1 * 82
16090 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
160a0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
160b0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
160c0 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  ol0, - col0 * - 
160d0 2d 20 32 37 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 27 FROM tab1..
160e0 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 31 33 37 37 0d  ----..51..-1377.
160f0 0a 38 35 0d 0a 2d 32 32 39 35 0d 0a 39 31 0d 0a  .85..-2295..91..
16100 2d 32 34 35 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -2457....onlyif 
16110 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
16120 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
16130 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
16140 6f 72 74 20 6c 61 62 65 6c 2d 34 38 39 0d 0a 53  ort label-489..S
16150 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2b  ELECT + + col1 +
16160 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
16170 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
16180 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
16190 20 4e 4f 54 20 33 32 20 2b 20 2d 20 63 6f 6c 31   NOT 32 + - col1
161a0 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 3c 3e 20 2d   + - + col2 <> -
161b0 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   col0..----....s
161c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
161d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
161e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
161f0 62 65 6c 2d 34 38 39 0d 0a 53 45 4c 45 43 54 20  bel-489..SELECT 
16200 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 43  + + col1 + + + C
16210 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
16220 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
16230 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  1 cor0 WHERE NOT
16240 20 33 32 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d   32 + - col1 + -
16250 20 2b 20 63 6f 6c 32 20 3c 3e 20 2d 20 63 6f 6c   + col2 <> - col
16260 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  0..----....query
16270 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
16280 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30 20  CT ALL + - col0 
16290 2a 20 2b 20 36 34 20 2d 20 2b 20 2d 20 63 6f 6c  * + 64 - + - col
162a0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
162b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 39 38  or0..----..-2898
162c0 0d 0a 2d 34 30 33 32 0d 0a 2d 34 37 32 35 0d 0a  ..-4032..-4725..
162d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
162e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
162f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
16300 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 31 0d 0a  sort label-491..
16310 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
16320 2d 20 34 34 20 2a 20 2d 20 4d 49 4e 28 20 2b 20  - 44 * - MIN( + 
16330 39 34 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63  94 ) FROM tab2 c
16340 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 33 36 0d  or0..----..4136.
16350 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
16360 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
16370 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16380 74 20 6c 61 62 65 6c 2d 34 39 31 0d 0a 53 45 4c  t label-491..SEL
16390 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 34  ECT DISTINCT - 4
163a0 34 20 2a 20 2d 20 4d 49 4e 20 28 20 2b 20 39 34  4 * - MIN ( + 94
163b0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
163c0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 33 36 0d 0a 0d  0..----..4136...
163d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
163e0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
163f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
16400 72 30 20 57 48 45 52 45 20 36 20 49 53 20 4e 4f  r0 WHERE 6 IS NO
16410 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
16420 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
16430 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
16440 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
16450 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  ad....onlyif mys
16460 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
16470 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
16480 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
16490 74 20 6c 61 62 65 6c 2d 34 39 33 0d 0a 53 45 4c  t label-493..SEL
164a0 45 43 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 30  ECT CAST( - col0
164b0 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20 63 6f   AS SIGNED ), co
164c0 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l0 AS col1 FROM 
164d0 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
164e0 0a 2d 35 31 0d 0a 35 31 0d 0a 2d 38 35 0d 0a 38  .-51..51..-85..8
164f0 35 0d 0a 2d 39 31 0d 0a 39 31 0d 0a 0d 0a 73 6b  5..-91..91....sk
16500 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
16510 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
16520 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
16530 62 65 6c 2d 34 39 33 0d 0a 53 45 4c 45 43 54 20  bel-493..SELECT 
16540 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53  CAST ( - col0 AS
16550 20 49 4e 54 45 47 45 52 20 29 2c 20 63 6f 6c 30   INTEGER ), col0
16560 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
16570 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor0..----..-
16580 35 31 0d 0a 35 31 0d 0a 2d 38 35 0d 0a 38 35 0d  51..51..-85..85.
16590 0a 2d 39 31 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79  .-91..91....only
165a0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
165b0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
165c0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
165d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 34  owsort label-494
165e0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28  ..SELECT - CAST(
165f0 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
16600 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
16610 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
16620 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d  -10..-47..-99...
16630 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
16640 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
16650 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16660 6c 61 62 65 6c 2d 34 39 34 0d 0a 53 45 4c 45 43  label-494..SELEC
16670 54 20 2d 20 43 41 53 54 20 28 20 63 6f 6c 32 20  T - CAST ( col2 
16680 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20  AS INTEGER ) AS 
16690 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63  col1 FROM tab0 c
166a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  or0..----..-10..
166b0 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79  -47..-99....only
166c0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
166d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
166e0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
166f0 6c 61 62 65 6c 2d 34 39 35 0d 0a 53 45 4c 45 43  label-495..SELEC
16700 54 20 2b 20 31 31 2c 20 43 4f 55 4e 54 28 20 2a  T + 11, COUNT( *
16710 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
16720 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
16730 0a 31 31 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  .11..3....skipif
16740 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
16750 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
16760 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
16770 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
16780 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
16790 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
167a0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
167b0 72 74 20 6c 61 62 65 6c 2d 34 39 35 0d 0a 53 45  rt label-495..SE
167c0 4c 45 43 54 20 2b 20 31 31 2c 20 43 4f 55 4e 54  LECT + 11, COUNT
167d0 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d   ( * ) col1 FROM
167e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
167f0 2d 2d 2d 0d 0a 31 31 0d 0a 33 0d 0a 0d 0a 6f 6e  ---..11..3....on
16800 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
16810 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
16820 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
16830 20 6c 61 62 65 6c 2d 34 39 36 0d 0a 53 45 4c 45   label-496..SELE
16840 43 54 20 2b 20 4d 41 58 28 20 44 49 53 54 49 4e  CT + MAX( DISTIN
16850 43 54 20 63 6f 6c 32 20 29 20 63 6f 6c 31 20 46  CT col2 ) col1 F
16860 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
16870 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
16880 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
16890 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
168a0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
168b0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
168c0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
168d0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
168e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
168f0 62 65 6c 2d 34 39 36 0d 0a 53 45 4c 45 43 54 20  bel-496..SELECT 
16900 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  + MAX ( DISTINCT
16910 20 63 6f 6c 32 20 29 20 63 6f 6c 31 20 46 52 4f   col2 ) col1 FRO
16920 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 36  M tab1..----..96
16930 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
16940 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
16950 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
16960 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
16970 6c 61 62 65 6c 2d 34 39 37 0d 0a 53 45 4c 45 43  label-497..SELEC
16980 54 20 38 32 20 2a 20 2d 20 63 6f 6c 31 2c 20 2b  T 82 * - col1, +
16990 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
169a0 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20  IGNED ) AS col0 
169b0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
169c0 0a 2d 31 37 32 32 0d 0a 4e 55 4c 4c 0d 0a 2d 36  .-1722..NULL..-6
169d0 36 34 32 0d 0a 4e 55 4c 4c 0d 0a 2d 38 32 0d 0a  642..NULL..-82..
169e0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
169f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
16a00 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
16a10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39  rowsort label-49
16a20 37 0d 0a 53 45 4c 45 43 54 20 38 32 20 2a 20 2d  7..SELECT 82 * -
16a30 20 63 6f 6c 31 2c 20 2b 20 43 41 53 54 20 28 20   col1, + CAST ( 
16a40 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
16a50 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
16a60 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 32 32  ab0..----..-1722
16a70 0d 0a 4e 55 4c 4c 0d 0a 2d 36 36 34 32 0d 0a 4e  ..NULL..-6642..N
16a80 55 4c 4c 0d 0a 2d 38 32 0d 0a 4e 55 4c 4c 0d 0a  ULL..-82..NULL..
16a90 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
16aa0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
16ab0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
16ac0 54 20 2d 20 36 39 20 3c 3d 20 4e 55 4c 4c 0d 0a  T - 69 <= NULL..
16ad0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
16ae0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16af0 41 4c 4c 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  ALL - col1 FROM 
16b00 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
16b10 55 4c 4c 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL >= NULL..---
16b20 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
16b30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
16b40 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  LL * FROM tab0 W
16b50 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c  HERE NOT + - col
16b60 32 20 2d 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d  2 - + - col2 * -
16b70 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
16b80 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
16b90 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
16ba0 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
16bb0 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
16bc0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
16bd0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39 35  LECT DISTINCT 95
16be0 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   * col0 AS col0 
16bf0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
16c00 0a 31 34 32 35 0d 0a 38 32 36 35 0d 0a 39 32 31  .1425..8265..921
16c10 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
16c20 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
16c30 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
16c40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30  rowsort label-50
16c50 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f  2..SELECT ALL CO
16c60 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 37 20 41  UNT( * ) * - 7 A
16c70 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
16c80 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 0d 0a 73  ..----..-21....s
16c90 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
16ca0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
16cb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16cc0 62 65 6c 2d 35 30 32 0d 0a 53 45 4c 45 43 54 20  bel-502..SELECT 
16cd0 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ALL COUNT ( * ) 
16ce0 2a 20 2d 20 37 20 41 53 20 63 6f 6c 31 20 46 52  * - 7 AS col1 FR
16cf0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
16d00 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  21....query I ro
16d10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
16d20 4c 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20  L col2 + + col2 
16d30 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
16d40 4e 4f 54 20 2d 20 32 30 20 2a 20 33 34 20 2a 20  NOT - 20 * 34 * 
16d50 2d 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c  - col0 + + + col
16d60 32 20 2d 20 2d 20 2d 20 63 6f 6c 30 20 49 53 20  2 - - - col0 IS 
16d70 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 39 38 0d  NULL..----..198.
16d80 0a 32 30 0d 0a 39 34 0d 0a 0d 0a 6f 6e 6c 79 69  .20..94....onlyi
16d90 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
16da0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
16db0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16dc0 62 65 6c 2d 35 30 34 0d 0a 53 45 4c 45 43 54 20  bel-504..SELECT 
16dd0 2b 20 2b 20 43 4f 55 4e 54 28 20 37 38 20 29 20  + + COUNT( 78 ) 
16de0 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + - COUNT( * ) A
16df0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
16e00 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
16e10 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
16e20 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
16e30 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
16e40 6f 72 74 20 6c 61 62 65 6c 2d 35 30 34 0d 0a 53  ort label-504..S
16e50 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20  ELECT + + COUNT 
16e60 28 20 37 38 20 29 20 2b 20 2d 20 43 4f 55 4e 54  ( 78 ) + - COUNT
16e70 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
16e80 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
16e90 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
16ea0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
16eb0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
16ec0 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b2 WHERE NOT NUL
16ed0 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20  L NOT BETWEEN - 
16ee0 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20  + col1 * + col0 
16ef0 41 4e 44 20 32 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  AND 24..----....
16f00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
16f10 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 33  .SELECT ALL + 33
16f20 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
16f30 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
16f40 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
16f50 72 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r1 WHERE ( NULL 
16f60 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
16f70 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
16f80 67 20 74 6f 20 36 32 30 64 33 38 34 32 38 36 65  g to 620d384286e
16f90 38 32 64 31 63 36 63 38 62 31 62 32 62 31 30 39  82d1c6c8b1b2b109
16fa0 61 37 64 61 35 0d 0a 0d 0a 71 75 65 72 79 20 49  a7da5....query I
16fb0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16fc0 20 37 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   70 AS col2 FROM
16fd0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
16fe0 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
16ff0 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e  WEEN ( NULL ) AN
17000 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
17010 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
17020 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
17030 38 38 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 41 53  88 + + + col0 AS
17040 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
17050 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
17060 31 33 0d 0a 2d 32 34 0d 0a 2d 34 32 0d 0a 0d 0a  13..-24..-42....
17070 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
17080 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
17090 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
170a0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
170b0 6c 2d 35 30 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-509..SELECT DI
170c0 53 54 49 4e 43 54 20 2b 20 39 36 2c 20 2b 20 63  STINCT + 96, + c
170d0 6f 6c 32 20 2a 20 2d 20 2d 20 38 38 20 2b 20 2d  ol2 * - - 88 + -
170e0 20 31 38 20 2a 20 2b 20 2d 20 31 39 20 2b 20 2b   18 * + - 19 + +
170f0 20 2d 20 37 38 20 2b 20 43 41 53 54 28 20 2d 20   - 78 + CAST( - 
17100 38 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  87 AS SIGNED ) A
17110 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
17120 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
17130 39 36 0d 0a 35 33 36 39 0d 0a 39 36 0d 0a 36 31  96..5369..96..61
17140 36 31 0d 0a 39 36 0d 0a 38 36 32 35 0d 0a 0d 0a  61..96..8625....
17150 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
17160 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
17170 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
17180 6c 61 62 65 6c 2d 35 30 39 0d 0a 53 45 4c 45 43  label-509..SELEC
17190 54 20 44 49 53 54 49 4e 43 54 20 2b 20 39 36 2c  T DISTINCT + 96,
171a0 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 38 38   + col2 * - - 88
171b0 20 2b 20 2d 20 31 38 20 2a 20 2b 20 2d 20 31 39   + - 18 * + - 19
171c0 20 2b 20 2b 20 2d 20 37 38 20 2b 20 43 41 53 54   + + - 78 + CAST
171d0 20 28 20 2d 20 38 37 20 41 53 20 49 4e 54 45 47   ( - 87 AS INTEG
171e0 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ER ) AS col1 FRO
171f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
17200 2d 2d 2d 2d 0d 0a 39 36 0d 0a 35 33 36 39 0d 0a  ----..96..5369..
17210 39 36 0d 0a 36 31 36 31 0d 0a 39 36 0d 0a 38 36  96..6161..96..86
17220 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  25....onlyif mys
17230 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
17240 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
17250 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17260 35 31 30 0d 0a 53 45 4c 45 43 54 20 38 39 20 41  510..SELECT 89 A
17270 53 20 63 6f 6c 30 2c 20 28 20 2b 20 43 4f 55 4e  S col0, ( + COUN
17280 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 32  T( * ) ) AS col2
17290 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
172a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 39 0d 0a 33 0d  r0..----..89..3.
172b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
172c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
172d0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
172e0 72 74 20 6c 61 62 65 6c 2d 35 31 30 0d 0a 53 45  rt label-510..SE
172f0 4c 45 43 54 20 38 39 20 41 53 20 63 6f 6c 30 2c  LECT 89 AS col0,
17300 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   ( + COUNT ( * )
17310 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
17320 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
17330 2d 2d 0d 0a 38 39 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  --..89..3....onl
17340 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
17350 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
17360 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17370 6c 61 62 65 6c 2d 35 31 31 0d 0a 53 45 4c 45 43  label-511..SELEC
17380 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
17390 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2b 20 28 20   SUM( ALL - + ( 
173a0 2b 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f  + col1 ) ) AS co
173b0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
173c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d  cor0..----..-69.
173d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
173e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
173f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17400 74 20 6c 61 62 65 6c 2d 35 31 31 0d 0a 53 45 4c  t label-511..SEL
17410 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ECT - COUNT ( * 
17420 29 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20  ) + SUM ( ALL - 
17430 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 29 20 41  + ( + col1 ) ) A
17440 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
17450 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
17460 2d 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -69....query II 
17470 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17480 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
17490 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20  AS col2, + col2 
174a0 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  * - col0 AS col2
174b0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
174c0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
174d0 55 4c 4c 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d  ULL ) <> NULL..-
174e0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
174f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
17500 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 28 20 2b 20  LL - col2 * ( + 
17510 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
17520 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
17530 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a 2d 33  ..----..-210..-3
17540 38 30 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e 6c 79  807..-99....only
17550 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
17560 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
17570 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17580 61 62 65 6c 2d 35 31 34 0d 0a 53 45 4c 45 43 54  abel-514..SELECT
17590 20 2b 20 2d 20 28 20 35 20 29 20 2b 20 2d 20 43   + - ( 5 ) + - C
175a0 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 34 37  OUNT( * ) + + 47
175b0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
175c0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  b2 cor0..----..3
175d0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
175e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
175f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
17600 6f 72 74 20 6c 61 62 65 6c 2d 35 31 34 0d 0a 53  ort label-514..S
17610 45 4c 45 43 54 20 2b 20 2d 20 28 20 35 20 29 20  ELECT + - ( 5 ) 
17620 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
17630 2b 20 2b 20 34 37 20 41 53 20 63 6f 6c 32 20 46  + + 47 AS col2 F
17640 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
17650 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 6f 6e 6c 79 69  ---..39....onlyi
17660 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
17670 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
17680 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
17690 62 65 6c 2d 35 31 35 0d 0a 53 45 4c 45 43 54 20  bel-515..SELECT 
176a0 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d  ALL COUNT( * ) -
176b0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
176c0 2b 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d  + - COUNT( ALL -
176d0 20 36 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   60 ) FROM tab1.
176e0 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69  .----..-6....ski
176f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17700 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17710 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17720 6c 2d 35 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-515..SELECT AL
17730 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20  L COUNT ( * ) - 
17740 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
17750 2b 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  + - COUNT ( ALL 
17760 2d 20 36 30 20 29 20 46 52 4f 4d 20 74 61 62 31  - 60 ) FROM tab1
17770 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 6f 6e  ..----..-6....on
17780 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
17790 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
177a0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
177b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
177c0 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  16..SELECT ALL -
177d0 20 38 20 2b 20 2d 20 2d 20 43 41 53 54 28 20 4e   8 + - - CAST( N
177e0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
177f0 2d 20 2d 20 2b 20 31 35 20 46 52 4f 4d 20 74 61  - - + 15 FROM ta
17800 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
17810 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
17820 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17830 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17840 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17850 65 6c 2d 35 31 36 0d 0a 53 45 4c 45 43 54 20 41  el-516..SELECT A
17860 4c 4c 20 2d 20 38 20 2b 20 2d 20 2d 20 43 41 53  LL - 8 + - - CAS
17870 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
17880 47 45 52 20 29 20 2d 20 2d 20 2b 20 31 35 20 46  GER ) - - + 15 F
17890 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
178a0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
178b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
178c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
178d0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  L * FROM tab2 AS
178e0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
178f0 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d   IN ( col1 )..--
17900 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
17910 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17920 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
17930 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
17940 20 29 20 49 4e 20 28 20 2d 20 28 20 32 30 20 29   ) IN ( - ( 20 )
17950 2c 20 2b 20 63 6f 6c 32 2c 20 2b 20 35 38 20 29  , + col2, + 58 )
17960 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
17970 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
17980 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
17990 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
179a0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
179b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 39  owsort label-519
179c0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28  ..SELECT - CAST(
179d0 20 2d 20 28 20 2b 20 2b 20 43 4f 55 4e 54 28 20   - ( + + COUNT( 
179e0 41 4c 4c 20 28 20 32 35 20 29 20 29 20 29 20 41  ALL ( 25 ) ) ) A
179f0 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
17a00 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
17a10 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
17a20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
17a30 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
17a40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31  rowsort label-51
17a50 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  9..SELECT - CAST
17a60 20 28 20 2d 20 28 20 2b 20 2b 20 43 4f 55 4e 54   ( - ( + + COUNT
17a70 20 28 20 41 4c 4c 20 28 20 32 35 20 29 20 29 20   ( ALL ( 25 ) ) 
17a80 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  ) AS INTEGER ) F
17a90 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
17aa0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
17ab0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
17ac0 4c 45 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20 74  LECT col0 FROM t
17ad0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab1 WHERE NOT NU
17ae0 4c 4c 20 3d 20 2d 20 2b 20 63 6f 6c 30 20 2a 20  LL = - + col0 * 
17af0 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2f 20 2b  - ( + col0 ) / +
17b00 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   col0..----....o
17b10 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
17b20 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
17b30 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
17b40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17b50 35 32 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  521..SELECT DIST
17b60 49 4e 43 54 20 2b 20 63 6f 6c 31 20 44 49 56 20  INCT + col1 DIV 
17b70 2b 20 35 35 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 55 FROM tab2..
17b80 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b  ----..0..1....sk
17b90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17ba0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17bb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17bc0 65 6c 2d 35 32 31 0d 0a 53 45 4c 45 43 54 20 44  el-521..SELECT D
17bd0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2f  ISTINCT + col1 /
17be0 20 2b 20 35 35 20 46 52 4f 4d 20 74 61 62 32 0d   + 55 FROM tab2.
17bf0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 0d 0a 6f  .----..0..1....o
17c00 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
17c10 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
17c20 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
17c30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17c40 35 32 32 0d 0a 53 45 4c 45 43 54 20 38 20 2f 20  522..SELECT 8 / 
17c50 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
17c60 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
17c70 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
17c80 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
17c90 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
17ca0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
17cb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
17cc0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 32 0d 0a  sort label-522..
17cd0 53 45 4c 45 43 54 20 38 20 2f 20 2b 20 43 41 53  SELECT 8 / + CAS
17ce0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
17cf0 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52  GER ) AS col1 FR
17d00 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
17d10 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
17d20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17d30 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
17d40 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
17d50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
17d60 62 65 6c 2d 35 32 33 0d 0a 53 45 4c 45 43 54 20  bel-523..SELECT 
17d70 41 4c 4c 20 2b 20 2d 20 43 41 53 54 28 20 2b 20  ALL + - CAST( + 
17d80 2d 20 31 39 20 41 53 20 53 49 47 4e 45 44 20 29  - 19 AS SIGNED )
17d90 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
17da0 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
17db0 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
17dc0 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  r1..----..9 valu
17dd0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 33 64  es hashing to 3d
17de0 61 63 33 30 64 63 38 32 63 39 65 35 61 63 62 62  ac30dc82c9e5acbb
17df0 64 33 61 35 63 35 64 31 61 65 65 65 31 31 0d 0a  d3a5c5d1aeee11..
17e00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
17e10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
17e20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17e30 20 6c 61 62 65 6c 2d 35 32 33 0d 0a 53 45 4c 45   label-523..SELE
17e40 43 54 20 41 4c 4c 20 2b 20 2d 20 43 41 53 54 20  CT ALL + - CAST 
17e50 28 20 2b 20 2d 20 31 39 20 41 53 20 49 4e 54 45  ( + - 19 AS INTE
17e60 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52  GER ) AS col2 FR
17e70 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
17e80 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20  CROSS JOIN tab0 
17e90 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
17ea0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
17eb0 74 6f 20 33 64 61 63 33 30 64 63 38 32 63 39 65  to 3dac30dc82c9e
17ec0 35 61 63 62 62 64 33 61 35 63 35 64 31 61 65 65  5acbbd3a5c5d1aee
17ed0 65 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  e11....query II 
17ee0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17ef0 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 28 20 2d  DISTINCT + - ( -
17f00 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 29 2c   ( - - col0 ) ),
17f10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
17f20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
17f30 35 0d 0a 38 31 0d 0a 38 37 0d 0a 32 31 0d 0a 39  5..81..87..21..9
17f40 37 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7..1....onlyif m
17f50 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
17f60 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
17f70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
17f80 2d 35 32 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -525..SELECT DIS
17f90 54 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54 28  TINCT + + COUNT(
17fa0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
17fb0 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63  S cor0 WHERE + c
17fc0 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol2 IS NULL..---
17fd0 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
17fe0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17ff0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
18000 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 35  owsort label-525
18010 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
18020 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T + + COUNT ( * 
18030 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
18040 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32  or0 WHERE + col2
18050 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
18060 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
18070 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18080 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
18090 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
180a0 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
180b0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  CT COUNT( * ) + 
180c0 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  - + COUNT( * ) F
180d0 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
180e0 45 52 45 20 4e 4f 54 20 2b 20 39 20 2a 20 2b 20  ERE NOT + 9 * + 
180f0 63 6f 6c 31 20 3d 20 2d 20 63 6f 6c 30 20 2b 20  col1 = - col0 + 
18100 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  + + col0..----..
18110 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
18120 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
18130 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
18140 6f 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a 53  ort label-526..S
18150 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
18160 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 2b  OUNT ( * ) + - +
18170 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
18180 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
18190 45 20 4e 4f 54 20 2b 20 39 20 2a 20 2b 20 63 6f  E NOT + 9 * + co
181a0 6c 31 20 3d 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  l1 = - col0 + + 
181b0 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  + col0..----..0.
181c0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
181d0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
181e0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
181f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 37 0d  wsort label-527.
18200 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
18210 20 2d 20 4d 41 58 28 20 2b 20 38 32 20 29 20 41   - MAX( + 82 ) A
18220 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
18230 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18240 2d 38 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -82....skipif my
18250 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
18260 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
18270 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 37 0d  wsort label-527.
18280 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
18290 20 2d 20 4d 41 58 20 28 20 2b 20 38 32 20 29 20   - MAX ( + 82 ) 
182a0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
182b0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
182c0 0a 2d 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-82....query II
182d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
182e0 20 2d 20 2d 20 39 20 2a 20 2d 20 2b 20 63 6f 6c   - - 9 * - + col
182f0 32 2c 20 2d 20 31 38 20 2f 20 2b 20 35 36 20 2b  2, - 18 / + 56 +
18300 20 2d 20 2d 20 38 39 20 2b 20 2d 20 63 6f 6c 32   - - 89 + - col2
18310 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
18320 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
18330 4c 20 3c 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63  L < - col0 + + c
18340 6f 6c 31 20 2a 20 2b 20 34 32 0d 0a 2d 2d 2d 2d  ol1 * + 42..----
18350 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
18360 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
18370 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
18380 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
18390 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
183a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
183b0 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  LECT - col1 * + 
183c0 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  2 col2 FROM tab1
183d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 32 38  ..----..-10..-28
183e0 0d 0a 2d 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-94....query I
183f0 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  IIIII rowsort..S
18400 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
18410 20 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30   FROM tab0, tab0
18420 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
18430 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  NULL = NULL..---
18440 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  -....skipif post
18450 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
18460 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
18470 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
18480 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
18490 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
184a0 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 63 6f 6c  ELECT col1 * col
184b0 30 20 2a 20 2d 20 63 6f 6c 32 20 63 6f 6c 32 20  0 * - col2 col2 
184c0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
184d0 0a 2d 32 35 30 37 35 0d 0a 2d 32 39 30 38 33 36  .-25075..-290836
184e0 0d 0a 2d 36 38 35 34 34 0d 0a 0d 0a 6f 6e 6c 79  ..-68544....only
184f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
18500 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
18510 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
18520 6c 61 62 65 6c 2d 35 33 32 0d 0a 53 45 4c 45 43  label-532..SELEC
18530 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c  T COUNT( * ) col
18540 31 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  1, COUNT( * ) AS
18550 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
18560 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73  .----..3..3....s
18570 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
18580 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
18590 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
185a0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
185b0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
185c0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
185d0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
185e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
185f0 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  2..SELECT COUNT 
18600 28 20 2a 20 29 20 63 6f 6c 31 2c 20 43 4f 55 4e  ( * ) col1, COUN
18610 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
18620 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
18630 0a 33 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .3..3....onlyif 
18640 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
18650 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
18660 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
18670 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
18680 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 33 0d  wsort label-533.
18690 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
186a0 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2b 20 32  UNT( * ) DIV + 2
186b0 32 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  2 * COUNT( * ) A
186c0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
186d0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
186e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
186f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
18700 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18710 6c 2d 35 33 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-533..SELECT AL
18720 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  L - COUNT ( * ) 
18730 2f 20 2b 20 32 32 20 2a 20 43 4f 55 4e 54 20 28  / + 22 * COUNT (
18740 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
18750 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab1..----..0.
18760 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
18770 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 34 20  rt..SELECT + 14 
18780 2a 20 2d 20 31 35 20 41 53 20 63 6f 6c 30 20 46  * - 15 AS col0 F
18790 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
187a0 2d 32 31 30 0d 0a 2d 32 31 30 0d 0a 2d 32 31 30  -210..-210..-210
187b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
187c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
187d0 20 63 6f 6c 32 2c 20 38 38 20 41 53 20 63 6f 6c   col2, 88 AS col
187e0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
187f0 2d 0d 0a 32 33 0d 0a 38 38 0d 0a 34 30 0d 0a 38  -..23..88..40..8
18800 38 0d 0a 35 38 0d 0a 38 38 0d 0a 0d 0a 71 75 65  8..58..88....que
18810 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
18820 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63 6f  ELECT col1 AS co
18830 6c 32 2c 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 31  l2, + ( + - col1
18840 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
18850 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
18860 2d 2d 0d 0a 35 31 0d 0a 2d 35 31 0d 0a 36 37 0d  --..51..-51..67.
18870 0a 2d 36 37 0d 0a 37 37 0d 0a 2d 37 37 0d 0a 0d  .-67..77..-77...
18880 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
18890 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
188a0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
188b0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
188c0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
188d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
188e0 54 20 28 20 2b 20 38 37 20 29 20 2b 20 2b 20 2b  T ( + 87 ) + + +
188f0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 63   col2 + - col0 c
18900 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
18910 2d 2d 2d 0d 0a 31 30 0d 0a 31 31 39 0d 0a 38 39  ---..10..119..89
18920 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
18930 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
18940 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
18950 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
18960 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
18970 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
18980 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 30  LECT DISTINCT 10
18990 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20   + - + col0 + - 
189a0 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col1 col0 FROM t
189b0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a  ab0..----..-86..
189c0 2d 38 38 0d 0a 2d 39 38 0d 0a 0d 0a 71 75 65 72  -88..-98....quer
189d0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
189e0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
189f0 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c   tab1 WHERE NULL
18a00 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 28   NOT BETWEEN + (
18a10 20 63 6f 6c 32 20 29 20 41 4e 44 20 4e 55 4c 4c   col2 ) AND NULL
18a20 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
18a30 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  IIIIII rowsort..
18a40 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
18a50 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b0 AS cor0 CROSS
18a60 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
18a70 72 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r1 WHERE NOT NUL
18a80 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  L BETWEEN NULL A
18a90 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
18aa0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
18ab0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
18ac0 43 54 20 39 39 20 2b 20 2b 20 36 34 2c 20 2b 20  CT 99 + + 64, + 
18ad0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
18ae0 2d 2d 2d 2d 0d 0a 31 36 33 0d 0a 34 36 0d 0a 31  ----..163..46..1
18af0 36 33 0d 0a 36 34 0d 0a 31 36 33 0d 0a 37 35 0d  63..64..163..75.
18b00 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
18b10 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
18b20 4e 43 54 20 2b 20 33 34 20 2d 20 2d 20 28 20 2b  NCT + 34 - - ( +
18b30 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2b 20 63 6f   - col1 ) + + co
18b40 6c 32 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c  l2 * col2 AS col
18b50 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
18b60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 35 37 0d  or0..----..1557.
18b70 0a 33 33 33 31 0d 0a 35 31 32 0d 0a 0d 0a 71 75  .3331..512....qu
18b80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
18b90 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
18ba0 20 28 20 2d 20 30 20 29 20 46 52 4f 4d 20 74 61   ( - 0 ) FROM ta
18bb0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
18bc0 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
18bd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18be0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   * FROM tab2 cor
18bf0 30 20 57 48 45 52 45 20 28 20 28 20 4e 4f 54 20  0 WHERE ( ( NOT 
18c00 28 20 4e 4f 54 20 2d 20 34 33 20 49 53 20 4e 55  ( NOT - 43 IS NU
18c10 4c 4c 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  LL ) ) )..----..
18c20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
18c30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
18c40 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
18c50 57 48 45 52 45 20 2b 20 39 30 20 49 53 20 4e 55  WHERE + 90 IS NU
18c60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
18c70 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
18c80 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
18c90 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
18ca0 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 3e  ERE NOT + col2 >
18cb0 3d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  = - col2..----..
18cc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
18cd0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
18ce0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
18cf0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
18d00 65 6c 2d 35 34 37 0d 0a 53 45 4c 45 43 54 20 2b  el-547..SELECT +
18d10 20 2d 20 34 30 20 2f 20 2d 20 2b 20 43 41 53 54   - 40 / - + CAST
18d20 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
18d30 20 29 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   ) - + col2 FROM
18d40 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
18d50 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
18d60 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
18d70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
18d80 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
18d90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
18da0 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 34 30  7..SELECT + - 40
18db0 20 2f 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55   / - + CAST ( NU
18dc0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
18dd0 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  - + col2 FROM ta
18de0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
18df0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
18e00 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
18e10 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
18e20 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
18e30 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
18e40 74 20 6c 61 62 65 6c 2d 35 34 38 0d 0a 53 45 4c  t label-548..SEL
18e50 45 43 54 20 2d 20 36 30 20 44 49 56 20 2b 20 2d  ECT - 60 DIV + -
18e60 20 34 37 2c 20 37 31 20 41 53 20 63 6f 6c 32 20   47, 71 AS col2 
18e70 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
18e80 2d 2d 2d 2d 0d 0a 31 0d 0a 37 31 0d 0a 31 0d 0a  ----..1..71..1..
18e90 37 31 0d 0a 31 0d 0a 37 31 0d 0a 0d 0a 73 6b 69  71..1..71....ski
18ea0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
18eb0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
18ec0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
18ed0 65 6c 2d 35 34 38 0d 0a 53 45 4c 45 43 54 20 2d  el-548..SELECT -
18ee0 20 36 30 20 2f 20 2b 20 2d 20 34 37 2c 20 37 31   60 / + - 47, 71
18ef0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
18f00 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
18f10 0d 0a 37 31 0d 0a 31 0d 0a 37 31 0d 0a 31 0d 0a  ..71..1..71..1..
18f20 37 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  71....query III 
18f30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
18f40 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
18f50 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
18f60 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 4e 55 4c  RE NOT ( NOT NUL
18f70 4c 20 3e 3d 20 2b 20 2b 20 63 6f 6c 32 20 29 0d  L >= + + col2 ).
18f80 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
18f90 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
18fa0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
18fb0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
18fc0 65 6c 2d 35 35 30 0d 0a 53 45 4c 45 43 54 20 2b  el-550..SELECT +
18fd0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
18fe0 6f 6c 32 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20  ol2, - COUNT( * 
18ff0 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) + - COUNT( * )
19000 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
19010 0d 0a 33 0d 0a 2d 36 0d 0a 0d 0a 73 6b 69 70 69  ..3..-6....skipi
19020 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
19030 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
19040 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
19050 2d 35 35 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -550..SELECT + C
19060 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
19070 6c 32 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  l2, - COUNT ( * 
19080 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) + - COUNT ( * 
19090 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
190a0 2d 0d 0a 33 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72  -..3..-6....quer
190b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
190c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
190d0 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2a  ol2 + - + col0 *
190e0 20 2d 20 39 33 20 41 53 20 63 6f 6c 31 20 46 52   - 93 AS col1 FR
190f0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
19100 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20  T NULL NOT IN ( 
19110 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
19120 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
19130 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
19140 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
19150 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
19160 6c 2d 35 35 32 0d 0a 53 45 4c 45 43 54 20 63 6f  l-552..SELECT co
19170 6c 30 20 2d 20 2d 20 2d 20 63 6f 6c 31 20 44 49  l0 - - - col1 DI
19180 56 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  V - - col0 AS co
19190 6c 32 2c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  l2, - col0 FROM 
191a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a  tab2..----..45..
191b0 2d 34 36 0d 0a 36 33 0d 0a 2d 36 34 0d 0a 37 35  -46..63..-64..75
191c0 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-75....skipif 
191d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
191e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
191f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19200 35 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  52..SELECT col0 
19210 2d 20 2d 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2d  - - - col1 / - -
19220 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2d   col0 AS col2, -
19230 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
19240 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 2d 34 36 0d 0a  .----..45..-46..
19250 36 33 0d 0a 2d 36 34 0d 0a 37 35 0d 0a 2d 37 35  63..-64..75..-75
19260 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
19270 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 36 20 2d  ort..SELECT 76 -
19280 20 36 39 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   69 FROM tab1..-
19290 2d 2d 2d 0d 0a 37 0d 0a 37 0d 0a 37 0d 0a 0d 0a  ---..7..7..7....
192a0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
192b0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
192c0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
192d0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
192e0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
192f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19300 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 2b 20   DISTINCT ( + + 
19310 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 30 20 63 6f  col0 ) + col0 co
19320 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
19330 2d 2d 0d 0a 31 32 38 0d 0a 31 35 30 0d 0a 39 32  --..128..150..92
19340 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
19350 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
19360 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
19370 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
19380 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19390 20 6c 61 62 65 6c 2d 35 35 35 0d 0a 53 45 4c 45   label-555..SELE
193a0 43 54 20 2b 20 33 32 20 2d 20 43 41 53 54 28 20  CT + 32 - CAST( 
193b0 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 2b  + COUNT( ALL + +
193c0 20 63 6f 6c 32 20 29 20 41 53 20 53 49 47 4e 45   col2 ) AS SIGNE
193d0 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
193e0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d   tab1..----..29.
193f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
19400 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
19410 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19420 74 20 6c 61 62 65 6c 2d 35 35 35 0d 0a 53 45 4c  t label-555..SEL
19430 45 43 54 20 2b 20 33 32 20 2d 20 43 41 53 54 20  ECT + 32 - CAST 
19440 28 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  ( + COUNT ( ALL 
19450 2b 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 49 4e  + + col2 ) AS IN
19460 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20  TEGER ) AS col1 
19470 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
19480 0a 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  .29....skipif po
19490 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
194a0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
194b0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
194c0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
194d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
194e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
194f0 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30   - col2 + - col0
19500 20 2a 20 2b 20 28 20 2b 20 33 34 20 29 20 2a 20   * + ( + 34 ) * 
19510 37 20 2b 20 2d 20 33 30 20 63 6f 6c 32 20 46 52  7 + - 30 col2 FR
19520 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
19530 31 31 30 30 31 0d 0a 2d 31 35 33 30 32 0d 0a 2d  11001..-15302..-
19540 31 37 39 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49  17938....query I
19550 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19560 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 2c 20 63 6f  T ALL + col2, co
19570 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
19580 52 45 20 2b 20 38 31 20 2d 20 2d 20 63 6f 6c 31  RE + 81 - - col1
19590 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 49 53 20 4e   * - - col0 IS N
195a0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
195b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
195c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
195d0 39 39 20 2d 20 2d 20 2d 20 63 6f 6c 30 20 46 52  99 - - - col0 FR
195e0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
195f0 2d 2d 0d 0a 2d 31 31 34 0d 0a 2d 31 38 36 0d 0a  --..-114..-186..
19600 2d 31 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -196....onlyif m
19610 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
19620 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
19630 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
19640 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
19650 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 39 0d 0a  sort label-559..
19660 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
19670 2b 20 28 20 2d 20 2b 20 28 20 2b 20 2b 20 43 41  + ( - + ( + + CA
19680 53 54 28 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  ST( COUNT( * ) A
19690 53 20 53 49 47 4e 45 44 20 29 20 29 20 29 20 46  S SIGNED ) ) ) F
196a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
196b0 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
196c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
196d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
196e0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 39 0d 0a  sort label-559..
196f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
19700 2b 20 28 20 2d 20 2b 20 28 20 2b 20 2b 20 43 41  + ( - + ( + + CA
19710 53 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29  ST ( COUNT ( * )
19720 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
19730 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
19740 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-3....query I
19750 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19760 20 44 49 53 54 49 4e 43 54 20 2b 20 33 20 41 53   DISTINCT + 3 AS
19770 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
19780 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
19790 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
197a0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
197b0 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  2 WHERE NOT ( NU
197c0 4c 4c 20 3c 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d  LL < - col2 )..-
197d0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
197e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
197f0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
19800 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
19810 72 74 20 6c 61 62 65 6c 2d 35 36 32 0d 0a 53 45  rt label-562..SE
19820 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c  LECT + CAST( NUL
19830 4c 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20 63  L AS SIGNED ), c
19840 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
19850 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
19860 28 20 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f  ( - col2 ) IS NO
19870 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
19880 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
19890 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
198a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
198b0 6c 61 62 65 6c 2d 35 36 32 0d 0a 53 45 4c 45 43  label-562..SELEC
198c0 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T + CAST ( NULL 
198d0 41 53 20 49 4e 54 45 47 45 52 20 29 2c 20 63 6f  AS INTEGER ), co
198e0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
198f0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28  cor0 WHERE NOT (
19900 20 2d 20 63 6f 6c 32 20 29 20 49 53 20 4e 4f 54   - col2 ) IS NOT
19910 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
19920 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19930 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
19940 32 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  20 AS col2 FROM 
19950 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
19960 2d 2d 0d 0a 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..20....onlyif
19970 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
19980 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
19990 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
199a0 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
199b0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
199c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
199d0 20 6c 61 62 65 6c 2d 35 36 34 0d 0a 53 45 4c 45   label-564..SELE
199e0 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
199f0 44 49 56 20 43 41 53 54 28 20 34 38 20 41 53 20  DIV CAST( 48 AS 
19a00 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30  SIGNED ) AS col0
19a10 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
19a20 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  r0..----..0....s
19a30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
19a40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
19a50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19a60 62 65 6c 2d 35 36 34 0d 0a 53 45 4c 45 43 54 20  bel-564..SELECT 
19a70 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20  - COUNT ( * ) / 
19a80 43 41 53 54 20 28 20 34 38 20 41 53 20 49 4e 54  CAST ( 48 AS INT
19a90 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46  EGER ) AS col0 F
19aa0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
19ab0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
19ac0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
19ad0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
19ae0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
19af0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
19b00 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
19b10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
19b20 4c 20 2d 20 2d 20 38 35 20 2a 20 2d 20 35 33 20  L - - 85 * - 53 
19b30 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
19b40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
19b50 35 30 35 0d 0a 2d 34 35 30 35 0d 0a 2d 34 35 30  505..-4505..-450
19b60 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
19b70 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
19b80 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
19b90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
19ba0 6c 61 62 65 6c 2d 35 36 36 0d 0a 53 45 4c 45 43  label-566..SELEC
19bb0 54 20 41 56 47 20 28 20 2b 20 28 20 2b 20 2d 20  T AVG ( + ( + - 
19bc0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
19bd0 47 4e 45 44 20 29 20 29 20 29 20 46 52 4f 4d 20  GNED ) ) ) FROM 
19be0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
19bf0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
19c00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19c10 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19c20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19c30 2d 35 36 36 0d 0a 53 45 4c 45 43 54 20 41 56 47  -566..SELECT AVG
19c40 20 28 20 2b 20 28 20 2b 20 2d 20 43 41 53 54 20   ( + ( + - CAST 
19c50 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
19c60 52 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62  R ) ) ) FROM tab
19c70 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
19c80 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
19c90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19ca0 20 28 20 2b 20 32 36 20 29 20 41 53 20 63 6f 6c   ( + 26 ) AS col
19cb0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
19cc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 0d 0a 32  or0..----..26..2
19cd0 36 0d 0a 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49  6..26....query I
19ce0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19cf0 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 2b 20   ALL - col2 * + 
19d00 33 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  37 AS col0 FROM 
19d10 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 38  tab1..----..-218
19d20 33 0d 0a 2d 32 35 31 36 0d 0a 2d 33 35 35 32 0d  3..-2516..-3552.
19d30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
19d40 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
19d50 32 20 2a 20 2b 20 2b 20 38 32 20 46 52 4f 4d 20  2 * + + 82 FROM 
19d60 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 33  tab1..----..-483
19d70 38 0d 0a 2d 35 35 37 36 0d 0a 2d 37 38 37 32 0d  8..-5576..-7872.
19d80 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
19d90 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
19da0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
19db0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 30 0d  wsort label-570.
19dc0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19dd0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
19de0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
19df0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
19e00 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70  ----..-9....skip
19e10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
19e20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
19e30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19e40 2d 35 37 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  -570..SELECT DIS
19e50 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
19e60 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20  * ) * + COUNT ( 
19e70 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
19e80 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   tab0..----..-9.
19e90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
19ea0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
19eb0 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
19ec0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19ed0 61 62 65 6c 2d 35 37 31 0d 0a 53 45 4c 45 43 54  abel-571..SELECT
19ee0 20 41 4c 4c 20 37 35 20 2b 20 2d 20 43 41 53 54   ALL 75 + - CAST
19ef0 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
19f00 4c 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  L ) FROM tab2..-
19f10 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
19f20 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
19f30 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
19f40 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
19f50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37  rowsort label-57
19f60 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 35  1..SELECT ALL 75
19f70 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
19f80 20 41 53 20 52 45 41 4c 20 29 20 46 52 4f 4d 20   AS REAL ) FROM 
19f90 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
19fa0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
19fb0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
19fc0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
19fd0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
19fe0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
19ff0 65 6c 2d 35 37 32 0d 0a 53 45 4c 45 43 54 20 41  el-572..SELECT A
1a000 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
1a010 48 45 52 45 20 2b 20 2d 20 63 6f 6c 30 20 2d 20  HERE + - col0 - 
1a020 63 6f 6c 30 20 3c 3e 20 2b 20 43 41 53 54 28 20  col0 <> + CAST( 
1a030 2b 20 32 30 20 41 53 20 53 49 47 4e 45 44 20 29  + 20 AS SIGNED )
1a040 20 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d   - + col0..----.
1a050 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1a060 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
1a070 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
1a080 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  d0a49....skipif 
1a090 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1a0a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1a0b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a0c0 35 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  572..SELECT ALL 
1a0d0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
1a0e0 45 20 2b 20 2d 20 63 6f 6c 30 20 2d 20 63 6f 6c  E + - col0 - col
1a0f0 30 20 3c 3e 20 2b 20 43 41 53 54 20 28 20 2b 20  0 <> + CAST ( + 
1a100 32 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  20 AS INTEGER ) 
1a110 2d 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  - + col0..----..
1a120 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1a130 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
1a140 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
1a150 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49  0a49....query II
1a160 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a170 20 2d 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20   - col0, - col0 
1a180 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1a190 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49  0 WHERE + col2 I
1a1a0 53 20 4e 55 4c 4c 20 41 4e 44 20 4e 4f 54 20 4e  S NULL AND NOT N
1a1b0 55 4c 4c 20 3c 3d 20 63 6f 6c 32 0d 0a 2d 2d 2d  ULL <= col2..---
1a1c0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
1a1d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  sort..SELECT + +
1a1e0 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2b 20 2b   col2 * col2 + +
1a1f0 20 33 39 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 46   39 + - + col1 F
1a200 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1a210 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d 0a 32 31 36  ..----..118..216
1a220 37 0d 0a 39 38 33 39 0d 0a 0d 0a 71 75 65 72 79  7..9839....query
1a230 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1a240 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 63 6f  CT ALL col2 + co
1a250 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 46 52  l0 + - - col0 FR
1a260 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
1a270 39 38 0d 0a 32 32 39 0d 0a 32 35 30 0d 0a 0d 0a  98..229..250....
1a280 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1a290 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1a2a0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1a2b0 72 74 20 6c 61 62 65 6c 2d 35 37 36 0d 0a 53 45  rt label-576..SE
1a2c0 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
1a2d0 28 20 41 4c 4c 20 37 38 20 29 20 2b 20 2d 20 34  ( ALL 78 ) + - 4
1a2e0 36 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  6 FROM tab0..---
1a2f0 2d 0d 0a 2d 34 33 0d 0a 0d 0a 73 6b 69 70 69 66  -..-43....skipif
1a300 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a310 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1a320 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1a330 37 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  76..SELECT ALL +
1a340 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 37 38 20   COUNT ( ALL 78 
1a350 29 20 2b 20 2d 20 34 36 20 46 52 4f 4d 20 74 61  ) + - 46 FROM ta
1a360 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 0d 0a 0d  b0..----..-43...
1a370 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1a380 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1a390 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1a3a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1a3b0 6c 2d 35 37 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-577..SELECT DI
1a3c0 53 54 49 4e 43 54 20 43 41 53 54 28 20 4e 55 4c  STINCT CAST( NUL
1a3d0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
1a3e0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1a3f0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
1a400 49 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d  IN tab2 cor1..--
1a410 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
1a420 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a430 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a440 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a450 2d 35 37 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -577..SELECT DIS
1a460 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c  TINCT CAST ( NUL
1a470 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
1a480 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
1a490 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
1a4a0 4f 49 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d  OIN tab2 cor1..-
1a4b0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
1a4c0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
1a4d0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
1a4e0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
1a4f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37  rowsort label-57
1a500 38 0d 0a 53 45 4c 45 43 54 20 33 31 20 44 49 56  8..SELECT 31 DIV
1a510 20 2d 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 28 20   - + col0 - + ( 
1a520 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
1a530 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1a540 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d  -51..-85..-91...
1a550 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1a560 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1a570 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a580 6c 61 62 65 6c 2d 35 37 38 0d 0a 53 45 4c 45 43  label-578..SELEC
1a590 54 20 33 31 20 2f 20 2d 20 2b 20 63 6f 6c 30 20  T 31 / - + col0 
1a5a0 2d 20 2b 20 28 20 63 6f 6c 30 20 29 20 46 52 4f  - + ( col0 ) FRO
1a5b0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
1a5c0 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d 0a  ----..-51..-85..
1a5d0 2d 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -91....onlyif my
1a5e0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1a5f0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1a600 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a610 35 37 39 0d 0a 53 45 4c 45 43 54 20 2b 20 33 32  579..SELECT + 32
1a620 20 2d 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20   - + - COUNT( * 
1a630 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1a640 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1a650 2d 0d 0a 33 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..35....skipif 
1a660 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1a670 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1a680 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37  rowsort label-57
1a690 39 0d 0a 53 45 4c 45 43 54 20 2b 20 33 32 20 2d  9..SELECT + 32 -
1a6a0 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
1a6b0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1a6c0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1a6d0 0d 0a 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..35....onlyif m
1a6e0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1a6f0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1a700 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1a710 72 74 20 6c 61 62 65 6c 2d 35 38 30 0d 0a 53 45  rt label-580..SE
1a720 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20 63 6f  LECT col1 + + co
1a730 6c 31 20 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c  l1 * - CAST( NUL
1a740 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52  L AS SIGNED ) FR
1a750 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
1a760 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
1a770 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
1a780 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1a790 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1a7a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 30  owsort label-580
1a7b0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20  ..SELECT col1 + 
1a7c0 2b 20 63 6f 6c 31 20 2a 20 2d 20 43 41 53 54 20  + col1 * - CAST 
1a7d0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1a7e0 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  R ) FROM tab0 co
1a7f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
1a800 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
1a810 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1a820 45 4c 45 43 54 20 2d 20 2d 20 35 38 20 2b 20 63  ELECT - - 58 + c
1a830 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
1a840 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 35   cor0..----..145
1a850 0d 0a 31 35 35 0d 0a 37 33 0d 0a 0d 0a 6f 6e 6c  ..155..73....onl
1a860 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1a870 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1a880 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1a890 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38  rowsort label-58
1a8a0 32 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  2..SELECT - col1
1a8b0 20 2f 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   / + CAST( NULL 
1a8c0 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
1a8d0 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col2 col0 FROM t
1a8e0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
1a8f0 45 20 4e 55 4c 4c 20 3c 3e 20 2b 20 63 6f 6c 31  E NULL <> + col1
1a900 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
1a910 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a920 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
1a930 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
1a940 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
1a950 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
1a960 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
1a970 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a980 74 20 6c 61 62 65 6c 2d 35 38 32 0d 0a 53 45 4c  t label-582..SEL
1a990 45 43 54 20 2d 20 63 6f 6c 31 20 2f 20 2b 20 43  ECT - col1 / + C
1a9a0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1a9b0 54 45 47 45 52 20 29 20 2b 20 2d 20 63 6f 6c 32  TEGER ) + - col2
1a9c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
1a9d0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
1a9e0 4c 4c 20 3c 3e 20 2b 20 63 6f 6c 31 0d 0a 2d 2d  LL <> + col1..--
1a9f0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1aa00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 20  wsort..SELECT 7 
1aa10 2b 20 2d 20 35 34 20 41 53 20 63 6f 6c 31 20 46  + - 54 AS col1 F
1aa20 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1aa30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 2d 34 37  ..----..-47..-47
1aa40 0d 0a 2d 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-47....query I
1aa50 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1aa60 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
1aa70 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
1aa80 54 20 28 20 4e 4f 54 20 63 6f 6c 30 20 2f 20 2d  T ( NOT col0 / -
1aa90 20 33 36 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2a   36 * + + col1 *
1aaa0 20 38 30 20 2a 20 2b 20 2b 20 32 20 49 53 20 4e   80 * + + 2 IS N
1aab0 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d  OT NULL )..----.
1aac0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1aad0 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
1aae0 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
1aaf0 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
1ab00 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1ab10 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1ab20 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1ab30 6f 72 74 20 6c 61 62 65 6c 2d 35 38 35 0d 0a 53  ort label-585..S
1ab40 45 4c 45 43 54 20 2d 20 34 39 20 44 49 56 20 2b  ELECT - 49 DIV +
1ab50 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
1ab60 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
1ab70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1ab80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1ab90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1aba0 20 6c 61 62 65 6c 2d 35 38 35 0d 0a 53 45 4c 45   label-585..SELE
1abb0 43 54 20 2d 20 34 39 20 2f 20 2b 20 63 6f 6c 32  CT - 49 / + col2
1abc0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1abd0 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65  ..0..0..0....que
1abe0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1abf0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
1ac00 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20  l1 + + col2 + - 
1ac10 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
1ac20 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1ac30 2d 35 36 0d 0a 31 31 33 0d 0a 33 0d 0a 0d 0a 6f  -56..113..3....o
1ac40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1ac50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1ac60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1ac70 74 20 6c 61 62 65 6c 2d 35 38 37 0d 0a 53 45 4c  t label-587..SEL
1ac80 45 43 54 20 2d 20 28 20 2d 20 4d 49 4e 28 20 41  ECT - ( - MIN( A
1ac90 4c 4c 20 28 20 2d 20 63 6f 6c 32 20 29 20 29 20  LL ( - col2 ) ) 
1aca0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1acb0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a  ab1..----..-96..
1acc0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1acd0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1ace0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1acf0 20 6c 61 62 65 6c 2d 35 38 37 0d 0a 53 45 4c 45   label-587..SELE
1ad00 43 54 20 2d 20 28 20 2d 20 4d 49 4e 20 28 20 41  CT - ( - MIN ( A
1ad10 4c 4c 20 28 20 2d 20 63 6f 6c 32 20 29 20 29 20  LL ( - col2 ) ) 
1ad20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1ad30 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a  ab1..----..-96..
1ad40 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1ad50 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1ad60 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1ad70 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 38 0d 0a  sort label-588..
1ad80 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1ad90 2b 20 2b 20 53 55 4d 28 20 2d 20 63 6f 6c 30 20  + + SUM( - col0 
1ada0 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
1adb0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
1adc0 20 31 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   12 IS NULL..---
1add0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
1ade0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1adf0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
1ae00 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1ae10 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1ae20 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1ae30 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1ae40 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
1ae50 72 74 20 6c 61 62 65 6c 2d 35 38 38 0d 0a 53 45  rt label-588..SE
1ae60 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1ae70 2b 20 53 55 4d 20 28 20 2d 20 63 6f 6c 30 20 29  + SUM ( - col0 )
1ae80 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1ae90 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
1aea0 31 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  12 IS NULL..----
1aeb0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
1aec0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1aed0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  CT DISTINCT col0
1aee0 2c 20 2b 20 39 38 20 46 52 4f 4d 20 74 61 62 30  , + 98 FROM tab0
1aef0 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 39 38 0d 0a  ..----..15..98..
1af00 38 37 0d 0a 39 38 0d 0a 39 37 0d 0a 39 38 0d 0a  87..98..97..98..
1af10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1af20 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
1af30 20 2a 20 2d 20 36 39 20 46 52 4f 4d 20 74 61 62   * - 69 FROM tab
1af40 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1af50 0a 31 30 33 35 0d 0a 36 30 30 33 0d 0a 36 36 39  .1035..6003..669
1af60 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
1af70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
1af80 20 63 6f 6c 31 20 2a 20 2d 20 33 37 20 46 52 4f   col1 * - 37 FRO
1af90 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1afa0 2d 2d 2d 2d 0d 0a 32 39 39 37 0d 0a 33 37 0d 0a  ----..2997..37..
1afb0 37 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  777....query I r
1afc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
1afd0 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 41  ol1 * + - col2 A
1afe0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1aff0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
1b000 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
1b010 0a 2d 31 31 37 33 0d 0a 2d 33 30 38 30 0d 0a 2d  .-1173..-3080..-
1b020 33 38 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3886....onlyif m
1b030 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1b040 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1b050 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1b060 72 74 20 6c 61 62 65 6c 2d 35 39 33 0d 0a 53 45  rt label-593..SE
1b070 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1b080 63 6f 6c 30 20 2a 20 33 20 2a 20 43 41 53 54 28  col0 * 3 * CAST(
1b090 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
1b0a0 29 20 2f 20 37 32 20 2f 20 28 20 2d 20 2b 20 63  ) / 72 / ( - + c
1b0b0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d  ol0 ) FROM tab2.
1b0c0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1b0d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1b0e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1b0f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b100 62 65 6c 2d 35 39 33 0d 0a 53 45 4c 45 43 54 20  bel-593..SELECT 
1b110 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
1b120 2a 20 33 20 2a 20 43 41 53 54 20 28 20 4e 55 4c  * 3 * CAST ( NUL
1b130 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  L AS INTEGER ) /
1b140 20 37 32 20 2f 20 28 20 2d 20 2b 20 63 6f 6c 30   72 / ( - + col0
1b150 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
1b160 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
1b170 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1b180 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
1b190 32 20 2a 20 2d 20 2b 20 28 20 28 20 37 37 20 29  2 * - + ( ( 77 )
1b1a0 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
1b1b0 2d 2d 0d 0a 2d 31 37 37 31 0d 0a 2d 33 30 38 30  --..-1771..-3080
1b1c0 0d 0a 2d 34 34 36 36 0d 0a 0d 0a 71 75 65 72 79  ..-4466....query
1b1d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b1e0 43 54 20 37 30 20 46 52 4f 4d 20 74 61 62 30 20  CT 70 FROM tab0 
1b1f0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
1b200 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
1b210 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1b220 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b230 20 2d 20 28 20 2b 20 34 35 20 29 20 2b 20 2d 20   - ( + 45 ) + - 
1b240 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  - col1 AS col2 F
1b250 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
1b260 2d 2d 2d 0d 0a 2d 33 31 0d 0a 2d 34 30 0d 0a 32  ---..-31..-40..2
1b270 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1b280 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 38 20 2b  ort..SELECT 58 +
1b290 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
1b2a0 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 32 32 0d  .----..104..122.
1b2b0 0a 31 33 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .133....query I 
1b2c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b2d0 38 39 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  89 * + + col0 + 
1b2e0 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - + col0 FROM ta
1b2f0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 32 30 0d 0a  b0..----..1320..
1b300 37 36 35 36 0d 0a 38 35 33 36 0d 0a 0d 0a 6f 6e  7656..8536....on
1b310 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1b320 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1b330 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1b340 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
1b350 39 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  99..SELECT ALL -
1b360 20 28 20 2b 20 2b 20 43 41 53 54 28 20 2d 20 2b   ( + + CAST( - +
1b370 20 32 35 20 41 53 20 53 49 47 4e 45 44 20 29 20   25 AS SIGNED ) 
1b380 29 20 2d 20 2d 20 31 33 20 46 52 4f 4d 20 74 61  ) - - 13 FROM ta
1b390 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 33 38  b2..----..38..38
1b3a0 0d 0a 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..38....skipif m
1b3b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1b3c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1b3d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 39  owsort label-599
1b3e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28  ..SELECT ALL - (
1b3f0 20 2b 20 2b 20 43 41 53 54 20 28 20 2d 20 2b 20   + + CAST ( - + 
1b400 32 35 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  25 AS INTEGER ) 
1b410 29 20 2d 20 2d 20 31 33 20 46 52 4f 4d 20 74 61  ) - - 13 FROM ta
1b420 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 38 0d 0a 33 38  b2..----..38..38
1b430 0d 0a 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..38....onlyif m
1b440 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1b450 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1b460 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
1b470 6f 72 74 20 6c 61 62 65 6c 2d 36 30 30 0d 0a 53  ort label-600..S
1b480 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1b490 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 32 31 20 2b   col0 - - + 21 +
1b4a0 20 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   - - CAST( NULL 
1b4b0 41 53 20 53 49 47 4e 45 44 20 29 2c 20 39 35 20  AS SIGNED ), 95 
1b4c0 2f 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 43 41 53  / - col1 / - CAS
1b4d0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1b4e0 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  D ) AS col2 FROM
1b4f0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1b500 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1b510 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1b520 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1b530 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1b540 72 74 20 6c 61 62 65 6c 2d 36 30 30 0d 0a 53 45  rt label-600..SE
1b550 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1b560 63 6f 6c 30 20 2d 20 2d 20 2b 20 32 31 20 2b 20  col0 - - + 21 + 
1b570 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - - CAST ( NULL 
1b580 41 53 20 49 4e 54 45 47 45 52 20 29 2c 20 39 35  AS INTEGER ), 95
1b590 20 2f 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 43 41   / - col1 / - CA
1b5a0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
1b5b0 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46  EGER ) AS col2 F
1b5c0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1b5d0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
1b5e0 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
1b5f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1b600 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
1b610 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1b620 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
1b630 6f 72 74 20 6c 61 62 65 6c 2d 36 30 31 0d 0a 53  ort label-601..S
1b640 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1b650 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49   - COUNT( * ) DI
1b660 56 20 53 55 4d 28 20 2d 20 2d 20 31 32 20 29 20  V SUM( - - 12 ) 
1b670 41 53 20 63 6f 6c 31 2c 20 35 36 20 2b 20 2b 20  AS col1, 56 + + 
1b680 2b 20 38 35 20 46 52 4f 4d 20 74 61 62 30 20 41  + 85 FROM tab0 A
1b690 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
1b6a0 0a 31 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .141....skipif m
1b6b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1b6c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
1b6d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30  rowsort label-60
1b6e0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
1b6f0 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a  CT + - COUNT ( *
1b700 20 29 20 2f 20 53 55 4d 20 28 20 2d 20 2d 20 31   ) / SUM ( - - 1
1b710 32 20 29 20 41 53 20 63 6f 6c 31 2c 20 35 36 20  2 ) AS col1, 56 
1b720 2b 20 2b 20 2b 20 38 35 20 46 52 4f 4d 20 74 61  + + + 85 FROM ta
1b730 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1b740 0d 0a 30 0d 0a 31 34 31 0d 0a 0d 0a 6f 6e 6c 79  ..0..141....only
1b750 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1b760 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
1b770 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1b780 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30  rowsort label-60
1b790 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  2..SELECT ALL - 
1b7a0 2b 20 32 37 20 2d 20 2d 20 43 41 53 54 28 20 4e  + 27 - - CAST( N
1b7b0 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
1b7c0 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20   + + - col0 * - 
1b7d0 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 41 53  col1 * + col0 AS
1b7e0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
1b7f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
1b800 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
1b810 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1b820 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1b830 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b840 74 20 6c 61 62 65 6c 2d 36 30 32 0d 0a 53 45 4c  t label-602..SEL
1b850 45 43 54 20 41 4c 4c 20 2d 20 2b 20 32 37 20 2d  ECT ALL - + 27 -
1b860 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
1b870 53 20 52 45 41 4c 20 29 20 2b 20 2b 20 2d 20 63  S REAL ) + + - c
1b880 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b  ol0 * - col1 * +
1b890 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
1b8a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
1b8b0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
1b8c0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
1b8d0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
1b8e0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1b8f0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1b900 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 33 0d  wsort label-603.
1b910 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 36  .SELECT ALL - 46
1b920 20 44 49 56 20 63 6f 6c 30 20 63 6f 6c 31 20 46   DIV col0 col1 F
1b930 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1b940 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30  ..----..-1..0..0
1b950 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1b960 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1b970 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
1b980 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1b990 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1b9a0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1b9b0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1b9c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1b9d0 6c 2d 36 30 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-603..SELECT AL
1b9e0 4c 20 2d 20 34 36 20 2f 20 63 6f 6c 30 20 63 6f  L - 46 / col0 co
1b9f0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1ba00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
1ba10 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0..0....query I 
1ba20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1ba30 32 37 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20  27 - - col2 * + 
1ba40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
1ba50 2d 2d 2d 2d 0d 0a 31 36 32 37 0d 0a 33 33 39 31  ----..1627..3391
1ba60 0d 0a 35 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..556....onlyif 
1ba70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1ba80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1ba90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1baa0 6c 2d 36 30 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-605..SELECT AL
1bab0 4c 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20  L SUM( DISTINCT 
1bac0 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
1bad0 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d 0a 0d 0a 73  ..----..227....s
1bae0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1baf0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1bb00 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bb10 62 65 6c 2d 36 30 35 0d 0a 53 45 4c 45 43 54 20  bel-605..SELECT 
1bb20 41 4c 4c 20 53 55 4d 20 28 20 44 49 53 54 49 4e  ALL SUM ( DISTIN
1bb30 43 54 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74  CT col0 ) FROM t
1bb40 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 37 0d 0a  ab1..----..227..
1bb50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1bb60 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a  t..SELECT col0 *
1bb70 20 63 6f 6c 31 20 2d 20 2b 20 39 31 20 2a 20 37   col1 - + 91 * 7
1bb80 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   * col1 AS col1 
1bb90 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1bba0 0a 2d 32 35 36 36 32 0d 0a 2d 32 37 36 30 0d 0a  .-25662..-2760..
1bbb0 2d 38 32 30 34 0d 0a 0d 0a 71 75 65 72 79 20 49  -8204....query I
1bbc0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1bbd0 20 63 6f 6c 31 20 2d 20 2b 20 2b 20 34 34 20 46   col1 - + + 44 F
1bbe0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1bbf0 2d 32 33 0d 0a 2d 34 33 0d 0a 33 37 0d 0a 0d 0a  -23..-43..37....
1bc00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1bc10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1bc20 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
1bc30 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
1bc40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1bc50 65 6c 2d 36 30 38 0d 0a 53 45 4c 45 43 54 20 4d  el-608..SELECT M
1bc60 49 4e 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 44  IN( + + col0 ) D
1bc70 49 56 20 31 31 20 46 52 4f 4d 20 74 61 62 32 0d  IV 11 FROM tab2.
1bc80 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 0d 0a 73 6b 69 70  .----..4....skip
1bc90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1bca0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1bcb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1bcc0 2d 36 30 38 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -608..SELECT MIN
1bcd0 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 2f 20   ( + + col0 ) / 
1bce0 31 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  11 FROM tab2..--
1bcf0 2d 2d 0d 0a 34 0d 0a 0d 0a 71 75 65 72 79 20 49  --..4....query I
1bd00 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1bd10 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
1bd20 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20  HERE NOT NULL < 
1bd30 2b 20 36 33 20 2b 20 2b 20 35 33 0d 0a 2d 2d 2d  + 63 + + 53..---
1bd40 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
1bd50 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1bd60 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
1bd70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1bd80 31 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  10..SELECT COUNT
1bd90 28 20 2a 20 29 20 63 6f 6c 31 2c 20 2d 20 4d 41  ( * ) col1, - MA
1bda0 58 28 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63  X( - col2 ) AS c
1bdb0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
1bdc0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
1bdd0 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  23....skipif mys
1bde0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1bdf0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
1be00 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1be10 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1be20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1be30 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1be40 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1be50 61 62 65 6c 2d 36 31 30 0d 0a 53 45 4c 45 43 54  abel-610..SELECT
1be60 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
1be70 31 2c 20 2d 20 4d 41 58 20 28 20 2d 20 63 6f 6c  1, - MAX ( - col
1be80 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  2 ) AS col0 FROM
1be90 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1bea0 2d 2d 2d 0d 0a 33 0d 0a 32 33 0d 0a 0d 0a 6f 6e  ---..3..23....on
1beb0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1bec0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1bed0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1bee0 20 6c 61 62 65 6c 2d 36 31 31 0d 0a 53 45 4c 45   label-611..SELE
1bef0 43 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2d 20  CT - + COUNT( - 
1bf00 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46  col2 ) AS col1 F
1bf10 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1bf20 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
1bf30 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1bf40 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1bf50 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1bf60 65 6c 2d 36 31 31 0d 0a 53 45 4c 45 43 54 20 2d  el-611..SELECT -
1bf70 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 63 6f 6c   + COUNT ( - col
1bf80 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  2 ) AS col1 FROM
1bf90 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1bfa0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ---..-3....query
1bfb0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1bfc0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
1bfd0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
1bfe0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
1bff0 20 63 6f 6c 30 20 3e 20 63 6f 6c 32 0d 0a 2d 2d   col0 > col2..--
1c000 2d 2d 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75  --..47..99....qu
1c010 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1c020 45 4c 45 43 54 20 2b 20 31 33 20 41 53 20 63 6f  ELECT + 13 AS co
1c030 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l1 FROM tab2 cor
1c040 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 31 33 0d  0..----..13..13.
1c050 0a 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .13....query II 
1c060 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1c070 41 4c 4c 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29  ALL + + ( col1 )
1c080 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  , col1 AS col1 F
1c090 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1c0a0 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35 31 0d 0a  ..----..51..51..
1c0b0 36 37 0d 0a 36 37 0d 0a 37 37 0d 0a 37 37 0d 0a  67..67..77..77..
1c0c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1c0d0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1c0e0 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
1c0f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 35 0d  wsort label-615.
1c100 0a 53 45 4c 45 43 54 20 2b 20 2b 20 28 20 31 30  .SELECT + + ( 10
1c110 20 29 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41   ), COUNT( * ) A
1c120 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
1c130 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1c140 31 30 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  10..3....skipif 
1c150 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c160 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1c170 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1c180 31 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 28  15..SELECT + + (
1c190 20 31 30 20 29 2c 20 43 4f 55 4e 54 20 28 20 2a   10 ), COUNT ( *
1c1a0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1c1b0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1c1c0 2d 2d 0d 0a 31 30 0d 0a 33 0d 0a 0d 0a 71 75 65  --..10..3....que
1c1d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1c1e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1c1f0 39 39 20 2b 20 2b 20 28 20 2b 20 2b 20 35 34 20  99 + + ( + + 54 
1c200 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  ) FROM tab2 WHER
1c210 45 20 2d 20 63 6f 6c 32 20 42 45 54 57 45 45 4e  E - col2 BETWEEN
1c220 20 63 6f 6c 32 20 41 4e 44 20 4e 55 4c 4c 0d 0a   col2 AND NULL..
1c230 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
1c240 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1c250 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1c260 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1c270 72 74 20 6c 61 62 65 6c 2d 36 31 37 0d 0a 53 45  rt label-617..SE
1c280 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20  LECT CAST( NULL 
1c290 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b 20  AS SIGNED ) + + 
1c2a0 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 32 20  col1 * - - col2 
1c2b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1c2c0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
1c2d0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
1c2e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c2f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1c300 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c310 6c 2d 36 31 37 0d 0a 53 45 4c 45 43 54 20 43 41  l-617..SELECT CA
1c320 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
1c330 45 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c 31 20  EGER ) + + col1 
1c340 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  * - - col2 AS co
1c350 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
1c360 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
1c370 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
1c380 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1c390 2d 20 38 32 20 2b 20 2d 20 2d 20 63 6f 6c 32 20  - 82 + - - col2 
1c3a0 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + + col2 FROM ta
1c3b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 33  b2..----..-2..-3
1c3c0 36 0d 0a 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49  6..34....query I
1c3d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c3e0 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f   - col2 + + + co
1c3f0 6c 31 20 2a 20 34 34 20 46 52 4f 4d 20 74 61 62  l1 * 44 FROM tab
1c400 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1c410 0a 31 36 31 0d 0a 32 30 30 30 0d 0a 35 32 30 0d  .161..2000..520.
1c420 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1c430 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 28  rt..SELECT - - (
1c440 20 2b 20 39 34 20 29 20 46 52 4f 4d 20 74 61 62   + 94 ) FROM tab
1c450 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1c460 0a 39 34 0d 0a 39 34 0d 0a 39 34 0d 0a 0d 0a 71  .94..94..94....q
1c470 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1c480 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c490 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
1c4a0 48 45 52 45 20 4e 4f 54 20 2d 20 35 37 20 49 53  HERE NOT - 57 IS
1c4b0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   NULL..----..59.
1c4c0 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79  .68..96....query
1c4d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1c4e0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 32 30  CT DISTINCT + 20
1c4f0 20 2a 20 2b 20 35 36 20 46 52 4f 4d 20 74 61 62   * + 56 FROM tab
1c500 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  0 WHERE NULL BET
1c510 57 45 45 4e 20 28 20 2d 20 63 6f 6c 30 20 2b 20  WEEN ( - col0 + 
1c520 28 20 2b 20 33 31 20 29 20 2a 20 31 32 20 29 20  ( + 31 ) * 12 ) 
1c530 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
1c540 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c550 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  t..SELECT + col1
1c560 20 2b 20 63 6f 6c 31 20 2a 20 28 20 63 6f 6c 31   + col1 * ( col1
1c570 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d   + - col2 ) FROM
1c580 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37   tab2..----..147
1c590 39 0d 0a 32 39 32 36 0d 0a 36 37 30 0d 0a 0d 0a  9..2926..670....
1c5a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1c5b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
1c5c0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l1 FROM tab2 WHE
1c5d0 52 45 20 32 35 20 42 45 54 57 45 45 4e 20 35 36  RE 25 BETWEEN 56
1c5e0 20 41 4e 44 20 28 20 63 6f 6c 31 20 2a 20 2b 20   AND ( col1 * + 
1c5f0 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col0 )..----....
1c600 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1c610 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b  .SELECT col1 + +
1c620 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63   ( + col2 ) AS c
1c630 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1c640 2d 2d 2d 0d 0a 31 30 30 0d 0a 31 32 38 0d 0a 33  ---..100..128..3
1c650 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
1c660 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1c670 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
1c680 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1c690 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c6a0 74 20 6c 61 62 65 6c 2d 36 32 36 0d 0a 53 45 4c  t label-626..SEL
1c6b0 45 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20 63  ECT COUNT( ALL c
1c6c0 6f 6c 32 20 29 20 44 49 56 20 39 37 20 46 52 4f  ol2 ) DIV 97 FRO
1c6d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
1c6e0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1c6f0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1c700 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c710 74 20 6c 61 62 65 6c 2d 36 32 36 0d 0a 53 45 4c  t label-626..SEL
1c720 45 43 54 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  ECT COUNT ( ALL 
1c730 63 6f 6c 32 20 29 20 2f 20 39 37 20 46 52 4f 4d  col2 ) / 97 FROM
1c740 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
1c750 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1c760 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1c770 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
1c780 20 57 48 45 52 45 20 28 20 39 39 20 2b 20 2d 20   WHERE ( 99 + - 
1c790 39 34 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  94 ) IS NOT NULL
1c7a0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1c7b0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30   hashing to c6c0
1c7c0 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31  a4111b36d04dbc81
1c7d0 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a  1a11e4d54cad....
1c7e0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1c7f0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
1c800 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1c810 2b 20 63 6f 6c 31 20 2f 20 38 32 20 2d 20 2b 20  + col1 / 82 - + 
1c820 63 6f 6c 30 20 3c 3d 20 2b 20 34 39 0d 0a 2d 2d  col0 <= + 49..--
1c830 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1c840 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
1c850 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
1c860 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79  37fb43b7....only
1c870 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
1c880 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
1c890 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
1c8a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 39  owsort label-629
1c8b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1c8c0 54 20 2d 20 35 38 20 44 49 56 20 2d 20 31 34 20  T - 58 DIV - 14 
1c8d0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1c8e0 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .4....skipif mys
1c8f0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1c900 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1c910 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32 39 0d 0a  sort label-629..
1c920 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c930 2d 20 35 38 20 2f 20 2d 20 31 34 20 46 52 4f 4d  - 58 / - 14 FROM
1c940 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a   tab0..----..4..
1c950 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1c960 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1c970 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1c980 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 30 0d 0a  sort label-630..
1c990 53 45 4c 45 43 54 20 2d 20 33 20 2b 20 2d 20 43  SELECT - 3 + - C
1c9a0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
1c9b0 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  2 FROM tab1 WHER
1c9c0 45 20 63 6f 6c 31 20 2a 20 34 36 20 3e 20 28 20  E col1 * 46 > ( 
1c9d0 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - col1 )..----..
1c9e0 2d 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -6....skipif mys
1c9f0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1ca00 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1ca10 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 30 0d 0a  sort label-630..
1ca20 53 45 4c 45 43 54 20 2d 20 33 20 2b 20 2d 20 43  SELECT - 3 + - C
1ca30 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
1ca40 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
1ca50 52 45 20 63 6f 6c 31 20 2a 20 34 36 20 3e 20 28  RE col1 * 46 > (
1ca60 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   - col1 )..----.
1ca70 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .-6....query I r
1ca80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
1ca90 6f 6c 30 20 2a 20 36 39 20 41 53 20 63 6f 6c 32  ol0 * 69 AS col2
1caa0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1cab0 0d 0a 33 31 37 34 0d 0a 34 34 31 36 0d 0a 35 31  ..3174..4416..51
1cac0 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
1cad0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
1cae0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1caf0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1cb00 20 6c 61 62 65 6c 2d 36 33 32 0d 0a 53 45 4c 45   label-632..SELE
1cb10 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
1cb20 20 53 49 47 4e 45 44 20 29 20 2b 20 38 20 63 6f   SIGNED ) + 8 co
1cb30 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
1cb40 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
1cb50 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
1cb60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1cb70 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
1cb80 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
1cb90 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
1cba0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
1cbb0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
1cbc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1cbd0 6c 61 62 65 6c 2d 36 33 32 0d 0a 53 45 4c 45 43  label-632..SELEC
1cbe0 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  T CAST ( NULL AS
1cbf0 20 49 4e 54 45 47 45 52 20 29 20 2b 20 38 20 63   INTEGER ) + 8 c
1cc00 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
1cc10 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1cc20 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
1cc30 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1cc40 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1cc50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1cc60 6f 72 74 20 6c 61 62 65 6c 2d 36 33 33 0d 0a 53  ort label-633..S
1cc70 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28 20  ELECT ALL CAST( 
1cc80 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1cc90 20 2b 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 41   + col2 * col2 A
1cca0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
1ccb0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
1ccc0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....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 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1cd00 2d 36 33 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -633..SELECT ALL
1cd10 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1cd20 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c 32  INTEGER ) + col2
1cd30 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   * col2 AS col1 
1cd40 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1cd50 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
1cd60 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
1cd70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
1cd80 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
1cd90 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1cda0 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 63  + ( - col1 ) * c
1cdb0 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
1cdc0 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36  -..-59..-68..-96
1cdd0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1cde0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1cdf0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1ce00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 35  owsort label-635
1ce10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 32 20  ..SELECT ALL 42 
1ce20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  + - COUNT( * ) c
1ce30 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
1ce40 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 73 6b 69 70 69  ---..39....skipi
1ce50 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ce60 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
1ce70 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1ce80 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1ce90 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1cea0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1ceb0 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
1cec0 72 74 20 6c 61 62 65 6c 2d 36 33 35 0d 0a 53 45  rt label-635..SE
1ced0 4c 45 43 54 20 41 4c 4c 20 34 32 20 2b 20 2d 20  LECT ALL 42 + - 
1cee0 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30  COUNT ( * ) col0
1cef0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1cf00 0d 0a 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..39....query I 
1cf10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1cf20 33 30 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  30 + col0 FROM t
1cf30 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a  ab0..----..117..
1cf40 31 32 37 0d 0a 34 35 0d 0a 0d 0a 71 75 65 72 79  127..45....query
1cf50 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1cf60 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
1cf70 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 33 20 49   WHERE NOT + 3 I
1cf80 4e 20 28 20 2d 20 35 33 20 2a 20 2b 20 63 6f 6c  N ( - 53 * + col
1cf90 32 20 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 29  2 + ( - col1 ) )
1cfa0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1cfb0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
1cfc0 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
1cfd0 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
1cfe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1cff0 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 39  .SELECT col1 * 9
1d000 35 20 2b 20 36 37 20 46 52 4f 4d 20 74 61 62 32  5 + 67 FROM tab2
1d010 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
1d020 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34  IS NULL..----..4
1d030 39 31 32 0d 0a 36 34 33 32 0d 0a 37 33 38 32 0d  912..6432..7382.
1d040 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1d050 72 74 0d 0a 53 45 4c 45 43 54 20 37 35 20 2b 20  rt..SELECT 75 + 
1d060 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  + col2 AS col0 F
1d070 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 35  ROM tab2 WHERE 5
1d080 20 2d 20 2d 20 32 35 20 49 53 20 4e 55 4c 4c 0d   - - 25 IS NULL.
1d090 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1d0a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1d0b0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
1d0c0 48 45 52 45 20 2d 20 63 6f 6c 31 20 2a 20 63 6f  HERE - col1 * co
1d0d0 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
1d0e0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
1d0f0 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
1d100 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
1d110 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e  e537fb43b7....on
1d120 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1d130 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1d140 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d150 20 6c 61 62 65 6c 2d 36 34 31 0d 0a 53 45 4c 45   label-641..SELE
1d160 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
1d170 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
1d180 57 48 45 52 45 20 28 20 36 34 20 29 20 49 4e 20  WHERE ( 64 ) IN 
1d190 28 20 2d 20 63 6f 6c 32 20 2a 20 34 38 20 29 0d  ( - col2 * 48 ).
1d1a0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
1d1b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1d1c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1d1d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1d1e0 2d 36 34 31 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -641..SELECT COU
1d1f0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
1d200 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
1d210 20 28 20 36 34 20 29 20 49 4e 20 28 20 2d 20 63   ( 64 ) IN ( - c
1d220 6f 6c 32 20 2a 20 34 38 20 29 0d 0a 2d 2d 2d 2d  ol2 * 48 )..----
1d230 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
1d240 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
1d250 20 63 6f 6c 32 20 2a 20 37 39 20 2b 20 31 38 20   col2 * 79 + 18 
1d260 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1d270 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 34 33 0d 0a  1..----..-4643..
1d280 2d 35 33 35 34 0d 0a 2d 37 35 36 36 0d 0a 0d 0a  -5354..-7566....
1d290 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1d2a0 0a 53 45 4c 45 43 54 20 2d 20 33 38 20 2b 20 2b  .SELECT - 38 + +
1d2b0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
1d2c0 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 32 39 0d 0a 33  .----..13..29..3
1d2d0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  9....query III r
1d2e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1d2f0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
1d300 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab2 WHERE NOT co
1d310 6c 31 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54  l1 + col1 IS NOT
1d320 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
1d330 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1d340 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1d350 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d360 74 20 6c 61 62 65 6c 2d 36 34 35 0d 0a 53 45 4c  t label-645..SEL
1d370 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 63  ECT ALL + SUM( c
1d380 6f 6c 30 20 29 20 2b 20 28 20 2d 20 32 30 20 29  ol0 ) + ( - 20 )
1d390 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
1d3a0 20 4e 4f 54 20 28 20 63 6f 6c 30 20 29 20 49 53   NOT ( col0 ) IS
1d3b0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 37 39   NULL..----..179
1d3c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1d3d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1d3e0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1d3f0 72 74 20 6c 61 62 65 6c 2d 36 34 35 0d 0a 53 45  rt label-645..SE
1d400 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28  LECT ALL + SUM (
1d410 20 63 6f 6c 30 20 29 20 2b 20 28 20 2d 20 32 30   col0 ) + ( - 20
1d420 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
1d430 52 45 20 4e 4f 54 20 28 20 63 6f 6c 30 20 29 20  RE NOT ( col0 ) 
1d440 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  IS NULL..----..1
1d450 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  79....query III 
1d460 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d470 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
1d480 74 61 62 30 20 57 48 45 52 45 20 2b 20 37 30 20  tab0 WHERE + 70 
1d490 2d 20 2b 20 63 6f 6c 31 20 42 45 54 57 45 45 4e  - + col1 BETWEEN
1d4a0 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 4e 44 20   ( + col2 ) AND 
1d4b0 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37  + col0..----..87
1d4c0 0d 0a 32 31 0d 0a 31 30 0d 0a 0d 0a 6f 6e 6c 79  ..21..10....only
1d4d0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1d4e0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1d4f0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1d500 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 37  owsort label-647
1d510 0d 0a 53 45 4c 45 43 54 20 39 36 20 2b 20 43 41  ..SELECT 96 + CA
1d520 53 54 28 20 2d 20 63 6f 6c 31 20 41 53 20 53 49  ST( - col1 AS SI
1d530 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32  GNED ) FROM tab2
1d540 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 32 39 0d 0a  ..----..19..29..
1d550 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  45....skipif mys
1d560 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1d570 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1d580 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 37 0d 0a  sort label-647..
1d590 53 45 4c 45 43 54 20 39 36 20 2b 20 43 41 53 54  SELECT 96 + CAST
1d5a0 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54   ( - col1 AS INT
1d5b0 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32  EGER ) FROM tab2
1d5c0 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a 32 39 0d 0a  ..----..19..29..
1d5d0 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  45....onlyif mys
1d5e0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1d5f0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1d600 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d610 34 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  48..SELECT DISTI
1d620 4e 43 54 20 2d 20 4d 41 58 28 20 41 4c 4c 20 38  NCT - MAX( ALL 8
1d630 30 20 29 20 2b 20 2b 20 37 36 20 63 6f 6c 31 20  0 ) + + 76 col1 
1d640 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1d650 0a 2d 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-4....skipif my
1d660 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1d670 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
1d680 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1d690 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1d6a0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1d6b0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1d6c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1d6d0 61 62 65 6c 2d 36 34 38 0d 0a 53 45 4c 45 43 54  abel-648..SELECT
1d6e0 20 44 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20   DISTINCT - MAX 
1d6f0 28 20 41 4c 4c 20 38 30 20 29 20 2b 20 2b 20 37  ( ALL 80 ) + + 7
1d700 36 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  6 col1 FROM tab0
1d710 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 0d 0a 6f 6e  ..----..-4....on
1d720 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1d730 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1d740 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d750 20 6c 61 62 65 6c 2d 36 34 39 0d 0a 53 45 4c 45   label-649..SELE
1d760 43 54 20 41 4c 4c 20 2d 20 28 20 28 20 2b 20 43  CT ALL - ( ( + C
1d770 4f 55 4e 54 28 20 2a 20 29 20 29 20 29 20 41 53  OUNT( * ) ) ) AS
1d780 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1d790 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1d7a0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
1d7b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1d7c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1d7d0 6f 72 74 20 6c 61 62 65 6c 2d 36 34 39 0d 0a 53  ort label-649..S
1d7e0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 28 20  ELECT ALL - ( ( 
1d7f0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  + COUNT ( * ) ) 
1d800 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1d810 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1d820 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-3....query I
1d830 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1d840 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 35 30   DISTINCT - ( 50
1d850 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
1d860 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d  cor0..----..-50.
1d870 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1d880 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32 31 20  rt..SELECT - 21 
1d890 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1d8a0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1d8b0 4e 4f 54 20 28 20 63 6f 6c 32 20 2b 20 37 37 20  NOT ( col2 + 77 
1d8c0 2a 20 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c  * col1 ) IS NULL
1d8d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 32 31  ..----..-21..-21
1d8e0 0d 0a 2d 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-21....query I
1d8f0 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  IIIII rowsort..S
1d900 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 28 20 74  ELECT * FROM ( t
1d910 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
1d920 53 20 4a 4f 49 4e 20 74 61 62 30 20 29 20 57 48  S JOIN tab0 ) WH
1d930 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20  ERE ( NULL ) IS 
1d940 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1d950 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72  ..query IIIIII r
1d960 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1d970 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
1d980 61 62 32 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab2 cor0 CROSS J
1d990 4f 49 4e 20 74 61 62 30 20 57 48 45 52 45 20 4e  OIN tab0 WHERE N
1d9a0 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
1d9b0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61  ULL..----..54 va
1d9c0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
1d9d0 33 38 38 38 32 32 32 37 63 66 63 37 63 33 62 66  38882227cfc7c3bf
1d9e0 36 32 31 65 64 31 66 33 30 33 34 35 37 33 39 63  621ed1f30345739c
1d9f0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1da00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1da10 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
1da20 45 52 45 20 2b 20 39 20 3c 20 4e 55 4c 4c 0d 0a  ERE + 9 < NULL..
1da30 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
1da40 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
1da50 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1da60 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1da70 72 74 20 6c 61 62 65 6c 2d 36 35 35 0d 0a 53 45  rt label-655..SE
1da80 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 39  LECT DISTINCT 19
1da90 20 44 49 56 20 63 6f 6c 30 20 63 6f 6c 32 20 46   DIV col0 col2 F
1daa0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1dab0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
1dac0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1dad0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
1dae0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1daf0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1db00 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1db10 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1db20 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1db30 65 6c 2d 36 35 35 0d 0a 53 45 4c 45 43 54 20 44  el-655..SELECT D
1db40 49 53 54 49 4e 43 54 20 31 39 20 2f 20 63 6f 6c  ISTINCT 19 / col
1db50 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  0 col2 FROM tab2
1db60 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
1db70 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1db80 4c 45 43 54 20 2d 20 36 35 20 2b 20 2d 20 63 6f  LECT - 65 + - co
1db90 6c 30 20 2a 20 33 32 20 41 53 20 63 6f 6c 31 20  l0 * 32 AS col1 
1dba0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1dbb0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 39 37 0d 0a  0..----..-1697..
1dbc0 2d 32 37 38 35 0d 0a 2d 32 39 37 37 0d 0a 0d 0a  -2785..-2977....
1dbd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1dbe0 0a 53 45 4c 45 43 54 20 31 33 20 2f 20 36 30 20  .SELECT 13 / 60 
1dbf0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1dc00 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
1dc10 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  NOT NULL IS NULL
1dc20 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1dc30 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1dc40 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
1dc50 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1dc60 54 20 63 6f 6c 30 20 2a 20 28 20 2d 20 63 6f 6c  T col0 * ( - col
1dc70 30 20 2f 20 2b 20 63 6f 6c 32 20 29 20 4e 4f 54  0 / + col2 ) NOT
1dc80 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 41 4e   BETWEEN col0 AN
1dc90 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
1dca0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1dcb0 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1dcc0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1dcd0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1dce0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1dcf0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1dd00 20 2b 20 35 32 20 2a 20 63 6f 6c 30 20 2b 20 63   + 52 * col0 + c
1dd10 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol0 col2 FROM ta
1dd20 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  b2 cor0..----..2
1dd30 34 33 38 0d 0a 33 33 39 32 0d 0a 33 39 37 35 0d  438..3392..3975.
1dd40 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1dd50 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36  rt..SELECT ALL 6
1dd60 31 20 2b 20 33 34 20 46 52 4f 4d 20 74 61 62 31  1 + 34 FROM tab1
1dd70 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1dd80 4f 54 20 4e 55 4c 4c 20 3c 3e 20 28 20 37 33 20  OT NULL <> ( 73 
1dd90 2b 20 2d 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  + - col0 )..----
1dda0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1ddb0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 34  ort..SELECT + 74
1ddc0 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   + + col1 * + co
1ddd0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
1dde0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 33 0d  cor0..----..173.
1ddf0 0a 32 38 34 0d 0a 33 38 38 31 0d 0a 0d 0a 6f 6e  .284..3881....on
1de00 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1de10 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1de20 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1de30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1de40 36 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  62..SELECT ALL +
1de50 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1de60 49 47 4e 45 44 20 29 20 2a 20 2b 20 43 41 53 54  IGNED ) * + CAST
1de70 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1de80 20 29 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   ) + + col2 FROM
1de90 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1dea0 45 52 45 20 4e 55 4c 4c 20 3c 20 4e 55 4c 4c 0d  ERE NULL < NULL.
1deb0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
1dec0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1ded0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1dee0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36  rowsort label-66
1def0 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  2..SELECT ALL + 
1df00 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
1df10 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 43 41 53  NTEGER ) * + CAS
1df20 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
1df30 47 45 52 20 29 20 2b 20 2b 20 63 6f 6c 32 20 46  GER ) + + col2 F
1df40 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1df50 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 4e 55   WHERE NULL < NU
1df60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
1df70 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1df80 45 43 54 20 31 39 20 41 53 20 63 6f 6c 30 20 46  ECT 19 AS col0 F
1df90 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1dfa0 20 57 48 45 52 45 20 28 20 63 6f 6c 31 20 2d 20   WHERE ( col1 - 
1dfb0 2d 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20  - col0 ) IS NOT 
1dfc0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a  NULL..----..19..
1dfd0 31 39 0d 0a 31 39 0d 0a 0d 0a 71 75 65 72 79 20  19..19....query 
1dfe0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1dff0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
1e000 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
1e010 2b 20 63 6f 6c 32 20 2a 20 33 30 20 29 20 49 53  + col2 * 30 ) IS
1e020 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1e030 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1e040 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
1e050 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
1e060 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
1e070 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1e080 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
1e090 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1e0a0 20 2d 20 63 6f 6c 31 20 3e 20 28 20 2d 20 63 6f   - col1 > ( - co
1e0b0 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a  l0 )..----..75..
1e0c0 36 37 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20  67..58....query 
1e0d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1e0e0 54 20 28 20 30 20 29 20 2a 20 63 6f 6c 31 20 41  T ( 0 ) * col1 A
1e0f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
1e100 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1e110 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  0..0..0....onlyi
1e120 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1e130 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1e140 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e150 62 65 6c 2d 36 36 37 0d 0a 53 45 4c 45 43 54 20  bel-667..SELECT 
1e160 2d 20 4d 41 58 28 20 2b 20 2d 20 31 34 20 29 20  - MAX( + - 14 ) 
1e170 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1e180 0a 31 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .14....skipif my
1e190 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1e1a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1e1b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 37 0d  wsort label-667.
1e1c0 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20  .SELECT - MAX ( 
1e1d0 2b 20 2d 20 31 34 20 29 20 46 52 4f 4d 20 74 61  + - 14 ) FROM ta
1e1e0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 0d 0a  b1..----..14....
1e1f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1e200 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 31 34  .SELECT ALL + 14
1e210 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   - col1 AS col2 
1e220 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
1e230 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20  ( NULL ) IS NOT 
1e240 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
1e250 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1e260 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1e270 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
1e280 52 45 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 32  RE - col0 * col2
1e290 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1e2a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1e2b0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1e2c0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1e2d0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 30 0d 0a  sort label-670..
1e2e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e2f0 2d 20 34 32 20 2b 20 43 4f 55 4e 54 28 20 2a 20  - 42 + COUNT( * 
1e300 29 20 2b 20 2b 20 33 37 20 2a 20 2d 20 33 36 20  ) + + 37 * - 36 
1e310 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1e320 0a 2d 31 33 37 31 0d 0a 0d 0a 73 6b 69 70 69 66  .-1371....skipif
1e330 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1e340 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1e350 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1e360 37 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  70..SELECT DISTI
1e370 4e 43 54 20 2d 20 34 32 20 2b 20 43 4f 55 4e 54  NCT - 42 + COUNT
1e380 20 28 20 2a 20 29 20 2b 20 2b 20 33 37 20 2a 20   ( * ) + + 37 * 
1e390 2d 20 33 36 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 36 FROM tab1..
1e3a0 2d 2d 2d 2d 0d 0a 2d 31 33 37 31 0d 0a 0d 0a 6f  ----..-1371....o
1e3b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1e3c0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
1e3d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
1e3e0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1e3f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e400 6c 2d 36 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-671..SELECT AL
1e410 4c 20 2b 20 28 20 2d 20 43 41 53 54 28 20 4e 55  L + ( - CAST( NU
1e420 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
1e430 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
1e440 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  * COUNT( * ) FRO
1e450 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
1e460 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
1e470 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1e480 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1e490 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 31 0d 0a  sort label-671..
1e4a0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d  SELECT ALL + ( -
1e4b0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1e4c0 49 4e 54 45 47 45 52 20 29 20 29 20 2b 20 2b 20  INTEGER ) ) + + 
1e4d0 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f  COUNT ( * ) * CO
1e4e0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
1e4f0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
1e500 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1e510 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1e520 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
1e530 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 32 0d  wsort label-672.
1e540 0a 53 45 4c 45 43 54 20 2b 20 34 38 20 2d 20 43  .SELECT + 48 - C
1e550 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
1e560 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1e570 2d 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..45....skipif 
1e580 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1e590 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1e5a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37  rowsort label-67
1e5b0 32 0d 0a 53 45 4c 45 43 54 20 2b 20 34 38 20 2d  2..SELECT + 48 -
1e5c0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
1e5d0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1e5e0 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d 0a 6f 6e 6c 79  ----..45....only
1e5f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1e600 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1e610 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1e620 61 62 65 6c 2d 36 37 33 0d 0a 53 45 4c 45 43 54  abel-673..SELECT
1e630 20 44 49 53 54 49 4e 43 54 20 2d 20 30 20 2d 20   DISTINCT - 0 - 
1e640 2d 20 53 55 4d 28 20 63 6f 6c 32 20 29 20 63 6f  - SUM( col2 ) co
1e650 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1e660 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d  cor0..----..121.
1e670 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1e680 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1e690 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
1e6a0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
1e6b0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
1e6c0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
1e6d0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
1e6e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1e6f0 2d 36 37 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -673..SELECT DIS
1e700 54 49 4e 43 54 20 2d 20 30 20 2d 20 2d 20 53 55  TINCT - 0 - - SU
1e710 4d 20 28 20 63 6f 6c 32 20 29 20 63 6f 6c 31 20  M ( col2 ) col1 
1e720 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1e730 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a  0..----..121....
1e740 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1e750 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
1e760 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
1e770 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2d 20  RE NOT - col1 - 
1e780 2b 20 39 36 20 4e 4f 54 20 42 45 54 57 45 45 4e  + 96 NOT BETWEEN
1e790 20 28 20 2d 20 37 31 20 2b 20 32 32 20 29 20 41   ( - 71 + 22 ) A
1e7a0 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  ND ( NULL )..---
1e7b0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
1e7c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35  sort..SELECT - 5
1e7d0 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
1e7e0 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab1 AS cor0 CROS
1e7f0 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
1e800 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
1e810 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 34  ues hashing to 4
1e820 65 63 64 62 30 66 31 62 38 35 66 30 64 34 66 64  ecdb0f1b85f0d4fd
1e830 63 33 61 38 32 36 65 66 64 39 66 32 33 34 32 0d  c3a826efd9f2342.
1e840 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1e850 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
1e860 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d  ROM tab2 WHERE -
1e870 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 32 20 4e   col0 / + col2 N
1e880 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
1e890 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
1e8a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1e8b0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 39 20 41  t..SELECT + 19 A
1e8c0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1e8d0 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
1e8e0 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31  OIN tab0 AS cor1
1e8f0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
1e900 20 68 61 73 68 69 6e 67 20 74 6f 20 33 64 61 63   hashing to 3dac
1e910 33 30 64 63 38 32 63 39 65 35 61 63 62 62 64 33  30dc82c9e5acbbd3
1e920 61 35 63 35 64 31 61 65 65 65 31 31 0d 0a 0d 0a  a5c5d1aeee11....
1e930 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1e940 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
1e950 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
1e960 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e970 6c 2d 36 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-678..SELECT AL
1e980 4c 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  L + CAST( NULL A
1e990 53 20 44 45 43 49 4d 41 4c 20 29 20 2a 20 34 31  S DECIMAL ) * 41
1e9a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1e9b0 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20  r0 WHERE + col0 
1e9c0 3d 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d  = - + col1..----
1e9d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1e9e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1e9f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1ea00 72 74 20 6c 61 62 65 6c 2d 36 37 38 0d 0a 53 45  rt label-678..SE
1ea10 4c 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 20  LECT ALL + CAST 
1ea20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
1ea30 20 2a 20 34 31 20 46 52 4f 4d 20 74 61 62 31 20   * 41 FROM tab1 
1ea40 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
1ea50 63 6f 6c 30 20 3d 20 2d 20 2b 20 63 6f 6c 31 0d  col0 = - + col1.
1ea60 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1ea70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1ea80 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
1ea90 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1eaa0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
1eab0 53 20 4e 4f 54 20 4e 55 4c 4c 20 4f 52 20 4e 4f  S NOT NULL OR NO
1eac0 54 20 2b 20 63 6f 6c 31 20 49 4e 20 28 20 63 6f  T + col1 IN ( co
1ead0 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  l0 )..----..9 va
1eae0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
1eaf0 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
1eb00 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
1eb10 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1eb20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
1eb30 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1eb40 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 32 20 49  0 WHERE - col2 I
1eb50 4e 20 28 20 2d 20 28 20 32 32 20 29 20 29 0d 0a  N ( - ( 22 ) )..
1eb60 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
1eb70 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1eb80 44 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 63  DISTINCT + ( - c
1eb90 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol2 ) FROM tab0 
1eba0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
1ebb0 2b 20 39 32 20 2b 20 2d 20 63 6f 6c 31 20 29 20  + 92 + - col1 ) 
1ebc0 4e 4f 54 20 49 4e 20 28 20 36 35 20 29 0d 0a 2d  NOT IN ( 65 )..-
1ebd0 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d  ---..-10..-47..-
1ebe0 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  99....query III 
1ebf0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1ec00 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
1ec10 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
1ec20 63 6f 6c 31 20 49 4e 20 28 20 63 6f 6c 31 20 29  col1 IN ( col1 )
1ec30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1ec40 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1ec50 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1ec60 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
1ec70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 33  owsort label-683
1ec80 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1ec90 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
1eca0 52 45 20 4e 4f 54 20 2b 20 28 20 2d 20 43 41 53  RE NOT + ( - CAS
1ecb0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1ecc0 44 20 29 20 29 20 49 4e 20 28 20 63 6f 6c 30 20  D ) ) IN ( col0 
1ecd0 2d 20 36 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - 69 )..----....
1ece0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ecf0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ed00 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1ed10 20 6c 61 62 65 6c 2d 36 38 33 0d 0a 53 45 4c 45   label-683..SELE
1ed20 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
1ed30 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1ed40 20 2b 20 28 20 2d 20 43 41 53 54 20 28 20 4e 55   + ( - CAST ( NU
1ed50 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
1ed60 29 20 49 4e 20 28 20 63 6f 6c 30 20 2d 20 36 39  ) IN ( col0 - 69
1ed70 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
1ed80 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1ed90 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
1eda0 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  e syntax: DECIMA
1edb0 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
1edc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1edd0 36 38 34 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 28  684..SELECT MIN(
1ede0 20 2d 20 31 32 20 29 20 2b 20 2b 20 43 41 53 54   - 12 ) + + CAST
1edf0 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
1ee00 4c 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L ) FROM tab1 AS
1ee10 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1ee20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
1ee30 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
1ee40 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1ee50 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1ee60 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1ee70 2d 36 38 34 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -684..SELECT MIN
1ee80 20 28 20 2d 20 31 32 20 29 20 2b 20 2b 20 43 41   ( - 12 ) + + CA
1ee90 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
1eea0 4c 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L ) FROM tab1 AS
1eeb0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1eec0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
1eed0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
1eee0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1eef0 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
1ef00 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
1ef10 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1ef20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ef30 38 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43  85..SELECT + + C
1ef40 41 53 54 28 20 43 4f 55 4e 54 28 20 2a 20 29 20  AST( COUNT( * ) 
1ef50 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
1ef60 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1ef70 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
1ef80 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ef90 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1efa0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1efb0 38 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43  85..SELECT + + C
1efc0 41 53 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20  AST ( COUNT ( * 
1efd0 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  ) AS INTEGER ) F
1efe0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1eff0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65  ..----..3....que
1f000 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1f010 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
1f020 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1f030 48 45 52 45 20 2b 20 63 6f 6c 30 20 4e 4f 54 20  HERE + col0 NOT 
1f040 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
1f050 20 2b 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   + + col1..----.
1f060 0a 38 37 0d 0a 32 31 0d 0a 31 30 0d 0a 39 37 0d  .87..21..10..97.
1f070 0a 31 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  .1..99....query 
1f080 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1f090 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 41 53  CT ALL + col2 AS
1f0a0 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20 41 53   col1, - col0 AS
1f0b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1f0c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  cor0..----..59..
1f0d0 2d 38 35 0d 0a 36 38 0d 0a 2d 39 31 0d 0a 39 36  -85..68..-91..96
1f0e0 0d 0a 2d 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-51....query I
1f0f0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1f100 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63  CT * FROM tab0 c
1f110 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
1f120 4e 55 4c 4c 20 29 20 3e 20 2b 20 63 6f 6c 31 20  NULL ) > + col1 
1f130 2a 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  * + col2..----..
1f140 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1f150 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 33 30 20  rt..SELECT + 30 
1f160 2a 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 46  * + col2, col1 F
1f170 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1f180 31 32 30 30 0d 0a 37 37 0d 0a 31 37 34 30 0d 0a  1200..77..1740..
1f190 36 37 0d 0a 36 39 30 0d 0a 35 31 0d 0a 0d 0a 71  67..690..51....q
1f1a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1f1b0 53 45 4c 45 43 54 20 2d 20 34 34 20 2a 20 2d 20  SELECT - 44 * - 
1f1c0 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
1f1d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30  M tab0..----..20
1f1e0 36 38 0d 0a 34 33 35 36 0d 0a 34 34 30 0d 0a 0d  68..4356..440...
1f1f0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1f200 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1f210 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
1f220 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 4e 4f 54 20   NOT + col1 NOT 
1f230 49 4e 20 28 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d  IN ( - col1 )..-
1f240 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1f250 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1f260 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1f270 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1f280 36 39 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  692..SELECT DIST
1f290 49 4e 43 54 20 2d 20 33 36 20 2a 20 2b 20 4d 41  INCT - 36 * + MA
1f2a0 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  X( DISTINCT - co
1f2b0 6c 30 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20  l0 ) * + COUNT( 
1f2c0 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  * ) FROM tab2..-
1f2d0 2d 2d 2d 0d 0a 34 39 36 38 0d 0a 0d 0a 73 6b 69  ---..4968....ski
1f2e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1f2f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1f300 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1f310 6c 2d 36 39 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-692..SELECT DI
1f320 53 54 49 4e 43 54 20 2d 20 33 36 20 2a 20 2b 20  STINCT - 36 * + 
1f330 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d  MAX ( DISTINCT -
1f340 20 63 6f 6c 30 20 29 20 2a 20 2b 20 43 4f 55 4e   col0 ) * + COUN
1f350 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
1f360 32 0d 0a 2d 2d 2d 2d 0d 0a 34 39 36 38 0d 0a 0d  2..----..4968...
1f370 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1f380 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1f390 43 54 20 39 38 20 2a 20 2b 20 63 6f 6c 30 2c 20  CT 98 * + col0, 
1f3a0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
1f3b0 2d 2d 2d 2d 0d 0a 34 35 30 38 0d 0a 35 31 0d 0a  ----..4508..51..
1f3c0 36 32 37 32 0d 0a 37 37 0d 0a 37 33 35 30 0d 0a  6272..77..7350..
1f3d0 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  67....query III 
1f3e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1f3f0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1f400 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 4e  E NOT ( NULL ) N
1f410 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c  OT BETWEEN + col
1f420 31 20 41 4e 44 20 28 20 2b 20 39 39 20 29 0d 0a  1 AND ( + 99 )..
1f430 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
1f440 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1f450 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
1f460 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
1f470 20 2b 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20   + col2 BETWEEN 
1f480 2d 20 31 33 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  - 13 AND NULL..-
1f490 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
1f4a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f4b0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
1f4c0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 37 20 2b   WHERE NOT - 7 +
1f4d0 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 33 30   - - col1 * + 30
1f4e0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1f4f0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1f500 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
1f510 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1f520 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f530 20 6c 61 62 65 6c 2d 36 39 37 0d 0a 53 45 4c 45   label-697..SELE
1f540 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
1f550 20 44 49 56 20 2d 20 2d 20 63 6f 6c 31 20 46 52   DIV - - col1 FR
1f560 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
1f570 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1f580 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1f590 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1f5a0 72 74 20 6c 61 62 65 6c 2d 36 39 37 0d 0a 53 45  rt label-697..SE
1f5b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
1f5c0 6c 31 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 46 52  l1 / - - col1 FR
1f5d0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
1f5e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1f5f0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
1f600 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1f610 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1f620 6c 61 62 65 6c 2d 36 39 38 0d 0a 53 45 4c 45 43  label-698..SELEC
1f630 54 20 41 4c 4c 20 63 6f 6c 30 20 44 49 56 20 63  T ALL col0 DIV c
1f640 6f 6c 31 2c 20 2d 20 28 20 63 6f 6c 31 20 29 20  ol1, - ( col1 ) 
1f650 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1f660 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 38 31 0d  0..----..0..-81.
1f670 0a 34 0d 0a 2d 32 31 0d 0a 39 37 0d 0a 2d 31 0d  .4..-21..97..-1.
1f680 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1f690 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1f6a0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1f6b0 72 74 20 6c 61 62 65 6c 2d 36 39 38 0d 0a 53 45  rt label-698..SE
1f6c0 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2f 20  LECT ALL col0 / 
1f6d0 63 6f 6c 31 2c 20 2d 20 28 20 63 6f 6c 31 20 29  col1, - ( col1 )
1f6e0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1f6f0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 38 31  b0..----..0..-81
1f700 0d 0a 34 0d 0a 2d 32 31 0d 0a 39 37 0d 0a 2d 31  ..4..-21..97..-1
1f710 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1f720 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1f730 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1f740 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 39  owsort label-699
1f750 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f760 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  T + COUNT( * ) *
1f770 20 38 31 20 2a 20 39 39 20 46 52 4f 4d 20 74 61   81 * 99 FROM ta
1f780 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1f790 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
1f7a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
1f7b0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1f7c0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1f7d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f7e0 65 6c 2d 36 39 39 0d 0a 53 45 4c 45 43 54 20 44  el-699..SELECT D
1f7f0 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
1f800 28 20 2a 20 29 20 2a 20 38 31 20 2a 20 39 39 20  ( * ) * 81 * 99 
1f810 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1f820 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
1f830 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1f840 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
1f850 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
1f860 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 46 52 4f  TINCT - col2 FRO
1f870 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
1f880 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
1f890 54 57 45 45 4e 20 2d 20 36 35 20 41 4e 44 20 28  TWEEN - 65 AND (
1f8a0 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
1f8b0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1f8c0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1f8d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1f8e0 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  r0 WHERE + col1 
1f8f0 2a 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  * - col2 + + col
1f900 32 20 2f 20 31 31 20 49 53 20 4e 4f 54 20 4e 55  2 / 11 IS NOT NU
1f910 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
1f920 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
1f930 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
1f940 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
1f950 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1f960 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
1f970 63 6f 6c 32 20 2a 20 36 32 20 2b 20 2b 20 63 6f  col2 * 62 + + co
1f980 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
1f990 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 39  cor0..----..1449
1f9a0 0d 0a 32 35 32 30 0d 0a 33 36 35 34 0d 0a 0d 0a  ..2520..3654....
1f9b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1f9c0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a  .SELECT + col2 *
1f9d0 20 2d 20 2b 20 34 20 2a 20 2b 20 2d 20 34 38 20   - + 4 * + - 48 
1f9e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1f9f0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 33 36 0d 0a  0..----..11136..
1fa00 34 34 31 36 0d 0a 37 36 38 30 0d 0a 0d 0a 6f 6e  4416..7680....on
1fa10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1fa20 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
1fa30 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
1fa40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1fa50 30 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  04..SELECT DISTI
1fa60 4e 43 54 20 43 41 53 54 28 20 39 37 20 41 53 20  NCT CAST( 97 AS 
1fa70 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
1fa80 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1fa90 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..97....skipif m
1faa0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1fab0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1fac0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 34  owsort label-704
1fad0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1fae0 54 20 43 41 53 54 20 28 20 39 37 20 41 53 20 49  T CAST ( 97 AS I
1faf0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31  NTEGER ) AS col1
1fb00 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1fb10 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..97....onlyif m
1fb20 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1fb30 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1fb40 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1fb50 72 74 20 6c 61 62 65 6c 2d 37 30 35 0d 0a 53 45  rt label-705..SE
1fb60 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20  LECT ALL col1 * 
1fb70 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
1fb80 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 2b  M tab1 WHERE ( +
1fb90 20 38 35 20 2b 20 2d 20 33 38 20 2a 20 43 41 53   85 + - 38 * CAS
1fba0 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
1fbb0 44 20 29 20 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d  D ) ) < NULL..--
1fbc0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
1fbd0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1fbe0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1fbf0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 35 0d 0a  sort label-705..
1fc00 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
1fc10 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  * col0 AS col2 F
1fc20 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 28  ROM tab1 WHERE (
1fc30 20 2b 20 38 35 20 2b 20 2d 20 33 38 20 2a 20 43   + 85 + - 38 * C
1fc40 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1fc50 54 45 47 45 52 20 29 20 29 20 3c 20 4e 55 4c 4c  TEGER ) ) < NULL
1fc60 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1fc70 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1fc80 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1fc90 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1fca0 65 6c 2d 37 30 36 0d 0a 53 45 4c 45 43 54 20 43  el-706..SELECT C
1fcb0 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 33 31  OUNT( * ) * - 31
1fcc0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1fcd0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d  b2..----..-93...
1fce0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1fcf0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1fd00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1fd10 6c 61 62 65 6c 2d 37 30 36 0d 0a 53 45 4c 45 43  label-706..SELEC
1fd20 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  T COUNT ( * ) * 
1fd30 2d 20 33 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 31 AS col1 FRO
1fd40 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab2..----..-9
1fd50 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
1fd60 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
1fd70 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1fd80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1fd90 6c 61 62 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43  label-707..SELEC
1fda0 54 20 44 49 53 54 49 4e 43 54 20 36 31 20 44 49  T DISTINCT 61 DI
1fdb0 56 20 2d 20 2b 20 32 34 20 41 53 20 63 6f 6c 32  V - + 24 AS col2
1fdc0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1fdd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a  r0..----..-2....
1fde0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1fdf0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1fe00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1fe10 61 62 65 6c 2d 37 30 37 0d 0a 53 45 4c 45 43 54  abel-707..SELECT
1fe20 20 44 49 53 54 49 4e 43 54 20 36 31 20 2f 20 2d   DISTINCT 61 / -
1fe30 20 2b 20 32 34 20 41 53 20 63 6f 6c 32 20 46 52   + 24 AS col2 FR
1fe40 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1fe50 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 0d 0a 71 75 65  .----..-2....que
1fe60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1fe70 4c 45 43 54 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  LECT + col0 FROM
1fe80 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
1fe90 20 2d 20 33 35 20 49 53 20 4e 4f 54 20 4e 55 4c   - 35 IS NOT NUL
1fea0 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d  L..----..51..85.
1feb0 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .91....onlyif my
1fec0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1fed0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1fee0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1fef0 37 30 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  709..SELECT ALL 
1ff00 2b 20 4d 41 58 28 20 2b 20 63 6f 6c 30 20 29 20  + MAX( + col0 ) 
1ff10 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1ff20 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
1ff30 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .91....skipif my
1ff40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1ff50 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1ff60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 39 0d  wsort label-709.
1ff70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41  .SELECT ALL + MA
1ff80 58 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  X ( + col0 ) AS 
1ff90 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
1ffa0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31  S cor0..----..91
1ffb0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
1ffc0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1ffd0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
1ffe0 45 52 45 20 28 20 28 20 28 20 4e 4f 54 20 28 20  ERE ( ( ( NOT ( 
1fff0 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20  - col1 + - col0 
20000 2a 20 63 6f 6c 30 20 29 20 4e 4f 54 20 49 4e 20  * col0 ) NOT IN 
20010 28 20 2d 20 35 31 20 29 20 29 20 29 20 29 0d 0a  ( - 51 ) ) ) )..
20020 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
20030 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
20040 44 49 53 54 49 4e 43 54 20 2b 20 34 32 20 2a 20  DISTINCT + 42 * 
20050 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
20060 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
20070 2d 33 34 30 32 0d 0a 2d 34 32 0d 0a 2d 38 38 32  -3402..-42..-882
20080 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
20090 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 33  ort..SELECT + 83
200a0 20 2b 20 38 36 20 41 53 20 63 6f 6c 32 20 46 52   + 86 AS col2 FR
200b0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
200c0 36 39 0d 0a 31 36 39 0d 0a 31 36 39 0d 0a 0d 0a  69..169..169....
200d0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
200e0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
200f0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
20100 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20110 2d 37 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -713..SELECT DIS
20120 54 49 4e 43 54 20 43 41 53 54 28 20 2d 20 2b 20  TINCT CAST( - + 
20130 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
20140 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
20150 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d  2..----..-8..13.
20160 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .5....skipif mys
20170 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
20180 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
20190 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 33 0d 0a  sort label-713..
201a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
201b0 43 41 53 54 20 28 20 2d 20 2b 20 63 6f 6c 30 20  CAST ( - + col0 
201c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63  AS INTEGER ) + c
201d0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
201e0 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d 0a 35 0d 0a  ---..-8..13..5..
201f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
20200 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
20210 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
20220 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20230 65 6c 2d 37 31 34 0d 0a 53 45 4c 45 43 54 20 44  el-714..SELECT D
20240 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 44 49 56  ISTINCT col0 DIV
20250 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 39 33 20 46   + col0 + - 93 F
20260 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
20270 2d 39 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -92....skipif my
20280 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
20290 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
202a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 34 0d  wsort label-714.
202b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
202c0 20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 30 20 2b   col0 / + col0 +
202d0 20 2d 20 39 33 20 46 52 4f 4d 20 74 61 62 30 0d   - 93 FROM tab0.
202e0 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 0d 0a 6f 6e  .----..-92....on
202f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
20300 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
20310 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
20320 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20330 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  15..SELECT ALL -
20340 20 37 36 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2b   76 + col2 * - +
20350 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
20360 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
20370 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
20380 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
20390 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
203a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
203b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
203c0 6c 2d 37 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-715..SELECT AL
203d0 4c 20 2d 20 37 36 20 2b 20 63 6f 6c 32 20 2a 20  L - 76 + col2 * 
203e0 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
203f0 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
20400 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
20410 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
20420 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
20430 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
20440 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
20450 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20460 65 6c 2d 37 31 36 0d 0a 53 45 4c 45 43 54 20 2d  el-716..SELECT -
20470 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
20480 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
20490 31 20 57 48 45 52 45 20 63 6f 6c 31 20 49 53 20  1 WHERE col1 IS 
204a0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
204b0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
204c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
204d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
204e0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
204f0 72 74 20 6c 61 62 65 6c 2d 37 31 36 0d 0a 53 45  rt label-716..SE
20500 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55  LECT - CAST ( NU
20510 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
20520 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
20530 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
20540 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
20550 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
20560 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
20570 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
20580 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
20590 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 37  owsort label-717
205a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 39 30 20  ..SELECT ALL 90 
205b0 44 49 56 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  DIV col0 + - col
205c0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
205d0 2d 0d 0a 2d 38 36 0d 0a 2d 39 0d 0a 2d 39 37 0d  -..-86..-9..-97.
205e0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
205f0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
20600 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20610 74 20 6c 61 62 65 6c 2d 37 31 37 0d 0a 53 45 4c  t label-717..SEL
20620 45 43 54 20 41 4c 4c 20 39 30 20 2f 20 63 6f 6c  ECT ALL 90 / col
20630 30 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20  0 + - col0 FROM 
20640 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d  tab0..----..-86.
20650 0a 2d 39 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79  .-9..-97....only
20660 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
20670 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
20680 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
20690 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31  rowsort label-71
206a0 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
206b0 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT + CAST( NULL 
206c0 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
206d0 6f 6c 30 2c 20 2b 20 31 35 20 2a 20 63 6f 6c 32  ol0, + 15 * col2
206e0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
206f0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
20700 0d 0a 4e 55 4c 4c 0d 0a 33 34 35 0d 0a 4e 55 4c  ..NULL..345..NUL
20710 4c 0d 0a 36 30 30 0d 0a 4e 55 4c 4c 0d 0a 38 37  L..600..NULL..87
20720 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
20730 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
20740 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
20750 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 38 0d 0a  sort label-718..
20760 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
20770 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
20780 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
20790 6c 30 2c 20 2b 20 31 35 20 2a 20 63 6f 6c 32 20  l0, + 15 * col2 
207a0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
207b0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
207c0 0a 4e 55 4c 4c 0d 0a 33 34 35 0d 0a 4e 55 4c 4c  .NULL..345..NULL
207d0 0d 0a 36 30 30 0d 0a 4e 55 4c 4c 0d 0a 38 37 30  ..600..NULL..870
207e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
207f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
20800 49 4e 43 54 20 2b 20 2d 20 39 31 20 2d 20 2d 20  INCT + - 91 - - 
20810 36 37 20 2a 20 2d 20 39 35 20 41 53 20 63 6f 6c  67 * - 95 AS col
20820 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
20830 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 34 35 36  or0..----..-6456
20840 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
20850 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
20860 35 33 20 41 53 20 63 6f 6c 32 2c 20 37 36 2c 20  53 AS col2, 76, 
20870 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
20880 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor0..----..9 
20890 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
208a0 6f 20 30 37 39 30 37 34 35 38 64 33 62 65 64 61  o 07907458d3beda
208b0 39 61 31 32 64 36 62 64 33 30 63 63 64 39 36 33  9a12d6bd30ccd963
208c0 39 61 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  9a....query I ro
208d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
208e0 53 54 49 4e 43 54 20 2b 20 35 20 2a 20 2b 20 38  STINCT + 5 * + 8
208f0 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
20900 2d 0d 0a 34 30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..400....onlyif
20910 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
20920 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
20930 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20940 65 6c 2d 37 32 32 0d 0a 53 45 4c 45 43 54 20 2d  el-722..SELECT -
20950 20 38 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 28 20   8 * + + COUNT( 
20960 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
20970 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
20980 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f  OSS JOIN tab2 co
20990 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a 0d  r1..----..-72...
209a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
209b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
209c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
209d0 6c 61 62 65 6c 2d 37 32 32 0d 0a 53 45 4c 45 43  label-722..SELEC
209e0 54 20 2d 20 38 20 2a 20 2b 20 2b 20 43 4f 55 4e  T - 8 * + + COUN
209f0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
20a00 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
20a10 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
20a20 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  2 cor1..----..-7
20a30 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
20a40 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
20a50 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
20a60 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab1 WHERE NOT co
20a70 6c 31 20 3c 3e 20 2d 20 63 6f 6c 31 0d 0a 2d 2d  l1 <> - col1..--
20a80 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
20a90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
20aa0 63 6f 6c 31 20 2a 20 2d 20 39 39 20 41 53 20 63  col1 * - 99 AS c
20ab0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
20ac0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 30 34   cor0..----..504
20ad0 39 0d 0a 36 36 33 33 0d 0a 37 36 32 33 0d 0a 0d  9..6633..7623...
20ae0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
20af0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
20b00 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
20b10 6f 72 74 20 6c 61 62 65 6c 2d 37 32 35 0d 0a 53  ort label-725..S
20b20 45 4c 45 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2b  ELECT MIN( ALL +
20b30 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
20b40 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
20b50 30 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b  0..----..5....sk
20b60 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
20b70 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
20b80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
20b90 65 6c 2d 37 32 35 0d 0a 53 45 4c 45 43 54 20 4d  el-725..SELECT M
20ba0 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  IN ( ALL + col1 
20bb0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
20bc0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
20bd0 2d 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  -..5....query II
20be0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20bf0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
20c00 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
20c10 2d 20 35 39 20 2a 20 2d 20 34 39 20 3c 3d 20 4e  - 59 * - 49 <= N
20c20 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
20c30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
20c40 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 46 52  LECT - + col1 FR
20c50 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
20c60 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42  WHERE NOT NULL B
20c70 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20 2b 20  ETWEEN + col1 + 
20c80 2d 20 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d  - col0 AND NULL.
20c90 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
20ca0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
20cb0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
20cc0 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c  HERE NOT - + col
20cd0 32 20 3e 20 2d 20 2d 20 38 31 0d 0a 2d 2d 2d 2d  2 > - - 81..----
20ce0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
20cf0 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
20d00 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
20d10 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20  fb43b7....query 
20d20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20d30 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  T col2 FROM tab1
20d40 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63   WHERE NOT + + c
20d50 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
20d60 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a 0d  -..59..68..96...
20d70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
20d80 0d 0a 53 45 4c 45 43 54 20 2b 20 33 35 20 2b 20  ..SELECT + 35 + 
20d90 2b 20 2d 20 37 37 20 46 52 4f 4d 20 74 61 62 30  + - 77 FROM tab0
20da0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63   WHERE NOT + + c
20db0 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol0 IS NOT NULL.
20dc0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
20dd0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
20de0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
20df0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
20e00 6c 2d 37 33 31 0d 0a 53 45 4c 45 43 54 20 53 55  l-731..SELECT SU
20e10 4d 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20  M( ALL - col1 ) 
20e20 2a 20 37 30 20 2a 20 2d 20 4d 49 4e 28 20 44 49  * 70 * - MIN( DI
20e30 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 41 53  STINCT col1 ) AS
20e40 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
20e50 0a 2d 2d 2d 2d 0d 0a 32 33 31 30 30 0d 0a 0d 0a  .----..23100....
20e60 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
20e70 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
20e80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
20e90 61 62 65 6c 2d 37 33 31 0d 0a 53 45 4c 45 43 54  abel-731..SELECT
20ea0 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 63 6f 6c   SUM ( ALL - col
20eb0 31 20 29 20 2a 20 37 30 20 2a 20 2d 20 4d 49 4e  1 ) * 70 * - MIN
20ec0 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31   ( DISTINCT col1
20ed0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
20ee0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 33 31 30  tab1..----..2310
20ef0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
20f00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
20f10 20 2b 20 34 39 20 2a 20 2d 20 63 6f 6c 30 20 2a   + 49 * - col0 *
20f20 20 2b 20 28 20 2b 20 35 31 20 29 20 46 52 4f 4d   + ( + 51 ) FROM
20f30 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab0..----..-21
20f40 37 34 31 33 0d 0a 2d 32 34 32 34 30 33 0d 0a 2d  7413..-242403..-
20f50 33 37 34 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  37485....onlyif 
20f60 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
20f70 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
20f80 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
20f90 6f 72 74 20 6c 61 62 65 6c 2d 37 33 33 0d 0a 53  ort label-733..S
20fa0 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 43 41  ELECT CAST( + CA
20fb0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
20fc0 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20 29  ED ) AS SIGNED )
20fd0 20 2a 20 39 34 20 41 53 20 63 6f 6c 31 20 46 52   * 94 AS col1 FR
20fe0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab2..----..N
20ff0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
21000 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
21010 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
21020 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
21030 74 20 6c 61 62 65 6c 2d 37 33 33 0d 0a 53 45 4c  t label-733..SEL
21040 45 43 54 20 43 41 53 54 20 28 20 2b 20 43 41 53  ECT CAST ( + CAS
21050 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
21060 47 45 52 20 29 20 41 53 20 49 4e 54 45 47 45 52  GER ) AS INTEGER
21070 20 29 20 2a 20 39 34 20 41 53 20 63 6f 6c 31 20   ) * 94 AS col1 
21080 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
21090 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
210a0 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
210b0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
210c0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
210d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
210e0 6c 61 62 65 6c 2d 37 33 34 0d 0a 53 45 4c 45 43  label-734..SELEC
210f0 54 20 2b 20 63 6f 6c 30 20 44 49 56 20 2d 20 2d  T + col0 DIV - -
21100 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
21110 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
21120 0d 0a 34 0d 0a 39 37 0d 0a 0d 0a 73 6b 69 70 69  ..4..97....skipi
21130 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
21140 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
21150 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21160 37 33 34 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  734..SELECT + co
21170 6c 30 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 41 53  l0 / - - col1 AS
21180 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
21190 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 0d 0a 39 37 0d  .----..0..4..97.
211a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
211b0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
211c0 2a 20 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * 4 AS col1 FROM
211d0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 30 34   tab2..----..204
211e0 0d 0a 32 36 38 0d 0a 33 30 38 0d 0a 0d 0a 73 6b  ..268..308....sk
211f0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
21200 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
21210 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
21220 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
21230 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
21240 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
21250 20 31 33 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   13 col2 FROM ta
21260 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 31 33  b0..----..13..13
21270 0d 0a 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..13....query I 
21280 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
21290 2d 20 37 39 20 2a 20 63 6f 6c 30 20 46 52 4f 4d  - 79 * col0 FROM
212a0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30   tab1..----..-40
212b0 32 39 0d 0a 2d 36 37 31 35 0d 0a 2d 37 31 38 39  29..-6715..-7189
212c0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
212d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
212e0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  L * FROM tab1 co
212f0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
21300 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 3c 20 4e  1 * - - col0 < N
21310 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
21320 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
21330 4c 45 43 54 20 2d 20 37 39 20 2a 20 2d 20 35 37  LECT - 79 * - 57
21340 20 2a 20 2d 20 32 37 20 2a 20 28 20 2d 20 63 6f   * - 27 * ( - co
21350 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l0 ) FROM tab0 A
21360 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
21370 35 37 37 35 34 37 0d 0a 31 31 37 39 33 33 35 37  577547..11793357
21380 0d 0a 31 38 32 33 37 31 35 0d 0a 0d 0a 6f 6e 6c  ..1823715....onl
21390 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
213a0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
213b0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
213c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
213d0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
213e0 43 54 20 2d 20 43 41 53 54 28 20 2b 20 2b 20 63  CT - CAST( + + c
213f0 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
21400 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
21410 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d 36  0..----..-46..-6
21420 34 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  4..-75....skipif
21430 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21440 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21450 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21460 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  40..SELECT DISTI
21470 4e 43 54 20 2d 20 43 41 53 54 20 28 20 2b 20 2b  NCT - CAST ( + +
21480 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52   col0 AS INTEGER
21490 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
214a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d  cor0..----..-46.
214b0 0a 2d 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 6f 6e 6c  .-64..-75....onl
214c0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
214d0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
214e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
214f0 6c 61 62 65 6c 2d 37 34 31 0d 0a 53 45 4c 45 43  label-741..SELEC
21500 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 2b 20 2d  T ALL + MIN( + -
21510 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20   col0 ) AS col1 
21520 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
21530 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 37 0d 0a 0d 0a  0..----..-97....
21540 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
21550 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
21560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21570 61 62 65 6c 2d 37 34 31 0d 0a 53 45 4c 45 43 54  abel-741..SELECT
21580 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2b 20 2d   ALL + MIN ( + -
21590 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20   col0 ) AS col1 
215a0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
215b0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 37 0d 0a 0d 0a  0..----..-97....
215c0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
215d0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53  ..SELECT col1 AS
215e0 20 63 6f 6c 31 2c 20 36 30 20 2d 20 63 6f 6c 30   col1, 60 - col0
215f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
21600 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 33 37  r0..----..1..-37
21610 0d 0a 32 31 0d 0a 2d 32 37 0d 0a 38 31 0d 0a 34  ..21..-27..81..4
21620 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
21630 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
21640 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2b 20 38  TINCT col0 * + 8
21650 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
21660 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 38 30 0d  or0..----..4080.
21670 0a 36 38 30 30 0d 0a 37 32 38 30 0d 0a 0d 0a 71  .6800..7280....q
21680 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
21690 0a 53 45 4c 45 43 54 20 63 6f 6c 32 2c 20 38 31  .SELECT col2, 81
216a0 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + + col2 FROM t
216b0 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
216c0 31 30 0d 0a 39 31 0d 0a 34 37 0d 0a 31 32 38 0d  10..91..47..128.
216d0 0a 39 39 0d 0a 31 38 30 0d 0a 0d 0a 71 75 65 72  .99..180....quer
216e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
216f0 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a  ECT ALL + col1 *
21700 20 2d 20 38 35 20 46 52 4f 4d 20 74 61 62 30 20   - 85 FROM tab0 
21710 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 38  cor0..----..-178
21720 35 0d 0a 2d 36 38 38 35 0d 0a 2d 38 35 0d 0a 0d  5..-6885..-85...
21730 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
21740 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
21750 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
21760 20 2b 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20   + col0 BETWEEN 
21770 2b 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 41  + - ( - col0 ) A
21780 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  ND ( NULL )..---
21790 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
217a0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
217b0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
217c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
217d0 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  7..SELECT DISTIN
217e0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
217f0 2d 20 2d 20 36 39 20 2b 20 2b 20 2d 20 35 38 20  - - 69 + + - 58 
21800 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  + + COUNT( * ) F
21810 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
21820 31 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  152....skipif my
21830 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
21840 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
21850 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 37 0d  wsort label-747.
21860 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
21870 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
21880 20 2d 20 36 39 20 2b 20 2b 20 2d 20 35 38 20 2b   - 69 + + - 58 +
21890 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
218a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
218b0 31 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  152....query I r
218c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
218d0 20 33 34 20 2a 20 2b 20 2d 20 28 20 2b 20 38 31   34 * + - ( + 81
218e0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
218f0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
21900 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab2 AS cor1..--
21910 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
21920 68 69 6e 67 20 74 6f 20 63 61 62 39 65 61 35 30  hing to cab9ea50
21930 66 33 61 35 65 36 30 63 30 30 62 39 36 65 38 31  f3a5e60c00b96e81
21940 35 34 66 39 31 65 36 38 0d 0a 0d 0a 6f 6e 6c 79  54f91e68....only
21950 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
21960 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
21970 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
21980 61 62 65 6c 2d 37 34 39 0d 0a 53 45 4c 45 43 54  abel-749..SELECT
21990 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20   COUNT( * ) + + 
219a0 31 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  17 FROM tab2..--
219b0 2d 2d 0d 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..20....skipif
219c0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
219d0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
219e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
219f0 34 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  49..SELECT COUNT
21a00 20 28 20 2a 20 29 20 2b 20 2b 20 31 37 20 46 52   ( * ) + + 17 FR
21a10 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab2..----..2
21a20 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
21a30 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
21a40 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
21a50 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
21a60 72 74 20 6c 61 62 65 6c 2d 37 35 30 0d 0a 53 45  rt label-750..SE
21a70 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
21a80 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
21a90 20 28 20 2b 20 28 20 2b 20 33 30 20 29 20 29 20   ( + ( + 30 ) ) 
21aa0 2a 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 39 32 20  * + col1 - - 92 
21ab0 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 34 33 20  + + col2 * + 43 
21ac0 2a 20 2b 20 63 6f 6c 30 20 2b 20 37 30 20 4e 4f  * + col0 + 70 NO
21ad0 54 20 42 45 54 57 45 45 4e 20 43 41 53 54 28 20  T BETWEEN CAST( 
21ae0 63 6f 6c 32 20 41 53 20 44 45 43 49 4d 41 4c 20  col2 AS DECIMAL 
21af0 29 20 2b 20 33 32 20 41 4e 44 20 4e 55 4c 4c 0d  ) + 32 AND NULL.
21b00 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
21b10 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21b20 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
21b30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21b40 37 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  750..SELECT ALL 
21b50 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
21b60 45 20 4e 4f 54 20 2d 20 28 20 2b 20 28 20 2b 20  E NOT - ( + ( + 
21b70 33 30 20 29 20 29 20 2a 20 2b 20 63 6f 6c 31 20  30 ) ) * + col1 
21b80 2d 20 2d 20 39 32 20 2b 20 2b 20 63 6f 6c 32 20  - - 92 + + col2 
21b90 2a 20 2b 20 34 33 20 2a 20 2b 20 63 6f 6c 30 20  * + 43 * + col0 
21ba0 2b 20 37 30 20 4e 4f 54 20 42 45 54 57 45 45 4e  + 70 NOT BETWEEN
21bb0 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20   CAST ( col2 AS 
21bc0 52 45 41 4c 20 29 20 2b 20 33 32 20 41 4e 44 20  REAL ) + 32 AND 
21bd0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  NULL..----....sk
21be0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
21bf0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
21c00 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
21c10 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
21c20 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
21c30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
21c40 49 53 54 49 4e 43 54 20 2d 20 37 36 20 2b 20 2d  ISTINCT - 76 + -
21c50 20 32 33 20 2a 20 63 6f 6c 30 20 2a 20 2b 20 38   23 * col0 * + 8
21c60 36 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  6 col1 FROM tab2
21c70 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 36 36 38 0d  ..----..-126668.
21c80 0a 2d 31 34 38 34 32 36 0d 0a 2d 39 31 30 36 34  .-148426..-91064
21c90 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
21ca0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
21cb0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
21cc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 32  owsort label-752
21cd0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
21ce0 54 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  T + MIN( DISTINC
21cf0 54 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2d 20 2b  T + col0 ) * - +
21d00 20 33 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   30 AS col1 FROM
21d10 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
21d20 2d 2d 2d 0d 0a 2d 31 35 33 30 0d 0a 0d 0a 73 6b  ---..-1530....sk
21d30 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
21d40 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
21d50 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
21d60 65 6c 2d 37 35 32 0d 0a 53 45 4c 45 43 54 20 44  el-752..SELECT D
21d70 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20  ISTINCT + MIN ( 
21d80 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
21d90 29 20 2a 20 2d 20 2b 20 33 30 20 41 53 20 63 6f  ) * - + 30 AS co
21da0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
21db0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 33  cor0..----..-153
21dc0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
21dd0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
21de0 20 2d 20 39 20 2b 20 2d 20 2b 20 63 6f 6c 30 20   - 9 + - + col0 
21df0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
21e00 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 2d 37  0..----..-55..-7
21e10 33 0d 0a 2d 38 34 0d 0a 0d 0a 73 6b 69 70 69 66  3..-84....skipif
21e20 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
21e30 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
21e40 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
21e50 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
21e60 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
21e70 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
21e80 4e 43 54 20 2d 20 28 20 33 34 20 29 20 63 6f 6c  NCT - ( 34 ) col
21e90 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  0 FROM tab1 cor0
21ea0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 0d 0a 0d 0a 71  ..----..-34....q
21eb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
21ec0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20  SELECT - col1 * 
21ed0 2d 20 32 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 25 AS col0 FRO
21ee0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
21ef0 48 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c  HERE NULL >= NUL
21f00 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
21f10 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21f20 43 54 20 41 4c 4c 20 34 34 20 2a 20 2d 20 2d 20  CT ALL 44 * - - 
21f30 63 6f 6c 32 20 2b 20 38 33 20 41 53 20 63 6f 6c  col2 + 83 AS col
21f40 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
21f50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 35 31 0d  or0..----..2151.
21f60 0a 34 34 33 39 0d 0a 35 32 33 0d 0a 0d 0a 73 6b  .4439..523....sk
21f70 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
21f80 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
21f90 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
21fa0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
21fb0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
21fc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
21fd0 49 53 54 49 4e 43 54 20 2b 20 2b 20 31 30 20 2a  ISTINCT + + 10 *
21fe0 20 2b 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 20 2b   + col2 + col2 +
21ff0 20 39 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   9 col1 FROM tab
22000 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36  2 cor0..----..26
22010 32 0d 0a 34 34 39 0d 0a 36 34 37 0d 0a 0d 0a 6f  2..449..647....o
22020 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
22030 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
22040 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
22050 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22060 37 35 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  758..SELECT + - 
22070 63 6f 6c 31 20 2a 20 43 41 53 54 28 20 2b 20 63  col1 * CAST( + c
22080 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
22090 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  * + col1 FROM ta
220a0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
220b0 0d 0a 2d 32 30 31 30 31 39 0d 0a 2d 32 31 32 35  ..-201019..-2125
220c0 0d 0a 2d 39 39 39 36 0d 0a 0d 0a 73 6b 69 70 69  ..-9996....skipi
220d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
220e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
220f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22100 37 35 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  758..SELECT + - 
22110 63 6f 6c 31 20 2a 20 43 41 53 54 20 28 20 2b 20  col1 * CAST ( + 
22120 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20  col0 AS INTEGER 
22130 29 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ) * + col1 FROM 
22140 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
22150 2d 2d 0d 0a 2d 32 30 31 30 31 39 0d 0a 2d 32 31  --..-201019..-21
22160 32 35 0d 0a 2d 39 39 39 36 0d 0a 0d 0a 71 75 65  25..-9996....que
22170 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
22180 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20  LECT ALL col2 * 
22190 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  - + col2 * - col
221a0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
221b0 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
221c0 33 33 31 33 35 0d 0a 38 37 30 30 0d 0a 39 35 30  33135..8700..950
221d0 36 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  697....query III
221e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
221f0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
22200 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
22210 45 52 45 20 4e 4f 54 20 2b 20 31 36 20 2b 20 2b  ERE NOT + 16 + +
22220 20 63 6f 6c 31 20 49 4e 20 28 20 2d 20 63 6f 6c   col1 IN ( - col
22230 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  2 )..----..9 val
22240 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
22250 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
22260 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
22270 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
22280 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
22290 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
222a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 31 0d  wsort label-761.
222b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
222c0 20 2b 20 28 20 2b 20 53 55 4d 28 20 2d 20 63 6f   + ( + SUM( - co
222d0 6c 32 20 29 20 29 20 2a 20 2d 20 2b 20 31 36 20  l2 ) ) * - + 16 
222e0 2b 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43  + - SUM( DISTINC
222f0 54 20 2b 20 31 37 20 29 20 46 52 4f 4d 20 74 61  T + 17 ) FROM ta
22300 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
22310 0d 0a 31 39 31 39 0d 0a 0d 0a 73 6b 69 70 69 66  ..1919....skipif
22320 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
22330 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
22340 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
22350 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  61..SELECT DISTI
22360 4e 43 54 20 2b 20 28 20 2b 20 53 55 4d 20 28 20  NCT + ( + SUM ( 
22370 2d 20 63 6f 6c 32 20 29 20 29 20 2a 20 2d 20 2b  - col2 ) ) * - +
22380 20 31 36 20 2b 20 2d 20 53 55 4d 20 28 20 44 49   16 + - SUM ( DI
22390 53 54 49 4e 43 54 20 2b 20 31 37 20 29 20 46 52  STINCT + 17 ) FR
223a0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
223b0 0a 2d 2d 2d 2d 0d 0a 31 39 31 39 0d 0a 0d 0a 6f  .----..1919....o
223c0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
223d0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
223e0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
223f0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
22400 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22410 6c 2d 37 36 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-762..SELECT DI
22420 53 54 49 4e 43 54 20 2d 20 34 32 20 44 49 56 20  STINCT - 42 DIV 
22430 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
22440 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
22450 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 0d 0a 73 6b 69  ----..-14....ski
22460 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
22470 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
22480 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
22490 6c 2d 37 36 32 0d 0a 53 45 4c 45 43 54 20 44 49  l-762..SELECT DI
224a0 53 54 49 4e 43 54 20 2d 20 34 32 20 2f 20 2b 20  STINCT - 42 / + 
224b0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
224c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
224d0 2d 2d 2d 0d 0a 2d 31 34 0d 0a 0d 0a 6f 6e 6c 79  ---..-14....only
224e0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
224f0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
22500 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22510 61 62 65 6c 2d 37 36 33 0d 0a 53 45 4c 45 43 54  abel-763..SELECT
22520 20 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 28 20   ALL + + COUNT( 
22530 2a 20 29 20 2a 20 2b 20 35 20 2b 20 4d 49 4e 28  * ) * + 5 + MIN(
22540 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
22550 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
22560 52 45 20 4e 4f 54 20 63 6f 6c 32 20 4e 4f 54 20  RE NOT col2 NOT 
22570 49 4e 20 28 20 2b 20 28 20 2b 20 38 34 20 29 2c  IN ( + ( + 84 ),
22580 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   + col1 )..----.
22590 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
225a0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
225b0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
225c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
225d0 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  3..SELECT ALL + 
225e0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
225f0 2b 20 35 20 2b 20 4d 49 4e 20 28 20 44 49 53 54  + 5 + MIN ( DIST
22600 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29 20 46 52  INCT + col2 ) FR
22610 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
22620 54 20 63 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20  T col2 NOT IN ( 
22630 2b 20 28 20 2b 20 38 34 20 29 2c 20 2b 20 63 6f  + ( + 84 ), + co
22640 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  l1 )..----..NULL
22650 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22660 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
22670 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
22680 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 34  owsort label-764
22690 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20  ..SELECT - SUM( 
226a0 41 4c 4c 20 36 36 20 29 20 46 52 4f 4d 20 74 61  ALL 66 ) FROM ta
226b0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a  b0..----..-198..
226c0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
226d0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
226e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
226f0 20 6c 61 62 65 6c 2d 37 36 34 0d 0a 53 45 4c 45   label-764..SELE
22700 43 54 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 36  CT - SUM ( ALL 6
22710 36 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  6 ) FROM tab0..-
22720 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a 0d 0a 6f 6e 6c  ---..-198....onl
22730 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
22740 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
22750 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22760 6c 61 62 65 6c 2d 37 36 35 0d 0a 53 45 4c 45 43  label-765..SELEC
22770 54 20 41 4c 4c 20 2d 20 39 33 20 2b 20 2d 20 43  T ALL - 93 + - C
22780 4f 55 4e 54 28 20 31 38 20 29 20 46 52 4f 4d 20  OUNT( 18 ) FROM 
22790 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d  tab0..----..-96.
227a0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
227b0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
227c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
227d0 74 20 6c 61 62 65 6c 2d 37 36 35 0d 0a 53 45 4c  t label-765..SEL
227e0 45 43 54 20 41 4c 4c 20 2d 20 39 33 20 2b 20 2d  ECT ALL - 93 + -
227f0 20 43 4f 55 4e 54 20 28 20 31 38 20 29 20 46 52   COUNT ( 18 ) FR
22800 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
22810 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  96....onlyif mys
22820 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
22830 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
22840 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
22850 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
22860 72 74 20 6c 61 62 65 6c 2d 37 36 36 0d 0a 53 45  rt label-766..SE
22870 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LECT + COUNT( * 
22880 29 20 2a 20 43 41 53 54 28 20 2d 20 2d 20 43 4f  ) * CAST( - - CO
22890 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e  UNT( * ) AS SIGN
228a0 45 44 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54  ED ) * + - COUNT
228b0 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 36  ( DISTINCT - - 6
228c0 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
228d0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   tab2..----..-9.
228e0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
228f0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22900 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22910 74 20 6c 61 62 65 6c 2d 37 36 36 0d 0a 53 45 4c  t label-766..SEL
22920 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ECT + COUNT ( * 
22930 29 20 2a 20 43 41 53 54 20 28 20 2d 20 2d 20 43  ) * CAST ( - - C
22940 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 49 4e  OUNT ( * ) AS IN
22950 54 45 47 45 52 20 29 20 2a 20 2b 20 2d 20 43 4f  TEGER ) * + - CO
22960 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 2d  UNT ( DISTINCT -
22970 20 2d 20 36 30 20 29 20 41 53 20 63 6f 6c 31 20   - 60 ) AS col1 
22980 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
22990 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-9....onlyif my
229a0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
229b0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
229c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
229d0 37 36 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  767..SELECT ALL 
229e0 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 2d  - COUNT( ALL + -
229f0 20 63 6f 6c 32 20 29 20 2b 20 2d 20 32 36 20 2a   col2 ) + - 26 *
22a00 20 2b 20 2b 20 37 34 20 46 52 4f 4d 20 74 61 62   + + 74 FROM tab
22a10 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 32 37 0d 0a  2..----..-1927..
22a20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
22a30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
22a40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22a50 20 6c 61 62 65 6c 2d 37 36 37 0d 0a 53 45 4c 45   label-767..SELE
22a60 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28  CT ALL - COUNT (
22a70 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 29 20   ALL + - col2 ) 
22a80 2b 20 2d 20 32 36 20 2a 20 2b 20 2b 20 37 34 20  + - 26 * + + 74 
22a90 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
22aa0 0a 2d 31 39 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-1927....onlyif
22ab0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
22ac0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
22ad0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
22ae0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 38 0d 0a  sort label-768..
22af0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2d 20  SELECT - col0 - 
22b00 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
22b10 53 49 47 4e 45 44 20 29 20 2f 20 2d 20 2d 20 43  SIGNED ) / - - C
22b20 41 53 54 28 20 33 35 20 41 53 20 53 49 47 4e 45  AST( 35 AS SIGNE
22b30 44 20 29 20 2f 20 63 6f 6c 32 20 2b 20 2b 20 63  D ) / col2 + + c
22b40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
22b50 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
22b60 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
22b70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
22b80 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
22b90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
22ba0 38 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  8..SELECT - col0
22bb0 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   - + CAST ( NULL
22bc0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
22bd0 2d 20 2d 20 43 41 53 54 20 28 20 33 35 20 41 53  - - CAST ( 35 AS
22be0 20 49 4e 54 45 47 45 52 20 29 20 2f 20 63 6f 6c   INTEGER ) / col
22bf0 32 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  2 + + col2 FROM 
22c00 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
22c10 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
22c20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
22c30 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
22c40 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
22c50 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
22c60 65 6c 2d 37 36 39 0d 0a 53 45 4c 45 43 54 20 2d  el-769..SELECT -
22c70 20 63 6f 6c 32 20 2d 20 2d 20 32 37 20 2b 20 2b   col2 - - 27 + +
22c80 20 33 30 2c 20 63 6f 6c 31 20 2d 20 43 41 53 54   30, col1 - CAST
22c90 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
22ca0 4c 20 29 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f  L ) * col2 AS co
22cb0 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
22cc0 2d 2d 0d 0a 2d 31 31 0d 0a 4e 55 4c 4c 0d 0a 2d  --..-11..NULL..-
22cd0 32 0d 0a 4e 55 4c 4c 0d 0a 2d 33 39 0d 0a 4e 55  2..NULL..-39..NU
22ce0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
22cf0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22d00 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
22d10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 39 0d  wsort label-769.
22d20 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2d  .SELECT - col2 -
22d30 20 2d 20 32 37 20 2b 20 2b 20 33 30 2c 20 63 6f   - 27 + + 30, co
22d40 6c 31 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  l1 - CAST ( NULL
22d50 20 41 53 20 52 45 41 4c 20 29 20 2a 20 63 6f 6c   AS REAL ) * col
22d60 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
22d70 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a  ab1..----..-11..
22d80 4e 55 4c 4c 0d 0a 2d 32 0d 0a 4e 55 4c 4c 0d 0a  NULL..-2..NULL..
22d90 2d 33 39 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  -39..NULL....onl
22da0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
22db0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
22dc0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
22dd0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
22de0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
22df0 37 37 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  770..SELECT DIST
22e00 49 4e 43 54 20 2d 20 32 33 20 2a 20 2d 20 2b 20  INCT - 23 * - + 
22e10 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
22e20 47 4e 45 44 20 29 20 2a 20 2d 20 34 38 20 2b 20  GNED ) * - 48 + 
22e30 2d 20 31 34 20 2d 20 2d 20 43 4f 55 4e 54 28 20  - 14 - - COUNT( 
22e40 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a  * ) * + COUNT( *
22e50 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) * + COUNT( * 
22e60 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
22e70 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
22e80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22e90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22ea0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22eb0 74 20 6c 61 62 65 6c 2d 37 37 30 0d 0a 53 45 4c  t label-770..SEL
22ec0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32  ECT DISTINCT - 2
22ed0 33 20 2a 20 2d 20 2b 20 43 41 53 54 20 28 20 4e  3 * - + CAST ( N
22ee0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
22ef0 20 2a 20 2d 20 34 38 20 2b 20 2d 20 31 34 20 2d   * - 48 + - 14 -
22f00 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
22f10 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
22f20 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
22f30 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
22f40 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
22f50 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
22f60 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 36 20  ..SELECT ALL 76 
22f70 2a 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 34 34 20  * + + col1 * 44 
22f80 2a 20 2d 20 2d 20 36 34 20 2b 20 2d 20 2d 20 31  * - - 64 + - - 1
22f90 39 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  9 AS col2, col1 
22fa0 2b 20 2d 20 2b 20 33 31 20 41 53 20 63 6f 6c 30  + - + 31 AS col0
22fb0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
22fc0 0d 0a 31 30 30 35 38 37 37 31 0d 0a 31 36 0d 0a  ..10058771..16..
22fd0 31 30 37 30 30 39 39 0d 0a 2d 32 36 0d 0a 32 39  1070099..-26..29
22fe0 39 36 32 34 33 0d 0a 2d 31 37 0d 0a 0d 0a 71 75  96243..-17....qu
22ff0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
23000 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
23010 6f 6c 30 20 2d 20 2b 20 2b 20 63 6f 6c 31 20 41  ol0 - + + col1 A
23020 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
23030 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d 35 0d  ..----..-13..-5.
23040 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .8....onlyif mys
23050 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
23060 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
23070 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23080 20 6c 61 62 65 6c 2d 37 37 33 0d 0a 53 45 4c 45   label-773..SELE
23090 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 44 49  CT ALL + col0 DI
230a0 56 20 2b 20 63 6f 6c 30 20 2d 20 38 37 20 2d 20  V + col0 - 87 - 
230b0 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 37 30 20  + col1 * - - 70 
230c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
230d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 36 36 0d 0a  0..----..-1066..
230e0 2d 33 33 37 36 0d 0a 2d 34 33 36 0d 0a 0d 0a 73  -3376..-436....s
230f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
23100 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
23110 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
23120 62 65 6c 2d 37 37 33 0d 0a 53 45 4c 45 43 54 20  bel-773..SELECT 
23130 41 4c 4c 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 63  ALL + col0 / + c
23140 6f 6c 30 20 2d 20 38 37 20 2d 20 2b 20 63 6f 6c  ol0 - 87 - + col
23150 31 20 2a 20 2d 20 2d 20 37 30 20 46 52 4f 4d 20  1 * - - 70 FROM 
23160 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
23170 2d 2d 0d 0a 2d 31 30 36 36 0d 0a 2d 33 33 37 36  --..-1066..-3376
23180 0d 0a 2d 34 33 36 0d 0a 0d 0a 71 75 65 72 79 20  ..-436....query 
23190 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
231a0 54 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 36 35 20  T col2 + - + 65 
231b0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
231c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 33 0d 0a  0..----..-6..3..
231d0 33 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  31....skipif pos
231e0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
231f0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
23200 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
23210 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
23220 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23230 53 45 4c 45 43 54 20 63 6f 6c 30 20 63 6f 6c 31  SELECT col0 col1
23240 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
23250 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2b 20  r0 WHERE col0 + 
23260 2d 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2b  - col2 BETWEEN +
23270 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2b 20   ( + col0 ) * + 
23280 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 41 4e  col0 * - col1 AN
23290 44 20 28 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d  D ( + col0 )..--
232a0 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a  --..51..85..91..
232b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
232c0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
232d0 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   * - + col0 FROM
232e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
232f0 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a 2d 37 35 36 39  ---..-225..-7569
23300 0d 0a 2d 39 34 30 39 0d 0a 0d 0a 71 75 65 72 79  ..-9409....query
23310 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
23320 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  CT + col1 * - co
23330 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  l2 * + col1 * - 
23340 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
23350 2d 2d 2d 2d 0d 0a 31 34 34 39 33 32 34 39 0d 0a  ----..14493249..
23360 34 34 31 30 30 0d 0a 39 38 30 31 0d 0a 0d 0a 6f  44100..9801....o
23370 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
23380 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
23390 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
233a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
233b0 37 37 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  778..SELECT - CA
233c0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
233d0 45 44 20 29 20 2a 20 2b 20 2d 20 32 31 20 41 53  ED ) * + - 21 AS
233e0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
233f0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
23400 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
23410 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
23420 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
23430 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23440 37 37 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41  778..SELECT - CA
23450 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
23460 45 47 45 52 20 29 20 2a 20 2b 20 2d 20 32 31 20  EGER ) * + - 21 
23470 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
23480 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  1..----..NULL..N
23490 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
234a0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
234b0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
234c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
234d0 6c 61 62 65 6c 2d 37 37 39 0d 0a 53 45 4c 45 43  label-779..SELEC
234e0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d  T COUNT( * ) * -
234f0 20 31 39 20 2a 20 2d 20 28 20 2b 20 43 4f 55 4e   19 * - ( + COUN
23500 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31  T( * ) ) AS col1
23510 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
23520 0d 0a 31 37 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..171....skipif 
23530 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
23540 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
23550 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37  rowsort label-77
23560 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  9..SELECT COUNT 
23570 28 20 2a 20 29 20 2a 20 2d 20 31 39 20 2a 20 2d  ( * ) * - 19 * -
23580 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   ( + COUNT ( * )
23590 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
235a0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 37 31 0d  tab2..----..171.
235b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
235c0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
235d0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
235e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 30 0d  wsort label-780.
235f0 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20 44  .SELECT + MIN( D
23600 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 41  ISTINCT col2 ) A
23610 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
23620 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 73 6b  ..----..59....sk
23630 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
23640 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
23650 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
23660 65 6c 2d 37 38 30 0d 0a 53 45 4c 45 43 54 20 2b  el-780..SELECT +
23670 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20   MIN ( DISTINCT 
23680 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46  col2 ) AS col1 F
23690 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
236a0 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  59....query III 
236b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
236c0 41 4c 4c 20 2d 20 63 6f 6c 30 2c 20 2d 20 63 6f  ALL - col0, - co
236d0 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 32  l2 AS col1, col2
236e0 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   - - col0 * + co
236f0 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
23700 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  tab2..----..9 va
23710 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
23720 36 66 63 66 62 34 63 33 32 38 35 39 63 31 35 64  6fcfb4c32859c15d
23730 63 65 65 39 66 31 61 37 38 66 35 33 62 33 31 37  cee9f1a78f53b317
23740 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
23750 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
23760 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
23770 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
23780 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
23790 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
237a0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f  ELECT ALL - + co
237b0 6c 31 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46 52  l1 col2, col0 FR
237c0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
237d0 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 39 37 0d 0a 2d  .----..-1..97..-
237e0 32 31 0d 0a 38 37 0d 0a 2d 38 31 0d 0a 31 35 0d  21..87..-81..15.
237f0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
23800 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
23810 49 4e 43 54 20 2d 20 63 6f 6c 30 2c 20 2d 20 63  INCT - col0, - c
23820 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
23830 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 2d  r0..----..-46..-
23840 34 36 0d 0a 2d 36 34 0d 0a 2d 36 34 0d 0a 2d 37  46..-64..-64..-7
23850 35 0d 0a 2d 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  5..-75....skipif
23860 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
23870 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
23880 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
23890 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
238a0 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
238b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
238c0 6c 30 20 63 6f 6c 32 2c 20 2b 20 33 30 20 2a 20  l0 col2, + 30 * 
238d0 2d 20 31 34 20 2a 20 33 36 20 2b 20 63 6f 6c 32  - 14 * 36 + col2
238e0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
238f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  r0..----..-51..-
23900 31 35 30 32 34 0d 0a 2d 38 35 0d 0a 2d 31 35 30  15024..-85..-150
23910 36 31 0d 0a 2d 39 31 0d 0a 2d 31 35 30 35 32 0d  61..-91..-15052.
23920 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
23930 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
23940 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f   - col2 + + - co
23950 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
23960 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
23970 52 45 20 2d 20 39 38 20 49 53 20 4e 4f 54 20 4e  RE - 98 IS NOT N
23980 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 38 0d  ULL..----..-118.
23990 0a 2d 31 33 36 0d 0a 2d 31 39 32 0d 0a 0d 0a 6f  .-136..-192....o
239a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
239b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
239c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
239d0 74 20 6c 61 62 65 6c 2d 37 38 36 0d 0a 53 45 4c  t label-786..SEL
239e0 45 43 54 20 4d 41 58 28 20 41 4c 4c 20 2b 20 2b  ECT MAX( ALL + +
239f0 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
23a00 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
23a10 4e 4f 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 3c  NOT ( - col1 ) <
23a20 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
23a30 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
23a40 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23a50 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
23a60 6f 72 74 20 6c 61 62 65 6c 2d 37 38 36 0d 0a 53  ort label-786..S
23a70 45 4c 45 43 54 20 4d 41 58 20 28 20 41 4c 4c 20  ELECT MAX ( ALL 
23a80 2b 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  + + col2 ) FROM 
23a90 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
23aa0 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 31 20  RE NOT ( - col1 
23ab0 29 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  ) < NULL..----..
23ac0 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
23ad0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
23ae0 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
23af0 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30   AS col1, + col0
23b00 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
23b10 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
23b20 0d 0a 31 34 0d 0a 35 31 0d 0a 34 37 0d 0a 39 31  ..14..51..47..91
23b30 0d 0a 35 0d 0a 38 35 0d 0a 0d 0a 6f 6e 6c 79 69  ..5..85....onlyi
23b40 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
23b50 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
23b60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
23b70 62 65 6c 2d 37 38 38 0d 0a 53 45 4c 45 43 54 20  bel-788..SELECT 
23b80 2d 20 28 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  - ( MIN( DISTINC
23b90 54 20 2d 20 32 34 20 29 20 29 20 46 52 4f 4d 20  T - 24 ) ) FROM 
23ba0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a  tab0..----..24..
23bb0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
23bc0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
23bd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23be0 20 6c 61 62 65 6c 2d 37 38 38 0d 0a 53 45 4c 45   label-788..SELE
23bf0 43 54 20 2d 20 28 20 4d 49 4e 20 28 20 44 49 53  CT - ( MIN ( DIS
23c00 54 49 4e 43 54 20 2d 20 32 34 20 29 20 29 20 46  TINCT - 24 ) ) F
23c10 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
23c20 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  24....query III 
23c30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23c40 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
23c50 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c 32 20 2a  E NOT + - col2 *
23c60 20 2d 20 2d 20 36 36 20 2b 20 2d 20 2d 20 33 36   - - 66 + - - 36
23c70 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e   + + - col1 IS N
23c80 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
23c90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
23ca0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
23cb0 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  T col1 FROM tab2
23cc0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 33   WHERE NOT - - 3
23cd0 39 20 2a 20 2d 20 2b 20 37 30 20 49 53 20 4e 4f  9 * - + 70 IS NO
23ce0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
23cf0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
23d00 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
23d10 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
23d20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23d30 2d 37 39 31 0d 0a 53 45 4c 45 43 54 20 2b 20 28  -791..SELECT + (
23d40 20 2d 20 31 39 20 29 20 2b 20 2b 20 43 41 53 54   - 19 ) + + CAST
23d50 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
23d60 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
23d70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
23d80 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
23d90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
23da0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
23db0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23dc0 61 62 65 6c 2d 37 39 31 0d 0a 53 45 4c 45 43 54  abel-791..SELECT
23dd0 20 2b 20 28 20 2d 20 31 39 20 29 20 2b 20 2b 20   + ( - 19 ) + + 
23de0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
23df0 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61  NTEGER ) FROM ta
23e00 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
23e10 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
23e20 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  LL....query II r
23e30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
23e40 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 41 53 20  ISTINCT col1 AS 
23e50 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 41 53 20  col1, - col2 AS 
23e60 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
23e70 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
23e80 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
23e90 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 39 36  L..----..14..-96
23ea0 0d 0a 34 37 0d 0a 2d 36 38 0d 0a 35 0d 0a 2d 35  ..47..-68..5..-5
23eb0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
23ec0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
23ed0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
23ee0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23ef0 6c 61 62 65 6c 2d 37 39 33 0d 0a 53 45 4c 45 43  label-793..SELEC
23f00 54 20 2d 20 35 33 20 2b 20 2b 20 2b 20 63 6f 6c  T - 53 + + + col
23f10 32 20 2b 20 2d 20 43 41 53 54 28 20 2b 20 2b 20  2 + - CAST( + + 
23f20 36 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  62 AS SIGNED ) F
23f30 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
23f40 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 0d 0a 2d 31  ..----..-105..-1
23f50 36 0d 0a 2d 36 38 0d 0a 0d 0a 73 6b 69 70 69 66  6..-68....skipif
23f60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
23f70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
23f80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
23f90 39 33 0d 0a 53 45 4c 45 43 54 20 2d 20 35 33 20  93..SELECT - 53 
23fa0 2b 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43  + + + col2 + - C
23fb0 41 53 54 20 28 20 2b 20 2b 20 36 32 20 41 53 20  AST ( + + 62 AS 
23fc0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
23fd0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
23fe0 2d 0d 0a 2d 31 30 35 0d 0a 2d 31 36 0d 0a 2d 36  -..-105..-16..-6
23ff0 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  8....query II ro
24000 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
24010 35 37 20 2b 20 2d 20 2d 20 36 36 20 41 53 20 63  57 + - - 66 AS c
24020 6f 6c 30 2c 20 63 6f 6c 30 20 41 53 20 63 6f 6c  ol0, col0 AS col
24030 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
24040 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 0d 0a  or0..----..123..
24050 34 36 0d 0a 31 32 33 0d 0a 36 34 0d 0a 31 32 33  46..123..64..123
24060 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..75....query II
24070 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
24080 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
24090 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
240a0 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63  NOT - col1 * - c
240b0 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol0 IS NOT NULL.
240c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
240d0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
240e0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
240f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
24100 6c 2d 37 39 36 0d 0a 53 45 4c 45 43 54 20 28 20  l-796..SELECT ( 
24110 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 46  + COUNT( * ) ) F
24120 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
24130 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
24140 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
24150 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
24160 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
24170 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
24180 6f 72 74 20 6c 61 62 65 6c 2d 37 39 36 0d 0a 53  ort label-796..S
24190 45 4c 45 43 54 20 28 20 2b 20 43 4f 55 4e 54 20  ELECT ( + COUNT 
241a0 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
241b0 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
241c0 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
241d0 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75  1..----..9....qu
241e0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
241f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
24200 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20  OM tab2 WHERE + 
24210 63 6f 6c 32 20 2a 20 2b 20 2b 20 36 36 20 2b 20  col2 * + + 66 + 
24220 2b 20 36 35 20 2a 20 2d 20 2b 20 63 6f 6c 32 20  + 65 * - + col2 
24230 3c 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  < + col2..----..
24240 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24250 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 33  t..SELECT ALL 63
24260 20 2a 20 2b 20 2b 20 35 33 20 41 53 20 63 6f 6c   * + + 53 AS col
24270 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
24280 2d 0d 0a 33 33 33 39 0d 0a 33 33 33 39 0d 0a 33  -..3339..3339..3
24290 33 33 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  339....query III
242a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
242b0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
242c0 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
242d0 31 20 3c 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  1 < + col0..----
242e0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
242f0 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
24300 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
24310 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
24320 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
24330 54 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d  T + - col1 + + -
24340 20 37 39 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 31   79 + + ( + col1
24350 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
24360 63 6f 72 30 20 57 48 45 52 45 20 2d 20 33 20 4e  cor0 WHERE - 3 N
24370 4f 54 20 42 45 54 57 45 45 4e 20 31 33 20 41 4e  OT BETWEEN 13 AN
24380 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  D NULL..----..-7
24390 39 0d 0a 2d 37 39 0d 0a 2d 37 39 0d 0a 0d 0a 71  9..-79..-79....q
243a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
243b0 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 36 31  SELECT col0 + 61
243c0 20 2a 20 2d 20 2d 20 32 36 20 41 53 20 63 6f 6c   * - - 26 AS col
243d0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
243e0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 33 37 0d  or0..----..1637.
243f0 0a 31 36 37 31 0d 0a 31 36 37 37 0d 0a 0d 0a 71  .1671..1677....q
24400 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
24410 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24420 2d 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 34 35 20  - - col0 * - 45 
24430 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
24440 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 37 30 0d 0a  0..----..-2070..
24450 2d 32 38 38 30 0d 0a 2d 33 33 37 35 0d 0a 0d 0a  -2880..-3375....
24460 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
24470 0a 53 45 4c 45 43 54 20 2d 20 33 35 20 2a 20 63  .SELECT - 35 * c
24480 6f 6c 30 20 2b 20 2b 20 2d 20 32 37 20 2b 20 2d  ol0 + + - 27 + -
24490 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
244a0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
244b0 33 31 35 39 0d 0a 2d 33 35 31 39 0d 0a 2d 35 36  3159..-3519..-56
244c0 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
244d0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
244e0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
244f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24500 6c 61 62 65 6c 2d 38 30 34 0d 0a 53 45 4c 45 43  label-804..SELEC
24510 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 44 49 56  T ALL - col2 DIV
24520 20 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   3 AS col2 FROM 
24530 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
24540 2d 2d 0d 0a 2d 31 35 0d 0a 2d 33 0d 0a 2d 33 33  --..-15..-3..-33
24550 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
24560 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
24570 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
24580 72 74 20 6c 61 62 65 6c 2d 38 30 34 0d 0a 53 45  rt label-804..SE
24590 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
245a0 2f 20 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  / 3 AS col2 FROM
245b0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
245c0 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 33 0d 0a 2d 33  ---..-15..-3..-3
245d0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
245e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
245f0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
24600 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30  rowsort label-80
24610 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
24620 43 54 20 43 4f 55 4e 54 28 20 2b 20 32 35 20 29  CT COUNT( + 25 )
24630 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
24640 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
24650 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
24660 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
24670 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24680 62 65 6c 2d 38 30 35 0d 0a 53 45 4c 45 43 54 20  bel-805..SELECT 
24690 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
246a0 20 2b 20 32 35 20 29 20 46 52 4f 4d 20 74 61 62   + 25 ) FROM tab
246b0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
246c0 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .3....query III 
246d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
246e0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
246f0 45 20 2d 20 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d  E - 2 IS NULL..-
24700 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
24710 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
24720 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
24730 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
24740 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
24750 6c 61 62 65 6c 2d 38 30 37 0d 0a 53 45 4c 45 43  label-807..SELEC
24760 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28  T DISTINCT CAST(
24770 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
24780 20 29 20 2b 20 2d 20 2b 20 43 41 53 54 28 20 4e   ) + - + CAST( N
24790 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
247a0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
247b0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
247c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
247d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
247e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
247f0 6c 61 62 65 6c 2d 38 30 37 0d 0a 53 45 4c 45 43  label-807..SELEC
24800 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20  T DISTINCT CAST 
24810 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
24820 20 2b 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55   + - + CAST ( NU
24830 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
24840 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
24850 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
24860 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
24870 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
24880 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
24890 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
248a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
248b0 62 65 6c 2d 38 30 38 0d 0a 53 45 4c 45 43 54 20  bel-808..SELECT 
248c0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
248d0 28 20 2a 20 29 20 44 49 56 20 2d 20 39 37 20 2b  ( * ) DIV - 97 +
248e0 20 2b 20 32 39 20 2a 20 2b 20 4d 49 4e 28 20 41   + 29 * + MIN( A
248f0 4c 4c 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d  LL + col0 ) FROM
24900 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 33 33   tab2..----..133
24910 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
24920 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
24930 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
24940 6f 72 74 20 6c 61 62 65 6c 2d 38 30 38 0d 0a 53  ort label-808..S
24950 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
24960 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d   COUNT ( * ) / -
24970 20 39 37 20 2b 20 2b 20 32 39 20 2a 20 2b 20 4d   97 + + 29 * + M
24980 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20  IN ( ALL + col0 
24990 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
249a0 2d 0d 0a 31 33 33 34 0d 0a 0d 0a 6f 6e 6c 79 69  -..1334....onlyi
249b0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
249c0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
249d0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
249e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 39  owsort label-809
249f0 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 44 49  ..SELECT col1 DI
24a00 56 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  V + col2 AS col1
24a10 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  , col2 FROM tab1
24a20 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 35 39 0d 0a 30  ..----..0..59..0
24a30 0d 0a 36 38 0d 0a 30 0d 0a 39 36 0d 0a 0d 0a 73  ..68..0..96....s
24a40 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
24a50 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
24a60 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
24a70 61 62 65 6c 2d 38 30 39 0d 0a 53 45 4c 45 43 54  abel-809..SELECT
24a80 20 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 32 20 41   col1 / + col2 A
24a90 53 20 63 6f 6c 31 2c 20 63 6f 6c 32 20 46 52 4f  S col1, col2 FRO
24aa0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab1..----..0.
24ab0 0a 35 39 0d 0a 30 0d 0a 36 38 0d 0a 30 0d 0a 39  .59..0..68..0..9
24ac0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
24ad0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
24ae0 20 2d 20 33 31 20 2d 20 32 38 20 2b 20 2d 20 33   - 31 - 28 + - 3
24af0 32 20 2a 20 2b 20 37 34 20 41 53 20 63 6f 6c 30  2 * + 74 AS col0
24b00 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
24b10 0d 0a 2d 32 34 32 37 0d 0a 2d 32 34 32 37 0d 0a  ..-2427..-2427..
24b20 2d 32 34 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49  -2427....query I
24b30 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24b40 20 41 4c 4c 20 2b 20 37 37 20 2d 20 2b 20 39 20   ALL + 77 - + 9 
24b50 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  + - col1 FROM ta
24b60 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
24b70 0d 0a 2d 31 33 0d 0a 34 37 0d 0a 36 37 0d 0a 0d  ..-13..47..67...
24b80 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
24b90 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
24ba0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24bb0 6f 72 74 20 6c 61 62 65 6c 2d 38 31 32 0d 0a 53  ort label-812..S
24bc0 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2d 20 63  ELECT - MIN( - c
24bd0 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol0 ) AS col2 FR
24be0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
24bf0 2d 2d 0d 0a 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  --..75....skipif
24c00 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
24c10 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
24c20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24c30 31 32 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e  12..SELECT - MIN
24c40 20 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63   ( - col0 ) AS c
24c50 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol2 FROM tab2 co
24c60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a  r0..----..75....
24c70 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
24c80 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
24c90 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
24ca0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
24cb0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
24cc0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24cd0 20 2d 20 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74   - 4 col1 FROM t
24ce0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
24cf0 2d 0d 0a 2d 34 0d 0a 2d 34 0d 0a 2d 34 0d 0a 0d  -..-4..-4..-4...
24d00 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
24d10 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
24d20 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
24d30 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
24d40 61 62 65 6c 2d 38 31 34 0d 0a 53 45 4c 45 43 54  abel-814..SELECT
24d50 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
24d60 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 43   AS cor0 WHERE C
24d70 41 53 54 28 20 2d 20 2b 20 63 6f 6c 31 20 41 53  AST( - + col1 AS
24d80 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20 4e 4f   DECIMAL ) IS NO
24d90 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
24da0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
24db0 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
24dc0 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
24dd0 61 64 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  ad....skipif mys
24de0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24df0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
24e00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 34  owsort label-814
24e10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
24e20 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
24e30 20 57 48 45 52 45 20 43 41 53 54 20 28 20 2d 20   WHERE CAST ( - 
24e40 2b 20 63 6f 6c 31 20 41 53 20 52 45 41 4c 20 29  + col1 AS REAL )
24e50 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
24e60 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
24e70 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
24e80 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
24e90 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79  e4d54cad....only
24ea0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
24eb0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
24ec0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
24ed0 20 6c 61 62 65 6c 2d 38 31 35 0d 0a 53 45 4c 45   label-815..SELE
24ee0 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
24ef0 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20  T( * ) AS col1, 
24f00 43 4f 55 4e 54 28 20 34 20 29 2c 20 2b 20 2d 20  COUNT( 4 ), + - 
24f10 28 20 2b 20 31 20 29 20 41 53 20 63 6f 6c 31 20  ( + 1 ) AS col1 
24f20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
24f30 0a 33 0d 0a 33 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69  .3..3..-1....ski
24f40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
24f50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
24f60 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
24f70 62 65 6c 2d 38 31 35 0d 0a 53 45 4c 45 43 54 20  bel-815..SELECT 
24f80 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
24f90 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20 43 4f   * ) AS col1, CO
24fa0 55 4e 54 20 28 20 34 20 29 2c 20 2b 20 2d 20 28  UNT ( 4 ), + - (
24fb0 20 2b 20 31 20 29 20 41 53 20 63 6f 6c 31 20 46   + 1 ) AS col1 F
24fc0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
24fd0 33 0d 0a 33 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72  3..3..-1....quer
24fe0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
24ff0 45 43 54 20 36 35 20 41 53 20 63 6f 6c 30 20 46  ECT 65 AS col0 F
25000 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
25010 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
25020 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
25030 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
25040 20 74 6f 20 38 62 65 66 32 65 61 31 66 30 35 66   to 8bef2ea1f05f
25050 33 35 31 34 36 33 33 66 38 35 31 33 31 32 62 64  3514633f851312bd
25060 64 38 30 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  d805....query I 
25070 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
25080 44 49 53 54 49 4e 43 54 20 38 32 20 2a 20 2b 20  DISTINCT 82 * + 
25090 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  - col1 FROM tab0
250a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 32 32 0d 0a 2d  ..----..-1722..-
250b0 36 36 34 32 0d 0a 2d 38 32 0d 0a 0d 0a 6f 6e 6c  6642..-82....onl
250c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
250d0 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
250e0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
250f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25100 31 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  18..SELECT col2 
25110 2f 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  / + + CAST( NULL
25120 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46 52   AS DECIMAL ) FR
25130 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
25140 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
25150 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
25160 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
25170 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
25180 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25190 38 31 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  818..SELECT col2
251a0 20 2f 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55   / + + CAST ( NU
251b0 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 46 52 4f  LL AS REAL ) FRO
251c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
251d0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
251e0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
251f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25200 54 20 2d 20 63 6f 6c 30 20 2a 20 32 20 41 53 20  T - col0 * 2 AS 
25210 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
25220 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
25230 32 38 0d 0a 2d 31 35 30 0d 0a 2d 39 32 0d 0a 0d  28..-150..-92...
25240 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
25250 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41  t..SELECT col2 A
25260 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46 52 4f  S col2, col0 FRO
25270 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
25280 2d 0d 0a 31 30 0d 0a 38 37 0d 0a 34 37 0d 0a 31  -..10..87..47..1
25290 35 0d 0a 39 39 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c  5..99..97....onl
252a0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
252b0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
252c0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
252d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
252e0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
252f0 43 54 20 28 20 2d 20 43 41 53 54 28 20 2d 20 32  CT ( - CAST( - 2
25300 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  1 AS SIGNED ) ) 
25310 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
25320 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d 0a 73 6b 69 70  ----..21....skip
25330 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
25340 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
25350 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25360 2d 38 32 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -821..SELECT DIS
25370 54 49 4e 43 54 20 28 20 2d 20 43 41 53 54 20 28  TINCT ( - CAST (
25380 20 2d 20 32 31 20 41 53 20 49 4e 54 45 47 45 52   - 21 AS INTEGER
25390 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63   ) ) FROM tab0 c
253a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d 0a 0d  or0..----..21...
253b0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
253c0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
253d0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c  M tab1 WHERE NUL
253e0 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 41 4e  L IS NOT NULL AN
253f0 44 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 31 20 49  D NOT - + col1 I
25400 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
25410 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
25420 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
25430 54 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20 2a  T col1, - col0 *
25440 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
25450 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 38 39  1..----..14..489
25460 36 0d 0a 34 37 0d 0a 36 31 38 38 0d 0a 35 0d 0a  6..47..6188..5..
25470 35 30 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49  5015....query II
25480 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25490 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c   + col1 AS col2,
254a0 20 37 30 20 2b 20 2b 20 2b 20 36 36 20 41 53 20   70 + + + 66 AS 
254b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
254c0 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 33 36 0d 0a 36  ----..51..136..6
254d0 37 0d 0a 31 33 36 0d 0a 37 37 0d 0a 31 33 36 0d  7..136..77..136.
254e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
254f0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
25500 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
25510 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 35 0d  wsort label-825.
25520 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
25530 20 2b 20 34 20 2b 20 2d 20 43 4f 55 4e 54 28 20   + 4 + - COUNT( 
25540 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
25550 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab1..----..1..
25560 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25570 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25580 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25590 20 6c 61 62 65 6c 2d 38 32 35 0d 0a 53 45 4c 45   label-825..SELE
255a0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 34 20  CT DISTINCT + 4 
255b0 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
255c0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
255d0 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75  1..----..1....qu
255e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
255f0 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20 63 6f  ELECT col1 AS co
25600 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
25610 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
25620 55 4c 4c 20 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a  ULL = ( NULL )..
25630 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
25640 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
25650 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
25660 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
25670 72 74 20 6c 61 62 65 6c 2d 38 32 37 0d 0a 53 45  rt label-827..SE
25680 4c 45 43 54 20 43 41 53 54 28 20 2d 20 63 6f 6c  LECT CAST( - col
25690 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  1 AS SIGNED ) * 
256a0 39 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  96 FROM tab2 AS 
256b0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 39  cor0..----..-489
256c0 36 0d 0a 2d 36 34 33 32 0d 0a 2d 37 33 39 32 0d  6..-6432..-7392.
256d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
256e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
256f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25700 74 20 6c 61 62 65 6c 2d 38 32 37 0d 0a 53 45 4c  t label-827..SEL
25710 45 43 54 20 43 41 53 54 20 28 20 2d 20 63 6f 6c  ECT CAST ( - col
25720 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  1 AS INTEGER ) *
25730 20 39 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53   96 FROM tab2 AS
25740 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38   cor0..----..-48
25750 39 36 0d 0a 2d 36 34 33 32 0d 0a 2d 37 33 39 32  96..-6432..-7392
25760 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
25770 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
25780 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
25790 30 20 57 48 45 52 45 20 32 32 20 2b 20 2b 20 2d  0 WHERE 22 + + -
257a0 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
257b0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
257c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
257d0 49 53 54 49 4e 43 54 20 2b 20 2b 20 39 35 20 2a  ISTINCT + + 95 *
257e0 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - - col0 FROM t
257f0 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
25800 34 38 34 35 0d 0a 38 30 37 35 0d 0a 38 36 34 35  4845..8075..8645
25810 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
25820 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
25830 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
25840 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 30  owsort label-830
25850 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
25860 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 63 6f   COUNT( ALL + co
25870 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  l1 ) FROM tab1 A
25880 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  S cor0..----..3.
25890 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
258a0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
258b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
258c0 74 20 6c 61 62 65 6c 2d 38 33 30 0d 0a 53 45 4c  t label-830..SEL
258d0 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e  ECT ALL - - COUN
258e0 54 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29  T ( ALL + col1 )
258f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
25900 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f  r0..----..3....o
25910 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
25920 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
25930 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
25940 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
25950 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
25960 6c 2d 38 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-831..SELECT AL
25970 4c 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  L CAST( NULL AS 
25980 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 2b 20 43  SIGNED ) + + + C
25990 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 28 20  OUNT( * ) + - ( 
259a0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
259b0 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f 4d 20  SIGNED ) ) FROM 
259c0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
259d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
259e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
259f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
25a00 72 74 20 6c 61 62 65 6c 2d 38 33 31 0d 0a 53 45  rt label-831..SE
25a10 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20  LECT ALL CAST ( 
25a20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
25a30 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  ) + + + COUNT ( 
25a40 2a 20 29 20 2b 20 2d 20 28 20 2d 20 43 41 53 54  * ) + - ( - CAST
25a50 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
25a60 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32  ER ) ) FROM tab2
25a70 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
25a80 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
25a90 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
25aa0 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
25ab0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
25ac0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
25ad0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25ae0 54 20 41 4c 4c 20 2d 20 34 39 20 2b 20 63 6f 6c  T ALL - 49 + col
25af0 31 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 30 20 2a  1 col2, - col0 *
25b00 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
25b10 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a 31 38  0..----..-28..18
25b20 32 37 0d 0a 2d 34 38 0d 0a 39 37 0d 0a 33 32 0d  27..-48..97..32.
25b30 0a 31 32 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .1215....query I
25b40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25b50 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 46   DISTINCT col2 F
25b60 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
25b70 20 57 48 45 52 45 20 36 38 20 49 53 20 4e 55 4c   WHERE 68 IS NUL
25b80 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
25b90 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
25ba0 45 43 54 20 28 20 63 6f 6c 30 20 29 2c 20 33 34  ECT ( col0 ), 34
25bb0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
25bc0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 33 34  r0..----..15..34
25bd0 0d 0a 38 37 0d 0a 33 34 0d 0a 39 37 0d 0a 33 34  ..87..34..97..34
25be0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
25bf0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
25c00 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
25c10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 35  owsort label-835
25c20 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 34  ..SELECT ALL + 4
25c30 30 20 2a 20 43 4f 55 4e 54 28 20 2d 20 37 39 20  0 * COUNT( - 79 
25c40 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
25c50 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
25c60 2d 0d 0a 31 32 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..120....skipif
25c70 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
25c80 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
25c90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25ca0 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  35..SELECT ALL +
25cb0 20 34 30 20 2a 20 43 4f 55 4e 54 20 28 20 2d 20   40 * COUNT ( - 
25cc0 37 39 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  79 ) AS col1 FRO
25cd0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
25ce0 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 0d 0a 71 75 65  ----..120....que
25cf0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
25d00 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
25d10 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
25d20 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20  HERE NOT + col2 
25d30 2a 20 2d 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f  * - - col2 IS NO
25d40 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
25d50 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
25d60 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
25d70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
25d80 72 74 20 6c 61 62 65 6c 2d 38 33 37 0d 0a 53 45  rt label-837..SE
25d90 4c 45 43 54 20 2b 20 28 20 33 33 20 29 20 2a 20  LECT + ( 33 ) * 
25da0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
25db0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
25dc0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a  cor0..----..99..
25dd0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
25de0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
25df0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25e00 20 6c 61 62 65 6c 2d 38 33 37 0d 0a 53 45 4c 45   label-837..SELE
25e10 43 54 20 2b 20 28 20 33 33 20 29 20 2a 20 43 4f  CT + ( 33 ) * CO
25e20 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
25e30 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
25e40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d  or0..----..99...
25e50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25e60 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
25e70 2a 20 2b 20 38 30 20 46 52 4f 4d 20 74 61 62 31  * + 80 FROM tab1
25e80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 32   cor0..----..112
25e90 30 0d 0a 33 37 36 30 0d 0a 34 30 30 0d 0a 0d 0a  0..3760..400....
25ea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25eb0 0a 53 45 4c 45 43 54 20 39 32 20 2a 20 33 36 20  .SELECT 92 * 36 
25ec0 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  - col2 FROM tab0
25ed0 0d 0a 2d 2d 2d 2d 0d 0a 33 32 31 33 0d 0a 33 32  ..----..3213..32
25ee0 36 35 0d 0a 33 33 30 32 0d 0a 0d 0a 6f 6e 6c 79  65..3302....only
25ef0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
25f00 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
25f10 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
25f20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 30  owsort label-840
25f30 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
25f40 2a 20 63 6f 6c 30 20 2d 20 2b 20 2b 20 63 6f 6c  * col0 - + + col
25f50 30 20 2b 20 2b 20 35 31 20 44 49 56 20 2d 20 63  0 + + 51 DIV - c
25f60 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
25f70 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33   tab2..----..-23
25f80 39 34 0d 0a 2d 34 39 39 33 0d 0a 2d 35 31 30 30  94..-4993..-5100
25f90 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
25fa0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
25fb0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
25fc0 72 74 20 6c 61 62 65 6c 2d 38 34 30 0d 0a 53 45  rt label-840..SE
25fd0 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 63 6f  LECT - col1 * co
25fe0 6c 30 20 2d 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  l0 - + + col0 + 
25ff0 2b 20 35 31 20 2f 20 2d 20 63 6f 6c 32 20 41 53  + 51 / - col2 AS
26000 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
26010 0a 2d 2d 2d 2d 0d 0a 2d 32 33 39 34 0d 0a 2d 34  .----..-2394..-4
26020 39 39 33 0d 0a 2d 35 31 30 30 0d 0a 0d 0a 71 75  993..-5100....qu
26030 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
26040 45 4c 45 43 54 20 2b 20 37 36 20 46 52 4f 4d 20  ELECT + 76 FROM 
26050 74 61 62 31 2c 20 74 61 62 30 20 63 6f 72 30 0d  tab1, tab0 cor0.
26060 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
26070 68 61 73 68 69 6e 67 20 74 6f 20 33 30 62 38 39  hashing to 30b89
26080 34 31 61 37 30 30 63 66 66 64 35 62 39 38 33 31  41a700cffd5b9831
26090 31 36 33 38 33 62 64 34 32 64 35 0d 0a 0d 0a 6f  16383bd42d5....o
260a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
260b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
260c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
260d0 74 20 6c 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c  t label-842..SEL
260e0 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
260f0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
26100 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e   ( NOT NULL IS N
26110 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ULL )..----..0..
26120 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
26130 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
26140 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26150 20 6c 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c 45   label-842..SELE
26160 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
26170 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
26180 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e   ( NOT NULL IS N
26190 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ULL )..----..0..
261a0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
261b0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
261c0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
261d0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
261e0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
261f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
26200 43 54 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f  CT col1 + + - co
26210 6c 30 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l0 col1 FROM tab
26220 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d  2..----..-8..13.
26230 0a 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .5....query I ro
26240 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
26250 4c 20 28 20 28 20 2b 20 2d 20 35 34 20 29 20 29  L ( ( + - 54 ) )
26260 20 2b 20 2b 20 28 20 2b 20 37 32 20 29 20 41 53   + + ( + 72 ) AS
26270 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
26280 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 31 38 0d 0a 31  .----..18..18..1
26290 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
262a0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
262b0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
262c0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34  rowsort label-84
262d0 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
262e0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
262f0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
26300 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20 2b 20  WHERE ( NOT ( + 
26310 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 20 29  col2 ) IS NULL )
26320 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
26330 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
26340 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
26350 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26360 6c 2d 38 34 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-845..SELECT DI
26370 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
26380 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
26390 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 4f 54  tab2 WHERE ( NOT
263a0 20 28 20 2b 20 63 6f 6c 32 20 29 20 49 53 20 4e   ( + col2 ) IS N
263b0 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a  ULL )..----..3..
263c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
263d0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
263e0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
263f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26400 65 6c 2d 38 34 36 0d 0a 53 45 4c 45 43 54 20 44  el-846..SELECT D
26410 49 53 54 49 4e 43 54 20 39 33 20 44 49 56 20 63  ISTINCT 93 DIV c
26420 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol2 AS col1 FROM
26430 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab2..----..1..
26440 32 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  2..4....skipif m
26450 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26460 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
26470 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 36  owsort label-846
26480 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26490 54 20 39 33 20 2f 20 63 6f 6c 32 20 41 53 20 63  T 93 / col2 AS c
264a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
264b0 2d 2d 2d 0d 0a 31 0d 0a 32 0d 0a 34 0d 0a 0d 0a  ---..1..2..4....
264c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
264d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
264e0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
264f0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
26500 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26510 65 6c 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 44  el-847..SELECT D
26520 49 53 54 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e  ISTINCT - - COUN
26530 54 28 20 37 34 20 29 20 44 49 56 20 2d 20 43 4f  T( 74 ) DIV - CO
26540 55 4e 54 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20  UNT( ALL + col0 
26550 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ) + + COUNT( * )
26560 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
26570 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 0d 0a 73 6b 69 70  .----..2....skip
26580 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
26590 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
265a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
265b0 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 44 49 53  -847..SELECT DIS
265c0 54 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20  TINCT - - COUNT 
265d0 28 20 37 34 20 29 20 2f 20 2d 20 43 4f 55 4e 54  ( 74 ) / - COUNT
265e0 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29 20   ( ALL + col0 ) 
265f0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
26600 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
26610 2d 2d 2d 2d 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79  ----..2....query
26620 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
26630 45 43 54 20 2d 20 33 37 20 41 53 20 63 6f 6c 30  ECT - 37 AS col0
26640 2c 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 36 35 20  , col0 * + + 65 
26650 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  * col0 AS col2 F
26660 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
26670 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 31 33 37  ..----..-37..137
26680 35 34 30 0d 0a 2d 33 37 0d 0a 32 36 36 32 34 30  540..-37..266240
26690 0d 0a 2d 33 37 0d 0a 33 36 35 36 32 35 0d 0a 0d  ..-37..365625...
266a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
266b0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
266c0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
266d0 6f 72 74 20 6c 61 62 65 6c 2d 38 34 39 0d 0a 53  ort label-849..S
266e0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
266f0 20 53 55 4d 28 20 63 6f 6c 31 20 29 20 46 52 4f   SUM( col1 ) FRO
26700 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
26710 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 0d 0a 73 6b 69  ----..103....ski
26720 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
26730 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
26740 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26750 6c 2d 38 34 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-849..SELECT DI
26760 53 54 49 4e 43 54 20 2b 20 53 55 4d 20 28 20 63  STINCT + SUM ( c
26770 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol1 ) FROM tab0 
26780 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
26790 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  03....query III 
267a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
267b0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
267c0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 38 33  or0 WHERE NOT 83
267d0 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 49 53 20 4e   + - - col0 IS N
267e0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
267f0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
26800 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
26810 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
26820 6f 72 74 20 6c 61 62 65 6c 2d 38 35 31 0d 0a 53  ort label-851..S
26830 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
26840 20 4d 41 58 28 20 37 35 20 29 20 46 52 4f 4d 20   MAX( 75 ) FROM 
26850 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d  tab1..----..-75.
26860 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
26870 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
26880 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26890 74 20 6c 61 62 65 6c 2d 38 35 31 0d 0a 53 45 4c  t label-851..SEL
268a0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d  ECT DISTINCT - M
268b0 41 58 20 28 20 37 35 20 29 20 46 52 4f 4d 20 74  AX ( 75 ) FROM t
268c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a  ab1..----..-75..
268d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
268e0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
268f0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
26900 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26910 65 6c 2d 38 35 32 0d 0a 53 45 4c 45 43 54 20 2d  el-852..SELECT -
26920 20 63 6f 6c 32 20 44 49 56 20 32 37 20 41 53 20   col2 DIV 27 AS 
26930 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
26940 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 32 0d 0a 2d 33  ----..-2..-2..-3
26950 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
26960 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26970 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
26980 72 74 20 6c 61 62 65 6c 2d 38 35 32 0d 0a 53 45  rt label-852..SE
26990 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2f 20 32 37  LECT - col2 / 27
269a0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
269b0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d 32  b1..----..-2..-2
269c0 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
269d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
269e0 41 4c 4c 20 2d 20 32 36 20 46 52 4f 4d 20 74 61  ALL - 26 FROM ta
269f0 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b0 AS cor0 CROSS
26a00 20 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d   JOIN tab0 cor1.
26a10 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
26a20 68 61 73 68 69 6e 67 20 74 6f 20 34 37 64 30 35  hashing to 47d05
26a30 37 34 32 37 34 31 34 36 64 65 32 37 33 38 32 39  74274146de273829
26a40 37 38 35 33 36 34 61 64 61 33 39 0d 0a 0d 0a 73  785364ada39....s
26a50 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
26a60 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
26a70 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
26a80 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
26a90 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
26aa0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26ab0 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 2c 20 2d 20   + col1 col0, - 
26ac0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
26ad0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
26ae0 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c  HERE NOT ( - col
26af0 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  1 ) IS NOT NULL.
26b00 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
26b10 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
26b20 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
26b30 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26b40 6c 2d 38 35 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-855..SELECT DI
26b50 53 54 49 4e 43 54 20 28 20 2b 20 43 4f 55 4e 54  STINCT ( + COUNT
26b60 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
26b70 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
26b80 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
26b90 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
26ba0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
26bb0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 35 0d 0a  sort label-855..
26bc0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
26bd0 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ( + COUNT ( * ) 
26be0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
26bf0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
26c00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
26c10 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
26c20 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
26c30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
26c40 2d 38 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -856..SELECT ALL
26c50 20 2b 20 2d 20 43 41 53 54 28 20 2d 20 2b 20 63   + - CAST( - + c
26c60 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol1 AS SIGNED ) 
26c70 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
26c80 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d  0..----..14..47.
26c90 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .5....skipif mys
26ca0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
26cb0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
26cc0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 36 0d 0a  sort label-856..
26cd0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43  SELECT ALL + - C
26ce0 41 53 54 20 28 20 2d 20 2b 20 63 6f 6c 31 20 41  AST ( - + col1 A
26cf0 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
26d00 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
26d10 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a  ---..14..47..5..
26d20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
26d30 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
26d40 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
26d50 57 48 45 52 45 20 4e 4f 54 20 33 30 20 49 53 20  WHERE NOT 30 IS 
26d60 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
26d70 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
26d80 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
26d90 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
26da0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
26db0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28  sort..SELECT - (
26dc0 20 2d 20 2d 20 35 32 20 29 20 41 53 20 63 6f 6c   - - 52 ) AS col
26dd0 32 2c 20 2d 20 39 32 20 46 52 4f 4d 20 74 61 62  2, - 92 FROM tab
26de0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
26df0 0a 2d 35 32 0d 0a 2d 39 32 0d 0a 2d 35 32 0d 0a  .-52..-92..-52..
26e00 2d 39 32 0d 0a 2d 35 32 0d 0a 2d 39 32 0d 0a 0d  -92..-52..-92...
26e10 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
26e20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
26e30 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
26e40 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
26e50 62 65 6c 2d 38 35 39 0d 0a 53 45 4c 45 43 54 20  bel-859..SELECT 
26e60 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
26e70 45 20 4e 4f 54 20 2b 20 43 41 53 54 28 20 2d 20  E NOT + CAST( - 
26e80 2b 20 38 31 20 41 53 20 53 49 47 4e 45 44 20 29  + 81 AS SIGNED )
26e90 20 2b 20 2b 20 2b 20 32 34 20 3d 20 31 38 20 2a   + + + 24 = 18 *
26ea0 20 2b 20 38 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   + 81..----..9 v
26eb0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
26ec0 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
26ed0 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
26ee0 64 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  d....skipif mysq
26ef0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
26f00 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
26f10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 39 0d  wsort label-859.
26f20 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
26f30 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
26f40 43 41 53 54 20 28 20 2d 20 2b 20 38 31 20 41 53  CAST ( - + 81 AS
26f50 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 2b   INTEGER ) + + +
26f60 20 32 34 20 3d 20 31 38 20 2a 20 2b 20 38 31 0d   24 = 18 * + 81.
26f70 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
26f80 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
26f90 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
26fa0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 73  a11e4d54cad....s
26fb0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
26fc0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
26fd0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
26fe0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
26ff0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
27000 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
27010 44 49 53 54 49 4e 43 54 20 36 34 20 63 6f 6c 30  DISTINCT 64 col0
27020 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
27030 20 2d 20 63 6f 6c 32 20 4e 4f 54 20 42 45 54 57   - col2 NOT BETW
27040 45 45 4e 20 2b 20 2b 20 63 6f 6c 31 20 41 4e 44  EEN + + col1 AND
27050 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d   NULL..----..64.
27060 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27070 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31  rt..SELECT ALL 1
27080 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b  2 + - + col1 + +
27090 20 2b 20 37 38 20 46 52 4f 4d 20 74 61 62 31 0d   + 78 FROM tab1.
270a0 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 37 36 0d 0a 38  .----..43..76..8
270b0 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
270c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
270d0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  LL * FROM tab0 W
270e0 48 45 52 45 20 63 6f 6c 32 20 2f 20 2b 20 2d 20  HERE col2 / + - 
270f0 37 34 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63  74 NOT BETWEEN c
27100 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol0 AND NULL..--
27110 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
27120 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
27130 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
27140 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
27150 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
27160 45 43 54 20 41 4c 4c 20 2b 20 33 38 20 2b 20 31  ECT ALL + 38 + 1
27170 33 20 2a 20 2b 20 36 37 20 46 52 4f 4d 20 74 61  3 * + 67 FROM ta
27180 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 30 39 0d 0a 39  b2..----..909..9
27190 30 39 0d 0a 39 30 39 0d 0a 0d 0a 71 75 65 72 79  09..909....query
271a0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
271b0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
271c0 20 57 48 45 52 45 20 63 6f 6c 31 20 3c 20 2d 20   WHERE col1 < - 
271d0 31 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  14..----....only
271e0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
271f0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
27200 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
27210 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 35  owsort label-865
27220 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d  ..SELECT ALL + -
27230 20 63 6f 6c 32 20 44 49 56 20 39 36 20 63 6f 6c   col2 DIV 96 col
27240 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
27250 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30  or0..----..-1..0
27260 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
27270 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27280 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
27290 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
272a0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
272b0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
272c0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
272d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
272e0 61 62 65 6c 2d 38 36 35 0d 0a 53 45 4c 45 43 54  abel-865..SELECT
272f0 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 2f 20   ALL + - col2 / 
27300 39 36 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  96 col0 FROM tab
27310 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
27320 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65  .-1..0..0....que
27330 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
27340 4c 45 43 54 20 2b 20 2d 20 34 32 20 2b 20 2b 20  LECT + - 42 + + 
27350 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
27360 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32  S cor0..----..22
27370 0d 0a 33 33 0d 0a 34 0d 0a 0d 0a 71 75 65 72 79  ..33..4....query
27380 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
27390 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
273a0 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  ol2, + col2 * - 
273b0 38 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  81 FROM tab0 AS 
273c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  cor0..----..10..
273d0 2d 38 31 30 0d 0a 34 37 0d 0a 2d 33 38 30 37 0d  -810..47..-3807.
273e0 0a 39 39 0d 0a 2d 38 30 31 39 0d 0a 0d 0a 71 75  .99..-8019....qu
273f0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
27400 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 2c  SELECT - - col2,
27410 20 2d 20 28 20 35 39 20 29 20 41 53 20 63 6f 6c   - ( 59 ) AS col
27420 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
27430 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 2d  or0..----..23..-
27440 35 39 0d 0a 34 30 0d 0a 2d 35 39 0d 0a 35 38 0d  59..40..-59..58.
27450 0a 2d 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-59....onlyif m
27460 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
27470 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
27480 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27490 2d 38 36 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -869..SELECT ALL
274a0 20 2d 20 53 55 4d 28 20 2d 20 63 6f 6c 32 20 29   - SUM( - col2 )
274b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
274c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
274d0 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  21....skipif mys
274e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
274f0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
27500 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
27510 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
27520 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
27530 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
27540 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
27550 62 65 6c 2d 38 36 39 0d 0a 53 45 4c 45 43 54 20  bel-869..SELECT 
27560 41 4c 4c 20 2d 20 53 55 4d 20 28 20 2d 20 63 6f  ALL - SUM ( - co
27570 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74  l2 ) col0 FROM t
27580 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
27590 2d 0d 0a 31 32 31 0d 0a 0d 0a 71 75 65 72 79 20  -..121....query 
275a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
275b0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
275c0 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 28  * - + col2 + + (
275d0 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2d 20 63 6f   + col0 ) + - co
275e0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
275f0 2d 2d 0d 0a 2d 31 33 34 34 0d 0a 2d 32 39 35 0d  --..-1344..-295.
27600 0a 2d 33 31 39 36 0d 0a 0d 0a 71 75 65 72 79 20  .-3196....query 
27610 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
27620 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
27630 61 62 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20  ab0 WHERE ( NOT 
27640 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 63 6f 6c 31  NULL IN ( - col1
27650 20 2a 20 2d 20 63 6f 6c 31 2c 20 63 6f 6c 30 20   * - col1, col0 
27660 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
27670 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
27680 4c 45 43 54 20 33 33 20 2d 20 2b 20 31 20 2b 20  LECT 33 - + 1 + 
27690 2d 20 2b 20 35 37 20 46 52 4f 4d 20 74 61 62 31  - + 57 FROM tab1
276a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a 2d 32 35  ..----..-25..-25
276b0 0d 0a 2d 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-25....skipif 
276c0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
276d0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
276e0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
276f0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
27700 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27710 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 63  t..SELECT col2 c
27720 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol0 FROM tab0 WH
27730 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
27740 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
27750 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27760 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2d 20 2b  ELECT col2 + - +
27770 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20 46 52   ( + - col1 ) FR
27780 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
27790 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 31 35 0d  .----..110..115.
277a0 0a 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .64....onlyif my
277b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
277c0 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
277d0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
277e0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
277f0 6f 72 74 20 6c 61 62 65 6c 2d 38 37 35 0d 0a 53  ort label-875..S
27800 45 4c 45 43 54 20 2d 20 28 20 2d 20 2b 20 39 37  ELECT - ( - + 97
27810 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) * COUNT( * ) 
27820 2b 20 2b 20 43 41 53 54 28 20 2d 20 2b 20 28 20  + + CAST( - + ( 
27830 2b 20 31 35 20 29 20 41 53 20 53 49 47 4e 45 44  + 15 ) AS SIGNED
27840 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
27850 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
27860 0a 32 37 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .276....skipif m
27870 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27880 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
27890 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 35  owsort label-875
278a0 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20 2b  ..SELECT - ( - +
278b0 20 39 37 20 29 20 2a 20 43 4f 55 4e 54 20 28 20   97 ) * COUNT ( 
278c0 2a 20 29 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  * ) + + CAST ( -
278d0 20 2b 20 28 20 2b 20 31 35 20 29 20 41 53 20 49   + ( + 15 ) AS I
278e0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30  NTEGER ) AS col0
278f0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
27900 0a 2d 2d 2d 2d 0d 0a 32 37 36 0d 0a 0d 0a 6f 6e  .----..276....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 38 37 36 0d 0a 53 45 4c 45   label-876..SELE
27950 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 28  CT DISTINCT MIN(
27960 20 37 33 20 29 20 41 53 20 63 6f 6c 32 20 46 52   73 ) AS col2 FR
27970 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
27980 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 0d 0a 73 6b 69  .----..73....ski
27990 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
279a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
279b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
279c0 6c 2d 38 37 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-876..SELECT DI
279d0 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 37 33 20  STINCT MIN ( 73 
279e0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
279f0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
27a00 2d 0d 0a 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..73....skipif 
27a10 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
27a20 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
27a30 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
27a40 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
27a50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27a60 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 39 34  t..SELECT + - 94
27a70 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20 46   + + col1 col2 F
27a80 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
27a90 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 2d 38 30  ..----..-47..-80
27aa0 0d 0a 2d 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-89....query I
27ab0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27ac0 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
27ad0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
27ae0 28 20 4e 55 4c 4c 20 29 20 3c 3d 20 2b 20 63 6f  ( NULL ) <= + co
27af0 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l0..----....only
27b00 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
27b10 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
27b20 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
27b30 6c 61 62 65 6c 2d 38 37 39 0d 0a 53 45 4c 45 43  label-879..SELEC
27b40 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
27b50 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 2d  ( * ) AS col0, -
27b60 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
27b70 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
27b80 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
27b90 2d 20 63 6f 6c 32 20 3e 20 28 20 35 30 20 29 0d  - col2 > ( 50 ).
27ba0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 33 0d 0a 0d 0a  .----..3..-3....
27bb0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
27bc0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
27bd0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
27be0 6c 61 62 65 6c 2d 38 37 39 0d 0a 53 45 4c 45 43  label-879..SELEC
27bf0 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
27c00 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20   ( * ) AS col0, 
27c10 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
27c20 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
27c30 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
27c40 54 20 2d 20 63 6f 6c 32 20 3e 20 28 20 35 30 20  T - col2 > ( 50 
27c50 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 33 0d 0a  )..----..3..-3..
27c60 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
27c70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
27c80 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20  OM tab0 WHERE ( 
27c90 4e 55 4c 4c 20 29 20 3c 3e 20 2d 20 63 6f 6c 30  NULL ) <> - col0
27ca0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
27cb0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
27cc0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
27cd0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27ce0 65 6c 2d 38 38 31 0d 0a 53 45 4c 45 43 54 20 41  el-881..SELECT A
27cf0 4c 4c 20 37 30 20 2a 20 2b 20 43 4f 55 4e 54 28  LL 70 * + COUNT(
27d00 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
27d10 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31  M tab0..----..21
27d20 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
27d30 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
27d40 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
27d50 6f 72 74 20 6c 61 62 65 6c 2d 38 38 31 0d 0a 53  ort label-881..S
27d60 45 4c 45 43 54 20 41 4c 4c 20 37 30 20 2a 20 2b  ELECT ALL 70 * +
27d70 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
27d80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
27d90 2d 2d 2d 2d 0d 0a 32 31 30 0d 0a 0d 0a 6f 6e 6c  ----..210....onl
27da0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
27db0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
27dc0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
27dd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27de0 38 38 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  882..SELECT ALL 
27df0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
27e00 45 20 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54 28  E col1 + + CAST(
27e10 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
27e20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
27e30 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
27e40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27e50 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
27e60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
27e70 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  2..SELECT ALL * 
27e80 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
27e90 63 6f 6c 31 20 2b 20 2b 20 43 41 53 54 20 28 20  col1 + + CAST ( 
27ea0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
27eb0 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
27ec0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
27ed0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
27ee0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
27ef0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
27f00 72 74 20 6c 61 62 65 6c 2d 38 38 33 0d 0a 53 45  rt label-883..SE
27f10 4c 45 43 54 20 2b 20 63 6f 6c 31 20 44 49 56 20  LECT + col1 DIV 
27f20 2b 20 32 30 20 41 53 20 63 6f 6c 31 2c 20 63 6f  + 20 AS col1, co
27f30 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
27f40 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a 32 31 0d  --..0..1..1..21.
27f50 0a 34 0d 0a 38 31 0d 0a 0d 0a 73 6b 69 70 69 66  .4..81....skipif
27f60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
27f70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
27f80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27f90 38 38 33 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  883..SELECT + co
27fa0 6c 31 20 2f 20 2b 20 32 30 20 41 53 20 63 6f 6c  l1 / + 20 AS col
27fb0 31 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  1, col1 FROM tab
27fc0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31  0..----..0..1..1
27fd0 0d 0a 32 31 0d 0a 34 0d 0a 38 31 0d 0a 0d 0a 73  ..21..4..81....s
27fe0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
27ff0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
28000 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
28010 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
28020 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
28030 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
28040 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   ALL - col1 * + 
28050 38 2c 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f  8, col0 col2 FRO
28060 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
28070 31 32 0d 0a 35 31 0d 0a 2d 33 37 36 0d 0a 39 31  12..51..-376..91
28080 0d 0a 2d 34 30 0d 0a 38 35 0d 0a 0d 0a 6f 6e 6c  ..-40..85....onl
28090 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
280a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
280b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
280c0 6c 61 62 65 6c 2d 38 38 35 0d 0a 53 45 4c 45 43  label-885..SELEC
280d0 54 20 32 30 20 2a 20 2d 20 43 4f 55 4e 54 28 20  T 20 * - COUNT( 
280e0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  * ) FROM tab1..-
280f0 2d 2d 2d 0d 0a 2d 36 30 0d 0a 0d 0a 73 6b 69 70  ---..-60....skip
28100 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
28110 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
28120 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
28130 2d 38 38 35 0d 0a 53 45 4c 45 43 54 20 32 30 20  -885..SELECT 20 
28140 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * - COUNT ( * ) 
28150 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
28160 0a 2d 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-60....onlyif m
28170 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
28180 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
28190 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
281a0 6c 2d 38 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20  l-886..SELECT + 
281b0 53 55 4d 28 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c  SUM( ALL - - col
281c0 30 20 29 20 63 6f 6c 30 2c 20 2b 20 31 20 2b 20  0 ) col0, + 1 + 
281d0 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 2b 20 63  COUNT( ALL - + c
281e0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol0 ) FROM tab0.
281f0 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 34 0d 0a 0d  .----..199..4...
28200 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
28210 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
28220 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
28230 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
28240 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
28250 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
28260 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
28270 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28280 38 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55  886..SELECT + SU
28290 4d 20 28 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 30  M ( ALL - - col0
282a0 20 29 20 63 6f 6c 30 2c 20 2b 20 31 20 2b 20 43   ) col0, + 1 + C
282b0 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 2b 20 63  OUNT ( ALL - + c
282c0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol0 ) FROM tab0.
282d0 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 34 0d 0a 0d  .----..199..4...
282e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
282f0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
28300 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
28310 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28320 6c 2d 38 38 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-887..SELECT - 
28330 33 20 44 49 56 20 2b 20 2d 20 39 38 20 41 53 20  3 DIV + - 98 AS 
28340 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
28350 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
28360 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
28370 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
28380 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28390 6c 61 62 65 6c 2d 38 38 37 0d 0a 53 45 4c 45 43  label-887..SELEC
283a0 54 20 2d 20 33 20 2f 20 2b 20 2d 20 39 38 20 41  T - 3 / + - 98 A
283b0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
283c0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
283d0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
283e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
283f0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
28400 63 6f 72 30 20 57 48 45 52 45 20 2d 20 32 31 20  cor0 WHERE - 21 
28410 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
28420 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28430 0d 0a 53 45 4c 45 43 54 20 2b 20 39 20 2a 20 34  ..SELECT + 9 * 4
28440 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  6 AS col2 FROM t
28450 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 31 34 0d 0a  ab2..----..414..
28460 34 31 34 0d 0a 34 31 34 0d 0a 0d 0a 71 75 65 72  414..414....quer
28470 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28480 45 43 54 20 2b 20 2b 20 37 37 20 46 52 4f 4d 20  ECT + + 77 FROM 
28490 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
284a0 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
284b0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
284c0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
284d0 30 35 31 62 66 31 30 63 35 30 65 30 36 31 64 37  051bf10c50e061d7
284e0 34 61 64 30 61 34 64 32 30 35 61 31 63 36 32 32  4ad0a4d205a1c622
284f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
28500 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
28510 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
28520 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 31  owsort label-891
28530 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
28540 41 58 28 20 2b 20 2b 20 34 30 20 29 20 2a 20 2d  AX( + + 40 ) * -
28550 20 36 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   63 FROM tab2..-
28560 2d 2d 2d 0d 0a 2d 32 35 32 30 0d 0a 0d 0a 73 6b  ---..-2520....sk
28570 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
28580 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
28590 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
285a0 65 6c 2d 38 39 31 0d 0a 53 45 4c 45 43 54 20 41  el-891..SELECT A
285b0 4c 4c 20 2b 20 4d 41 58 20 28 20 2b 20 2b 20 34  LL + MAX ( + + 4
285c0 30 20 29 20 2a 20 2d 20 36 33 20 46 52 4f 4d 20  0 ) * - 63 FROM 
285d0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 32  tab2..----..-252
285e0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49 49  0....query IIIII
285f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28600 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
28610 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
28620 20 74 61 62 30 20 41 53 20 63 6f 72 31 20 57 48   tab0 AS cor1 WH
28630 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
28640 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 33 35  WEEN NULL AND 35
28650 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
28660 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
28670 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
28680 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
28690 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 33  owsort label-893
286a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
286b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
286c0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
286d0 2d 20 33 32 20 42 45 54 57 45 45 4e 20 2d 20 63  - 32 BETWEEN - c
286e0 6f 6c 31 20 41 4e 44 20 2d 20 43 41 53 54 28 20  ol1 AND - CAST( 
286f0 2b 20 31 38 20 41 53 20 53 49 47 4e 45 44 20 29  + 18 AS SIGNED )
28700 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 34 0d 0a  ..----..51..14..
28710 39 36 0d 0a 38 35 0d 0a 35 0d 0a 35 39 0d 0a 0d  96..85..5..59...
28720 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
28730 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
28740 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
28750 74 20 6c 61 62 65 6c 2d 38 39 33 0d 0a 53 45 4c  t label-893..SEL
28760 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
28770 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
28780 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 33 32 20   WHERE NOT - 32 
28790 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41  BETWEEN - col1 A
287a0 4e 44 20 2d 20 43 41 53 54 20 28 20 2b 20 31 38  ND - CAST ( + 18
287b0 20 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d   AS INTEGER )..-
287c0 2d 2d 2d 0d 0a 35 31 0d 0a 31 34 0d 0a 39 36 0d  ---..51..14..96.
287d0 0a 38 35 0d 0a 35 0d 0a 35 39 0d 0a 0d 0a 6f 6e  .85..5..59....on
287e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
287f0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
28800 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
28810 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
28820 39 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  94..SELECT DISTI
28830 4e 43 54 20 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c  NCT - col0 / col
28840 32 20 2d 20 2d 20 2d 20 28 20 2d 20 2d 20 31 38  2 - - - ( - - 18
28850 20 29 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20   ) + + col2 * + 
28860 2b 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 39 39 20  + col2 / + + 99 
28870 2f 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  / CAST( NULL AS 
28880 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63 6f 6c  SIGNED ) * + col
28890 32 20 2a 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c  2 * - col1 / col
288a0 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
288b0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
288c0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
288d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
288e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
288f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28900 38 39 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  894..SELECT DIST
28910 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2f 20 63 6f  INCT - col0 / co
28920 6c 32 20 2d 20 2d 20 2d 20 28 20 2d 20 2d 20 31  l2 - - - ( - - 1
28930 38 20 29 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b  8 ) + + col2 * +
28940 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 39 39   + col2 / + + 99
28950 20 2f 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   / CAST ( NULL A
28960 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20  S INTEGER ) * + 
28970 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2f 20  col2 * - col1 / 
28980 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
28990 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
289a0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  ----..NULL....qu
289b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
289c0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
289d0 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
289e0 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2b 20  RE NOT + col2 + 
289f0 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 32 39 20  - col2 * - + 29 
28a00 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  < NULL..----....
28a10 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
28a20 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
28a30 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
28a40 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
28a50 20 38 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   80 IS NOT NULL.
28a60 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
28a70 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28a80 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 2c 20 2b 20  T ALL - col0, + 
28a90 39 20 2b 20 2b 20 34 32 20 2b 20 2b 20 63 6f 6c  9 + + 42 + + col
28aa0 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
28ab0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
28ac0 2d 0d 0a 2d 34 36 0d 0a 37 34 0d 0a 2d 36 34 0d  -..-46..74..-64.
28ad0 0a 39 31 0d 0a 2d 37 35 0d 0a 31 30 39 0d 0a 0d  .91..-75..109...
28ae0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
28af0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
28b00 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
28b10 6f 72 74 20 6c 61 62 65 6c 2d 38 39 38 0d 0a 53  ort label-898..S
28b20 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 41 4c 4c  ELECT + SUM( ALL
28b30 20 34 33 20 29 20 41 53 20 63 6f 6c 31 20 46 52   43 ) AS col1 FR
28b40 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
28b50 0a 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a 0d 0a 73 6b  .----..129....sk
28b60 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
28b70 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
28b80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28b90 65 6c 2d 38 39 38 0d 0a 53 45 4c 45 43 54 20 2b  el-898..SELECT +
28ba0 20 53 55 4d 20 28 20 41 4c 4c 20 34 33 20 29 20   SUM ( ALL 43 ) 
28bb0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
28bc0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
28bd0 0a 31 32 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .129....onlyif m
28be0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
28bf0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
28c00 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
28c10 72 74 20 6c 61 62 65 6c 2d 38 39 39 0d 0a 53 45  rt label-899..SE
28c20 4c 45 43 54 20 37 38 20 44 49 56 20 63 6f 6c 31  LECT 78 DIV col1
28c30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
28c40 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 35 0d  b1..----..1..15.
28c50 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .5....skipif mys
28c60 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
28c70 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
28c80 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 39 0d 0a  sort label-899..
28c90 53 45 4c 45 43 54 20 37 38 20 2f 20 63 6f 6c 31  SELECT 78 / col1
28ca0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
28cb0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 35 0d  b1..----..1..15.
28cc0 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .5....onlyif mys
28cd0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
28ce0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
28cf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
28d00 30 30 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20  00..SELECT MAX( 
28d10 44 49 53 54 49 4e 43 54 20 38 39 20 29 20 41 53  DISTINCT 89 ) AS
28d20 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
28d30 0a 2d 2d 2d 2d 0d 0a 38 39 0d 0a 0d 0a 73 6b 69  .----..89....ski
28d40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
28d50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
28d60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28d70 6c 2d 39 30 30 0d 0a 53 45 4c 45 43 54 20 4d 41  l-900..SELECT MA
28d80 58 20 28 20 44 49 53 54 49 4e 43 54 20 38 39 20  X ( DISTINCT 89 
28d90 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
28da0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 39 0d 0a 0d  ab2..----..89...
28db0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28dc0 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 63  ..SELECT + ( - c
28dd0 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol0 ) FROM tab1 
28de0 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
28df0 45 4e 20 2d 20 63 6f 6c 32 20 41 4e 44 20 2b 20  EN - col2 AND + 
28e00 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  col0..----....on
28e10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
28e20 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
28e30 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
28e40 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
28e50 2d 39 30 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -902..SELECT DIS
28e60 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
28e70 32 20 57 48 45 52 45 20 63 6f 6c 31 20 3c 20 2b  2 WHERE col1 < +
28e80 20 63 6f 6c 30 20 2f 20 2d 20 2b 20 37 38 20 2b   col0 / - + 78 +
28e90 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   - + CAST( NULL 
28ea0 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
28eb0 31 35 20 2f 20 2d 20 43 41 53 54 28 20 4e 55 4c  15 / - CAST( NUL
28ec0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
28ed0 2d 20 63 6f 6c 32 20 2a 20 2d 20 34 32 20 2f 20  - col2 * - 42 / 
28ee0 2b 20 39 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  + 99..----....sk
28ef0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
28f00 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
28f10 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
28f20 61 62 65 6c 2d 39 30 32 0d 0a 53 45 4c 45 43 54  abel-902..SELECT
28f30 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
28f40 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 31   tab2 WHERE col1
28f50 20 3c 20 2b 20 63 6f 6c 30 20 2f 20 2d 20 2b 20   < + col0 / - + 
28f60 37 38 20 2b 20 2d 20 2b 20 43 41 53 54 20 28 20  78 + - + CAST ( 
28f70 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
28f80 29 20 2b 20 2d 20 31 35 20 2f 20 2d 20 43 41 53  ) + - 15 / - CAS
28f90 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
28fa0 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2a  GER ) * - col2 *
28fb0 20 2d 20 34 32 20 2f 20 2b 20 39 39 0d 0a 2d 2d   - 42 / + 99..--
28fc0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
28fd0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
28fe0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
28ff0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29000 30 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  03..SELECT COUNT
29010 28 20 44 49 53 54 49 4e 43 54 20 31 36 20 29 20  ( DISTINCT 16 ) 
29020 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
29030 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b  1..----..1....sk
29040 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
29050 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
29060 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29070 65 6c 2d 39 30 33 0d 0a 53 45 4c 45 43 54 20 43  el-903..SELECT C
29080 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
29090 31 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  16 ) AS col1 FRO
290a0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab1..----..1.
290b0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
290c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
290d0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 63  ROM tab0 WHERE c
290e0 6f 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2b  ol1 * - + col1 +
290f0 20 32 34 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   24 IS NOT NULL.
29100 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
29110 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
29120 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
29130 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
29140 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
29150 53 45 4c 45 43 54 20 2b 20 34 31 20 2a 20 33 32  SELECT + 41 * 32
29160 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
29170 0d 0a 31 33 31 32 0d 0a 31 33 31 32 0d 0a 31 33  ..1312..1312..13
29180 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  12....query I ro
29190 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
291a0 37 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20  7 * - + col0 AS 
291b0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
291c0 2d 2d 2d 2d 0d 0a 33 32 32 0d 0a 34 34 38 0d 0a  ----..322..448..
291d0 35 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  525....onlyif my
291e0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
291f0 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
29200 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
29210 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
29220 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 37 0d 0a  sort label-907..
29230 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
29240 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  + + COUNT( * ) *
29250 20 2d 20 32 35 20 2b 20 43 41 53 54 28 20 4e 55   - 25 + CAST( NU
29260 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
29270 2b 20 2b 20 33 37 20 41 53 20 63 6f 6c 32 20 46  + + 37 AS col2 F
29280 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
29290 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
292a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
292b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
292c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
292d0 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c 45 43 54  abel-907..SELECT
292e0 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 43 4f   DISTINCT + + CO
292f0 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 32 35  UNT ( * ) * - 25
29300 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
29310 53 20 52 45 41 4c 20 29 20 2b 20 2b 20 33 37 20  S REAL ) + + 37 
29320 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
29330 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
29340 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
29350 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29360 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20   - + col1 * + + 
29370 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
29380 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
29390 2d 2d 2d 2d 0d 0a 2d 34 32 35 0d 0a 2d 34 32 37  ----..-425..-427
293a0 37 0d 0a 2d 37 31 34 0d 0a 0d 0a 71 75 65 72 79  7..-714....query
293b0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
293c0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
293d0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
293e0 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2b   col1 * + col2 +
293f0 20 2b 20 39 33 20 2a 20 63 6f 6c 31 20 2b 20 32   + 93 * col1 + 2
29400 37 20 2b 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f  7 + - col2 IS NO
29410 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
29420 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
29430 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
29440 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
29450 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  b7....query I ro
29460 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
29470 2b 20 39 37 20 2b 20 63 6f 6c 30 20 41 53 20 63  + 97 + col0 AS c
29480 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
29490 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32   cor0..----..-22
294a0 0d 0a 2d 33 33 0d 0a 2d 35 31 0d 0a 0d 0a 6f 6e  ..-33..-51....on
294b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
294c0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
294d0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
294e0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
294f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29500 2d 39 31 31 0d 0a 53 45 4c 45 43 54 20 43 41 53  -911..SELECT CAS
29510 54 28 20 38 34 20 41 53 20 53 49 47 4e 45 44 20  T( 84 AS SIGNED 
29520 29 20 2b 20 2d 20 39 30 20 2b 20 2d 20 43 4f 55  ) + - 90 + - COU
29530 4e 54 28 20 2a 20 29 20 2a 20 2d 20 2d 20 43 4f  NT( * ) * - - CO
29540 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55  UNT( * ) + + COU
29550 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
29560 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a 0d 0a  1..----..-12....
29570 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29580 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
29590 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
295a0 61 62 65 6c 2d 39 31 31 0d 0a 53 45 4c 45 43 54  abel-911..SELECT
295b0 20 43 41 53 54 20 28 20 38 34 20 41 53 20 49 4e   CAST ( 84 AS IN
295c0 54 45 47 45 52 20 29 20 2b 20 2d 20 39 30 20 2b  TEGER ) + - 90 +
295d0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
295e0 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   - - COUNT ( * )
295f0 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   + + COUNT ( * )
29600 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
29610 0d 0a 2d 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-12....query I
29620 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29630 20 2d 20 2d 20 35 39 20 46 52 4f 4d 20 74 61 62   - - 59 FROM tab
29640 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
29650 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a  JOIN tab0 cor1..
29660 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
29670 61 73 68 69 6e 67 20 74 6f 20 61 39 62 39 39 36  ashing to a9b996
29680 36 64 37 34 39 64 31 62 32 63 65 35 39 35 35 65  6d749d1b2ce5955e
29690 64 31 32 33 39 34 66 39 62 63 0d 0a 0d 0a 6f 6e  d12394f9bc....on
296a0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
296b0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
296c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
296d0 20 6c 61 62 65 6c 2d 39 31 33 0d 0a 53 45 4c 45   label-913..SELE
296e0 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
296f0 2a 20 29 20 2b 20 2b 20 28 20 43 4f 55 4e 54 28  * ) + + ( COUNT(
29700 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46   * ) ) AS col2 F
29710 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
29720 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
29730 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
29740 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
29750 6f 72 74 20 6c 61 62 65 6c 2d 39 31 33 0d 0a 53  ort label-913..S
29760 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
29770 54 20 28 20 2a 20 29 20 2b 20 2b 20 28 20 43 4f  T ( * ) + + ( CO
29780 55 4e 54 20 28 20 2a 20 29 20 29 20 41 53 20 63  UNT ( * ) ) AS c
29790 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
297a0 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20  ---..6....query 
297b0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
297c0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
297d0 57 48 45 52 45 20 28 20 2b 20 37 38 20 29 20 49  WHERE ( + 78 ) I
297e0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
297f0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
29800 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
29810 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
29820 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  fb43b7....onlyif
29830 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
29840 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
29850 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
29860 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 35 0d 0a  sort label-915..
29870 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
29880 2b 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 43 41 53  + - + col0 * CAS
29890 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
298a0 44 20 29 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  D ) + + col0 AS 
298b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
298c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
298d0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
298e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
298f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
29900 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
29910 62 65 6c 2d 39 31 35 0d 0a 53 45 4c 45 43 54 20  bel-915..SELECT 
29920 41 4c 4c 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63  ALL col1 + - + c
29930 6f 6c 30 20 2a 20 43 41 53 54 20 28 20 4e 55 4c  ol0 * CAST ( NUL
29940 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
29950 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
29960 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
29970 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
29980 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
29990 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
299a0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
299b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
299c0 65 6c 2d 39 31 36 0d 0a 53 45 4c 45 43 54 20 41  el-916..SELECT A
299d0 4c 4c 20 2d 20 2d 20 39 33 20 2d 20 2b 20 2b 20  LL - - 93 - + + 
299e0 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
299f0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
29a00 2d 2d 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..90....skipif
29a10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
29a20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
29a30 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29a40 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  16..SELECT ALL -
29a50 20 2d 20 39 33 20 2d 20 2b 20 2b 20 43 4f 55 4e   - 93 - + + COUN
29a60 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
29a70 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
29a80 0a 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .90....onlyif my
29a90 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
29aa0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
29ab0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
29ac0 6f 72 74 20 6c 61 62 65 6c 2d 39 31 37 0d 0a 53  ort label-917..S
29ad0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
29ae0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
29af0 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( - CAST( NULL A
29b00 53 20 53 49 47 4e 45 44 20 29 20 29 20 49 53 20  S SIGNED ) ) IS 
29b10 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
29b20 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
29b30 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
29b40 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
29b50 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
29b60 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
29b70 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
29b80 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 37 0d 0a  sort label-917..
29b90 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
29ba0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
29bb0 20 28 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( - CAST ( NULL
29bc0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
29bd0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
29be0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
29bf0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
29c00 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
29c10 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  3b7....query I r
29c20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
29c30 4c 4c 20 2d 20 2b 20 39 39 20 2d 20 2b 20 28 20  LL - + 99 - + ( 
29c40 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  - + col0 ) AS co
29c50 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
29c60 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 0d 0a 2d 33  0..----..-24..-3
29c70 35 0d 0a 2d 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  5..-53....onlyif
29c80 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
29c90 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
29ca0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
29cb0 65 6c 2d 39 31 39 0d 0a 53 45 4c 45 43 54 20 44  el-919..SELECT D
29cc0 49 53 54 49 4e 43 54 20 28 20 2d 20 53 55 4d 28  ISTINCT ( - SUM(
29cd0 20 63 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74   col0 ) ) FROM t
29ce0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
29cf0 2d 0d 0a 2d 32 32 37 0d 0a 0d 0a 73 6b 69 70 69  -..-227....skipi
29d00 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
29d10 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
29d20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29d30 39 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  919..SELECT DIST
29d40 49 4e 43 54 20 28 20 2d 20 53 55 4d 20 28 20 63  INCT ( - SUM ( c
29d50 6f 6c 30 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol0 ) ) FROM tab
29d60 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
29d70 0a 2d 32 32 37 0d 0a 0d 0a 71 75 65 72 79 20 49  .-227....query I
29d80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29d90 20 41 4c 4c 20 31 36 20 2d 20 2b 20 63 6f 6c 30   ALL 16 - + col0
29da0 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 35 38   + + col0 * + 58
29db0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
29dc0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 32 33 0d 0a  r0..----..2923..
29dd0 34 38 36 31 0d 0a 35 32 30 33 0d 0a 0d 0a 71 75  4861..5203....qu
29de0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
29df0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
29e00 32 20 41 53 20 63 6f 6c 30 2c 20 2d 20 28 20 2b  2 AS col0, - ( +
29e10 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20   - ( - - col2 ) 
29e20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
29e30 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
29e40 2d 0d 0a 31 30 0d 0a 31 30 0d 0a 34 37 0d 0a 34  -..10..10..47..4
29e50 37 0d 0a 39 39 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c  7..99..99....onl
29e60 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
29e70 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
29e80 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
29e90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32  rowsort label-92
29ea0 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
29eb0 43 54 20 63 6f 6c 31 20 44 49 56 20 2b 20 28 20  CT col1 DIV + ( 
29ec0 37 37 20 29 20 2d 20 2b 20 32 36 20 2b 20 63 6f  77 ) - + 26 + co
29ed0 6c 32 20 2d 20 31 38 20 2d 20 2b 20 31 37 20 46  l2 - 18 - + 17 F
29ee0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
29ef0 2d 2d 2d 0d 0a 2d 32 0d 0a 33 35 0d 0a 37 0d 0a  ---..-2..35..7..
29f00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
29f10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
29f20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29f30 20 6c 61 62 65 6c 2d 39 32 32 0d 0a 53 45 4c 45   label-922..SELE
29f40 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
29f50 20 2f 20 2b 20 28 20 37 37 20 29 20 2d 20 2b 20   / + ( 77 ) - + 
29f60 32 36 20 2b 20 63 6f 6c 32 20 2d 20 31 38 20 2d  26 + col2 - 18 -
29f70 20 2b 20 31 37 20 46 52 4f 4d 20 74 61 62 31 20   + 17 FROM tab1 
29f80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a  cor0..----..-2..
29f90 33 35 0d 0a 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  35..7....onlyif 
29fa0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
29fb0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
29fc0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29fd0 6c 2d 39 32 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-923..SELECT DI
29fe0 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2b 20  STINCT COUNT( + 
29ff0 2d 20 31 33 20 29 20 46 52 4f 4d 20 74 61 62 32  - 13 ) FROM tab2
2a000 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2a010 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
2a020 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2a030 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2a040 6f 72 74 20 6c 61 62 65 6c 2d 39 32 33 0d 0a 53  ort label-923..S
2a050 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
2a060 4f 55 4e 54 20 28 20 2b 20 2d 20 31 33 20 29 20  OUNT ( + - 13 ) 
2a070 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2a080 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e  0..----..3....on
2a090 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2a0a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2a0b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a0c0 20 6c 61 62 65 6c 2d 39 32 34 0d 0a 53 45 4c 45   label-924..SELE
2a0d0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
2a0e0 39 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  95 AS col1 FROM 
2a0f0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 35 0d  tab1..----..285.
2a100 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2a110 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2a120 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a130 74 20 6c 61 62 65 6c 2d 39 32 34 0d 0a 53 45 4c  t label-924..SEL
2a140 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ECT COUNT ( * ) 
2a150 2a 20 39 35 20 41 53 20 63 6f 6c 31 20 46 52 4f  * 95 AS col1 FRO
2a160 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38  M tab1..----..28
2a170 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
2a180 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
2a190 6c 32 2c 20 2b 20 38 33 20 46 52 4f 4d 20 74 61  l2, + 83 FROM ta
2a1a0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 38 33  b0..----..10..83
2a1b0 0d 0a 34 37 0d 0a 38 33 0d 0a 39 39 0d 0a 38 33  ..47..83..99..83
2a1c0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
2a1d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2a1e0 20 63 6f 6c 32 2c 20 2b 20 35 33 20 46 52 4f 4d   col2, + 53 FROM
2a1f0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   tab1..----..59.
2a200 0a 35 33 0d 0a 36 38 0d 0a 35 33 0d 0a 39 36 0d  .53..68..53..96.
2a210 0a 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .53....onlyif my
2a220 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2a230 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2a240 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a250 39 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  927..SELECT ALL 
2a260 2b 20 4d 41 58 28 20 39 39 20 29 20 2a 20 2b 20  + MAX( 99 ) * + 
2a270 2d 20 39 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 96 AS col2 FRO
2a280 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab2..----..-9
2a290 35 30 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  504....skipif my
2a2a0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2a2b0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2a2c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 37 0d  wsort label-927.
2a2d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 41  .SELECT ALL + MA
2a2e0 58 20 28 20 39 39 20 29 20 2a 20 2b 20 2d 20 39  X ( 99 ) * + - 9
2a2f0 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  6 AS col2 FROM t
2a300 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 35 30 34  ab2..----..-9504
2a310 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a320 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2a330 49 4e 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74  INCT col2 FROM t
2a340 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
2a350 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 2f 20 2d 20  col2 * col2 / - 
2a360 2d 20 63 6f 6c 31 20 2a 20 2b 20 32 33 20 49 53  - col1 * + 23 IS
2a370 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2a380 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2a390 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2a3a0 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2a3b0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2a3c0 61 62 65 6c 2d 39 32 39 0d 0a 53 45 4c 45 43 54  abel-929..SELECT
2a3d0 20 37 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63   7 * - col0 AS c
2a3e0 6f 6c 31 2c 20 31 33 20 44 49 56 20 34 39 20 41  ol1, 13 DIV 49 A
2a3f0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
2a400 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 32 0d 0a 30 0d  ..----..-322..0.
2a410 0a 2d 34 34 38 0d 0a 30 0d 0a 2d 35 32 35 0d 0a  .-448..0..-525..
2a420 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2a430 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2a440 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
2a450 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 39 0d 0a  sort label-929..
2a460 53 45 4c 45 43 54 20 37 20 2a 20 2d 20 63 6f 6c  SELECT 7 * - col
2a470 30 20 41 53 20 63 6f 6c 31 2c 20 31 33 20 2f 20  0 AS col1, 13 / 
2a480 34 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  49 AS col0 FROM 
2a490 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 32  tab2..----..-322
2a4a0 0d 0a 30 0d 0a 2d 34 34 38 0d 0a 30 0d 0a 2d 35  ..0..-448..0..-5
2a4b0 32 35 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  25..0....onlyif 
2a4c0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2a4d0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2a4e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2a4f0 6c 2d 39 33 30 0d 0a 53 45 4c 45 43 54 20 44 49  l-930..SELECT DI
2a500 53 54 49 4e 43 54 20 4d 49 4e 28 20 44 49 53 54  STINCT MIN( DIST
2a510 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 41 53  INCT - col1 ) AS
2a520 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
2a530 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b  .----..-81....sk
2a540 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2a550 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2a560 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a570 65 6c 2d 39 33 30 0d 0a 53 45 4c 45 43 54 20 44  el-930..SELECT D
2a580 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 44 49  ISTINCT MIN ( DI
2a590 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20  STINCT - col1 ) 
2a5a0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2a5b0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a  0..----..-81....
2a5c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2a5d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2a5e0 20 34 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48   40 FROM tab2 WH
2a5f0 45 52 45 20 4e 4f 54 20 2d 20 35 39 20 3c 3d 20  ERE NOT - 59 <= 
2a600 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 34 30  - col1..----..40
2a610 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a620 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2a630 35 37 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  57 - + col0 + + 
2a640 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  + col2 AS col0 F
2a650 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
2a660 55 4c 4c 20 49 4e 20 28 20 2b 20 63 6f 6c 32 2c  ULL IN ( + col2,
2a670 20 2d 20 31 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   - 14 )..----...
2a680 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2a690 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2a6a0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
2a6b0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 33 0d 0a  sort label-933..
2a6c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2a6d0 2d 20 39 39 20 41 53 20 63 6f 6c 31 2c 20 2d 20  - 99 AS col1, - 
2a6e0 43 4f 55 4e 54 28 20 28 20 2b 20 39 31 20 29 20  COUNT( ( + 91 ) 
2a6f0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
2a700 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a  ab2..----..-99..
2a710 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
2a720 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2a730 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
2a740 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 33 0d  wsort label-933.
2a750 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2a760 20 2d 20 39 39 20 41 53 20 63 6f 6c 31 2c 20 2d   - 99 AS col1, -
2a770 20 43 4f 55 4e 54 20 28 20 28 20 2b 20 39 31 20   COUNT ( ( + 91 
2a780 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ) ) AS col0 FROM
2a790 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39   tab2..----..-99
2a7a0 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..-3....skipif p
2a7b0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2a7c0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2a7d0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2a7e0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2a7f0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2a800 74 0d 0a 53 45 4c 45 43 54 20 35 39 20 63 6f 6c  t..SELECT 59 col
2a810 31 2c 20 37 20 46 52 4f 4d 20 74 61 62 32 20 41  1, 7 FROM tab2 A
2a820 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39  S cor0..----..59
2a830 0d 0a 37 0d 0a 35 39 0d 0a 37 0d 0a 35 39 0d 0a  ..7..59..7..59..
2a840 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  7....query II ro
2a850 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 37  wsort..SELECT 67
2a860 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46   AS col2, col0 F
2a870 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2a880 0d 0a 2d 2d 2d 2d 0d 0a 36 37 0d 0a 34 36 0d 0a  ..----..67..46..
2a890 36 37 0d 0a 36 34 0d 0a 36 37 0d 0a 37 35 0d 0a  67..64..67..75..
2a8a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a8b0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
2a8c0 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
2a8d0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
2a8e0 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53  HERE ( NULL ) IS
2a8f0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2a900 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2a910 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2a920 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2a930 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 37 0d  wsort label-937.
2a940 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 44 49 53  .SELECT MAX( DIS
2a950 54 49 4e 43 54 20 63 6f 6c 32 20 29 20 46 52 4f  TINCT col2 ) FRO
2a960 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2a970 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70  ----..96....skip
2a980 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a990 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a9a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a9b0 2d 39 33 37 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -937..SELECT MAX
2a9c0 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32   ( DISTINCT col2
2a9d0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
2a9e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a  cor0..----..96..
2a9f0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2aa00 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2aa10 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2aa20 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 38 0d 0a  sort label-938..
2aa30 53 45 4c 45 43 54 20 28 20 2d 20 43 4f 55 4e 54  SELECT ( - COUNT
2aa40 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 29 20 41  ( + + col1 ) ) A
2aa50 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
2aa60 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
2aa70 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2aa80 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2aa90 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2aaa0 65 6c 2d 39 33 38 0d 0a 53 45 4c 45 43 54 20 28  el-938..SELECT (
2aab0 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20 63   - COUNT ( + + c
2aac0 6f 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol1 ) ) AS col2 
2aad0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2aae0 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-3....onlyif my
2aaf0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2ab00 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
2ab10 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2ab20 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2ab30 6f 72 74 20 6c 61 62 65 6c 2d 39 33 39 0d 0a 53  ort label-939..S
2ab40 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  ELECT COUNT( * )
2ab50 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   * + CAST( NULL 
2ab60 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63  AS SIGNED ) AS c
2ab70 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
2ab80 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
2ab90 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2aba0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2abb0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2abc0 6c 2d 39 33 39 0d 0a 53 45 4c 45 43 54 20 43 4f  l-939..SELECT CO
2abd0 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 43 41  UNT ( * ) * + CA
2abe0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2abf0 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46  EGER ) AS col2 F
2ac00 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2ac10 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
2ac20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2ac30 2d 20 34 37 20 46 52 4f 4d 20 74 61 62 31 20 41  - 47 FROM tab1 A
2ac40 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
2ac50 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a  N tab2 AS cor1..
2ac60 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2ac70 61 73 68 69 6e 67 20 74 6f 20 36 39 34 32 61 30  ashing to 6942a0
2ac80 64 39 35 35 38 32 37 37 61 66 64 30 64 30 30 34  d9558277afd0d004
2ac90 30 38 64 36 35 63 66 35 61 61 0d 0a 0d 0a 71 75  08d65cf5aa....qu
2aca0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2acb0 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 41 53 20  ELECT + col1 AS 
2acc0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
2acd0 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20  HERE NOT + col2 
2ace0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  IS NULL..----..1
2acf0 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 71 75 65 72  4..47..5....quer
2ad00 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2ad10 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32  ECT ALL + - col2
2ad20 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2ad30 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
2ad40 32 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 31  2 * + col1 * + 1
2ad50 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
2ad60 0a 2d 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a  .-23..-40..-58..
2ad70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ad80 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
2ad90 20 2a 20 2d 20 37 20 41 53 20 63 6f 6c 30 20 46   * - 7 AS col0 F
2ada0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2adb0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a 36 30 39  ..----..105..609
2adc0 0d 0a 36 37 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..679....query I
2add0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2ade0 20 44 49 53 54 49 4e 43 54 20 2d 20 34 38 20 2a   DISTINCT - 48 *
2adf0 20 2b 20 37 30 20 2a 20 2d 20 2d 20 35 33 20 2a   + 70 * - - 53 *
2ae00 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   - col1 FROM tab
2ae10 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2ae20 0a 31 34 34 32 34 34 38 30 0d 0a 31 37 38 30 38  .14424480..17808
2ae30 30 0d 0a 33 37 33 39 36 38 30 0d 0a 0d 0a 71 75  0..3739680....qu
2ae40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2ae50 45 4c 45 43 54 20 2d 20 28 20 2b 20 2d 20 32 33  ELECT - ( + - 23
2ae60 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2ae70 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
2ae80 0a 32 33 0d 0a 32 33 0d 0a 32 33 0d 0a 0d 0a 71  .23..23..23....q
2ae90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2aea0 53 45 4c 45 43 54 20 2d 20 2b 20 38 33 20 41 53  SELECT - + 83 AS
2aeb0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2aec0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d  cor0..----..-83.
2aed0 0a 2d 38 33 0d 0a 2d 38 33 0d 0a 0d 0a 71 75 65  .-83..-83....que
2aee0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2aef0 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2b 20  LECT - - col2 + 
2af00 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + + col0 FROM ta
2af10 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2af20 0d 0a 31 39 36 0d 0a 36 32 0d 0a 39 37 0d 0a 0d  ..196..62..97...
2af30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2af40 0d 0a 53 45 4c 45 43 54 20 2d 20 31 37 20 2b 20  ..SELECT - 17 + 
2af50 2d 20 35 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 54 FROM tab1..
2af60 2d 2d 2d 2d 0d 0a 2d 37 31 0d 0a 2d 37 31 0d 0a  ----..-71..-71..
2af70 2d 37 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -71....query I r
2af80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2af90 4c 4c 20 35 20 2b 20 2d 20 39 30 20 2d 20 2d 20  LL 5 + - 90 - - 
2afa0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
2afb0 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 2d 36 34 0d 0a 2d  ----..-4..-64..-
2afc0 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  84....query III 
2afd0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2afe0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
2aff0 74 61 62 31 20 57 48 45 52 45 20 28 20 2b 20 2d  tab1 WHERE ( + -
2b000 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20 2a 20   ( - + col1 ) * 
2b010 2b 20 35 20 29 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d  + 5 ) >= NULL..-
2b020 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
2b030 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2b040 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
2b050 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2b060 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2b070 6f 72 74 20 6c 61 62 65 6c 2d 39 35 31 0d 0a 53  ort label-951..S
2b080 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2b090 20 37 35 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29   75 + COUNT( * )
2b0a0 20 2b 20 2d 20 28 20 2b 20 43 41 53 54 28 20 4e   + - ( + CAST( N
2b0b0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2b0c0 29 20 2a 20 2b 20 2d 20 37 38 20 41 53 20 63 6f  ) * + - 78 AS co
2b0d0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
2b0e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
2b0f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b100 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b110 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b120 2d 39 35 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -951..SELECT DIS
2b130 54 49 4e 43 54 20 2d 20 37 35 20 2b 20 43 4f 55  TINCT - 75 + COU
2b140 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 28 20 2b  NT ( * ) + - ( +
2b150 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2b160 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2b 20  INTEGER ) ) * + 
2b170 2d 20 37 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  - 78 AS col0 FRO
2b180 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
2b190 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
2b1a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2b1b0 53 54 49 4e 43 54 20 2d 20 31 36 20 2a 20 2b 20  STINCT - 16 * + 
2b1c0 2d 20 37 30 20 2a 20 63 6f 6c 31 20 2b 20 2b 20  - 70 * col1 + + 
2b1d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2b1e0 2d 2d 2d 2d 0d 0a 35 37 31 36 36 0d 0a 37 35 31  ----..57166..751
2b1f0 31 35 0d 0a 38 36 33 30 34 0d 0a 0d 0a 71 75 65  15..86304....que
2b200 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b210 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 28 20  LECT + col2 + ( 
2b220 2d 20 2b 20 32 36 20 29 20 41 53 20 63 6f 6c 32  - + 26 ) AS col2
2b230 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2b240 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c   + - col1 IS NUL
2b250 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
2b260 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2b270 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20  CT ALL - col1 * 
2b280 2b 20 34 33 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  + 43 + col0 * - 
2b290 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
2b2a0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2b2b0 2d 2d 2d 2d 0d 0a 2d 34 35 33 39 0d 0a 2d 37 39  ----..-4539..-79
2b2c0 30 36 0d 0a 2d 38 32 33 39 0d 0a 0d 0a 6f 6e 6c  06..-8239....onl
2b2d0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2b2e0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2b2f0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2b300 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2b310 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
2b320 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 43 41  CT - col2 - - CA
2b330 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2b340 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ED ) AS col1 FRO
2b350 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2b360 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
2b370 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2b380 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2b390 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2b3a0 65 6c 2d 39 35 35 0d 0a 53 45 4c 45 43 54 20 44  el-955..SELECT D
2b3b0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2d  ISTINCT - col2 -
2b3c0 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
2b3d0 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
2b3e0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
2b3f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
2b400 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
2b410 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2b420 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2b430 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b440 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45 43  label-956..SELEC
2b450 54 20 41 4c 4c 20 28 20 41 56 47 20 28 20 44 49  T ALL ( AVG ( DI
2b460 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20  STINCT + - col1 
2b470 29 20 29 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  ) ) + + CAST( NU
2b480 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 63  LL AS SIGNED ) c
2b490 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
2b4a0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
2b4b0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2b4c0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2b4d0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2b4e0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
2b4f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
2b500 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
2b510 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
2b520 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
2b530 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b540 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45 43  label-956..SELEC
2b550 54 20 41 4c 4c 20 28 20 41 56 47 20 28 20 44 49  T ALL ( AVG ( DI
2b560 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20  STINCT + - col1 
2b570 29 20 29 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  ) ) + + CAST ( N
2b580 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2b590 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
2b5a0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
2b5b0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2b5c0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
2b5d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b5e0 54 20 41 4c 4c 20 31 30 20 2b 20 2b 20 63 6f 6c  T ALL 10 + + col
2b5f0 31 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  1 * col2 AS col0
2b600 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2b610 0d 0a 31 31 38 33 0d 0a 33 30 39 30 0d 0a 33 38  ..1183..3090..38
2b620 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  96....skipif pos
2b630 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2b640 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2b650 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2b660 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2b670 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2b680 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
2b690 6c 30 20 2b 20 39 30 20 63 6f 6c 30 2c 20 2b 20  l0 + 90 col0, + 
2b6a0 37 37 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63  77 + + col0 AS c
2b6b0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
2b6c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 36   cor0..----..136
2b6d0 0d 0a 31 32 33 0d 0a 31 35 34 0d 0a 31 34 31 0d  ..123..154..141.
2b6e0 0a 31 36 35 0d 0a 31 35 32 0d 0a 0d 0a 71 75 65  .165..152....que
2b6f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b700 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
2b710 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 20  col2 * + + col2 
2b720 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2b730 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2b740 0a 33 34 38 31 0d 0a 34 36 32 34 0d 0a 39 32 31  .3481..4624..921
2b750 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
2b760 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2b770 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2b780 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2b790 6c 61 62 65 6c 2d 39 36 30 0d 0a 53 45 4c 45 43  label-960..SELEC
2b7a0 54 20 41 4c 4c 20 2d 20 2b 20 37 35 20 2a 20 2d  T ALL - + 75 * -
2b7b0 20 34 39 20 2a 20 2d 20 35 33 20 2b 20 63 6f 6c   49 * - 53 + col
2b7c0 31 20 44 49 56 20 2d 20 28 20 39 30 20 29 20 41  1 DIV - ( 90 ) A
2b7d0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2b7e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2b7f0 2d 31 39 34 37 37 35 0d 0a 2d 31 39 34 37 37 35  -194775..-194775
2b800 0d 0a 2d 31 39 34 37 37 35 0d 0a 0d 0a 73 6b 69  ..-194775....ski
2b810 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2b820 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2b830 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2b840 6c 2d 39 36 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-960..SELECT AL
2b850 4c 20 2d 20 2b 20 37 35 20 2a 20 2d 20 34 39 20  L - + 75 * - 49 
2b860 2a 20 2d 20 35 33 20 2b 20 63 6f 6c 31 20 2f 20  * - 53 + col1 / 
2b870 2d 20 28 20 39 30 20 29 20 41 53 20 63 6f 6c 31  - ( 90 ) AS col1
2b880 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2b890 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 34 37 37  r0..----..-19477
2b8a0 35 0d 0a 2d 31 39 34 37 37 35 0d 0a 2d 31 39 34  5..-194775..-194
2b8b0 37 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  775....onlyif my
2b8c0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2b8d0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2b8e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b8f0 74 20 6c 61 62 65 6c 2d 39 36 31 0d 0a 53 45 4c  t label-961..SEL
2b900 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c  ECT - col2 * col
2b910 32 20 2a 20 34 30 20 2b 20 2b 20 32 38 20 2b 20  2 * 40 + + 28 + 
2b920 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c  - col2 * + + col
2b930 30 20 2b 20 2d 20 32 34 20 2a 20 2b 20 2b 20 43  0 + - 24 * + + C
2b940 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2b950 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20  NED ) FROM tab2 
2b960 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
2b970 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
2b980 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2b990 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2b9a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2b9b0 74 20 6c 61 62 65 6c 2d 39 36 31 0d 0a 53 45 4c  t label-961..SEL
2b9c0 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c  ECT - col2 * col
2b9d0 32 20 2a 20 34 30 20 2b 20 2b 20 32 38 20 2b 20  2 * 40 + + 28 + 
2b9e0 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c  - col2 * + + col
2b9f0 30 20 2b 20 2d 20 32 34 20 2a 20 2b 20 2b 20 43  0 + - 24 * + + C
2ba00 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
2ba10 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
2ba20 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2ba30 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
2ba40 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
2ba50 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2ba60 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2ba70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36  rowsort label-96
2ba80 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  2..SELECT COUNT(
2ba90 20 41 4c 4c 20 2d 20 34 39 20 29 20 46 52 4f 4d   ALL - 49 ) FROM
2baa0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2bab0 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
2bac0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2bad0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2bae0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2baf0 36 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  62..SELECT COUNT
2bb00 20 28 20 41 4c 4c 20 2d 20 34 39 20 29 20 46 52   ( ALL - 49 ) FR
2bb10 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2bb20 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
2bb30 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2bb40 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63  ECT - col0 * - c
2bb50 6f 6c 30 20 2a 20 2d 20 2d 20 35 38 20 46 52 4f  ol0 * - - 58 FRO
2bb60 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2bb70 2d 0d 0a 31 35 30 38 35 38 0d 0a 34 31 39 30 35  -..150858..41905
2bb80 30 0d 0a 34 38 30 32 39 38 0d 0a 0d 0a 71 75 65  0..480298....que
2bb90 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2bba0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2bbb0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2bbc0 20 4e 4f 54 20 34 35 20 2a 20 2b 20 2d 20 36 35   NOT 45 * + - 65
2bbd0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2bbe0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
2bbf0 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
2bc00 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
2bc10 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  43b7....onlyif m
2bc20 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2bc30 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2bc40 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2bc50 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2bc60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2bc70 65 6c 2d 39 36 35 0d 0a 53 45 4c 45 43 54 20 41  el-965..SELECT A
2bc80 4c 4c 20 43 41 53 54 28 20 35 20 41 53 20 53 49  LL CAST( 5 AS SI
2bc90 47 4e 45 44 20 29 20 44 49 56 20 2d 20 38 36 20  GNED ) DIV - 86 
2bca0 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * - col2 FROM ta
2bcb0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  b0..----..0..0..
2bcc0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2bcd0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2bce0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2bcf0 6f 72 74 20 6c 61 62 65 6c 2d 39 36 35 0d 0a 53  ort label-965..S
2bd00 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28  ELECT ALL CAST (
2bd10 20 35 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   5 AS INTEGER ) 
2bd20 2f 20 2d 20 38 36 20 2a 20 2d 20 63 6f 6c 32 20  / - 86 * - col2 
2bd30 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2bd40 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .0..0..0....only
2bd50 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2bd60 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2bd70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2bd80 61 62 65 6c 2d 39 36 36 0d 0a 53 45 4c 45 43 54  abel-966..SELECT
2bd90 20 41 4c 4c 20 28 20 2d 20 2b 20 43 4f 55 4e 54   ALL ( - + COUNT
2bda0 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
2bdb0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  1..----..-3....s
2bdc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2bdd0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2bde0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2bdf0 62 65 6c 2d 39 36 36 0d 0a 53 45 4c 45 43 54 20  bel-966..SELECT 
2be00 41 4c 4c 20 28 20 2d 20 2b 20 43 4f 55 4e 54 20  ALL ( - + COUNT 
2be10 28 20 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ( * ) ) FROM tab
2be20 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f  1..----..-3....o
2be30 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2be40 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2be50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2be60 74 20 6c 61 62 65 6c 2d 39 36 37 0d 0a 53 45 4c  t label-967..SEL
2be70 45 43 54 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b  ECT - MAX( ALL +
2be80 20 32 33 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   23 ) FROM tab1.
2be90 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b  .----..-23....sk
2bea0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2beb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2bec0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2bed0 65 6c 2d 39 36 37 0d 0a 53 45 4c 45 43 54 20 2d  el-967..SELECT -
2bee0 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 32 33 20   MAX ( ALL + 23 
2bef0 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
2bf00 2d 0d 0a 2d 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..-23....onlyif
2bf10 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2bf20 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2bf30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2bf40 65 6c 2d 39 36 38 0d 0a 53 45 4c 45 43 54 20 2d  el-968..SELECT -
2bf50 20 53 55 4d 28 20 2b 20 28 20 28 20 63 6f 6c 32   SUM( + ( ( col2
2bf60 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31   ) ) ) FROM tab1
2bf70 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33 0d 0a 0d 0a  ..----..-223....
2bf80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2bf90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2bfa0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2bfb0 61 62 65 6c 2d 39 36 38 0d 0a 53 45 4c 45 43 54  abel-968..SELECT
2bfc0 20 2d 20 53 55 4d 20 28 20 2b 20 28 20 28 20 63   - SUM ( + ( ( c
2bfd0 6f 6c 32 20 29 20 29 20 29 20 46 52 4f 4d 20 74  ol2 ) ) ) FROM t
2bfe0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33 0d  ab1..----..-223.
2bff0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c000 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2c010 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2c020 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c030 62 65 6c 2d 39 36 39 0d 0a 53 45 4c 45 43 54 20  bel-969..SELECT 
2c040 63 6f 6c 30 20 44 49 56 20 28 20 2d 20 2d 20 35  col0 DIV ( - - 5
2c050 31 20 29 20 44 49 56 20 2b 20 63 6f 6c 31 20 41  1 ) DIV + col1 A
2c060 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
2c070 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2c080 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  0..0..1....skipi
2c090 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2c0a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2c0b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2c0c0 39 36 39 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  969..SELECT col0
2c0d0 20 2f 20 28 20 2d 20 2d 20 35 31 20 29 20 2f 20   / ( - - 51 ) / 
2c0e0 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  + col1 AS col1 F
2c0f0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c100 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d  ..----..0..0..1.
2c110 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
2c120 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
2c130 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
2c140 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
2c150 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
2c160 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2c170 4c 45 43 54 20 2d 20 38 35 20 63 6f 6c 32 2c 20  LECT - 85 col2, 
2c180 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  + col1 FROM tab2
2c190 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2c1a0 2d 38 35 0d 0a 35 31 0d 0a 2d 38 35 0d 0a 36 37  -85..51..-85..67
2c1b0 0d 0a 2d 38 35 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c  ..-85..77....onl
2c1c0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2c1d0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2c1e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2c1f0 6c 61 62 65 6c 2d 39 37 31 0d 0a 53 45 4c 45 43  label-971..SELEC
2c200 54 20 2b 20 4d 49 4e 28 20 36 36 20 29 20 46 52  T + MIN( 66 ) FR
2c210 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2c220 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73 6b 69  .----..66....ski
2c230 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2c240 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2c250 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c260 6c 2d 39 37 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-971..SELECT + 
2c270 4d 49 4e 20 28 20 36 36 20 29 20 46 52 4f 4d 20  MIN ( 66 ) FROM 
2c280 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2c290 2d 2d 0d 0a 36 36 0d 0a 0d 0a 71 75 65 72 79 20  --..66....query 
2c2a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2c2b0 54 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  T + + col0 FROM 
2c2c0 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab0 WHERE NOT +
2c2d0 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 49   col0 + + col2 I
2c2e0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2c2f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2c300 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2c310 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2c320 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 33  owsort label-973
2c330 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33  ..SELECT ALL + 3
2c340 34 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  4 + COUNT( * ) F
2c350 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c360 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
2c370 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
2c380 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  43....skipif mys
2c390 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2c3a0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2c3b0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 33 0d 0a  sort label-973..
2c3c0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 34 20  SELECT ALL + 34 
2c3d0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
2c3e0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2c3f0 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
2c400 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 34  AS cor1..----..4
2c410 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
2c420 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2c430 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2c440 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2c450 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2c460 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c470 45 4c 45 43 54 20 38 33 20 2a 20 63 6f 6c 30 20  ELECT 83 * col0 
2c480 2a 20 2d 20 28 20 2b 20 39 30 20 29 20 63 6f 6c  * - ( + 90 ) col
2c490 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
2c4a0 2d 0d 0a 2d 31 31 32 30 35 30 0d 0a 2d 36 34 39  -..-112050..-649
2c4b0 38 39 30 0d 0a 2d 37 32 34 35 39 30 0d 0a 0d 0a  890..-724590....
2c4c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2c4d0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 63 6f  .SELECT ALL ( co
2c4e0 6c 31 20 29 20 2b 20 2b 20 63 6f 6c 31 20 41 53  l1 ) + + col1 AS
2c4f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
2c500 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a 32 0d 0a 34  .----..162..2..4
2c510 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  2....query II ro
2c520 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
2c530 6c 31 20 2a 20 2b 20 28 20 63 6f 6c 31 20 29 20  l1 * + ( col1 ) 
2c540 2a 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63  * - + col1 + - c
2c550 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 63  ol2 * - col1 + c
2c560 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c  ol2 AS col1, col
2c570 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
2c580 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 35  ab1..----..-1005
2c590 35 39 0d 0a 36 38 0d 0a 2d 31 33 30 34 0d 0a 39  59..68..-1304..9
2c5a0 36 0d 0a 32 32 39 0d 0a 35 39 0d 0a 0d 0a 71 75  6..229..59....qu
2c5b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2c5c0 45 4c 45 43 54 20 2b 20 2d 20 32 30 20 2b 20 2d  ELECT + - 20 + -
2c5d0 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   + col2 AS col1 
2c5e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2c5f0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 0d 0a 2d 36  0..----..-43..-6
2c600 30 0d 0a 2d 37 38 0d 0a 0d 0a 71 75 65 72 79 20  0..-78....query 
2c610 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2c620 54 20 44 49 53 54 49 4e 43 54 20 2d 20 35 31 20  T DISTINCT - 51 
2c630 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2c640 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  0 cor0..----..-5
2c650 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
2c660 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2c670 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2c680 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37  rowsort label-97
2c690 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 4d 41  9..SELECT - + MA
2c6a0 58 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20  X( ALL + - col1 
2c6b0 29 20 2b 20 31 20 46 52 4f 4d 20 74 61 62 32 20  ) + 1 FROM tab2 
2c6c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
2c6d0 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
2c6e0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2c6f0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2c700 6f 72 74 20 6c 61 62 65 6c 2d 39 37 39 0d 0a 53  ort label-979..S
2c710 45 4c 45 43 54 20 2d 20 2b 20 4d 41 58 20 28 20  ELECT - + MAX ( 
2c720 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 29 20 2b  ALL + - col1 ) +
2c730 20 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   1 FROM tab2 AS 
2c740 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a  cor0..----..52..
2c750 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c760 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2c770 43 54 20 63 6f 6c 30 20 2a 20 31 37 20 2a 20 2d  CT col0 * 17 * -
2c780 20 38 35 20 46 52 4f 4d 20 74 61 62 32 20 63 6f   85 FROM tab2 co
2c790 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 33 37  r0..----..-10837
2c7a0 35 0d 0a 2d 36 36 34 37 30 0d 0a 2d 39 32 34 38  5..-66470..-9248
2c7b0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
2c7c0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2c7d0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2c7e0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2c7f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c800 74 20 6c 61 62 65 6c 2d 39 38 31 0d 0a 53 45 4c  t label-981..SEL
2c810 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
2c820 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
2c830 4e 45 44 20 29 20 2a 20 2d 20 2d 20 43 4f 55 4e  NED ) * - - COUN
2c840 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
2c850 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2c860 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
2c870 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2c880 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2c890 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 31  owsort label-981
2c8a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2c8b0 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T + CAST ( NULL 
2c8c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d  AS INTEGER ) * -
2c8d0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
2c8e0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c8f0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2c900 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2c910 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2c920 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2c930 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2c940 2d 39 38 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -982..SELECT - +
2c950 20 32 20 44 49 56 20 2d 20 2d 20 63 6f 6c 30 20   2 DIV - - col0 
2c960 2a 20 33 31 20 46 52 4f 4d 20 74 61 62 31 20 41  * 31 FROM tab1 A
2c970 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2c980 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
2c990 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2c9a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2c9b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2c9c0 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 32 20  2..SELECT - + 2 
2c9d0 2f 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 33 31 20  / - - col0 * 31 
2c9e0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2c9f0 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  0..----..0..0..0
2ca00 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2ca10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2ca20 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
2ca30 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
2ca40 20 4e 4f 54 20 28 20 2d 20 39 31 20 49 53 20 4e   NOT ( - 91 IS N
2ca50 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d  OT NULL )..----.
2ca60 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2ca70 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
2ca80 6f 6c 30 20 2b 20 2d 20 28 20 63 6f 6c 31 20 29  ol0 + - ( col1 )
2ca90 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   * - col1 AS col
2caa0 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
2cab0 2d 0d 0a 31 31 30 0d 0a 32 33 30 30 0d 0a 32 34  -..110..2300..24
2cac0 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  7....skipif post
2cad0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2cae0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2caf0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2cb00 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2cb10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2cb20 45 4c 45 43 54 20 41 4c 4c 20 39 30 20 63 6f 6c  ELECT ALL 90 col
2cb30 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2cb40 2d 0d 0a 39 30 0d 0a 39 30 0d 0a 39 30 0d 0a 0d  -..90..90..90...
2cb50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2cb60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2cb70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2cb80 6f 72 74 20 6c 61 62 65 6c 2d 39 38 36 0d 0a 53  ort label-986..S
2cb90 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2cba0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
2cbb0 33 30 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20  30 + - COUNT( * 
2cbc0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2cbd0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d  ab1..----..87...
2cbe0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2cbf0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2cc00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2cc10 6c 61 62 65 6c 2d 39 38 36 0d 0a 53 45 4c 45 43  label-986..SELEC
2cc20 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55  T DISTINCT + COU
2cc30 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 33 30 20  NT ( * ) * + 30 
2cc40 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
2cc50 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2cc60 31 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 0d 0a 71  1..----..87....q
2cc70 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2cc80 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
2cc90 74 61 62 32 20 57 48 45 52 45 20 32 39 20 42 45  tab2 WHERE 29 BE
2cca0 54 57 45 45 4e 20 2b 20 2b 20 63 6f 6c 31 20 2b  TWEEN + + col1 +
2ccb0 20 2d 20 36 30 20 41 4e 44 20 2d 20 63 6f 6c 30   - 60 AND - col0
2ccc0 20 2a 20 35 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   * 57..----....o
2ccd0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2cce0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
2ccf0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
2cd00 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2cd10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2cd20 6c 2d 39 38 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-988..SELECT DI
2cd30 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20  STINCT COUNT( * 
2cd40 29 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ) + + CAST( NULL
2cd50 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
2cd60 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2cd70 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
2cd80 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2cd90 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2cda0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2cdb0 65 6c 2d 39 38 38 0d 0a 53 45 4c 45 43 54 20 44  el-988..SELECT D
2cdc0 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
2cdd0 2a 20 29 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  * ) + + CAST ( N
2cde0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
2cdf0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2ce00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
2ce10 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2ce20 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2ce30 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2ce40 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 39 0d 0a  sort label-989..
2ce50 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20 2d 20  SELECT - MAX( - 
2ce60 63 6f 6c 31 20 29 20 2a 20 2d 20 2d 20 31 37 20  col1 ) * - - 17 
2ce70 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2ce80 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  0 cor0 WHERE NUL
2ce90 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L <> NULL..----.
2cea0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2ceb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2cec0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2ced0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2cee0 39 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20  9..SELECT - MAX 
2cef0 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2d 20 2d  ( - col1 ) * - -
2cf00 20 31 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   17 AS col2 FROM
2cf10 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
2cf20 20 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d   NULL <> NULL..-
2cf30 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
2cf40 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72  ry IIIIII rowsor
2cf50 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2cf60 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 49 4e   tab0 AS cor0 IN
2cf70 4e 45 52 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  NER JOIN tab2 AS
2cf80 20 63 6f 72 31 20 4f 4e 20 2d 20 2b 20 38 36 20   cor1 ON - + 86 
2cf90 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2cfa0 2d 0d 0a 35 34 20 76 61 6c 75 65 73 20 68 61 73  -..54 values has
2cfb0 68 69 6e 67 20 74 6f 20 65 61 61 33 39 34 66 31  hing to eaa394f1
2cfc0 36 32 37 63 38 64 35 65 35 33 34 30 36 64 39 63  627c8d5e53406d9c
2cfd0 61 33 62 30 39 34 36 39 0d 0a 0d 0a 71 75 65 72  a3b09469....quer
2cfe0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
2cff0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2d000 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 35 35  col2 AS col1, 55
2d010 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2d020 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 35  b1..----..-59..5
2d030 35 0d 0a 2d 36 38 0d 0a 35 35 0d 0a 2d 39 36 0d  5..-68..55..-96.
2d040 0a 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .55....query III
2d050 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d060 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
2d070 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
2d080 55 4c 4c 20 3e 3d 20 28 20 2d 20 63 6f 6c 30 20  ULL >= ( - col0 
2d090 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
2d0a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2d0b0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2d0c0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2d0d0 61 62 65 6c 2d 39 39 33 0d 0a 53 45 4c 45 43 54  abel-993..SELECT
2d0e0 20 31 38 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20   18, + COUNT( * 
2d0f0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2d100 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2d110 2d 0d 0a 31 38 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  -..18..3....skip
2d120 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2d130 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2d140 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2d150 6c 2d 39 39 33 0d 0a 53 45 4c 45 43 54 20 31 38  l-993..SELECT 18
2d160 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  , + COUNT ( * ) 
2d170 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2d180 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2d190 0a 31 38 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  .18..3....query 
2d1a0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2d1b0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2d1c0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
2d1d0 45 20 63 6f 6c 32 20 2a 20 2d 20 39 34 20 49 53  E col2 * - 94 IS
2d1e0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2d1f0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2d200 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
2d210 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
2d220 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
2d230 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2d240 54 20 2b 20 33 35 2c 20 33 39 20 2a 20 31 31 20  T + 35, 39 * 11 
2d250 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2d260 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2d270 0a 33 35 0d 0a 34 32 39 0d 0a 33 35 0d 0a 34 32  .35..429..35..42
2d280 39 0d 0a 33 35 0d 0a 34 32 39 0d 0a 0d 0a 6f 6e  9..35..429....on
2d290 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2d2a0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2d2b0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2d2c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2d2d0 39 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  96..SELECT DISTI
2d2e0 4e 43 54 20 28 20 2d 20 2d 20 43 41 53 54 28 20  NCT ( - - CAST( 
2d2f0 37 34 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  74 AS SIGNED ) )
2d300 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2d310 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a  r0..----..74....
2d320 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d330 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2d340 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2d350 61 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45 43 54  abel-996..SELECT
2d360 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20 2d 20   DISTINCT ( - - 
2d370 43 41 53 54 20 28 20 37 34 20 41 53 20 49 4e 54  CAST ( 74 AS INT
2d380 45 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61  EGER ) ) FROM ta
2d390 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2d3a0 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..74....onlyif m
2d3b0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2d3c0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
2d3d0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
2d3e0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
2d3f0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 37 0d 0a  sort label-997..
2d400 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2b 20  SELECT - MIN( + 
2d410 63 6f 6c 31 20 29 20 2a 20 4d 49 4e 28 20 2d 20  col1 ) * MIN( - 
2d420 2d 20 63 6f 6c 31 20 29 20 44 49 56 20 2d 20 43  - col1 ) DIV - C
2d430 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
2d440 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a 0d 0a  ab1..----..8....
2d450 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d460 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2d470 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2d480 61 62 65 6c 2d 39 39 37 0d 0a 53 45 4c 45 43 54  abel-997..SELECT
2d490 20 2d 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 31 20   - MIN ( + col1 
2d4a0 29 20 2a 20 4d 49 4e 20 28 20 2d 20 2d 20 63 6f  ) * MIN ( - - co
2d4b0 6c 31 20 29 20 2f 20 2d 20 43 4f 55 4e 54 20 28  l1 ) / - COUNT (
2d4c0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   * ) FROM tab1..
2d4d0 2d 2d 2d 2d 0d 0a 38 0d 0a 0d 0a 71 75 65 72 79  ----..8....query
2d4e0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2d4f0 43 54 20 2d 20 38 30 20 2b 20 63 6f 6c 32 20 41  CT - 80 + col2 A
2d500 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
2d510 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
2d520 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2d530 2d 0d 0a 2d 31 32 0d 0a 2d 32 31 0d 0a 31 36 0d  -..-12..-21..16.
2d540 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2d550 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2d560 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2d570 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 39 0d  wsort label-999.
2d580 0a 53 45 4c 45 43 54 20 2b 20 33 39 20 2a 20 2b  .SELECT + 39 * +
2d590 20 4d 41 58 28 20 63 6f 6c 31 20 29 20 46 52 4f   MAX( col1 ) FRO
2d5a0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 30  M tab2..----..30
2d5b0 30 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  03....skipif mys
2d5c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2d5d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2d5e0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 39 0d 0a  sort label-999..
2d5f0 53 45 4c 45 43 54 20 2b 20 33 39 20 2a 20 2b 20  SELECT + 39 * + 
2d600 4d 41 58 20 28 20 63 6f 6c 31 20 29 20 46 52 4f  MAX ( col1 ) FRO
2d610 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 30  M tab2..----..30
2d620 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  03....query I ro
2d630 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2d640 4c 20 2b 20 31 33 20 41 53 20 63 6f 6c 32 20 46  L + 13 AS col2 F
2d650 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
2d660 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
2d670 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 31  ULL..----..13..1
2d680 33 0d 0a 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49  3..13....query I
2d690 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2d6a0 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 35 33 20  T - col2 * - 53 
2d6b0 41 53 20 63 6f 6c 31 2c 20 2d 20 38 34 20 41 53  AS col1, - 84 AS
2d6c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2d6d0 0a 2d 2d 2d 2d 0d 0a 32 34 39 31 0d 0a 2d 38 34  .----..2491..-84
2d6e0 0d 0a 35 32 34 37 0d 0a 2d 38 34 0d 0a 35 33 30  ..5247..-84..530
2d6f0 0d 0a 2d 38 34 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-84....query I
2d700 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2d710 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
2d720 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 32 20 3e  HERE NOT + - 2 >
2d730 3d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20  = col0..----..9 
2d740 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2d750 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
2d760 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
2d770 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  49....query I ro
2d780 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2d790 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2a 20  col1 * - col1 * 
2d7a0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
2d7b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2d7c0 2d 2d 2d 2d 0d 0a 31 0d 0a 35 33 31 34 34 31 0d  ----..1..531441.
2d7d0 0a 39 32 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .9261....query I
2d7e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2d7f0 20 2b 20 37 33 20 2a 20 63 6f 6c 32 20 41 53 20   + 73 * col2 AS 
2d800 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
2d810 2d 2d 2d 2d 0d 0a 31 36 37 39 0d 0a 32 39 32 30  ----..1679..2920
2d820 0d 0a 34 32 33 34 0d 0a 0d 0a 71 75 65 72 79 20  ..4234....query 
2d830 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2d840 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 30 20  T DISTINCT - 70 
2d850 2b 20 2d 20 38 35 20 46 52 4f 4d 20 74 61 62 30  + - 85 FROM tab0
2d860 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 35 0d 0a 0d 0a  ..----..-155....
2d870 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2d880 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 38 20 2a  ..SELECT - + 8 *
2d890 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 38 2c   - col0 + + - 8,
2d8a0 20 33 36 20 2a 20 2b 20 35 20 41 53 20 63 6f 6c   36 * + 5 AS col
2d8b0 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
2d8c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 30 0d 0a  or0..----..360..
2d8d0 31 38 30 0d 0a 35 30 34 0d 0a 31 38 30 0d 0a 35  180..504..180..5
2d8e0 39 32 0d 0a 31 38 30 0d 0a 0d 0a 6f 6e 6c 79 69  92..180....onlyi
2d8f0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2d900 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2d910 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2d920 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45 43 54  bel-1007..SELECT
2d930 20 2d 20 2b 20 39 33 20 2b 20 2d 20 43 4f 55 4e   - + 93 + - COUN
2d940 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
2d950 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2d960 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a 73  ..----..-96....s
2d970 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2d980 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2d990 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2d9a0 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45 43 54  bel-1007..SELECT
2d9b0 20 2d 20 2b 20 39 33 20 2b 20 2d 20 43 4f 55 4e   - + 93 + - COUN
2d9c0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  T ( * ) AS col1 
2d9d0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2d9e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d 0a  0..----..-96....
2d9f0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
2da00 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
2da10 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
2da20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
2da30 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
2da40 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2da50 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a   DISTINCT col1 *
2da60 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63 6f   - col2 * - - co
2da70 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a 20  l2 * + + col0 * 
2da80 2d 20 39 35 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  - 95 + + col2 + 
2da90 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 34 32 20  + + col2 * - 42 
2daa0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
2dab0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34  S cor0..----..14
2dac0 30 35 34 32 39 35 36 0d 0a 31 38 37 38 37 39 37  0542956..1878797
2dad0 37 37 32 0d 0a 36 32 35 31 31 37 33 34 34 0d 0a  772..625117344..
2dae0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2daf0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2db00 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2db10 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 39 0d  sort label-1009.
2db20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2db30 20 2d 20 53 55 4d 28 20 2b 20 2d 20 35 35 20 29   - SUM( + - 55 )
2db40 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2db50 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2db60 0d 0a 31 36 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..165....skipif 
2db70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2db80 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2db90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2dba0 30 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  09..SELECT DISTI
2dbb0 4e 43 54 20 2d 20 53 55 4d 20 28 20 2b 20 2d 20  NCT - SUM ( + - 
2dbc0 35 35 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  55 ) AS col1 FRO
2dbd0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2dbe0 2d 2d 2d 2d 0d 0a 31 36 35 0d 0a 0d 0a 71 75 65  ----..165....que
2dbf0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2dc00 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  LECT ALL + col2 
2dc10 2a 20 2d 20 2d 20 35 20 46 52 4f 4d 20 74 61 62  * - - 5 FROM tab
2dc20 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2dc30 0a 32 33 35 0d 0a 34 39 35 0d 0a 35 30 0d 0a 0d  .235..495..50...
2dc40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2dc50 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2dc60 54 20 2b 20 37 34 20 2a 20 2d 20 28 20 2b 20 63  T + 74 * - ( + c
2dc70 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol2 ) AS col1 FR
2dc80 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2dc90 0a 2d 2d 2d 2d 0d 0a 2d 31 37 30 32 0d 0a 2d 32  .----..-1702..-2
2dca0 39 36 30 0d 0a 2d 34 32 39 32 0d 0a 0d 0a 71 75  960..-4292....qu
2dcb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2dcc0 45 4c 45 43 54 20 2b 20 28 20 32 39 20 29 20 2b  ELECT + ( 29 ) +
2dcd0 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
2dce0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2dcf0 0a 2d 31 31 0d 0a 2d 32 39 0d 0a 36 0d 0a 0d 0a  .-11..-29..6....
2dd00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2dd10 0a 53 45 4c 45 43 54 20 35 37 20 2b 20 2b 20 28  .SELECT 57 + + (
2dd20 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   + col2 ) AS col
2dd30 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
2dd40 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 35 36  ..----..104..156
2dd50 0d 0a 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..67....query I 
2dd60 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2dd70 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2b 20  col1 * + col1 + 
2dd80 2b 20 33 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 31 AS col1 FRO
2dd90 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2dda0 2d 0d 0a 32 32 34 30 0d 0a 32 32 37 0d 0a 35 36  -..2240..227..56
2ddb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2ddc0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2ddd0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2dde0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2ddf0 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
2de00 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d  + COUNT( * ) + -
2de10 20 37 39 20 46 52 4f 4d 20 74 61 62 32 20 57 48   79 FROM tab2 WH
2de20 45 52 45 20 63 6f 6c 31 20 42 45 54 57 45 45 4e  ERE col1 BETWEEN
2de30 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32   - col0 + + col2
2de40 20 41 4e 44 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d   AND - col2..---
2de50 2d 0d 0a 2d 37 39 0d 0a 0d 0a 73 6b 69 70 69 66  -..-79....skipif
2de60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2de70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2de80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2de90 30 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  015..SELECT ALL 
2dea0 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + + COUNT ( * ) 
2deb0 2b 20 2d 20 37 39 20 46 52 4f 4d 20 74 61 62 32  + - 79 FROM tab2
2dec0 20 57 48 45 52 45 20 63 6f 6c 31 20 42 45 54 57   WHERE col1 BETW
2ded0 45 45 4e 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 63  EEN - col0 + + c
2dee0 6f 6c 32 20 41 4e 44 20 2d 20 63 6f 6c 32 0d 0a  ol2 AND - col2..
2def0 2d 2d 2d 2d 0d 0a 2d 37 39 0d 0a 0d 0a 6f 6e 6c  ----..-79....onl
2df00 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2df10 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2df20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2df30 6c 61 62 65 6c 2d 31 30 31 36 0d 0a 53 45 4c 45  label-1016..SELE
2df40 43 54 20 41 4c 4c 20 36 31 20 2a 20 2b 20 53 55  CT ALL 61 * + SU
2df50 4d 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d  M( - col0 ) FROM
2df60 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 4f   tab2 WHERE ( NO
2df70 54 20 4e 55 4c 4c 20 3e 3d 20 63 6f 6c 31 20 29  T NULL >= col1 )
2df80 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2df90 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2dfa0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2dfb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2dfc0 61 62 65 6c 2d 31 30 31 36 0d 0a 53 45 4c 45 43  abel-1016..SELEC
2dfd0 54 20 41 4c 4c 20 36 31 20 2a 20 2b 20 53 55 4d  T ALL 61 * + SUM
2dfe0 20 28 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   ( - col0 ) FROM
2dff0 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 4f   tab2 WHERE ( NO
2e000 54 20 4e 55 4c 4c 20 3e 3d 20 63 6f 6c 31 20 29  T NULL >= col1 )
2e010 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2e020 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2e030 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2e040 20 74 61 62 30 20 57 48 45 52 45 20 28 20 63 6f   tab0 WHERE ( co
2e050 6c 31 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  l1 - + col1 * - 
2e060 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 20 29 0d 0a  col0 IS NULL )..
2e070 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2e080 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2e090 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2e0a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2e0b0 2d 31 30 31 38 0d 0a 53 45 4c 45 43 54 20 43 4f  -1018..SELECT CO
2e0c0 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 39 30 20  UNT( * ) * - 90 
2e0d0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2e0e0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 30 0d 0a 0d  0..----..-270...
2e0f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2e100 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
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 31 38 0d 0a 53 45 4c 45  label-1018..SELE
2e130 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  CT COUNT ( * ) *
2e140 20 2d 20 39 30 20 41 53 20 63 6f 6c 30 20 46 52   - 90 AS col0 FR
2e150 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2e160 32 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  270....query III
2e170 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2e180 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2e190 61 62 31 2c 20 74 61 62 31 20 41 53 20 63 6f 72  ab1, tab1 AS cor
2e1a0 30 20 57 48 45 52 45 20 2d 20 33 20 3c 3e 20 2d  0 WHERE - 3 <> -
2e1b0 20 37 32 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20 76 61   72..----..54 va
2e1c0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
2e1d0 33 37 35 66 33 37 32 38 34 33 30 38 39 62 30 33  375f372843089b03
2e1e0 66 32 33 62 30 30 31 36 30 30 30 37 35 32 37 61  f23b00160007527a
2e1f0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2e200 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 20 41 53  ort..SELECT 7 AS
2e210 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
2e220 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20  AS cor0 WHERE + 
2e230 37 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  77 IS NULL..----
2e240 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2e250 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
2e260 33 30 20 2d 20 2d 20 33 30 20 41 53 20 63 6f 6c  30 - - 30 AS col
2e270 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
2e280 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d 0a 36 30 0d 0a  ..----..60..60..
2e290 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  60....query III 
2e2a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2e2b0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
2e2c0 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30  WHERE NOT - col0
2e2d0 20 3d 20 2d 20 36 0d 0a 2d 2d 2d 2d 0d 0a 39 20   = - 6..----..9 
2e2e0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2e2f0 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
2e300 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
2e310 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  49....query II r
2e320 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2e330 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2a  ISTINCT + col0 *
2e340 20 2b 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 32 20   + + ( + + col2 
2e350 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 39 37 20  ) AS col1, - 97 
2e360 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2e370 31 0d 0a 2d 2d 2d 2d 0d 0a 34 38 39 36 0d 0a 2d  1..----..4896..-
2e380 39 37 0d 0a 35 30 31 35 0d 0a 2d 39 37 0d 0a 36  97..5015..-97..6
2e390 31 38 38 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79  188..-97....only
2e3a0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2e3b0 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
2e3c0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2e3d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2e3e0 32 34 0d 0a 53 45 4c 45 43 54 20 33 39 20 2a 20  24..SELECT 39 * 
2e3f0 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  col2 + col1 FROM
2e400 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
2e410 2b 20 43 41 53 54 28 20 2b 20 39 36 20 41 53 20  + CAST( + 96 AS 
2e420 44 45 43 49 4d 41 4c 20 29 20 3d 20 2d 20 2b 20  DECIMAL ) = - + 
2e430 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 31 36 33 37  col1..----..1637
2e440 0d 0a 32 33 32 39 0d 0a 39 34 38 0d 0a 0d 0a 73  ..2329..948....s
2e450 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e460 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e470 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e480 62 65 6c 2d 31 30 32 34 0d 0a 53 45 4c 45 43 54  bel-1024..SELECT
2e490 20 33 39 20 2a 20 63 6f 6c 32 20 2b 20 63 6f 6c   39 * col2 + col
2e4a0 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  1 FROM tab2 WHER
2e4b0 45 20 4e 4f 54 20 2b 20 43 41 53 54 20 28 20 2b  E NOT + CAST ( +
2e4c0 20 39 36 20 41 53 20 52 45 41 4c 20 29 20 3d 20   96 AS REAL ) = 
2e4d0 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  - + col1..----..
2e4e0 31 36 33 37 0d 0a 32 33 32 39 0d 0a 39 34 38 0d  1637..2329..948.
2e4f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2e500 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
2e510 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
2e520 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
2e530 4e 55 4c 4c 20 3c 3e 20 2b 20 63 6f 6c 32 0d 0a  NULL <> + col2..
2e540 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
2e550 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2e560 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
2e570 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2e580 28 20 4e 4f 54 20 2b 20 2d 20 36 39 20 49 53 20  ( NOT + - 69 IS 
2e590 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  NOT NULL )..----
2e5a0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2e5b0 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
2e5c0 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
2e5d0 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  fb43b7....onlyif
2e5e0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2e5f0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2e600 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2e610 65 6c 2d 31 30 32 37 0d 0a 53 45 4c 45 43 54 20  el-1027..SELECT 
2e620 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
2e630 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
2e640 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
2e650 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
2e660 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2e670 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2e680 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e690 6c 61 62 65 6c 2d 31 30 32 37 0d 0a 53 45 4c 45  label-1027..SELE
2e6a0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
2e6b0 55 4e 54 20 28 20 2b 20 63 6f 6c 31 20 29 20 41  UNT ( + col1 ) A
2e6c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2e6d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2e6e0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
2e6f0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2e700 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
2e710 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
2e720 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e730 74 20 6c 61 62 65 6c 2d 31 30 32 38 0d 0a 53 45  t label-1028..SE
2e740 4c 45 43 54 20 31 32 20 2a 20 2d 20 43 4f 55 4e  LECT 12 * - COUN
2e750 54 28 20 2a 20 29 20 44 49 56 20 2d 20 43 4f 55  T( * ) DIV - COU
2e760 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
2e770 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 73  2..----..12....s
2e780 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e790 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e7a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e7b0 62 65 6c 2d 31 30 32 38 0d 0a 53 45 4c 45 43 54  bel-1028..SELECT
2e7c0 20 31 32 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20   12 * - COUNT ( 
2e7d0 2a 20 29 20 2f 20 2d 20 43 4f 55 4e 54 20 28 20  * ) / - COUNT ( 
2e7e0 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  * ) FROM tab2..-
2e7f0 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79  ---..12....query
2e800 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2e810 45 43 54 20 35 31 2c 20 63 6f 6c 31 20 46 52 4f  ECT 51, col1 FRO
2e820 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31  M tab2..----..51
2e830 0d 0a 35 31 0d 0a 35 31 0d 0a 36 37 0d 0a 35 31  ..51..51..67..51
2e840 0d 0a 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..77....onlyif m
2e850 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2e860 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2e870 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2e880 6c 2d 31 30 33 30 0d 0a 53 45 4c 45 43 54 20 41  l-1030..SELECT A
2e890 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 2c  LL - COUNT( * ),
2e8a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2e8b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2e8c0 2d 2d 2d 0d 0a 2d 33 0d 0a 33 0d 0a 0d 0a 73 6b  ---..-3..3....sk
2e8d0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2e8e0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2e8f0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2e900 62 65 6c 2d 31 30 33 30 0d 0a 53 45 4c 45 43 54  bel-1030..SELECT
2e910 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ALL - COUNT ( *
2e920 20 29 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20   ), COUNT ( * ) 
2e930 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2e940 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 33 0d 0a  2..----..-3..3..
2e950 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e960 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 32 20 2a  t..SELECT + 82 *
2e970 20 2d 20 2d 20 31 32 20 46 52 4f 4d 20 74 61 62   - - 12 FROM tab
2e980 31 0d 0a 2d 2d 2d 2d 0d 0a 39 38 34 0d 0a 39 38  1..----..984..98
2e990 34 0d 0a 39 38 34 0d 0a 0d 0a 71 75 65 72 79 20  4..984....query 
2e9a0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2e9b0 43 54 20 32 20 2a 20 2d 20 63 6f 6c 32 20 2a 20  CT 2 * - col2 * 
2e9c0 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20  + col0 AS col0, 
2e9d0 63 6f 6c 32 20 2a 20 32 34 20 46 52 4f 4d 20 74  col2 * 24 FROM t
2e9e0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 31 30  ab0..----..-1410
2e9f0 0d 0a 31 31 32 38 0d 0a 2d 31 37 34 30 0d 0a 32  ..1128..-1740..2
2ea00 34 30 0d 0a 2d 31 39 32 30 36 0d 0a 32 33 37 36  40..-19206..2376
2ea10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2ea20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  ort..SELECT - ( 
2ea30 2d 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  - + col1 ) FROM 
2ea40 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
2ea50 20 31 32 20 2d 20 2d 20 39 39 20 49 53 20 4e 55   12 - - 99 IS NU
2ea60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37  LL..----..51..67
2ea70 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..77....query I 
2ea80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2ea90 44 49 53 54 49 4e 43 54 20 38 33 20 2a 20 34 34  DISTINCT 83 * 44
2eaa0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2eab0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
2eac0 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 49 53 20 4e   NOT - col2 IS N
2ead0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 36 35 32 0d  ULL..----..3652.
2eae0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2eaf0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2eb00 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2eb10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2eb20 62 65 6c 2d 31 30 33 35 0d 0a 53 45 4c 45 43 54  bel-1035..SELECT
2eb30 20 2d 20 2b 20 35 36 20 44 49 56 20 2d 20 63 6f   - + 56 DIV - co
2eb40 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
2eb50 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
2eb60 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .0..0..1....skip
2eb70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2eb80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2eb90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2eba0 2d 31 30 33 35 0d 0a 53 45 4c 45 43 54 20 2d 20  -1035..SELECT - 
2ebb0 2b 20 35 36 20 2f 20 2d 20 63 6f 6c 30 20 41 53  + 56 / - col0 AS
2ebc0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
2ebd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
2ebe0 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..1....onlyif my
2ebf0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2ec00 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2ec10 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2ec20 31 30 33 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1036..SELECT - C
2ec30 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
2ec40 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
2ec50 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 33 35  or0 WHERE NOT 35
2ec60 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2ec70 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
2ec80 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2ec90 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2eca0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 36 0d  sort label-1036.
2ecb0 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20  .SELECT - COUNT 
2ecc0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
2ecd0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
2ece0 57 48 45 52 45 20 4e 4f 54 20 33 35 20 49 53 20  WHERE NOT 35 IS 
2ecf0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  NULL..----..-3..
2ed00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2ed10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
2ed20 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f  OM tab2 WHERE co
2ed30 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 49 53  l1 + - - col1 IS
2ed40 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2ed50 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
2ed60 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
2ed70 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
2ed80 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49  d0a49....query I
2ed90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2eda0 20 2b 20 28 20 28 20 63 6f 6c 30 20 29 20 29 20   + ( ( col0 ) ) 
2edb0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2edc0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
2edd0 37 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  79 IS NULL..----
2ede0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2edf0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2ee00 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2ee10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2ee20 61 62 65 6c 2d 31 30 33 39 0d 0a 53 45 4c 45 43  abel-1039..SELEC
2ee30 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63  T + col0 + - - c
2ee40 6f 6c 31 20 2a 20 2b 20 37 39 20 46 52 4f 4d 20  ol1 * + 79 FROM 
2ee50 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2ee60 52 45 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 37 39  RE col2 * + - 79
2ee70 20 2f 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   / - CAST( NULL 
2ee80 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20  AS SIGNED ) + - 
2ee90 38 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  8 IS NOT NULL..-
2eea0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
2eeb0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2eec0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2eed0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33 39  wsort label-1039
2eee0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20  ..SELECT + col0 
2eef0 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 37  + - - col1 * + 7
2ef00 39 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  9 FROM tab1 AS c
2ef10 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a  or0 WHERE col2 *
2ef20 20 2b 20 2d 20 37 39 20 2f 20 2d 20 43 41 53 54   + - 79 / - CAST
2ef30 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
2ef40 45 52 20 29 20 2b 20 2d 20 38 20 49 53 20 4e 4f  ER ) + - 8 IS NO
2ef50 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
2ef60 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2ef70 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2ef80 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2ef90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2efa0 2d 31 30 34 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1040..SELECT DI
2efb0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 46 52  STINCT - col1 FR
2efc0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
2efd0 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
2efe0 3d 20 2d 20 28 20 43 41 53 54 28 20 4e 55 4c 4c  = - ( CAST( NULL
2eff0 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 2b   AS SIGNED ) ) +
2f000 20 2d 20 2d 20 31 35 0d 0a 2d 2d 2d 2d 0d 0a 0d   - - 15..----...
2f010 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2f020 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2f030 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f040 6c 61 62 65 6c 2d 31 30 34 30 0d 0a 53 45 4c 45  label-1040..SELE
2f050 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
2f060 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2f070 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
2f080 55 4c 4c 20 3c 3d 20 2d 20 28 20 43 41 53 54 20  ULL <= - ( CAST 
2f090 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2f0a0 52 20 29 20 29 20 2b 20 2d 20 2d 20 31 35 0d 0a  R ) ) + - - 15..
2f0b0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
2f0c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2f0d0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
2f0e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2f0f0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2a 20  HERE NOT col2 * 
2f100 39 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  90 IS NOT NULL..
2f110 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
2f120 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2f130 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2f140 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2f150 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2f160 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2f170 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
2f180 2c 20 63 6f 6c 32 20 2a 20 2b 20 38 20 63 6f 6c  , col2 * + 8 col
2f190 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2f1a0 2d 0d 0a 32 33 0d 0a 31 38 34 0d 0a 34 30 0d 0a  -..23..184..40..
2f1b0 33 32 30 0d 0a 35 38 0d 0a 34 36 34 0d 0a 0d 0a  320..58..464....
2f1c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2f1d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2f1e0 20 39 20 2b 20 36 39 20 41 53 20 63 6f 6c 30 20   9 + 69 AS col0 
2f1f0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2f200 0a 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .78....query I r
2f210 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
2f220 6f 6c 31 20 2d 20 2d 20 33 33 20 46 52 4f 4d 20  ol1 - - 33 FROM 
2f230 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d  tab2..----..100.
2f240 0a 31 31 30 0d 0a 38 34 0d 0a 0d 0a 71 75 65 72  .110..84....quer
2f250 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2f260 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
2f270 6f 6c 31 20 2b 20 33 34 20 41 53 20 63 6f 6c 30  ol1 + 34 AS col0
2f280 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2f290 0d 0a 31 30 31 0d 0a 31 31 31 0d 0a 38 35 0d 0a  ..101..111..85..
2f2a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f2b0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2f2c0 33 37 20 2b 20 2d 20 37 32 20 41 53 20 63 6f 6c  37 + - 72 AS col
2f2d0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
2f2e0 2d 0d 0a 2d 33 35 0d 0a 2d 33 35 0d 0a 2d 33 35  -..-35..-35..-35
2f2f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2f300 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2f310 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2f320 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2f330 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
2f340 43 4f 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 32  COUNT( * ) - + 2
2f350 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  8 AS col0 FROM t
2f360 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a  ab1..----..-31..
2f370 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2f380 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2f390 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f3a0 20 6c 61 62 65 6c 2d 31 30 34 37 0d 0a 53 45 4c   label-1047..SEL
2f3b0 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20  ECT ALL - COUNT 
2f3c0 28 20 2a 20 29 20 2d 20 2b 20 32 38 20 41 53 20  ( * ) - + 28 AS 
2f3d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
2f3e0 2d 2d 2d 2d 0d 0a 2d 33 31 0d 0a 0d 0a 71 75 65  ----..-31....que
2f3f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f400 4c 45 43 54 20 2d 20 32 32 20 2b 20 63 6f 6c 30  LECT - 22 + col0
2f410 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2f420 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 36 33  b1..----..29..63
2f430 0d 0a 36 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..69....onlyif m
2f440 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2f450 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2f460 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2f470 2d 31 30 34 39 0d 0a 53 45 4c 45 43 54 20 41 4c  -1049..SELECT AL
2f480 4c 20 53 55 4d 28 20 2d 20 63 6f 6c 32 20 29 20  L SUM( - col2 ) 
2f490 2d 20 2b 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a  - + ( - COUNT( *
2f4a0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   ) ) FROM tab0 A
2f4b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2f4c0 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  53....skipif mys
2f4d0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2f4e0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2f4f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 39 0d  sort label-1049.
2f500 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20  .SELECT ALL SUM 
2f510 28 20 2d 20 63 6f 6c 32 20 29 20 2d 20 2b 20 28  ( - col2 ) - + (
2f520 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   - COUNT ( * ) )
2f530 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2f540 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 33 0d 0a  r0..----..-153..
2f550 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f560 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  t..SELECT + - co
2f570 6c 32 20 2b 20 2b 20 33 36 20 2b 20 2b 20 63 6f  l2 + + 36 + + co
2f580 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
2f590 63 6f 72 30 20 57 48 45 52 45 20 34 31 20 49 53  cor0 WHERE 41 IS
2f5a0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
2f5b0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2f5c0 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 41  .SELECT + col2 A
2f5d0 53 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 2b 20 2b  S col0, col1 + +
2f5e0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2f5f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
2f600 30 0d 0a 33 31 0d 0a 34 37 0d 0a 31 32 38 0d 0a  0..31..47..128..
2f610 39 39 0d 0a 31 30 30 0d 0a 0d 0a 71 75 65 72 79  99..100....query
2f620 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2f630 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c  CT ALL - ( - col
2f640 32 20 29 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 63  2 ) * - col1 * c
2f650 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
2f660 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37   cor0..----..-17
2f670 38 39 32 39 0d 0a 2d 32 31 30 30 0d 0a 2d 39 38  8929..-2100..-98
2f680 30 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  01....query I ro
2f690 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2f6a0 4c 20 37 32 20 46 52 4f 4d 20 74 61 62 30 20 41  L 72 FROM tab0 A
2f6b0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
2f6c0 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a  N tab0 AS cor1..
2f6d0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2f6e0 61 73 68 69 6e 67 20 74 6f 20 39 30 36 62 36 33  ashing to 906b63
2f6f0 63 39 61 64 62 37 64 39 61 63 37 33 35 35 63 61  c9adb7d9ac7355ca
2f700 62 37 31 61 32 35 66 63 34 39 0d 0a 0d 0a 71 75  b71a25fc49....qu
2f710 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2f720 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2f730 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
2f740 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 20  RE NULL IS NULL 
2f750 4f 52 20 33 34 20 49 53 20 4e 4f 54 20 4e 55 4c  OR 34 IS NOT NUL
2f760 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
2f770 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
2f780 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
2f790 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
2f7a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2f7b0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2f7c0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2f7d0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2f7e0 65 6c 2d 31 30 35 35 0d 0a 53 45 4c 45 43 54 20  el-1055..SELECT 
2f7f0 2b 20 63 6f 6c 32 20 63 6f 6c 30 2c 20 63 6f 6c  + col2 col0, col
2f800 31 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2d  1 * + + col2 - -
2f810 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 32 36 20 44   + col0 + - 26 D
2f820 49 56 20 2b 20 2b 20 39 35 20 41 53 20 63 6f 6c  IV + + 95 AS col
2f830 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
2f840 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 31  or0..----..23..1
2f850 32 31 39 0d 0a 34 30 0d 0a 33 31 34 34 0d 0a 35  219..40..3144..5
2f860 38 0d 0a 33 39 36 31 0d 0a 0d 0a 73 6b 69 70 69  8..3961....skipi
2f870 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2f880 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
2f890 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
2f8a0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
2f8b0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
2f8c0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
2f8d0 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
2f8e0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 35 0d 0a  ort label-1055..
2f8f0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 63 6f  SELECT + col2 co
2f900 6c 30 2c 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63  l0, col1 * + + c
2f910 6f 6c 32 20 2d 20 2d 20 2b 20 63 6f 6c 30 20 2b  ol2 - - + col0 +
2f920 20 2d 20 32 36 20 2f 20 2b 20 2b 20 39 35 20 41   - 26 / + + 95 A
2f930 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2f940 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f950 32 33 0d 0a 31 32 31 39 0d 0a 34 30 0d 0a 33 31  23..1219..40..31
2f960 34 34 0d 0a 35 38 0d 0a 33 39 36 31 0d 0a 0d 0a  44..58..3961....
2f970 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2f980 0a 53 45 4c 45 43 54 20 2d 20 31 38 20 2a 20 2d  .SELECT - 18 * -
2f990 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
2f9a0 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
2f9b0 2d 2d 0d 0a 31 35 36 36 0d 0a 31 37 34 36 0d 0a  --..1566..1746..
2f9c0 32 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  270....query I r
2f9d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2f9e0 4c 4c 20 2d 20 28 20 2d 20 2b 20 36 38 20 29 20  LL - ( - + 68 ) 
2f9f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2fa00 30 0d 0a 2d 2d 2d 2d 0d 0a 36 38 0d 0a 36 38 0d  0..----..68..68.
2fa10 0a 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .68....onlyif my
2fa20 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2fa30 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2fa40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2fa50 31 30 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1058..SELECT ALL
2fa60 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
2fa70 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
2fa80 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2fa90 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69  ----..9....skipi
2faa0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2fab0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2fac0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2fad0 31 30 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1058..SELECT ALL
2fae0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   + COUNT ( * ) *
2faf0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
2fb00 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2fb10 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65  ..----..9....que
2fb20 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
2fb30 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2fb40 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 2c 20   col1 * + col2, 
2fb50 2d 20 38 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 83 AS col1 FRO
2fb60 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
2fb70 33 34 34 0d 0a 2d 38 33 0d 0a 2d 32 39 35 0d 0a  344..-83..-295..
2fb80 2d 38 33 0d 0a 2d 33 31 39 36 0d 0a 2d 38 33 0d  -83..-3196..-83.
2fb90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2fba0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
2fbb0 2a 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c  * + col0 * + col
2fbc0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
2fbd0 2d 0d 0a 32 34 39 36 39 36 0d 0a 34 32 36 32 37  -..249696..42627
2fbe0 35 0d 0a 35 36 33 31 30 38 0d 0a 0d 0a 6f 6e 6c  5..563108....onl
2fbf0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2fc00 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2fc10 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
2fc20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2fc30 30 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  061..SELECT DIST
2fc40 49 4e 43 54 20 39 33 20 44 49 56 20 63 6f 6c 30  INCT 93 DIV col0
2fc50 20 41 53 20 63 6f 6c 31 2c 20 34 33 20 41 53 20   AS col1, 43 AS 
2fc60 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
2fc70 2d 2d 2d 2d 0d 0a 31 0d 0a 34 33 0d 0a 32 0d 0a  ----..1..43..2..
2fc80 34 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  43....skipif mys
2fc90 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2fca0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
2fcb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 31  wsort label-1061
2fcc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2fcd0 54 20 39 33 20 2f 20 63 6f 6c 30 20 41 53 20 63  T 93 / col0 AS c
2fce0 6f 6c 31 2c 20 34 33 20 41 53 20 63 6f 6c 31 20  ol1, 43 AS col1 
2fcf0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2fd00 0a 31 0d 0a 34 33 0d 0a 32 0d 0a 34 33 0d 0a 0d  .1..43..2..43...
2fd10 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2fd20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2fd30 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2fd40 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 32 0d 0a  ort label-1062..
2fd50 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
2fd60 28 20 2b 20 36 33 20 29 20 41 53 20 63 6f 6c 30  ( + 63 ) AS col0
2fd70 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2fd80 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
2fd90 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2fda0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2fdb0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 32  wsort label-1062
2fdc0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
2fdd0 4e 54 20 28 20 2b 20 36 33 20 29 20 41 53 20 63  NT ( + 63 ) AS c
2fde0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
2fdf0 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
2fe00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2fe10 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c  T + - col1 * col
2fe20 30 20 2b 20 2d 20 2d 20 38 31 20 41 53 20 63 6f  0 + - - 81 AS co
2fe30 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
2fe40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33  cor0..----..-113
2fe50 34 0d 0a 2d 31 36 0d 0a 2d 31 37 34 36 0d 0a 0d  4..-16..-1746...
2fe60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2fe70 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2fe80 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2fe90 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 34 0d 0a  ort label-1064..
2fea0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2feb0 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  + - COUNT( * ) *
2fec0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
2fed0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
2fee0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
2fef0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 73  0..----..27....s
2ff00 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ff10 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ff20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2ff30 62 65 6c 2d 31 30 36 34 0d 0a 53 45 4c 45 43 54  bel-1064..SELECT
2ff40 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 4f   DISTINCT + - CO
2ff50 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43 4f  UNT ( * ) * - CO
2ff60 55 4e 54 20 28 20 2a 20 29 20 2a 20 43 4f 55 4e  UNT ( * ) * COUN
2ff70 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
2ff80 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
2ff90 2d 2d 2d 2d 0d 0a 32 37 0d 0a 0d 0a 71 75 65 72  ----..27....quer
2ffa0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2ffb0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  ECT DISTINCT - +
2ffc0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
2ffd0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
2ffe0 63 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20 63 6f  col1 NOT IN ( co
2fff0 6c 30 2c 20 2b 20 35 35 2c 20 2b 20 63 6f 6c 32  l0, + 55, + col2
30000 2c 20 2b 20 63 6f 6c 32 20 2a 20 34 20 2b 20 2b  , + col2 * 4 + +
30010 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 63 6f   - col2 + + + co
30020 6c 30 20 2f 20 2b 20 63 6f 6c 32 2c 20 2d 20 63  l0 / + col2, - c
30030 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30  ol0 )..----..-10
30040 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a 6f 6e  ..-47..-99....on
30050 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
30060 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
30070 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
30080 74 20 6c 61 62 65 6c 2d 31 30 36 36 0d 0a 53 45  t label-1066..SE
30090 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
300a0 2a 20 2d 20 2d 20 53 55 4d 28 20 44 49 53 54 49  * - - SUM( DISTI
300b0 4e 43 54 20 2b 20 63 6f 6c 31 20 29 2c 20 32 37  NCT + col1 ), 27
300c0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
300d0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
300e0 0d 0a 33 30 39 0d 0a 32 37 0d 0a 0d 0a 73 6b 69  ..309..27....ski
300f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
30100 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
30110 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
30120 65 6c 2d 31 30 36 36 0d 0a 53 45 4c 45 43 54 20  el-1066..SELECT 
30130 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20  COUNT ( * ) * - 
30140 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54  - SUM ( DISTINCT
30150 20 2b 20 63 6f 6c 31 20 29 2c 20 32 37 20 41 53   + col1 ), 27 AS
30160 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
30170 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
30180 30 39 0d 0a 32 37 0d 0a 0d 0a 73 6b 69 70 69 66  09..27....skipif
30190 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
301a0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
301b0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
301c0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
301d0 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
301e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 32 37  ort..SELECT - 27
301f0 20 63 6f 6c 30 2c 20 2b 20 37 32 20 41 53 20 63   col0, + 72 AS c
30200 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
30210 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
30220 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d   tab0 cor1..----
30230 0d 0a 31 38 20 76 61 6c 75 65 73 20 68 61 73 68  ..18 values hash
30240 69 6e 67 20 74 6f 20 66 61 32 38 38 36 31 63 65  ing to fa28861ce
30250 39 30 32 66 62 31 62 33 66 31 65 35 38 64 37 35  902fb1b3f1e58d75
30260 66 63 30 31 30 33 35 0d 0a 0d 0a 71 75 65 72 79  fc01035....query
30270 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
30280 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
30290 20 57 48 45 52 45 20 2b 20 2b 20 33 32 20 3c 3d   WHERE + + 32 <=
302a0 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 0d 0a 2d 2d   col0 + col0..--
302b0 2d 2d 0d 0a 38 37 0d 0a 32 31 0d 0a 31 30 0d 0a  --..87..21..10..
302c0 39 37 0d 0a 31 0d 0a 39 39 0d 0a 0d 0a 73 6b 69  97..1..99....ski
302d0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
302e0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
302f0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
30300 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
30310 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
30320 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31 36  wsort..SELECT 16
30330 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32   - + col1 * col2
30340 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
30350 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 38 0d 0a 2d 32  .----..-1328..-2
30360 37 39 0d 0a 2d 33 31 38 30 0d 0a 0d 0a 71 75 65  79..-3180....que
30370 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
30380 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c  LECT ALL - + col
30390 30 20 2b 20 2b 20 36 36 20 2a 20 2d 20 2b 20 34  0 + + 66 * - + 4
303a0 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  3 FROM tab1 AS c
303b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 38 39  or0..----..-2889
303c0 0d 0a 2d 32 39 32 33 0d 0a 2d 32 39 32 39 0d 0a  ..-2923..-2929..
303d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
303e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
303f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
30400 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 31 0d  sort label-1071.
30410 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e  .SELECT - - COUN
30420 54 28 20 41 4c 4c 20 2b 20 28 20 63 6f 6c 32 20  T( ALL + ( col2 
30430 29 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20 29  ) ) * COUNT( * )
30440 20 2b 20 2b 20 32 35 20 2b 20 2d 20 43 4f 55 4e   + + 25 + - COUN
30450 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
30460 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
30470 2d 2d 2d 0d 0a 33 31 0d 0a 0d 0a 73 6b 69 70 69  ---..31....skipi
30480 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30490 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
304a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
304b0 31 30 37 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  1071..SELECT - -
304c0 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 28   COUNT ( ALL + (
304d0 20 63 6f 6c 32 20 29 20 29 20 2a 20 43 4f 55 4e   col2 ) ) * COUN
304e0 54 20 28 20 2a 20 29 20 2b 20 2b 20 32 35 20 2b  T ( * ) + + 25 +
304f0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
30500 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
30510 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31 0d   cor0..----..31.
30520 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
30530 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
30540 49 47 4e 45 44 20 74 79 70 65 3a 20 44 45 43 49  IGNED type: DECI
30550 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
30560 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
30570 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c 45 43 54  bel-1072..SELECT
30580 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
30590 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
305a0 6f 6c 30 20 3d 20 2b 20 43 41 53 54 28 20 4e 55  ol0 = + CAST( NU
305b0 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
305c0 2b 20 2d 20 2d 20 63 6f 6c 30 20 2d 20 63 6f 6c  + - - col0 - col
305d0 30 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 43 41 53  0 * - col0 * CAS
305e0 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45  T( col1 AS SIGNE
305f0 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  D )..----....ski
30600 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
30610 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
30620 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
30630 62 65 6c 2d 31 30 37 32 0d 0a 53 45 4c 45 43 54  bel-1072..SELECT
30640 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
30650 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
30660 6f 6c 30 20 3d 20 2b 20 43 41 53 54 20 28 20 4e  ol0 = + CAST ( N
30670 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b 20  ULL AS REAL ) + 
30680 2d 20 2d 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20  - - col0 - col0 
30690 2a 20 2d 20 63 6f 6c 30 20 2a 20 43 41 53 54 20  * - col0 * CAST 
306a0 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  ( col1 AS INTEGE
306b0 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  R )..----....onl
306c0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
306d0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
306e0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49  sion: ..query II
306f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30700 30 37 33 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  073..SELECT + co
30710 6c 31 20 44 49 56 20 31 38 20 2b 20 2b 20 63 6f  l1 DIV 18 + + co
30720 6c 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30  l0 AS col2, col0
30730 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
30740 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 35 31  r0..----..51..51
30750 0d 0a 38 35 0d 0a 38 35 0d 0a 39 33 0d 0a 39 31  ..85..85..93..91
30760 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
30770 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
30780 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
30790 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 33 0d 0a  ort label-1073..
307a0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20  SELECT + col1 / 
307b0 31 38 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63  18 + + col0 AS c
307c0 6f 6c 32 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ol2, col0 FROM t
307d0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
307e0 2d 0d 0a 35 31 0d 0a 35 31 0d 0a 38 35 0d 0a 38  -..51..51..85..8
307f0 35 0d 0a 39 33 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c  5..93..91....onl
30800 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
30810 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
30820 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30830 6c 61 62 65 6c 2d 31 30 37 34 0d 0a 53 45 4c 45  label-1074..SELE
30840 43 54 20 4d 49 4e 28 20 2d 20 2b 20 31 30 20 29  CT MIN( - + 10 )
30850 20 2b 20 2b 20 35 36 20 63 6f 6c 31 20 46 52 4f   + + 56 col1 FRO
30860 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
30870 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70  ----..46....skip
30880 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
30890 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
308a0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
308b0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
308c0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
308d0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
308e0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
308f0 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 34 0d 0a  ort label-1074..
30900 53 45 4c 45 43 54 20 4d 49 4e 20 28 20 2d 20 2b  SELECT MIN ( - +
30910 20 31 30 20 29 20 2b 20 2b 20 35 36 20 63 6f 6c   10 ) + + 56 col
30920 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
30930 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d  or0..----..46...
30940 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30950 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
30960 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
30970 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
30980 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
30990 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
309a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
309b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
309c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
309d0 61 62 65 6c 2d 31 30 37 36 0d 0a 53 45 4c 45 43  abel-1076..SELEC
309e0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  T COUNT( * ) FRO
309f0 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
30a00 45 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d  E NULL = NULL..-
30a10 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
30a20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30a30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30a40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30a50 30 37 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  076..SELECT COUN
30a60 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
30a70 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  0 cor0 WHERE NUL
30a80 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  L = NULL..----..
30a90 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
30aa0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
30ab0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  LL * FROM tab1 A
30ac0 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 28  S cor0 WHERE + (
30ad0 20 2d 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20   - - ( - col1 ) 
30ae0 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  ) NOT BETWEEN + 
30af0 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  col1 AND NULL..-
30b00 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
30b10 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
30b20 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
30b30 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65  1e4d54cad....que
30b40 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
30b50 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
30b60 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
30b70 20 28 20 4e 4f 54 20 28 20 2d 20 28 20 2d 20 2b   ( NOT ( - ( - +
30b80 20 37 36 20 29 20 29 20 49 53 20 4e 55 4c 4c 20   76 ) ) IS NULL 
30b90 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
30ba0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
30bb0 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
30bc0 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
30bd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30be0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
30bf0 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  T col2 FROM tab0
30c00 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
30c10 4f 54 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31  OT col1 * + col1
30c20 20 49 4e 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29   IN ( - + col1 )
30c30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a  ..----..10..47..
30c40 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  99....query II r
30c50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
30c60 49 53 54 49 4e 43 54 20 28 20 2d 20 2b 20 63 6f  ISTINCT ( - + co
30c70 6c 30 20 29 2c 20 2b 20 63 6f 6c 31 20 46 52 4f  l0 ), + col1 FRO
30c80 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab2..----..-4
30c90 36 0d 0a 35 31 0d 0a 2d 36 34 0d 0a 37 37 0d 0a  6..51..-64..77..
30ca0 2d 37 35 0d 0a 36 37 0d 0a 0d 0a 6f 6e 6c 79 69  -75..67....onlyi
30cb0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
30cc0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
30cd0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
30ce0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
30cf0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30d00 38 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  81..SELECT DISTI
30d10 4e 43 54 20 2b 20 4d 41 58 28 20 2b 20 38 37 20  NCT + MAX( + 87 
30d20 29 20 2b 20 33 36 20 2a 20 2d 20 2b 20 4d 49 4e  ) + 36 * - + MIN
30d30 28 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53  ( DISTINCT - CAS
30d40 54 28 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 53  T( - - col1 AS S
30d50 49 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c  IGNED ) ) AS col
30d60 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
30d70 2d 0d 0a 33 30 30 33 0d 0a 0d 0a 73 6b 69 70 69  -..3003....skipi
30d80 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30d90 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
30da0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30db0 31 30 38 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1081..SELECT DIS
30dc0 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20 2b 20  TINCT + MAX ( + 
30dd0 38 37 20 29 20 2b 20 33 36 20 2a 20 2d 20 2b 20  87 ) + 36 * - + 
30de0 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2d  MIN ( DISTINCT -
30df0 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c 31   CAST ( - - col1
30e00 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
30e10 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
30e20 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 30 33 0d 0a 0d  0..----..3003...
30e30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
30e40 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
30e50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
30e60 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 32 0d 0a  ort label-1082..
30e70 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
30e80 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
30e90 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
30ea0 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 39 36 20  - + col1 + - 96 
30eb0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33  IS NULL..----..3
30ec0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
30ed0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
30ee0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
30ef0 72 74 20 6c 61 62 65 6c 2d 31 30 38 32 0d 0a 53  rt label-1082..S
30f00 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
30f10 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
30f20 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
30f30 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 39 36 20  - + col1 + - 96 
30f40 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33  IS NULL..----..3
30f50 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
30f60 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
30f70 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
30f80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30f90 61 62 65 6c 2d 31 30 38 33 0d 0a 53 45 4c 45 43  abel-1083..SELEC
30fa0 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  T col2 AS col1 F
30fb0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
30fc0 4f 54 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c  OT + - CAST( NUL
30fd0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  L AS SIGNED ) + 
30fe0 2d 20 2b 20 39 36 20 49 53 20 4e 4f 54 20 4e 55  - + 96 IS NOT NU
30ff0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34 37  LL..----..10..47
31000 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..99....skipif m
31010 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
31020 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
31030 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38  owsort label-108
31040 33 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 41  3..SELECT col2 A
31050 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
31060 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 43   WHERE NOT + - C
31070 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
31080 54 45 47 45 52 20 29 20 2b 20 2d 20 2b 20 39 36  TEGER ) + - + 96
31090 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
310a0 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a  --..10..47..99..
310b0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
310c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
310d0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
310e0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 63   WHERE NOT - - c
310f0 6f 6c 32 20 3c 3e 20 2b 20 63 6f 6c 32 20 2b 20  ol2 <> + col2 + 
31100 2b 20 2d 20 37 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + - 70..----....
31110 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
31120 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
31130 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63  CT * FROM tab1 c
31140 6f 72 30 20 57 48 45 52 45 20 2d 20 28 20 2b 20  or0 WHERE - ( + 
31150 32 20 29 20 2a 20 63 6f 6c 32 20 2a 20 2b 20 63  2 ) * col2 * + c
31160 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol1 IS NOT NULL.
31170 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
31180 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
31190 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
311a0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f  a11e4d54cad....o
311b0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
311c0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
311d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
311e0 74 20 6c 61 62 65 6c 2d 31 30 38 36 0d 0a 53 45  t label-1086..SE
311f0 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
31200 2a 20 29 20 2a 20 2d 20 34 36 20 41 53 20 63 6f  * ) * - 46 AS co
31210 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
31220 2d 2d 0d 0a 2d 31 33 38 0d 0a 0d 0a 73 6b 69 70  --..-138....skip
31230 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31240 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
31250 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31260 2d 31 30 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c  -1086..SELECT AL
31270 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  L COUNT ( * ) * 
31280 2d 20 34 36 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 46 AS col1 FRO
31290 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
312a0 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  38....onlyif mys
312b0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
312c0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
312d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
312e0 30 38 37 0d 0a 53 45 4c 45 43 54 20 2d 20 33 20  087..SELECT - 3 
312f0 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  * - COUNT( * ) F
31300 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
31310 20 49 4e 4e 45 52 20 4a 4f 49 4e 20 74 61 62 32   INNER JOIN tab2
31320 20 63 6f 72 31 20 4f 4e 20 4e 55 4c 4c 20 49 53   cor1 ON NULL IS
31330 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
31340 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
31350 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31360 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
31370 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 37 0d  sort label-1087.
31380 0a 53 45 4c 45 43 54 20 2d 20 33 20 2a 20 2d 20  .SELECT - 3 * - 
31390 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
313a0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 49 4e   tab2 AS cor0 IN
313b0 4e 45 52 20 4a 4f 49 4e 20 74 61 62 32 20 63 6f  NER JOIN tab2 co
313c0 72 31 20 4f 4e 20 4e 55 4c 4c 20 49 53 20 4e 4f  r1 ON NULL IS NO
313d0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  T NULL..----..0.
313e0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
313f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
31400 6c 31 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30  l1 AS col0, col0
31410 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
31420 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 35  r0..----..-14..5
31430 31 0d 0a 2d 34 37 0d 0a 39 31 0d 0a 2d 35 0d 0a  1..-47..91..-5..
31440 38 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  85....onlyif mys
31450 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
31460 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
31470 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31480 30 38 39 0d 0a 53 45 4c 45 43 54 20 28 20 43 4f  089..SELECT ( CO
31490 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63 6f  UNT( * ) ) AS co
314a0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
314b0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
314c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
314d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
314e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
314f0 65 6c 2d 31 30 38 39 0d 0a 53 45 4c 45 43 54 20  el-1089..SELECT 
31500 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
31510 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
31520 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  2 cor0..----..3.
31530 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
31540 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33  rt..SELECT + - 3
31550 31 20 2a 20 2b 20 35 39 20 46 52 4f 4d 20 74 61  1 * + 59 FROM ta
31560 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
31570 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e   NOT + col0 IS N
31580 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 32 39  ULL..----..-1829
31590 0d 0a 2d 31 38 32 39 0d 0a 2d 31 38 32 39 0d 0a  ..-1829..-1829..
315a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
315b0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
315c0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
315d0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 31 0d  sort label-1091.
315e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
315f0 20 2b 20 28 20 2d 20 35 32 20 29 20 2a 20 2d 20   + ( - 52 ) * - 
31600 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
31610 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
31620 2d 2d 0d 0a 31 35 36 0d 0a 0d 0a 73 6b 69 70 69  --..156....skipi
31630 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
31640 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
31650 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31660 31 30 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1091..SELECT DIS
31670 54 49 4e 43 54 20 2b 20 28 20 2d 20 35 32 20 29  TINCT + ( - 52 )
31680 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   * - COUNT ( * )
31690 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
316a0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d 0a 0d  b2..----..156...
316b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
316c0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
316d0 54 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63  T + col2 + - - c
316e0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
316f0 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 31 35 0d 0a 36  ---..110..115..6
31700 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
31710 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
31720 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
31730 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
31740 39 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  93..SELECT COUNT
31750 28 20 41 4c 4c 20 2d 20 2b 20 39 38 20 29 20 41  ( ALL - + 98 ) A
31760 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
31770 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
31780 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
31790 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
317a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
317b0 6c 2d 31 30 39 33 0d 0a 53 45 4c 45 43 54 20 43  l-1093..SELECT C
317c0 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 2b 20 39  OUNT ( ALL - + 9
317d0 38 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  8 ) AS col2 FROM
317e0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
317f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31800 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
31810 43 54 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2b  CT col1 * col1 +
31820 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20   + - col2 + - + 
31830 38 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  82 AS col2 FROM 
31840 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36  tab1..----..-116
31850 0d 0a 31 38 0d 0a 32 30 35 39 0d 0a 0d 0a 71 75  ..18..2059....qu
31860 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
31870 53 45 4c 45 43 54 20 2d 20 36 38 2c 20 63 6f 6c  SELECT - 68, col
31880 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
31890 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 38 0d 0a  ab0..----..-68..
318a0 31 30 0d 0a 2d 36 38 0d 0a 34 37 0d 0a 2d 36 38  10..-68..47..-68
318b0 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..99....query I 
318c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
318d0 2b 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20  + + col0 * col1 
318e0 2b 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  + + + col0 FROM 
318f0 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
31900 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  IS NULL..----..1
31910 32 33 30 0d 0a 31 39 31 34 0d 0a 31 39 34 0d 0a  230..1914..194..
31920 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
31930 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
31940 63 6f 6c 30 20 2b 20 2b 20 2b 20 37 37 20 41 53  col0 + + + 77 AS
31950 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
31960 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 32 0d 0a 33 31  .----..13..2..31
31970 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
31980 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
31990 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
319a0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
319b0 4f 54 20 2d 20 2b 20 63 6f 6c 31 20 49 53 20 4e  OT - + col1 IS N
319c0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
319d0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
319e0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
319f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
31a00 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 39 0d 0a  ort label-1099..
31a10 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
31a20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  - + COUNT( * ) c
31a30 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
31a40 45 52 45 20 63 6f 6c 30 20 2d 20 35 30 20 49 53  ERE col0 - 50 IS
31a50 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   NULL..----..0..
31a60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
31a70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
31a80 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
31a90 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
31aa0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
31ab0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
31ac0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
31ad0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31ae0 31 30 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  1099..SELECT DIS
31af0 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e 54 20  TINCT - + COUNT 
31b00 28 20 2a 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  ( * ) col1 FROM 
31b10 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 30 20  tab0 WHERE col0 
31b20 2d 20 35 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  - 50 IS NULL..--
31b30 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  --..0....query I
31b40 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
31b50 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
31b60 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
31b70 54 20 2b 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20  T + col0 NOT IN 
31b80 28 20 2b 20 38 30 2c 20 63 6f 6c 32 20 2d 20 2d  ( + 80, col2 - -
31b90 20 36 37 20 2d 20 2d 20 2d 20 63 6f 6c 30 20 2a   67 - - - col0 *
31ba0 20 2b 20 2b 20 33 32 20 2a 20 2b 20 33 20 2a 20   + + 32 * + 3 * 
31bb0 36 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  60 )..----....on
31bc0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
31bd0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
31be0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
31bf0 74 20 6c 61 62 65 6c 2d 31 31 30 31 0d 0a 53 45  t label-1101..SE
31c00 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
31c10 2a 20 29 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20  * ), - COUNT( * 
31c20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  ) col0 FROM tab1
31c30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 33 0d 0a 0d  ..----..3..-3...
31c40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
31c50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
31c60 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
31c70 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
31c80 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
31c90 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
31ca0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
31cb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31cc0 31 31 30 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1101..SELECT ALL
31cd0 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2d 20   COUNT ( * ), - 
31ce0 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c 30  COUNT ( * ) col0
31cf0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
31d00 0d 0a 33 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79  ..3..-3....query
31d10 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
31d20 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
31d30 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
31d40 4e 4f 54 20 32 30 20 49 53 20 4e 55 4c 4c 0d 0a  NOT 20 IS NULL..
31d50 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
31d60 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
31d70 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
31d80 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
31d90 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
31da0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
31db0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
31dc0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
31dd0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31de0 2d 31 31 30 33 0d 0a 53 45 4c 45 43 54 20 41 4c  -1103..SELECT AL
31df0 4c 20 2d 20 2b 20 33 37 20 44 49 56 20 2b 20 43  L - + 37 DIV + C
31e00 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
31e10 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
31e20 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a  or0..----..-12..
31e30 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
31e40 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
31e50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31e60 20 6c 61 62 65 6c 2d 31 31 30 33 0d 0a 53 45 4c   label-1103..SEL
31e70 45 43 54 20 41 4c 4c 20 2d 20 2b 20 33 37 20 2f  ECT ALL - + 37 /
31e80 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
31e90 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
31ea0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
31eb0 2d 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  -12....skipif po
31ec0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
31ed0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
31ee0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
31ef0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
31f00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
31f10 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
31f20 20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 38 38   + - col2 * - 88
31f30 20 2a 20 2b 20 63 6f 6c 30 20 63 6f 6c 32 20 46   * + col0 col2 F
31f40 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
31f50 0d 0a 2d 2d 2d 2d 0d 0a 34 33 30 38 34 38 0d 0a  ..----..430848..
31f60 34 34 31 33 32 30 0d 0a 35 34 34 35 34 34 0d 0a  441320..544544..
31f70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
31f80 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
31f90 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
31fa0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 35 0d  sort label-1105.
31fb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49  .SELECT ALL - MI
31fc0 4e 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 2a 20  N( - + col0 ) * 
31fd0 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  - + COUNT( * ) F
31fe0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
31ff0 2d 32 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -291....skipif m
32000 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
32010 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
32020 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30  owsort label-110
32030 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  5..SELECT ALL - 
32040 4d 49 4e 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29  MIN ( - + col0 )
32050 20 2a 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   * - + COUNT ( *
32060 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
32070 2d 2d 0d 0a 2d 32 39 31 0d 0a 0d 0a 6f 6e 6c 79  --..-291....only
32080 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
32090 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
320a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
320b0 61 62 65 6c 2d 31 31 30 36 0d 0a 53 45 4c 45 43  abel-1106..SELEC
320c0 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a  T ALL - COUNT( *
320d0 20 29 20 2b 20 32 37 20 41 53 20 63 6f 6c 30 20   ) + 27 AS col0 
320e0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
320f0 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
32100 32 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 38  2 cor1..----..18
32110 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
32120 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
32130 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
32140 72 74 20 6c 61 62 65 6c 2d 31 31 30 36 0d 0a 53  rt label-1106..S
32150 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
32160 54 20 28 20 2a 20 29 20 2b 20 32 37 20 41 53 20  T ( * ) + 27 AS 
32170 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
32180 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
32190 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a 2d 2d 2d  N tab2 cor1..---
321a0 2d 0d 0a 31 38 0d 0a 0d 0a 71 75 65 72 79 20 49  -..18....query I
321b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
321c0 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c  T - col0 + - col
321d0 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  1 AS col1, + col
321e0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
321f0 2d 0d 0a 2d 31 33 38 0d 0a 36 38 0d 0a 2d 36 35  -..-138..68..-65
32200 0d 0a 39 36 0d 0a 2d 39 30 0d 0a 35 39 0d 0a 0d  ..96..-90..59...
32210 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
32220 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
32230 63 6f 6c 32 20 2b 20 2d 20 31 39 2c 20 2b 20 63  col2 + - 19, + c
32240 6f 6c 32 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20  ol2 - - col2 AS 
32250 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
32260 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 32 30 0d 0a 32 38  ----..-9..20..28
32270 0d 0a 39 34 0d 0a 38 30 0d 0a 31 39 38 0d 0a 0d  ..94..80..198...
32280 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32290 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
322a0 54 20 28 20 2d 20 2d 20 33 20 29 20 2a 20 2d 20  T ( - - 3 ) * - 
322b0 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
322c0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
322d0 2d 0d 0a 2d 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-6....query I
322e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
322f0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
32300 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
32310 57 48 45 52 45 20 4e 4f 54 20 32 36 20 49 53 20  WHERE NOT 26 IS 
32320 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
32330 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
32340 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
32350 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
32360 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
32370 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  sort..SELECT - +
32380 20 33 2c 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 35   3, col2 * - - 5
32390 37 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  7 FROM tab0 AS c
323a0 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
323b0 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e   ) NOT BETWEEN N
323c0 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
323d0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
323e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
323f0 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32 20  STINCT + + col2 
32400 2d 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  - - + col1 AS co
32410 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
32420 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d  cor0..----..117.
32430 0a 31 32 35 0d 0a 37 34 0d 0a 0d 0a 71 75 65 72  .125..74....quer
32440 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
32450 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
32460 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
32470 45 52 45 20 4e 4f 54 20 2d 20 32 20 2d 20 31 30  ERE NOT - 2 - 10
32480 20 2d 20 2d 20 34 20 49 53 20 4e 4f 54 20 4e 55   - - 4 IS NOT NU
32490 4c 4c 20 41 4e 44 20 4e 4f 54 20 2b 20 63 6f 6c  LL AND NOT + col
324a0 30 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  0 < NULL..----..
324b0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
324c0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 30 20  rt..SELECT + 60 
324d0 2f 20 2d 20 35 37 20 2a 20 2d 20 2d 20 35 31 2c  / - 57 * - - 51,
324e0 20 2b 20 35 38 20 41 53 20 63 6f 6c 32 20 46 52   + 58 AS col2 FR
324f0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 63 6f  OM tab0 WHERE co
32500 6c 32 20 2a 20 2d 20 35 34 20 2b 20 2b 20 2d 20  l2 * - 54 + + - 
32510 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
32520 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
32530 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
32540 4c 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  L + + col2 FROM 
32550 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab0 WHERE NOT +
32560 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 49   col2 * - col0 I
32570 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
32580 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
32590 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
325a0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
325b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
325c0 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  6..SELECT + COUN
325d0 54 28 20 41 4c 4c 20 2d 20 2b 20 28 20 2d 20 63  T( ALL - + ( - c
325e0 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol2 ) ) AS col2 
325f0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
32600 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
32610 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
32620 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
32630 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 36 0d  sort label-1116.
32640 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
32650 28 20 41 4c 4c 20 2d 20 2b 20 28 20 2d 20 63 6f  ( ALL - + ( - co
32660 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l2 ) ) AS col2 F
32670 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
32680 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  3....skipif post
32690 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
326a0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
326b0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
326c0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
326d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
326e0 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 36  ELECT - col0 * 6
326f0 36 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  6 col2 FROM tab2
32700 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 30 33 36 0d 0a 2d  ..----..-3036..-
32710 34 32 32 34 0d 0a 2d 34 39 35 30 0d 0a 0d 0a 71  4224..-4950....q
32720 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
32730 53 45 4c 45 43 54 20 32 33 20 2a 20 2b 20 2d 20  SELECT 23 * + - 
32740 28 20 2b 20 28 20 33 34 20 29 20 29 20 41 53 20  ( + ( 34 ) ) AS 
32750 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
32760 2d 2d 2d 2d 0d 0a 2d 37 38 32 0d 0a 2d 37 38 32  ----..-782..-782
32770 0d 0a 2d 37 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-782....onlyif
32780 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
32790 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
327a0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
327b0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 39 0d  sort label-1119.
327c0 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20  .SELECT - CAST( 
327d0 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  - col1 AS SIGNED
327e0 20 29 20 2a 20 2b 20 36 31 20 2a 20 2d 20 63 6f   ) * + 61 * - co
327f0 6c 32 20 2a 20 2d 20 38 37 20 46 52 4f 4d 20 74  l2 * - 87 FROM t
32800 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 34 34  ab0..----..11144
32810 37 30 0d 0a 32 30 32 30 33 37 34 39 0d 0a 35 32  70..20203749..52
32820 35 33 39 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  5393....skipif m
32830 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
32840 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
32850 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31  owsort label-111
32860 39 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  9..SELECT - CAST
32870 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e 54   ( - col1 AS INT
32880 45 47 45 52 20 29 20 2a 20 2b 20 36 31 20 2a 20  EGER ) * + 61 * 
32890 2d 20 63 6f 6c 32 20 2a 20 2d 20 38 37 20 46 52  - col2 * - 87 FR
328a0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
328b0 31 31 34 34 37 30 0d 0a 32 30 32 30 33 37 34 39  114470..20203749
328c0 0d 0a 35 32 35 33 39 33 0d 0a 0d 0a 71 75 65 72  ..525393....quer
328d0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
328e0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
328f0 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  2 WHERE NOT + co
32900 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 3e 3d 20 2d  l0 + - col2 >= -
32910 20 63 6f 6c 31 20 2f 20 2b 20 2d 20 63 6f 6c 30   col1 / + - col0
32920 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 39 30   + + col2 - + 90
32930 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
32940 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
32950 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
32960 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
32970 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
32980 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
32990 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
329a0 20 63 6f 6c 32 2c 20 39 33 20 46 52 4f 4d 20 74   col2, 93 FROM t
329b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
329c0 2d 0d 0a 32 33 0d 0a 39 33 0d 0a 34 30 0d 0a 39  -..23..93..40..9
329d0 33 0d 0a 35 38 0d 0a 39 33 0d 0a 0d 0a 71 75 65  3..58..93....que
329e0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
329f0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
32a00 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
32a10 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
32a20 29 20 3d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  ) = col0..----..
32a30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
32a40 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
32a50 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
32a60 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 33 0d  sort label-1123.
32a70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20  .SELECT ALL ( - 
32a80 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 63  + COUNT( ALL + c
32a90 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol1 ) ) FROM tab
32aa0 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  0 cor0..----..-3
32ab0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
32ac0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
32ad0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
32ae0 72 74 20 6c 61 62 65 6c 2d 31 31 32 33 0d 0a 53  rt label-1123..S
32af0 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 2b 20  ELECT ALL ( - + 
32b00 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 63 6f  COUNT ( ALL + co
32b10 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  l1 ) ) FROM tab0
32b20 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   cor0..----..-3.
32b30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
32b40 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 28  rt..SELECT - - (
32b50 20 2b 20 38 31 20 29 20 41 53 20 63 6f 6c 31 20   + 81 ) AS col1 
32b60 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
32b70 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 38 31 0d  0..----..81..81.
32b80 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .81....onlyif my
32b90 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
32ba0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
32bb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32bc0 74 20 6c 61 62 65 6c 2d 31 31 32 35 0d 0a 53 45  t label-1125..SE
32bd0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
32be0 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20  l1 + + col0 DIV 
32bf0 2d 20 37 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  - 71 FROM tab1..
32c00 2d 2d 2d 2d 0d 0a 31 34 0d 0a 34 0d 0a 34 36 0d  ----..14..4..46.
32c10 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
32c20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
32c30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32c40 74 20 6c 61 62 65 6c 2d 31 31 32 35 0d 0a 53 45  t label-1125..SE
32c50 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
32c60 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2f 20 2d 20  l1 + + col0 / - 
32c70 37 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  71 FROM tab1..--
32c80 2d 2d 0d 0a 31 34 0d 0a 34 0d 0a 34 36 0d 0a 0d  --..14..4..46...
32c90 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
32ca0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
32cb0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
32cc0 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 49 4e   ( NULL ) NOT IN
32cd0 20 28 20 33 31 20 2a 20 2d 20 63 6f 6c 31 20 29   ( 31 * - col1 )
32ce0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
32cf0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
32d00 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
32d10 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32d20 65 6c 2d 31 31 32 37 0d 0a 53 45 4c 45 43 54 20  el-1127..SELECT 
32d30 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
32d40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
32d50 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20  HERE NOT + col0 
32d60 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
32d70 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
32d80 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
32d90 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
32da0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32  owsort label-112
32db0 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  7..SELECT - COUN
32dc0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
32dd0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
32de0 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 53 20 4e 4f  NOT + col0 IS NO
32df0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  T NULL..----..0.
32e00 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
32e10 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
32e20 31 20 2b 20 2d 20 38 20 41 53 20 63 6f 6c 30 20  1 + - 8 AS col0 
32e30 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
32e40 0a 34 33 0d 0a 35 39 0d 0a 36 39 0d 0a 0d 0a 71  .43..59..69....q
32e50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
32e60 53 45 4c 45 43 54 20 2d 20 32 38 20 2a 20 2d 20  SELECT - 28 * - 
32e70 31 30 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 37 35  10 + - col1 * 75
32e80 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
32e90 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 35 0d  b0..----..-1295.
32ea0 0a 2d 35 37 39 35 0d 0a 32 30 35 0d 0a 0d 0a 6f  .-5795..205....o
32eb0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
32ec0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
32ed0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
32ee0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
32ef0 6c 2d 31 31 33 30 0d 0a 53 45 4c 45 43 54 20 44  l-1130..SELECT D
32f00 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
32f10 61 62 32 20 57 48 45 52 45 20 2d 20 43 41 53 54  ab2 WHERE - CAST
32f20 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44  ( col0 AS SIGNED
32f30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
32f40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
32f50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
32f60 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
32f70 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d  sort label-1130.
32f80 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
32f90 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
32fa0 52 45 20 2d 20 43 41 53 54 20 28 20 63 6f 6c 30  RE - CAST ( col0
32fb0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 49 53   AS INTEGER ) IS
32fc0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
32fd0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
32fe0 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
32ff0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
33000 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
33010 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33020 6c 2d 31 31 33 31 0d 0a 53 45 4c 45 43 54 20 2d  l-1131..SELECT -
33030 20 43 41 53 54 28 20 2b 20 43 4f 55 4e 54 28 20   CAST( + COUNT( 
33040 2a 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  * ) AS SIGNED ) 
33050 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
33060 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  0..----..-3....s
33070 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
33080 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
33090 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
330a0 62 65 6c 2d 31 31 33 31 0d 0a 53 45 4c 45 43 54  bel-1131..SELECT
330b0 20 2d 20 43 41 53 54 20 28 20 2b 20 43 4f 55 4e   - CAST ( + COUN
330c0 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47  T ( * ) AS INTEG
330d0 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ER ) AS col0 FRO
330e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab0..----..-3
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 41 4c 4c 20  ort..SELECT ALL 
33110 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20 46 52  col2 + - col1 FR
33120 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
33130 54 20 4e 55 4c 4c 20 3c 20 2b 20 63 6f 6c 31 0d  T NULL < + col1.
33140 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
33150 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
33160 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
33170 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
33180 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 33 0d 0a  ort label-1133..
33190 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 2b  SELECT + CAST( +
331a0 20 38 37 20 41 53 20 53 49 47 4e 45 44 20 29 20   87 AS SIGNED ) 
331b0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
331c0 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 38 37 0d  0..----..87..87.
331d0 0a 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .87....skipif my
331e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
331f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
33200 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 33  wsort label-1133
33210 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
33220 28 20 2b 20 38 37 20 41 53 20 49 4e 54 45 47 45  ( + 87 AS INTEGE
33230 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  R ) AS col1 FROM
33240 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d   tab0..----..87.
33250 0a 38 37 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c 79 69  .87..87....onlyi
33260 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
33270 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
33280 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
33290 62 65 6c 2d 31 31 33 34 0d 0a 53 45 4c 45 43 54  bel-1134..SELECT
332a0 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 28 20 2b   DISTINCT MIN( +
332b0 20 35 33 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   53 ) FROM tab0.
332c0 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 0d 0a 73 6b 69  .----..53....ski
332d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
332e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
332f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33300 6c 2d 31 31 33 34 0d 0a 53 45 4c 45 43 54 20 44  l-1134..SELECT D
33310 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 2b 20  ISTINCT MIN ( + 
33320 35 33 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  53 ) FROM tab0..
33330 2d 2d 2d 2d 0d 0a 35 33 0d 0a 0d 0a 6f 6e 6c 79  ----..53....only
33340 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
33350 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
33360 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
33370 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33380 33 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  35..SELECT DISTI
33390 4e 43 54 20 63 6f 6c 31 20 2d 20 2b 20 43 41 53  NCT col1 - + CAS
333a0 54 28 20 2b 20 31 34 20 2b 20 37 39 20 41 53 20  T( + 14 + 79 AS 
333b0 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c  DECIMAL ) AS col
333c0 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
333d0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 42  E NOT ( NULL ) B
333e0 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20  ETWEEN ( NULL ) 
333f0 41 4e 44 20 34 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  AND 47..----....
33400 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33410 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
33420 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33430 61 62 65 6c 2d 31 31 33 35 0d 0a 53 45 4c 45 43  abel-1135..SELEC
33440 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
33450 2d 20 2b 20 43 41 53 54 20 28 20 2b 20 31 34 20  - + CAST ( + 14 
33460 2b 20 37 39 20 41 53 20 52 45 41 4c 20 29 20 41  + 79 AS REAL ) A
33470 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
33480 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
33490 4c 20 29 20 42 45 54 57 45 45 4e 20 28 20 4e 55  L ) BETWEEN ( NU
334a0 4c 4c 20 29 20 41 4e 44 20 34 37 0d 0a 2d 2d 2d  LL ) AND 47..---
334b0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
334c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
334d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
334e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
334f0 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  36..SELECT DISTI
33500 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  NCT COUNT( * ) c
33510 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
33520 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54  ERE NOT NULL BET
33530 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20  WEEN NULL AND + 
33540 35 36 20 2f 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d  56 / + col0..---
33550 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
33560 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33570 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
33580 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
33590 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
335a0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
335b0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
335c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
335d0 6c 61 62 65 6c 2d 31 31 33 36 0d 0a 53 45 4c 45  label-1136..SELE
335e0 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
335f0 54 20 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f  T ( * ) col2 FRO
33600 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
33610 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55   NULL BETWEEN NU
33620 4c 4c 20 41 4e 44 20 2b 20 35 36 20 2f 20 2b 20  LL AND + 56 / + 
33630 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  col0..----..0...
33640 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
33650 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
33660 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
33670 20 4e 4f 54 20 28 20 34 34 20 29 20 4e 4f 54 20   NOT ( 44 ) NOT 
33680 49 4e 20 28 20 63 6f 6c 32 20 2a 20 63 6f 6c 30  IN ( col2 * col0
33690 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
336a0 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
336b0 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
336c0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
336d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33  owsort label-113
336e0 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 44  8..SELECT col0 D
336f0 49 56 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31  IV col1 + - col1
33700 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
33710 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 2d  b2..----..-51..-
33720 36 36 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b 69 70 69  66..-77....skipi
33730 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33740 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33750 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33760 31 31 33 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  1138..SELECT col
33770 30 20 2f 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  0 / col1 + - col
33780 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
33790 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a  ab2..----..-51..
337a0 2d 36 36 0d 0a 2d 37 37 0d 0a 0d 0a 71 75 65 72  -66..-77....quer
337b0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
337c0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
337d0 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
337e0 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20 49 53 20  - ( - col2 ) IS 
337f0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
33800 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
33810 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
33820 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
33830 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
33840 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
33850 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
33860 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 63 6f 6c  NULL BETWEEN col
33870 31 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a  1 AND ( NULL )..
33880 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
33890 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
338a0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
338b0 45 52 45 20 4e 4f 54 20 28 20 37 31 20 2a 20 2d  ERE NOT ( 71 * -
338c0 20 63 6f 6c 30 20 29 20 3c 20 63 6f 6c 31 20 2a   col0 ) < col1 *
338d0 20 63 6f 6c 32 20 2b 20 63 6f 6c 32 0d 0a 2d 2d   col2 + col2..--
338e0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
338f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
33900 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
33910 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
33920 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
33930 72 74 20 6c 61 62 65 6c 2d 31 31 34 32 0d 0a 53  rt label-1142..S
33940 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28  ELECT ALL + SUM(
33950 20 2b 20 63 6f 6c 32 20 29 20 44 49 56 20 2b 20   + col2 ) DIV + 
33960 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 37  COUNT( * ) + + 7
33970 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
33980 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 31 0d 0a  ab0..----..131..
33990 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
339a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
339b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
339c0 20 6c 61 62 65 6c 2d 31 31 34 32 0d 0a 53 45 4c   label-1142..SEL
339d0 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28 20  ECT ALL + SUM ( 
339e0 2b 20 63 6f 6c 32 20 29 20 2f 20 2b 20 43 4f 55  + col2 ) / + COU
339f0 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 37 39 20  NT ( * ) + + 79 
33a00 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
33a10 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 31 0d 0a 0d 0a  0..----..131....
33a20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
33a30 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
33a40 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
33a50 72 74 20 6c 61 62 65 6c 2d 31 31 34 33 0d 0a 53  rt label-1143..S
33a60 45 4c 45 43 54 20 41 4c 4c 20 39 20 2b 20 2b 20  ELECT ALL 9 + + 
33a70 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
33a80 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a  tab2..----..12..
33a90 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
33aa0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
33ab0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33ac0 20 6c 61 62 65 6c 2d 31 31 34 33 0d 0a 53 45 4c   label-1143..SEL
33ad0 45 43 54 20 41 4c 4c 20 39 20 2b 20 2b 20 43 4f  ECT ALL 9 + + CO
33ae0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
33af0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d  ab2..----..12...
33b00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33b10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
33b20 30 20 2a 20 2d 20 38 35 20 41 53 20 63 6f 6c 32  0 * - 85 AS col2
33b30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
33b40 0d 0a 2d 34 33 33 35 0d 0a 2d 37 32 32 35 0d 0a  ..-4335..-7225..
33b50 2d 37 37 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -7735....onlyif 
33b60 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
33b70 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
33b80 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
33b90 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 35 0d 0a  ort label-1145..
33ba0 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20  SELECT + col1 * 
33bb0 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49  CAST( col1 AS SI
33bc0 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46  GNED ) AS col0 F
33bd0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
33be0 31 0d 0a 34 34 31 0d 0a 36 35 36 31 0d 0a 0d 0a  1..441..6561....
33bf0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
33c00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
33c10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
33c20 61 62 65 6c 2d 31 31 34 35 0d 0a 53 45 4c 45 43  abel-1145..SELEC
33c30 54 20 2b 20 63 6f 6c 31 20 2a 20 43 41 53 54 20  T + col1 * CAST 
33c40 28 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  ( col1 AS INTEGE
33c50 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  R ) AS col0 FROM
33c60 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab0..----..1..
33c70 34 34 31 0d 0a 36 35 36 31 0d 0a 0d 0a 6f 6e 6c  441..6561....onl
33c80 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
33c90 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
33ca0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
33cb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33cc0 34 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  46..SELECT + CAS
33cd0 54 28 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53  T( CAST( col1 AS
33ce0 20 53 49 47 4e 45 44 20 29 20 41 53 20 53 49 47   SIGNED ) AS SIG
33cf0 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 30 20 46  NED ) + + col0 F
33d00 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
33d10 31 30 38 0d 0a 39 36 0d 0a 39 38 0d 0a 0d 0a 73  108..96..98....s
33d20 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
33d30 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
33d40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
33d50 62 65 6c 2d 31 31 34 36 0d 0a 53 45 4c 45 43 54  bel-1146..SELECT
33d60 20 2b 20 43 41 53 54 20 28 20 43 41 53 54 20 28   + CAST ( CAST (
33d70 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
33d80 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
33d90 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + + col0 FROM ta
33da0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a 39  b0..----..108..9
33db0 36 0d 0a 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..98....onlyif 
33dc0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
33dd0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
33de0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33df0 6c 2d 31 31 34 37 0d 0a 53 45 4c 45 43 54 20 44  l-1147..SELECT D
33e00 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
33e10 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
33e20 74 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab1 WHERE - col
33e30 30 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 29 0d  0 IN ( - col0 ).
33e40 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
33e50 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
33e60 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
33e70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33e80 2d 31 31 34 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1147..SELECT DI
33e90 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
33ea0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
33eb0 74 61 62 31 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab1 WHERE - col
33ec0 30 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 29 0d  0 IN ( - col0 ).
33ed0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79  .----..3....only
33ee0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
33ef0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
33f00 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
33f10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34  owsort label-114
33f20 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 63  8..SELECT col1 c
33f30 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
33f40 45 52 45 20 28 20 2b 20 43 41 53 54 28 20 2d 20  ERE ( + CAST( - 
33f50 33 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  37 AS SIGNED ) )
33f60 20 49 4e 20 28 20 2b 20 63 6f 6c 32 20 29 0d 0a   IN ( + col2 )..
33f70 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
33f80 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33f90 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
33fa0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
33fb0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
33fc0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
33fd0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
33fe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33ff0 6c 61 62 65 6c 2d 31 31 34 38 0d 0a 53 45 4c 45  label-1148..SELE
34000 43 54 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f  CT col1 col2 FRO
34010 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20 2b  M tab0 WHERE ( +
34020 20 43 41 53 54 20 28 20 2d 20 33 37 20 41 53 20   CAST ( - 37 AS 
34030 49 4e 54 45 47 45 52 20 29 20 29 20 49 4e 20 28  INTEGER ) ) IN (
34040 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   + col2 )..----.
34050 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
34060 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
34070 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
34080 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 39  wsort label-1149
34090 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
340a0 28 20 2a 20 29 20 2a 20 33 39 20 2b 20 53 55 4d  ( * ) * 39 + SUM
340b0 28 20 31 32 20 29 20 46 52 4f 4d 20 74 61 62 31  ( 12 ) FROM tab1
340c0 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20   WHERE NOT col2 
340d0 4e 4f 54 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d  NOT IN ( col1 ).
340e0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
340f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
34100 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
34110 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34120 62 65 6c 2d 31 31 34 39 0d 0a 53 45 4c 45 43 54  bel-1149..SELECT
34130 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
34140 20 33 39 20 2b 20 53 55 4d 20 28 20 31 32 20 29   39 + SUM ( 12 )
34150 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
34160 20 4e 4f 54 20 63 6f 6c 32 20 4e 4f 54 20 49 4e   NOT col2 NOT IN
34170 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d   ( col1 )..----.
34180 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
34190 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
341a0 20 2d 20 38 37 20 2b 20 2d 20 32 36 20 46 52 4f   - 87 + - 26 FRO
341b0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
341c0 31 33 0d 0a 2d 31 31 33 0d 0a 2d 31 31 33 0d 0a  13..-113..-113..
341d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
341e0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b  t..SELECT col0 +
341f0 20 32 35 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f   25 * + col0 FRO
34200 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
34210 20 2b 20 37 20 4e 4f 54 20 42 45 54 57 45 45 4e   + 7 NOT BETWEEN
34220 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 34 32 0d 0a   NULL AND + 42..
34230 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
34240 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
34250 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
34260 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
34270 72 74 20 6c 61 62 65 6c 2d 31 31 35 32 0d 0a 53  rt label-1152..S
34280 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c  ELECT CAST( NULL
34290 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 36   AS SIGNED ) * 6
342a0 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  3 AS col1 FROM t
342b0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
342c0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
342d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
342e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
342f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
34300 62 65 6c 2d 31 31 35 32 0d 0a 53 45 4c 45 43 54  bel-1152..SELECT
34310 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
34320 49 4e 54 45 47 45 52 20 29 20 2a 20 36 33 20 41  INTEGER ) * 63 A
34330 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
34340 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
34350 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
34360 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
34370 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
34380 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
34390 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
343a0 31 31 35 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46  1153..SELECT * F
343b0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
343c0 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 43  OT NULL IN ( - C
343d0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
343e0 49 4d 41 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  IMAL ) )..----..
343f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
34400 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
34410 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
34420 72 74 20 6c 61 62 65 6c 2d 31 31 35 33 0d 0a 53  rt label-1153..S
34430 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
34440 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
34450 20 49 4e 20 28 20 2d 20 43 41 53 54 20 28 20 4e   IN ( - CAST ( N
34460 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 29 0d  ULL AS REAL ) ).
34470 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
34480 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
34490 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
344a0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
344b0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
344c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 34  wsort label-1154
344d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
344e0 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T - CAST( NULL A
344f0 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 43  S SIGNED ) + - C
34500 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
34510 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab0..----..NULL.
34520 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
34530 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
34540 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34550 74 20 6c 61 62 65 6c 2d 31 31 35 34 0d 0a 53 45  t label-1154..SE
34560 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
34570 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
34580 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 43 4f 55  NTEGER ) + - COU
34590 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
345a0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
345b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
345c0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
345d0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
345e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
345f0 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45 43 54 20  el-1155..SELECT 
34600 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
34610 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
34620 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 28 20 2b  NULL BETWEEN ( +
34630 20 28 20 63 6f 6c 30 20 29 20 2a 20 2b 20 28 20   ( col0 ) * + ( 
34640 2b 20 63 6f 6c 30 20 2b 20 2d 20 28 20 43 41 53  + col0 + - ( CAS
34650 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
34660 44 20 29 20 29 20 29 20 2b 20 2b 20 35 37 20 2a  D ) ) ) + + 57 *
34670 20 63 6f 6c 30 20 29 20 41 4e 44 20 2b 20 35 34   col0 ) AND + 54
34680 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
34690 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
346a0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
346b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
346c0 31 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  155..SELECT DIST
346d0 49 4e 43 54 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  INCT - col2 FROM
346e0 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c   tab1 WHERE NULL
346f0 20 42 45 54 57 45 45 4e 20 28 20 2b 20 28 20 63   BETWEEN ( + ( c
34700 6f 6c 30 20 29 20 2a 20 2b 20 28 20 2b 20 63 6f  ol0 ) * + ( + co
34710 6c 30 20 2b 20 2d 20 28 20 43 41 53 54 20 28 20  l0 + - ( CAST ( 
34720 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
34730 29 20 29 20 29 20 2b 20 2b 20 35 37 20 2a 20 63  ) ) ) + + 57 * c
34740 6f 6c 30 20 29 20 41 4e 44 20 2b 20 35 34 0d 0a  ol0 ) AND + 54..
34750 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
34760 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34770 63 6f 6c 32 20 2b 20 32 37 20 41 53 20 63 6f 6c  col2 + 27 AS col
34780 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
34790 2d 0d 0a 31 32 36 0d 0a 33 37 0d 0a 37 34 0d 0a  -..126..37..74..
347a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
347b0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
347c0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
347d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
347e0 65 6c 2d 31 31 35 37 0d 0a 53 45 4c 45 43 54 20  el-1157..SELECT 
347f0 44 49 53 54 49 4e 43 54 20 2d 20 28 20 63 6f 6c  DISTINCT - ( col
34800 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  1 ) FROM tab1 AS
34810 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
34820 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
34830 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55 4c 4c  SIGNED ) IS NULL
34840 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
34850 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
34860 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
34870 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
34880 31 35 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  157..SELECT DIST
34890 49 4e 43 54 20 2d 20 28 20 63 6f 6c 31 20 29 20  INCT - ( col1 ) 
348a0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
348b0 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 43 41  0 WHERE NOT - CA
348c0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
348d0 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  EGER ) IS NULL..
348e0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
348f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
34900 33 30 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63  30 * - col0 AS c
34910 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
34920 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   cor0..----..-13
34930 38 30 0d 0a 2d 31 39 32 30 0d 0a 2d 32 32 35 30  80..-1920..-2250
34940 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
34950 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
34960 49 4e 43 54 20 2b 20 33 32 20 2f 20 2d 20 63 6f  INCT + 32 / - co
34970 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
34980 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
34990 55 4c 4c 20 3c 3e 20 2b 20 28 20 2b 20 32 39 20  ULL <> + ( + 29 
349a0 29 20 2a 20 37 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  ) * 74..----....
349b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
349c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
349d0 20 2d 20 39 30 20 41 53 20 63 6f 6c 30 20 46 52   - 90 AS col0 FR
349e0 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
349f0 52 45 20 4e 4f 54 20 35 39 20 2a 20 38 36 20 4e  RE NOT 59 * 86 N
34a00 4f 54 20 49 4e 20 28 20 2b 20 63 6f 6c 30 20 2b  OT IN ( + col0 +
34a10 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   - col2 )..----.
34a20 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
34a30 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
34a40 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b  ROM tab0 WHERE +
34a50 20 37 39 20 3c 3e 20 2d 20 37 38 0d 0a 2d 2d 2d   79 <> - 78..---
34a60 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
34a70 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
34a80 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
34a90 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
34aa0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
34ab0 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 36 39  CT + col1 + + 69
34ac0 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   * + col2 AS col
34ad0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
34ae0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 37 36 0d  or0..----..4076.
34af0 0a 34 37 33 39 0d 0a 36 36 33 38 0d 0a 0d 0a 71  .4739..6638....q
34b00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34b10 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20  SELECT col0 * - 
34b20 63 6f 6c 32 20 2b 20 32 32 20 46 52 4f 4d 20 74  col2 + 22 FROM t
34b30 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
34b40 45 20 2b 20 63 6f 6c 30 20 2a 20 28 20 63 6f 6c  E + col0 * ( col
34b50 31 20 2a 20 32 20 29 20 2b 20 32 35 20 3d 20 63  1 * 2 ) + 25 = c
34b60 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol2..----....que
34b70 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
34b80 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
34b90 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
34ba0 20 28 20 2b 20 63 6f 6c 31 20 29 20 42 45 54 57   ( + col1 ) BETW
34bb0 45 45 4e 20 28 20 39 38 20 29 20 41 4e 44 20 2b  EEN ( 98 ) AND +
34bc0 20 38 36 20 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d   86 * col0..----
34bd0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
34be0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
34bf0 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f  INCT col0 * + co
34c00 6c 31 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 37 33  l1 - col1 * - 73
34c10 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
34c20 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
34c30 0d 0a 31 37 33 36 0d 0a 37 37 30 38 0d 0a 37 39  ..1736..7708..79
34c40 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
34c50 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
34c60 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
34c70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
34c80 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20 37 35 20  66..SELECT - 75 
34c90 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
34ca0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
34cb0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
34cc0 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  2....skipif mysq
34cd0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
34ce0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
34cf0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 36 36 0d 0a  ort label-1166..
34d00 53 45 4c 45 43 54 20 2d 20 37 35 20 2b 20 43 4f  SELECT - 75 + CO
34d10 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
34d20 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
34d30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a  or0..----..-72..
34d40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34d50 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
34d60 43 54 20 34 39 20 2d 20 32 35 20 46 52 4f 4d 20  CT 49 - 25 FROM 
34d70 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
34d80 2d 2d 0d 0a 32 34 0d 0a 0d 0a 71 75 65 72 79 20  --..24....query 
34d90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34da0 54 20 41 4c 4c 20 63 6f 6c 30 20 2f 20 63 6f 6c  T ALL col0 / col
34db0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
34dc0 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  or0 WHERE ( NULL
34dd0 20 29 20 49 4e 20 28 20 63 6f 6c 32 20 29 0d 0a   ) IN ( col2 )..
34de0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
34df0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34e00 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
34e10 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
34e20 4e 4f 54 20 2b 20 63 6f 6c 30 20 42 45 54 57 45  NOT + col0 BETWE
34e30 45 4e 20 28 20 63 6f 6c 30 20 29 20 41 4e 44 20  EN ( col0 ) AND 
34e40 31 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  10..----..9 valu
34e50 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
34e60 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
34e70 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
34e80 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
34e90 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
34ea0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
34eb0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 30 0d  sort label-1170.
34ec0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
34ed0 20 28 20 2d 20 43 4f 55 4e 54 28 20 44 49 53 54   ( - COUNT( DIST
34ee0 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20 29 20  INCT - col0 ) ) 
34ef0 2a 20 43 4f 55 4e 54 28 20 2d 20 63 6f 6c 30 20  * COUNT( - col0 
34f00 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
34f10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d  or0..----..-9...
34f20 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34f30 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34f40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
34f50 6c 61 62 65 6c 2d 31 31 37 30 0d 0a 53 45 4c 45  label-1170..SELE
34f60 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20  CT DISTINCT ( - 
34f70 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54  COUNT ( DISTINCT
34f80 20 2d 20 63 6f 6c 30 20 29 20 29 20 2a 20 43 4f   - col0 ) ) * CO
34f90 55 4e 54 20 28 20 2d 20 63 6f 6c 30 20 29 20 46  UNT ( - col0 ) F
34fa0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
34fb0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e  ..----..-9....on
34fc0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
34fd0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
34fe0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34ff0 20 6c 61 62 65 6c 2d 31 31 37 31 0d 0a 53 45 4c   label-1171..SEL
35000 45 43 54 20 41 4c 4c 20 2d 20 39 32 20 2a 20 43  ECT ALL - 92 * C
35010 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
35020 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
35030 45 20 34 30 20 3d 20 63 6f 6c 31 0d 0a 2d 2d 2d  E 40 = col1..---
35040 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
35050 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
35060 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
35070 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37  owsort label-117
35080 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  1..SELECT ALL - 
35090 39 32 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29  92 * COUNT ( * )
350a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
350b0 72 30 20 57 48 45 52 45 20 34 30 20 3d 20 63 6f  r0 WHERE 40 = co
350c0 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  l1..----..0....q
350d0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
350e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
350f0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
35100 45 52 45 20 4e 4f 54 20 28 20 2d 20 28 20 38 33  ERE NOT ( - ( 83
35110 20 29 20 29 20 42 45 54 57 45 45 4e 20 2b 20 63   ) ) BETWEEN + c
35120 6f 6c 31 20 41 4e 44 20 37 37 0d 0a 2d 2d 2d 2d  ol1 AND 77..----
35130 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
35140 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
35150 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
35160 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66  d54cad....onlyif
35170 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
35180 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
35190 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
351a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 33  wsort label-1173
351b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
351c0 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
351d0 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57  AL ) FROM tab1 W
351e0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
351f0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
35200 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35210 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35220 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35230 62 65 6c 2d 31 31 37 33 0d 0a 53 45 4c 45 43 54  bel-1173..SELECT
35240 20 41 4c 4c 20 43 41 53 54 20 28 20 4e 55 4c 4c   ALL CAST ( NULL
35250 20 41 53 20 52 45 41 4c 20 29 20 46 52 4f 4d 20   AS REAL ) FROM 
35260 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
35270 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
35280 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
35290 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
352a0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
352b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
352c0 37 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  74..SELECT - COU
352d0 4e 54 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28  NT( * ) * COUNT(
352e0 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 35 33 20 29   + col0 * - 53 )
352f0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
35300 62 32 20 57 48 45 52 45 20 4e 4f 54 20 34 36 20  b2 WHERE NOT 46 
35310 2a 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  * col1 IS NOT NU
35320 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
35330 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
35340 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
35350 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35360 62 65 6c 2d 31 31 37 34 0d 0a 53 45 4c 45 43 54  bel-1174..SELECT
35370 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
35380 20 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 30 20   COUNT ( + col0 
35390 2a 20 2d 20 35 33 20 29 20 41 53 20 63 6f 6c 30  * - 53 ) AS col0
353a0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
353b0 20 4e 4f 54 20 34 36 20 2a 20 63 6f 6c 31 20 49   NOT 46 * col1 I
353c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
353d0 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
353e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
353f0 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 2a  ol0 * - + col0 *
35400 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
35410 0a 2d 2d 2d 2d 0d 0a 2d 32 34 39 36 39 36 0d 0a  .----..-249696..
35420 2d 34 32 36 32 37 35 0d 0a 2d 35 36 33 31 30 38  -426275..-563108
35430 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
35440 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
35450 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
35460 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
35470 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35480 20 6c 61 62 65 6c 2d 31 31 37 36 0d 0a 53 45 4c   label-1176..SEL
35490 45 43 54 20 2b 20 43 41 53 54 28 20 2b 20 32 34  ECT + CAST( + 24
354a0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
354b0 20 4d 41 58 28 20 63 6f 6c 30 20 29 20 41 53 20   MAX( col0 ) AS 
354c0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
354d0 48 45 52 45 20 4e 4f 54 20 2b 20 34 33 20 3c 3d  HERE NOT + 43 <=
354e0 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d   ( NULL )..----.
354f0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
35500 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
35510 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
35520 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35530 37 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  76..SELECT + CAS
35540 54 20 28 20 2b 20 32 34 20 41 53 20 49 4e 54 45  T ( + 24 AS INTE
35550 47 45 52 20 29 20 2b 20 2b 20 4d 41 58 20 28 20  GER ) + + MAX ( 
35560 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46  col0 ) AS col1 F
35570 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
35580 4f 54 20 2b 20 34 33 20 3c 3d 20 28 20 4e 55 4c  OT + 43 <= ( NUL
35590 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  L )..----..NULL.
355a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
355b0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
355c0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
355d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 37  wsort label-1177
355e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
355f0 4e 54 28 20 41 4c 4c 20 63 6f 6c 31 20 29 20 2a  NT( ALL col1 ) *
35600 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
35610 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
35620 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
35630 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35640 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35650 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 37 0d 0a  ort label-1177..
35660 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
35670 20 28 20 41 4c 4c 20 63 6f 6c 31 20 29 20 2a 20   ( ALL col1 ) * 
35680 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
35690 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
356a0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
356b0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
356c0 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
356d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
356e0 20 6c 61 62 65 6c 2d 31 31 37 38 0d 0a 53 45 4c   label-1178..SEL
356f0 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ECT col1 FROM ta
35700 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
35710 4c 20 3e 3d 20 2d 20 28 20 39 33 20 29 20 2b 20  L >= - ( 93 ) + 
35720 2d 20 43 41 53 54 28 20 63 6f 6c 31 20 2d 20 63  - CAST( col1 - c
35730 6f 6c 30 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ol0 AS DECIMAL )
35740 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
35750 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
35760 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
35770 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35780 31 37 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  178..SELECT col1
35790 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
357a0 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2d 20 28   NOT NULL >= - (
357b0 20 39 33 20 29 20 2b 20 2d 20 43 41 53 54 20 28   93 ) + - CAST (
357c0 20 63 6f 6c 31 20 2d 20 63 6f 6c 30 20 41 53 20   col1 - col0 AS 
357d0 52 45 41 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  REAL )..----....
357e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
357f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
35800 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
35810 72 74 20 6c 61 62 65 6c 2d 31 31 37 39 0d 0a 53  rt label-1179..S
35820 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2b  ELECT ALL MIN( +
35830 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52 4f   col2 ) col0 FRO
35840 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
35850 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35860 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35870 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
35880 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
35890 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
358a0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
358b0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
358c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
358d0 6c 2d 31 31 37 39 0d 0a 53 45 4c 45 43 54 20 41  l-1179..SELECT A
358e0 4c 4c 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 32 20  LL MIN ( + col2 
358f0 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
35900 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 6f 6e  ..----..10....on
35910 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
35920 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
35930 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35940 20 6c 61 62 65 6c 2d 31 31 38 30 0d 0a 53 45 4c   label-1180..SEL
35950 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  ECT DISTINCT + +
35960 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 36   SUM( DISTINCT 6
35970 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  6 ) AS col0 FROM
35980 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
35990 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 73 6b 69 70 69  ---..66....skipi
359a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
359b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
359c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
359d0 31 31 38 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  1180..SELECT DIS
359e0 54 49 4e 43 54 20 2b 20 2b 20 53 55 4d 20 28 20  TINCT + + SUM ( 
359f0 44 49 53 54 49 4e 43 54 20 36 36 20 29 20 41 53  DISTINCT 66 ) AS
35a00 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
35a10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  AS cor0..----..6
35a20 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
35a30 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
35a40 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
35a50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
35a60 38 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  81..SELECT ALL +
35a70 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
35a80 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 2c 20 74  ol0 FROM tab1, t
35a90 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
35aa0 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..9....skipif m
35ab0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
35ac0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
35ad0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
35ae0 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  1..SELECT ALL + 
35af0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
35b00 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 2c 20 74  ol0 FROM tab1, t
35b10 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
35b20 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..9....onlyif m
35b30 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
35b40 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
35b50 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
35b60 72 74 20 6c 61 62 65 6c 2d 31 31 38 32 0d 0a 53  rt label-1182..S
35b70 45 4c 45 43 54 20 2d 20 34 38 20 44 49 56 20 2b  ELECT - 48 DIV +
35b80 20 35 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   56 AS col2 FROM
35b90 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52   tab2 AS cor0 CR
35ba0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
35bb0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
35bc0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
35bd0 20 38 62 37 35 31 33 36 62 32 62 35 31 63 37 37   8b75136b2b51c77
35be0 33 34 35 63 30 33 38 30 34 65 63 31 63 64 61 35  345c03804ec1cda5
35bf0 63 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  c....skipif mysq
35c00 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35c10 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
35c20 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 32 0d 0a  ort label-1182..
35c30 53 45 4c 45 43 54 20 2d 20 34 38 20 2f 20 2b 20  SELECT - 48 / + 
35c40 35 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  56 AS col2 FROM 
35c50 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
35c60 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
35c70 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
35c80 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
35c90 38 62 37 35 31 33 36 62 32 62 35 31 63 37 37 33  8b75136b2b51c773
35ca0 34 35 63 30 33 38 30 34 65 63 31 63 64 61 35 63  45c03804ec1cda5c
35cb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
35cc0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
35cd0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
35ce0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
35cf0 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
35d00 2b 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20  + MAX( DISTINCT 
35d10 63 6f 6c 32 20 29 20 2b 20 2d 20 2b 20 43 4f 55  col2 ) + - + COU
35d20 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
35d30 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
35d40 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 0d  0..----..-102...
35d50 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
35d60 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35d70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35d80 6c 61 62 65 6c 2d 31 31 38 33 0d 0a 53 45 4c 45  label-1183..SELE
35d90 43 54 20 41 4c 4c 20 2d 20 2b 20 4d 41 58 20 28  CT ALL - + MAX (
35da0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 29   DISTINCT col2 )
35db0 20 2b 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a   + - + COUNT ( *
35dc0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
35dd0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
35de0 2d 2d 0d 0a 2d 31 30 32 0d 0a 0d 0a 6f 6e 6c 79  --..-102....only
35df0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
35e00 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
35e10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35e20 61 62 65 6c 2d 31 31 38 34 0d 0a 53 45 4c 45 43  abel-1184..SELEC
35e30 54 20 41 4c 4c 20 4d 41 58 28 20 44 49 53 54 49  T ALL MAX( DISTI
35e40 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  NCT - col1 ) FRO
35e50 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
35e60 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70  ----..-5....skip
35e70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
35e80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
35e90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
35ea0 2d 31 31 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c  -1184..SELECT AL
35eb0 4c 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  L MAX ( DISTINCT
35ec0 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
35ed0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
35ee0 2d 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-5....query I
35ef0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
35f00 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f   - - col2 + - co
35f10 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l2 FROM tab0 cor
35f20 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30  0..----..0..0..0
35f30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
35f40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
35f50 20 2b 20 2b 20 63 6f 6c 30 2c 20 2d 20 31 33 20   + + col0, - 13 
35f60 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
35f70 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d 31 33  0..----..51..-13
35f80 0d 0a 38 35 0d 0a 2d 31 33 0d 0a 39 31 0d 0a 2d  ..85..-13..91..-
35f90 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  13....query III 
35fa0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
35fb0 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  * FROM tab1 cor0
35fc0 20 57 48 45 52 45 20 28 20 32 36 20 2f 20 63 6f   WHERE ( 26 / co
35fd0 6c 32 20 29 20 49 4e 20 28 20 2b 20 28 20 63 6f  l2 ) IN ( + ( co
35fe0 6c 32 20 29 20 2a 20 63 6f 6c 32 20 2b 20 2b 20  l2 ) * col2 + + 
35ff0 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col0 )..----....
36000 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
36010 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
36020 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
36030 45 52 45 20 63 6f 6c 31 20 2a 20 2d 20 38 34 20  ERE col1 * - 84 
36040 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  + - col1 * + col
36050 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
36060 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
36070 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
36080 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
36090 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
360a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
360b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
360c0 35 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  57 AS col2 FROM 
360d0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
360e0 0a 2d 35 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-57....query I 
360f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36100 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
36110 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
36120 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
36130 4e 4f 54 20 28 20 2d 20 31 37 20 29 20 49 53 20  NOT ( - 17 ) IS 
36140 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  NULL..----..23..
36150 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20  40..58....query 
36160 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36170 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
36180 2a 20 2d 20 63 6f 6c 31 20 2b 20 35 32 20 41 53  * - col1 + 52 AS
36190 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
361a0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
361b0 31 34 34 0d 0a 2d 32 31 35 37 0d 0a 32 37 0d 0a  144..-2157..27..
361c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
361d0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
361e0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
361f0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 32 0d  sort label-1192.
36200 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20 41  .SELECT - SUM( A
36210 4c 4c 20 36 20 29 20 41 53 20 63 6f 6c 32 20 46  LL 6 ) AS col2 F
36220 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
36230 2d 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -18....skipif my
36240 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
36250 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
36260 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 32  wsort label-1192
36270 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
36280 20 41 4c 4c 20 36 20 29 20 41 53 20 63 6f 6c 32   ALL 6 ) AS col2
36290 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
362a0 0d 0a 2d 31 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-18....onlyif 
362b0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
362c0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
362d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
362e0 6c 2d 31 31 39 33 0d 0a 53 45 4c 45 43 54 20 44  l-1193..SELECT D
362f0 49 53 54 49 4e 43 54 20 2d 20 32 37 20 2b 20 2d  ISTINCT - 27 + -
36300 20 53 55 4d 28 20 41 4c 4c 20 2b 20 2d 20 36 20   SUM( ALL + - 6 
36310 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
36320 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d  ab0..----..-9...
36330 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
36340 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
36350 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36360 6c 61 62 65 6c 2d 31 31 39 33 0d 0a 53 45 4c 45  label-1193..SELE
36370 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32 37  CT DISTINCT - 27
36380 20 2b 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20 2b   + - SUM ( ALL +
36390 20 2d 20 36 20 29 20 41 53 20 63 6f 6c 32 20 46   - 6 ) AS col2 F
363a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
363b0 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  -9....query I ro
363c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
363d0 4c 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  L + col2 + + col
363e0 30 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  0 * - col2 AS co
363f0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
36400 2d 2d 0d 0a 2d 36 35 38 0d 0a 2d 38 36 30 0d 0a  --..-658..-860..
36410 2d 39 35 30 34 0d 0a 0d 0a 71 75 65 72 79 20 49  -9504....query I
36420 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36430 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30   DISTINCT - col0
36440 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
36450 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20  b0 WHERE - col0 
36460 2b 20 63 6f 6c 31 20 2a 20 2d 20 32 35 20 49 53  + col1 * - 25 IS
36470 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
36480 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
36490 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
364a0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
364b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
364c0 31 31 39 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1196..SELECT ALL
364d0 20 35 37 20 2a 20 2d 20 43 41 53 54 28 20 4e 55   57 * - CAST( NU
364e0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
364f0 20 2d 20 63 6f 6c 30 20 2b 20 28 20 2b 20 63 6f   - col0 + ( + co
36500 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l1 ) AS col0 FRO
36510 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
36520 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
36530 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36540 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36550 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36560 20 6c 61 62 65 6c 2d 31 31 39 36 0d 0a 53 45 4c   label-1196..SEL
36570 45 43 54 20 41 4c 4c 20 35 37 20 2a 20 2d 20 43  ECT ALL 57 * - C
36580 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
36590 54 45 47 45 52 20 29 20 2a 20 2d 20 63 6f 6c 30  TEGER ) * - col0
365a0 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 41 53   + ( + col1 ) AS
365b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
365c0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
365d0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
365e0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
365f0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
36600 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36610 62 65 6c 2d 31 31 39 37 0d 0a 53 45 4c 45 43 54  bel-1197..SELECT
36620 20 53 55 4d 28 20 2d 20 63 6f 6c 31 20 29 20 41   SUM( - col1 ) A
36630 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
36640 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 73  ..----..-66....s
36650 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
36660 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
36670 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36680 62 65 6c 2d 31 31 39 37 0d 0a 53 45 4c 45 43 54  bel-1197..SELECT
36690 20 53 55 4d 20 28 20 2d 20 63 6f 6c 31 20 29 20   SUM ( - col1 ) 
366a0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
366b0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a  1..----..-66....
366c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
366d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
366e0 20 2b 20 30 20 2b 20 2d 20 2b 20 63 6f 6c 32 20   + 0 + - + col2 
366f0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
36700 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 34  2..----..-23..-4
36710 30 0d 0a 2d 35 38 0d 0a 0d 0a 71 75 65 72 79 20  0..-58....query 
36720 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36730 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  T col0 AS col0 F
36740 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
36750 55 4c 4c 20 49 4e 20 28 20 63 6f 6c 30 20 2a 20  ULL IN ( col0 * 
36760 36 38 20 2a 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d  68 * col2 )..---
36770 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
36780 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
36790 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   + + col2 * + co
367a0 6c 30 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 30 20  l0 - + col0 * 0 
367b0 2a 20 35 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  * 59 AS col0 FRO
367c0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
367d0 2d 2d 2d 2d 0d 0a 31 30 35 38 0d 0a 32 35 36 30  ----..1058..2560
367e0 0d 0a 34 33 35 30 0d 0a 0d 0a 71 75 65 72 79 20  ..4350....query 
367f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
36800 54 20 41 4c 4c 20 63 6f 6c 31 20 46 52 4f 4d 20  T ALL col1 FROM 
36810 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
36820 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 4e  RE NOT NULL <= N
36830 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
36840 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
36850 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
36860 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
36870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36880 30 32 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  02..SELECT col1 
36890 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
368a0 48 45 52 45 20 28 20 2d 20 43 41 53 54 28 20 4e  HERE ( - CAST( N
368b0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
368c0 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
368d0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
368e0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
368f0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
36900 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 32  wsort label-1202
36910 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 46 52  ..SELECT col1 FR
36920 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48 45  OM tab1 cor0 WHE
36930 52 45 20 28 20 2d 20 43 41 53 54 20 28 20 4e 55  RE ( - CAST ( NU
36940 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
36950 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
36960 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
36970 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
36980 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
36990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
369a0 74 20 6c 61 62 65 6c 2d 31 32 30 33 0d 0a 53 45  t label-1203..SE
369b0 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20  LECT - col0 + + 
369c0 2d 20 43 41 53 54 28 20 2d 20 2d 20 63 6f 6c 30  - CAST( - - col0
369d0 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
369e0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
369f0 30 32 0d 0a 2d 31 37 30 0d 0a 2d 31 38 32 0d 0a  02..-170..-182..
36a00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36a10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36a20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36a30 20 6c 61 62 65 6c 2d 31 32 30 33 0d 0a 53 45 4c   label-1203..SEL
36a40 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d  ECT - col0 + + -
36a50 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c 30   CAST ( - - col0
36a60 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
36a70 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
36a80 31 30 32 0d 0a 2d 31 37 30 0d 0a 2d 31 38 32 0d  102..-170..-182.
36a90 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
36aa0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
36ab0 20 35 36 20 2b 20 2d 20 39 35 20 46 52 4f 4d 20   56 + - 95 FROM 
36ac0 74 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f  tab2 AS cor0 CRO
36ad0 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
36ae0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
36af0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
36b00 35 30 34 64 31 34 39 33 39 64 35 38 61 65 62 34  504d14939d58aeb4
36b10 61 31 34 66 33 31 63 38 30 64 65 35 62 35 33 65  a14f31c80de5b53e
36b20 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
36b30 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
36b40 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f  col0 AS col0, co
36b50 6c 31 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c  l1 * col1 AS col
36b60 31 2c 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c  1, - col1 AS col
36b70 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
36b80 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
36b90 69 6e 67 20 74 6f 20 32 34 36 34 64 36 37 62 33  ing to 2464d67b3
36ba0 36 35 62 33 32 66 34 66 64 66 33 35 30 39 31 34  65b32f4fdf350914
36bb0 65 39 39 65 62 38 63 0d 0a 0d 0a 6f 6e 6c 79 69  e99eb8c....onlyi
36bc0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
36bd0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
36be0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36bf0 62 65 6c 2d 31 32 30 36 0d 0a 53 45 4c 45 43 54  bel-1206..SELECT
36c00 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f   DISTINCT - + CO
36c10 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
36c20 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
36c30 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  L BETWEEN NULL A
36c40 4e 44 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30  ND col2..----..0
36c50 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
36c60 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
36c70 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
36c80 72 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d 0a 53  rt label-1206..S
36c90 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
36ca0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
36cb0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
36cc0 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  OT NULL BETWEEN 
36cd0 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 32 0d 0a 2d  NULL AND col2..-
36ce0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
36cf0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
36d00 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
36d10 57 48 45 52 45 20 34 34 20 3d 20 28 20 4e 55 4c  WHERE 44 = ( NUL
36d20 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
36d30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36d40 4c 45 43 54 20 41 4c 4c 20 2d 20 32 32 20 2b 20  LECT ALL - 22 + 
36d50 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  + col1 FROM tab2
36d60 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 34 35 0d 0a  ..----..29..45..
36d70 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  55....onlyif mys
36d80 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
36d90 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
36da0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36db0 20 6c 61 62 65 6c 2d 31 32 30 39 0d 0a 53 45 4c   label-1209..SEL
36dc0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
36dd0 41 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53  AST( + col2 AS S
36de0 49 47 4e 45 44 20 29 20 2a 20 2b 20 63 6f 6c 30  IGNED ) * + col0
36df0 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   - + col2 * - co
36e00 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
36e10 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 38 37  tab2..----..1587
36e20 0d 0a 34 31 36 30 0d 0a 37 37 31 34 0d 0a 0d 0a  ..4160..7714....
36e30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
36e40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
36e50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36e60 61 62 65 6c 2d 31 32 30 39 0d 0a 53 45 4c 45 43  abel-1209..SELEC
36e70 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  T DISTINCT + CAS
36e80 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e  T ( + col2 AS IN
36e90 54 45 47 45 52 20 29 20 2a 20 2b 20 63 6f 6c 30  TEGER ) * + col0
36ea0 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   - + col2 * - co
36eb0 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
36ec0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35 38 37  tab2..----..1587
36ed0 0d 0a 34 31 36 30 0d 0a 37 37 31 34 0d 0a 0d 0a  ..4160..7714....
36ee0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
36ef0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
36f00 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
36f10 20 4e 4f 54 20 28 20 2d 20 28 20 28 20 2d 20 63   NOT ( - ( ( - c
36f20 6f 6c 30 20 29 20 29 20 29 20 49 53 20 4e 55 4c  ol0 ) ) ) IS NUL
36f30 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
36f40 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
36f50 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
36f60 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
36f70 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
36f80 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
36f90 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
36fa0 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 2d 20 63  HERE NOT ( + - c
36fb0 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 20 41 4e  ol2 ) IS NULL AN
36fc0 44 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 49  D ( NULL ) NOT I
36fd0 4e 20 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  N ( col2 )..----
36fe0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
36ff0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
37000 2d 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 36  - - col2 * - - 6
37010 35 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 31 36 20  5 + col0 + + 16 
37020 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
37030 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
37040 0a 33 30 38 36 0d 0a 36 35 34 38 0d 0a 37 35 33  .3086..6548..753
37050 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
37060 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
37070 39 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  90 FROM tab1 AS 
37080 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
37090 30 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 2b  0 * - + col1 * +
370a0 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30   + col0 + + col0
370b0 20 2b 20 63 6f 6c 30 20 3c 20 2b 20 38 36 0d 0a   + col0 < + 86..
370c0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
370d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
370e0 44 49 53 54 49 4e 43 54 20 2d 20 39 34 20 2a 20  DISTINCT - 94 * 
370f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
37100 2d 2d 2d 2d 0d 0a 2d 31 39 37 34 0d 0a 2d 37 36  ----..-1974..-76
37110 31 34 0d 0a 2d 39 34 0d 0a 0d 0a 6f 6e 6c 79 69  14..-94....onlyi
37120 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
37130 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
37140 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37150 62 65 6c 2d 31 32 31 35 0d 0a 53 45 4c 45 43 54  bel-1215..SELECT
37160 20 41 4c 4c 20 2d 20 53 55 4d 28 20 44 49 53 54   ALL - SUM( DIST
37170 49 4e 43 54 20 2b 20 38 35 20 29 20 41 53 20 63  INCT + 85 ) AS c
37180 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
37190 2d 2d 2d 0d 0a 2d 38 35 0d 0a 0d 0a 73 6b 69 70  ---..-85....skip
371a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
371b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
371c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
371d0 2d 31 32 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c  -1215..SELECT AL
371e0 4c 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e  L - SUM ( DISTIN
371f0 43 54 20 2b 20 38 35 20 29 20 41 53 20 63 6f 6c  CT + 85 ) AS col
37200 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
37210 2d 0d 0a 2d 38 35 0d 0a 0d 0a 71 75 65 72 79 20  -..-85....query 
37220 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37230 54 20 44 49 53 54 49 4e 43 54 20 39 30 20 2a 20  T DISTINCT 90 * 
37240 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
37250 2d 2d 2d 2d 0d 0a 32 30 37 30 0d 0a 33 36 30 30  ----..2070..3600
37260 0d 0a 35 32 32 30 0d 0a 0d 0a 71 75 65 72 79 20  ..5220....query 
37270 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37280 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2d 20 31  T ALL col0 * - 1
37290 31 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f  1 * + - col2 FRO
372a0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31  M tab2..----..11
372b0 36 33 38 0d 0a 32 38 31 36 30 0d 0a 34 37 38 35  638..28160..4785
372c0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
372d0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
372e0 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
372f0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
37300 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37310 74 20 6c 61 62 65 6c 2d 31 32 31 38 0d 0a 53 45  t label-1218..SE
37320 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
37330 44 49 56 20 2b 20 2d 20 43 4f 55 4e 54 28 20 39  DIV + - COUNT( 9
37340 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  6 ) AS col1 FROM
37350 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab0..----..-1.
37360 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
37370 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
37380 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37390 74 20 6c 61 62 65 6c 2d 31 32 31 38 0d 0a 53 45  t label-1218..SE
373a0 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
373b0 20 2f 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 39   / + - COUNT ( 9
373c0 36 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  6 ) AS col1 FROM
373d0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d   tab0..----..-1.
373e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
373f0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
37400 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
37410 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37420 62 65 6c 2d 31 32 31 39 0d 0a 53 45 4c 45 43 54  bel-1219..SELECT
37430 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f   DISTINCT + + co
37440 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
37450 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 43 41 53  RE NOT ( NOT CAS
37460 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
37470 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20  D ) IS NOT NULL 
37480 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
37490 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
374a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
374b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
374c0 31 32 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  1219..SELECT DIS
374d0 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20 46  TINCT + + col1 F
374e0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
374f0 4f 54 20 28 20 4e 4f 54 20 43 41 53 54 20 28 20  OT ( NOT CAST ( 
37500 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
37510 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d  ) IS NOT NULL ).
37520 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
37530 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
37540 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
37550 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
37560 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
37570 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
37580 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
37590 74 20 6c 61 62 65 6c 2d 31 32 32 30 0d 0a 53 45  t label-1220..SE
375a0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
375b0 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20 2d  COUNT( * ) DIV -
375c0 20 28 20 37 35 20 29 20 2a 20 2d 20 35 31 20 41   ( 75 ) * - 51 A
375d0 53 20 63 6f 6c 30 2c 20 2b 20 4d 41 58 28 20 43  S col0, + MAX( C
375e0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43  AST( NULL AS DEC
375f0 49 4d 41 4c 20 29 20 29 20 41 53 20 63 6f 6c 31  IMAL ) ) AS col1
37600 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
37610 0d 0a 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ..0..NULL....ski
37620 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37630 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37640 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
37650 65 6c 2d 31 32 32 30 0d 0a 53 45 4c 45 43 54 20  el-1220..SELECT 
37660 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
37670 20 28 20 2a 20 29 20 2f 20 2d 20 28 20 37 35 20   ( * ) / - ( 75 
37680 29 20 2a 20 2d 20 35 31 20 41 53 20 63 6f 6c 30  ) * - 51 AS col0
37690 2c 20 2b 20 4d 41 58 20 28 20 43 41 53 54 20 28  , + MAX ( CAST (
376a0 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
376b0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
376c0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 4e 55  ab0..----..0..NU
376d0 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49  LL....query IIII
376e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
376f0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 2c 20  CT * FROM tab0, 
37700 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
37710 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20  RE NOT NULL NOT 
37720 49 4e 20 28 20 2b 20 2b 20 32 33 20 29 0d 0a 2d  IN ( + + 23 )..-
37730 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
37740 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
37750 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
37760 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37770 31 32 32 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  1222..SELECT DIS
37780 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  TINCT COUNT( * )
37790 20 2a 20 28 20 34 32 20 29 20 46 52 4f 4d 20 74   * ( 42 ) FROM t
377a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 36 0d 0a  ab0..----..126..
377b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
377c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
377d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
377e0 20 6c 61 62 65 6c 2d 31 32 32 32 0d 0a 53 45 4c   label-1222..SEL
377f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
37800 4e 54 20 28 20 2a 20 29 20 2a 20 28 20 34 32 20  NT ( * ) * ( 42 
37810 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
37820 2d 0d 0a 31 32 36 0d 0a 0d 0a 71 75 65 72 79 20  -..126....query 
37830 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37840 54 20 41 4c 4c 20 63 6f 6c 30 20 41 53 20 63 6f  T ALL col0 AS co
37850 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l1 FROM tab0 WHE
37860 52 45 20 4e 4f 54 20 28 20 63 6f 6c 30 20 29 20  RE NOT ( col0 ) 
37870 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  IS NULL..----..1
37880 35 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65  5..87..97....que
37890 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
378a0 4c 45 43 54 20 41 4c 4c 20 2b 20 32 39 20 46 52  LECT ALL + 29 FR
378b0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
378c0 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  NULL ) IS NULL..
378d0 2d 2d 2d 2d 0d 0a 32 39 0d 0a 32 39 0d 0a 32 39  ----..29..29..29
378e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
378f0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
37900 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
37910 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32  owsort label-122
37920 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
37930 43 54 20 2b 20 36 38 20 2a 20 2d 20 2d 20 53 55  CT + 68 * - - SU
37940 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  M( DISTINCT + + 
37950 34 36 20 29 20 2b 20 34 34 20 2b 20 2d 20 2b 20  46 ) + 44 + - + 
37960 28 20 38 37 20 29 20 46 52 4f 4d 20 74 61 62 32  ( 87 ) FROM tab2
37970 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 38   cor0..----..308
37980 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
37990 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
379a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
379b0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 35 0d 0a  ort label-1225..
379c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
379d0 2b 20 36 38 20 2a 20 2d 20 2d 20 53 55 4d 20 28  + 68 * - - SUM (
379e0 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 34 36   DISTINCT + + 46
379f0 20 29 20 2b 20 34 34 20 2b 20 2d 20 2b 20 28 20   ) + 44 + - + ( 
37a00 38 37 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63  87 ) FROM tab2 c
37a10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 38 35 0d  or0..----..3085.
37a20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37a30 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
37a40 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
37a50 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
37a60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37a70 6c 61 62 65 6c 2d 31 32 32 36 0d 0a 53 45 4c 45  label-1226..SELE
37a80 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
37a90 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 44 49 56  ALL - col0 ) DIV
37aa0 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
37ab0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
37ac0 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  ---..1....skipif
37ad0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
37ae0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
37af0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37b00 32 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  226..SELECT ALL 
37b10 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20  + COUNT ( ALL - 
37b20 63 6f 6c 30 20 29 20 2f 20 43 4f 55 4e 54 20 28  col0 ) / COUNT (
37b30 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   * ) FROM tab1 A
37b40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  S cor0..----..1.
37b50 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37b60 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
37b70 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
37b80 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
37b90 61 62 65 6c 2d 31 32 32 37 0d 0a 53 45 4c 45 43  abel-1227..SELEC
37ba0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 43  T DISTINCT - + C
37bb0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
37bc0 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 2c 20 28  NED ) AS col2, (
37bd0 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
37be0 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
37bf0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 35  ..----..NULL..-5
37c00 31 0d 0a 4e 55 4c 4c 0d 0a 2d 36 37 0d 0a 4e 55  1..NULL..-67..NU
37c10 4c 4c 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b 69 70 69  LL..-77....skipi
37c20 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
37c30 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
37c40 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
37c50 2d 31 32 32 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1227..SELECT DI
37c60 53 54 49 4e 43 54 20 2d 20 2b 20 43 41 53 54 20  STINCT - + CAST 
37c70 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
37c80 52 20 29 20 41 53 20 63 6f 6c 32 2c 20 28 20 2d  R ) AS col2, ( -
37c90 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
37ca0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
37cb0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 35 31 0d  ----..NULL..-51.
37cc0 0a 4e 55 4c 4c 0d 0a 2d 36 37 0d 0a 4e 55 4c 4c  .NULL..-67..NULL
37cd0 0d 0a 2d 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-77....query I
37ce0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37cf0 54 20 2d 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  T - + col0 AS co
37d00 6c 30 2c 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  l0, col2 FROM ta
37d10 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
37d20 0d 0a 2d 35 31 0d 0a 39 36 0d 0a 2d 38 35 0d 0a  ..-51..96..-85..
37d30 35 39 0d 0a 2d 39 31 0d 0a 36 38 0d 0a 0d 0a 71  59..-91..68....q
37d40 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
37d50 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
37d60 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28  tab0 WHERE NOT (
37d70 20 4e 55 4c 4c 20 29 20 3c 3e 20 38 38 0d 0a 2d   NULL ) <> 88..-
37d80 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
37d90 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
37da0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
37db0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
37dc0 31 32 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1230..SELECT ALL
37dd0 20 2b 20 31 35 20 2a 20 2d 20 43 4f 55 4e 54 28   + 15 * - COUNT(
37de0 20 41 4c 4c 20 2d 20 2d 20 34 33 20 29 20 41 53   ALL - - 43 ) AS
37df0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
37e00 0a 2d 2d 2d 2d 0d 0a 2d 34 35 0d 0a 0d 0a 73 6b  .----..-45....sk
37e10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
37e20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
37e30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37e40 65 6c 2d 31 32 33 30 0d 0a 53 45 4c 45 43 54 20  el-1230..SELECT 
37e50 41 4c 4c 20 2b 20 31 35 20 2a 20 2d 20 43 4f 55  ALL + 15 * - COU
37e60 4e 54 20 28 20 41 4c 4c 20 2d 20 2d 20 34 33 20  NT ( ALL - - 43 
37e70 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
37e80 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 0d 0a  ab0..----..-45..
37e90 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
37ea0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
37eb0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
37ec0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 31 0d  sort label-1231.
37ed0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
37ee0 20 2d 20 36 39 20 2a 20 2d 20 39 39 20 2a 20 2d   - 69 * - 99 * -
37ef0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
37f00 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
37f10 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
37f20 2d 2d 2d 2d 0d 0a 2d 32 30 34 39 30 0d 0a 0d 0a  ----..-20490....
37f30 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37f40 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37f50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
37f60 61 62 65 6c 2d 31 32 33 31 0d 0a 53 45 4c 45 43  abel-1231..SELEC
37f70 54 20 44 49 53 54 49 4e 43 54 20 2d 20 36 39 20  T DISTINCT - 69 
37f80 2a 20 2d 20 39 39 20 2a 20 2d 20 43 4f 55 4e 54  * - 99 * - COUNT
37f90 20 28 20 2a 20 29 20 2b 20 2d 20 2d 20 43 4f 55   ( * ) + - - COU
37fa0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
37fb0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
37fc0 0d 0a 2d 32 30 34 39 30 0d 0a 0d 0a 71 75 65 72  ..-20490....quer
37fd0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
37fe0 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 63  ECT DISTINCT ( c
37ff0 6f 6c 32 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 30  ol2 ) * + + col0
38000 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * - col0 FROM t
38010 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 35 37  ab0..----..-1057
38020 35 0d 0a 2d 37 35 36 39 30 0d 0a 2d 39 33 31 34  5..-75690..-9314
38030 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  91....onlyif mys
38040 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
38050 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
38060 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38070 20 6c 61 62 65 6c 2d 31 32 33 33 0d 0a 53 45 4c   label-1233..SEL
38080 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 2d  ECT ALL col1 * -
38090 20 43 41 53 54 28 20 38 38 20 41 53 20 53 49 47   CAST( 88 AS SIG
380a0 4e 45 44 20 29 20 2b 20 2d 20 37 20 46 52 4f 4d  NED ) + - 7 FROM
380b0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32   tab1..----..-12
380c0 33 39 0d 0a 2d 34 31 34 33 0d 0a 2d 34 34 37 0d  39..-4143..-447.
380d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
380e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
380f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
38100 74 20 6c 61 62 65 6c 2d 31 32 33 33 0d 0a 53 45  t label-1233..SE
38110 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20  LECT ALL col1 * 
38120 2d 20 43 41 53 54 20 28 20 38 38 20 41 53 20 49  - CAST ( 88 AS I
38130 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 37 20 46  NTEGER ) + - 7 F
38140 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
38150 2d 31 32 33 39 0d 0a 2d 34 31 34 33 0d 0a 2d 34  -1239..-4143..-4
38160 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  47....query III 
38170 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
38180 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
38190 45 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d  E - + col0 + + -
381a0 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c 30   col1 + + - col0
381b0 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20   BETWEEN - col1 
381c0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
381d0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
381e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
381f0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
38200 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 34 34  or0 WHERE NOT 44
38210 20 3c 3d 20 2d 20 33 36 0d 0a 2d 2d 2d 2d 0d 0a   <= - 36..----..
38220 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
38230 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
38240 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
38250 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  43b7....query II
38260 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
38270 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
38280 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
38290 48 45 52 45 20 4e 4f 54 20 33 35 20 49 53 20 4e  HERE NOT 35 IS N
382a0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
382b0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
382c0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
382d0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
382e0 48 45 52 45 20 28 20 2d 20 63 6f 6c 30 20 2a 20  HERE ( - col0 * 
382f0 2d 20 37 30 20 2b 20 37 35 20 2a 20 2d 20 33 35  - 70 + 75 * - 35
38300 20 2f 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c   / + col1 IS NUL
38310 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  L )..----....que
38320 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
38330 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
38340 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
38350 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
38360 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e  NOT NULL BETWEEN
38370 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 30   NULL AND + col0
38380 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
38390 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
383a0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
383b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
383c0 61 62 65 6c 2d 31 32 33 39 0d 0a 53 45 4c 45 43  abel-1239..SELEC
383d0 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 41 4c 4c  T ALL + SUM( ALL
383e0 20 2b 20 28 20 2d 20 39 31 20 29 20 29 20 41 53   + ( - 91 ) ) AS
383f0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
38400 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 33  cor0..----..-273
38410 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
38420 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
38430 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
38440 72 74 20 6c 61 62 65 6c 2d 31 32 33 39 0d 0a 53  rt label-1239..S
38450 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20  ELECT ALL + SUM 
38460 28 20 41 4c 4c 20 2b 20 28 20 2d 20 39 31 20 29  ( ALL + ( - 91 )
38470 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
38480 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
38490 0a 2d 32 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .-273....query I
384a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
384b0 20 2d 20 31 35 20 2b 20 2b 20 63 6f 6c 30 20 2a   - 15 + + col0 *
384c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
384d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 0d  cor0..----..210.
384e0 0a 37 35 35 34 0d 0a 39 33 39 34 0d 0a 0d 0a 6f  .7554..9394....o
384f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
38500 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
38510 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
38520 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
38530 2d 31 32 34 31 0d 0a 53 45 4c 45 43 54 20 2b 20  -1241..SELECT + 
38540 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 2c  + col1 + + col2,
38550 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
38560 49 47 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f  IGNED ) col1 FRO
38570 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
38580 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 4e 55 4c 4c 0d  ----..110..NULL.
38590 0a 31 31 35 0d 0a 4e 55 4c 4c 0d 0a 36 34 0d 0a  .115..NULL..64..
385a0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
385b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
385c0 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
385d0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
385e0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
385f0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
38600 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
38610 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
38620 20 6c 61 62 65 6c 2d 31 32 34 31 0d 0a 53 45 4c   label-1241..SEL
38630 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b  ECT + + col1 + +
38640 20 63 6f 6c 32 2c 20 43 41 53 54 20 28 20 4e 55   col2, CAST ( NU
38650 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
38660 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
38670 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
38680 30 0d 0a 4e 55 4c 4c 0d 0a 31 31 35 0d 0a 4e 55  0..NULL..115..NU
38690 4c 4c 0d 0a 36 34 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  LL..64..NULL....
386a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
386b0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
386c0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
386d0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
386e0 65 6c 2d 31 32 34 32 0d 0a 53 45 4c 45 43 54 20  el-1242..SELECT 
386f0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
38700 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
38710 52 45 20 4e 4f 54 20 63 6f 6c 32 20 2f 20 2b 20  RE NOT col2 / + 
38720 43 41 53 54 28 20 2d 20 31 32 20 41 53 20 53 49  CAST( - 12 AS SI
38730 47 4e 45 44 20 29 20 2a 20 2b 20 33 37 20 49 53  GNED ) * + 37 IS
38740 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
38750 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
38760 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
38770 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
38780 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 32 0d 0a  ort label-1242..
38790 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
387a0 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
387b0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  or0 WHERE NOT co
387c0 6c 32 20 2f 20 2b 20 43 41 53 54 20 28 20 2d 20  l2 / + CAST ( - 
387d0 31 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  12 AS INTEGER ) 
387e0 2a 20 2b 20 33 37 20 49 53 20 4e 4f 54 20 4e 55  * + 37 IS NOT NU
387f0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
38800 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
38810 45 43 54 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c  ECT + col0 * col
38820 32 20 2b 20 2b 20 2d 20 28 20 2d 20 2b 20 63 6f  2 + + - ( - + co
38830 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l2 ) AS col2 FRO
38840 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
38850 2d 2d 2d 2d 0d 0a 31 30 38 31 0d 0a 32 36 30 30  ----..1081..2600
38860 0d 0a 34 34 30 38 0d 0a 0d 0a 71 75 65 72 79 20  ..4408....query 
38870 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
38880 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
38890 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
388a0 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
388b0 49 4e 20 28 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  IN ( + col1 * - 
388c0 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20  - col0 * - col0 
388d0 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 38 34 20  * - col0 + - 84 
388e0 2d 20 2d 20 36 36 20 2a 20 2d 20 63 6f 6c 31 20  - - 66 * - col1 
388f0 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
38900 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38910 43 54 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  CT - + col2 FROM
38920 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
38930 45 52 45 20 28 20 4e 4f 54 20 2b 20 63 6f 6c 30  ERE ( NOT + col0
38940 20 2a 20 2d 20 63 6f 6c 31 20 3d 20 2d 20 38 35   * - col1 = - 85
38950 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d   )..----..-23..-
38960 34 30 0d 0a 2d 35 38 0d 0a 0d 0a 71 75 65 72 79  40..-58....query
38970 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38980 43 54 20 35 35 20 2b 20 63 6f 6c 31 20 2b 20 63  CT 55 + col1 + c
38990 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 2a  ol2 * + + col0 *
389a0 20 2d 20 2b 20 37 35 20 41 53 20 63 6f 6c 32 20   - + 75 AS col2 
389b0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
389c0 0a 2d 33 36 37 31 33 31 0d 0a 2d 33 37 36 30 36  .-367131..-37606
389d0 35 0d 0a 2d 34 36 33 39 39 38 0d 0a 0d 0a 6f 6e  5..-463998....on
389e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
389f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
38a00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38a10 20 6c 61 62 65 6c 2d 31 32 34 37 0d 0a 53 45 4c   label-1247..SEL
38a20 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d 28 20 2d  ECT ALL + SUM( -
38a30 20 32 34 20 29 20 41 53 20 63 6f 6c 30 20 46 52   24 ) AS col0 FR
38a40 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
38a50 37 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  72....skipif mys
38a60 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
38a70 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
38a80 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 37 0d  sort label-1247.
38a90 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55  .SELECT ALL + SU
38aa0 4d 20 28 20 2d 20 32 34 20 29 20 41 53 20 63 6f  M ( - 24 ) AS co
38ab0 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
38ac0 2d 2d 0d 0a 2d 37 32 0d 0a 0d 0a 71 75 65 72 79  --..-72....query
38ad0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38ae0 43 54 20 41 4c 4c 20 38 31 20 2b 20 2d 20 63 6f  CT ALL 81 + - co
38af0 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
38b00 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  tab1..----..-10.
38b10 0a 2d 34 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72 79  .-4..30....query
38b20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38b30 43 54 20 28 20 2d 20 31 32 20 29 20 2b 20 63 6f  CT ( - 12 ) + co
38b40 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
38b50 2d 2d 0d 0a 34 37 0d 0a 35 36 0d 0a 38 34 0d 0a  --..47..56..84..
38b60 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
38b70 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
38b80 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
38b90 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
38ba0 4e 4f 54 20 49 4e 20 28 20 2d 20 63 6f 6c 31 2c  NOT IN ( - col1,
38bb0 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 2c 20 63 6f   col0 / col0, co
38bc0 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l2 )..----....on
38bd0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
38be0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
38bf0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38c00 20 6c 61 62 65 6c 2d 31 32 35 31 0d 0a 53 45 4c   labe