sqllogictest
Hex Artifact Content
Not logged in

Artifact 4647fafea4abd650f72d3bb33a509129520021f7:


0000: 68 61 73 68 2d 74 68 72 65 73 68 6f 6c 64 20 38  hash-threshold 8
0010: 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b  ....statement ok
0020: 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45 20 74  ..CREATE TABLE t
0030: 61 62 30 28 63 6f 6c 30 20 49 4e 54 45 47 45 52  ab0(col0 INTEGER
0040: 2c 20 63 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20  , col1 INTEGER, 
0050: 63 6f 6c 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d  col2 INTEGER)...
0060: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43  .statement ok..C
0070: 52 45 41 54 45 20 54 41 42 4c 45 20 74 61 62 31  REATE TABLE tab1
0080: 28 63 6f 6c 30 20 49 4e 54 45 47 45 52 2c 20 63  (col0 INTEGER, c
0090: 6f 6c 31 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c  ol1 INTEGER, col
00a0: 32 20 49 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74  2 INTEGER)....st
00b0: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 43 52 45 41  atement ok..CREA
00c0: 54 45 20 54 41 42 4c 45 20 74 61 62 32 28 63 6f  TE TABLE tab2(co
00d0: 6c 30 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 31  l0 INTEGER, col1
00e0: 20 49 4e 54 45 47 45 52 2c 20 63 6f 6c 32 20 49   INTEGER, col2 I
00f0: 4e 54 45 47 45 52 29 0d 0a 0d 0a 73 74 61 74 65  NTEGER)....state
0100: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0110: 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55 45 53  INTO tab0 VALUES
0120: 28 39 37 2c 31 2c 39 39 29 0d 0a 0d 0a 73 74 61  (97,1,99)....sta
0130: 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52  tement ok..INSER
0140: 54 20 49 4e 54 4f 20 74 61 62 30 20 56 41 4c 55  T INTO tab0 VALU
0150: 45 53 28 31 35 2c 38 31 2c 34 37 29 0d 0a 0d 0a  ES(15,81,47)....
0160: 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e  statement ok..IN
0170: 53 45 52 54 20 49 4e 54 4f 20 74 61 62 30 20 56  SERT INTO tab0 V
0180: 41 4c 55 45 53 28 38 37 2c 32 31 2c 31 30 29 0d  ALUES(87,21,10).
0190: 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d  ...statement ok.
01a0: 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62  .INSERT INTO tab
01b0: 31 20 56 41 4c 55 45 53 28 35 31 2c 31 34 2c 39  1 VALUES(51,14,9
01c0: 36 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e 74 20  6)....statement 
01d0: 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54 4f 20  ok..INSERT INTO 
01e0: 74 61 62 31 20 56 41 4c 55 45 53 28 38 35 2c 35  tab1 VALUES(85,5
01f0: 2c 35 39 29 0d 0a 0d 0a 73 74 61 74 65 6d 65 6e  ,59)....statemen
0200: 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20 49 4e 54  t ok..INSERT INT
0210: 4f 20 74 61 62 31 20 56 41 4c 55 45 53 28 39 31  O tab1 VALUES(91
0220: 2c 34 37 2c 36 38 29 0d 0a 0d 0a 73 74 61 74 65  ,47,68)....state
0230: 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45 52 54 20  ment ok..INSERT 
0240: 49 4e 54 4f 20 74 61 62 32 20 56 41 4c 55 45 53  INTO tab2 VALUES
0250: 28 36 34 2c 37 37 2c 34 30 29 0d 0a 0d 0a 73 74  (64,77,40)....st
0260: 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49 4e 53 45  atement ok..INSE
0270: 52 54 20 49 4e 54 4f 20 74 61 62 32 20 56 41 4c  RT INTO tab2 VAL
0280: 55 45 53 28 37 35 2c 36 37 2c 35 38 29 0d 0a 0d  UES(75,67,58)...
0290: 0a 73 74 61 74 65 6d 65 6e 74 20 6f 6b 0d 0a 49  .statement ok..I
02a0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 61 62 32 20  NSERT INTO tab2 
02b0: 56 41 4c 55 45 53 28 34 36 2c 35 31 2c 32 33 29  VALUES(46,51,23)
02c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
02d0: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
02e0: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
02f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 30 0d 0a  owsort label-0..
0300: 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 35 34  SELECT + MAX( 54
0310: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
0320: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
0330: 3c 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  <> ( NULL )..---
0340: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
0350: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
0360: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
0370: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0380: 30 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20  0..SELECT + MAX 
0390: 28 20 35 34 20 29 20 46 52 4f 4d 20 74 61 62 30  ( 54 ) FROM tab0
03a0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
03b0: 55 4c 4c 20 3c 3e 20 28 20 4e 55 4c 4c 20 29 0d  ULL <> ( NULL ).
03c0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
03d0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
03e0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
03f0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
0400: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 63 6f   cor0 WHERE ( co
0410: 6c 31 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e  l1 ) NOT BETWEEN
0420: 20 2b 20 63 6f 6c 31 20 41 4e 44 20 28 20 63 6f   + col1 AND ( co
0430: 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l2 )..----....on
0440: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
0450: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
0460: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
0470: 20 6c 61 62 65 6c 2d 32 0d 0a 53 45 4c 45 43 54   label-2..SELECT
0480: 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
0490: 54 28 20 63 6f 6c 32 20 29 20 2b 20 2b 20 43 4f  T( col2 ) + + CO
04a0: 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
04b0: 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
04c0: 54 20 2d 20 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c  T - col0 - - col
04d0: 32 20 42 45 54 57 45 45 4e 20 2b 20 35 34 20 41  2 BETWEEN + 54 A
04e0: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 36  ND NULL..----..6
04f0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
0500: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
0510: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
0520: 72 74 20 6c 61 62 65 6c 2d 32 0d 0a 53 45 4c 45  rt label-2..SELE
0530: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
0540: 55 4e 54 20 28 20 63 6f 6c 32 20 29 20 2b 20 2b  UNT ( col2 ) + +
0550: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
0560: 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
0570: 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2d 20 2d  E NOT - col0 - -
0580: 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2b 20   col2 BETWEEN + 
0590: 35 34 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  54 AND NULL..---
05a0: 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..6....query I 
05b0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
05c0: 44 49 53 54 49 4e 43 54 20 38 35 20 41 53 20 63  DISTINCT 85 AS c
05d0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
05e0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d   cor0..----..85.
05f0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
0600: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
0610: 20 31 32 20 2a 20 2d 20 63 6f 6c 32 20 41 53 20   12 * - col2 AS 
0620: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
0630: 2d 2d 2d 2d 0d 0a 31 31 35 32 0d 0a 37 30 38 0d  ----..1152..708.
0640: 0a 38 31 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .816....query II
0650: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
0660: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
0670: 45 52 45 20 4e 4f 54 20 2d 20 37 37 20 3c 20 4e  ERE NOT - 77 < N
0680: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
0690: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
06a0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
06b0: 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
06c0: 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2a 20 33  E NOT + col2 * 3
06d0: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c   NOT BETWEEN col
06e0: 32 20 41 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a  2 AND ( NULL )..
06f0: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
0700: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
0710: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
0720: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
0730: 2d 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  -7..SELECT DISTI
0740: 4e 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20 63  NCT COUNT( ALL c
0750: 6f 6c 32 20 29 20 2a 20 35 38 20 63 6f 6c 31 20  ol2 ) * 58 col1 
0760: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
0770: 0a 31 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .174....skipif m
0780: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
0790: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
07a0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
07b0: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
07c0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
07d0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
07e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
07f0: 6c 61 62 65 6c 2d 37 0d 0a 53 45 4c 45 43 54 20  label-7..SELECT 
0800: 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28  DISTINCT COUNT (
0810: 20 41 4c 4c 20 63 6f 6c 32 20 29 20 2a 20 35 38   ALL col2 ) * 58
0820: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
0830: 0a 2d 2d 2d 2d 0d 0a 31 37 34 0d 0a 0d 0a 6f 6e  .----..174....on
0840: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
0850: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
0860: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
0870: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
0880: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
0890: 54 20 63 6f 6c 31 20 44 49 56 20 2b 20 2b 20 63  T col1 DIV + + c
08a0: 6f 6c 30 20 2a 20 2b 20 34 34 20 41 53 20 63 6f  ol0 * + 44 AS co
08b0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
08c0: 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
08d0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
08e0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
08f0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 0d  rowsort label-8.
0900: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
0910: 20 63 6f 6c 31 20 2f 20 2b 20 2b 20 63 6f 6c 30   col1 / + + col0
0920: 20 2a 20 2b 20 34 34 20 41 53 20 63 6f 6c 32 20   * + 44 AS col2 
0930: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
0940: 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
0950: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
0960: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
0970: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
0980: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d  ..SELECT ALL - M
0990: 41 58 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  AX( DISTINCT col
09a0: 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  0 ) FROM tab1 WH
09b0: 45 52 45 20 4e 4f 54 20 2d 20 32 35 20 2b 20 2b  ERE NOT - 25 + +
09c0: 20 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   0 IS NULL..----
09d0: 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-91....skipif 
09e0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
09f0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
0a00: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 0d  rowsort label-9.
0a10: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
0a20: 58 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  X ( DISTINCT col
0a30: 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  0 ) FROM tab1 WH
0a40: 45 52 45 20 4e 4f 54 20 2d 20 32 35 20 2b 20 2b  ERE NOT - 25 + +
0a50: 20 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   0 IS NULL..----
0a60: 0d 0a 2d 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-91....query I
0a70: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
0a80: 20 44 49 53 54 49 4e 43 54 20 39 31 20 46 52 4f   DISTINCT 91 FRO
0a90: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
0aa0: 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 63 6f   col2 BETWEEN co
0ab0: 6c 32 20 2b 20 2b 20 34 39 20 2a 20 2b 20 63 6f  l2 + + 49 * + co
0ac0: 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l0 AND NULL..---
0ad0: 2d 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..91....skipif 
0ae0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
0af0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
0b00: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
0b10: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
0b20: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0b30: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
0b40: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
0b50: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
0b60: 4e 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d  N ( + col1 )..--
0b70: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
0b80: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
0b90: 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
0ba0: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
0bb0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
0bc0: 72 74 20 6c 61 62 65 6c 2d 31 32 0d 0a 53 45 4c  rt label-12..SEL
0bd0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31  ECT DISTINCT - 1
0be0: 39 20 44 49 56 20 2b 20 2d 20 43 4f 55 4e 54 28  9 DIV + - COUNT(
0bf0: 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
0c00: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d  M tab0..----..6.
0c10: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
0c20: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
0c30: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0c40: 74 20 6c 61 62 65 6c 2d 31 32 0d 0a 53 45 4c 45  t label-12..SELE
0c50: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 31 39  CT DISTINCT - 19
0c60: 20 2f 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   / + - COUNT ( *
0c70: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
0c80: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d  tab0..----..6...
0c90: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
0ca0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
0cb0: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
0cc0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
0cd0: 62 65 6c 2d 31 33 0d 0a 53 45 4c 45 43 54 20 2a  bel-13..SELECT *
0ce0: 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
0cf0: 20 4e 4f 54 20 31 38 20 4e 4f 54 20 42 45 54 57   NOT 18 NOT BETW
0d00: 45 45 4e 20 28 20 43 41 53 54 28 20 2b 20 63 6f  EEN ( CAST( + co
0d10: 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2d  l2 AS SIGNED ) -
0d20: 20 35 32 20 29 20 41 4e 44 20 2d 20 63 6f 6c 31   52 ) AND - col1
0d30: 20 2a 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   * + col1..----.
0d40: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
0d50: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
0d60: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
0d70: 6f 72 74 20 6c 61 62 65 6c 2d 31 33 0d 0a 53 45  ort label-13..SE
0d80: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
0d90: 20 57 48 45 52 45 20 4e 4f 54 20 31 38 20 4e 4f   WHERE NOT 18 NO
0da0: 54 20 42 45 54 57 45 45 4e 20 28 20 43 41 53 54  T BETWEEN ( CAST
0db0: 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54   ( + col2 AS INT
0dc0: 45 47 45 52 20 29 20 2d 20 35 32 20 29 20 41 4e  EGER ) - 52 ) AN
0dd0: 44 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  D - col1 * + col
0de0: 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  1..----....onlyi
0df0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
0e00: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
0e10: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0e20: 62 65 6c 2d 31 34 0d 0a 53 45 4c 45 43 54 20 44  bel-14..SELECT D
0e30: 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2b  ISTINCT COUNT( +
0e40: 20 34 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   4 ) FROM tab2..
0e50: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
0e60: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
0e70: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
0e80: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0e90: 31 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  14..SELECT DISTI
0ea0: 4e 43 54 20 43 4f 55 4e 54 20 28 20 2b 20 34 20  NCT COUNT ( + 4 
0eb0: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
0ec0: 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  -..3....skipif p
0ed0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
0ee0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
0ef0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
0f00: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
0f10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
0f20: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
0f30: 6f 6c 32 20 2b 20 2d 20 31 38 20 63 6f 6c 30 20  ol2 + - 18 col0 
0f40: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
0f50: 2d 20 63 6f 6c 32 20 2d 20 28 20 63 6f 6c 31 20  - col2 - ( col1 
0f60: 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
0f70: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
0f80: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
0f90: 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 41 53   ( + - col2 ) AS
0fa0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
0fb0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  cor0..----..10..
0fc0: 34 37 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  47..99....onlyif
0fd0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
0fe0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
0ff0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1000: 65 6c 2d 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20  el-17..SELECT - 
1010: 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20  - MIN( DISTINCT 
1020: 2b 20 34 34 20 29 20 41 53 20 63 6f 6c 32 20 46  + 44 ) AS col2 F
1030: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1040: 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 0d 0a 73 6b  ..----..44....sk
1050: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1060: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1070: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1080: 65 6c 2d 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20  el-17..SELECT - 
1090: 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  - MIN ( DISTINCT
10a0: 20 2b 20 34 34 20 29 20 41 53 20 63 6f 6c 32 20   + 44 ) AS col2 
10b0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
10c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 0d 0a 6f  0..----..44....o
10d0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
10e0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
10f0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1100: 74 20 6c 61 62 65 6c 2d 31 38 0d 0a 53 45 4c 45  t label-18..SELE
1110: 43 54 20 41 4c 4c 20 2d 20 2b 20 28 20 2d 20 43  CT ALL - + ( - C
1120: 4f 55 4e 54 28 20 2a 20 29 20 29 20 46 52 4f 4d  OUNT( * ) ) FROM
1130: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1140: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
1150: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1160: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1170: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
1180: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  8..SELECT ALL - 
1190: 2b 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  + ( - COUNT ( * 
11a0: 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ) ) FROM tab1 AS
11b0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
11c0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
11d0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
11e0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
11f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 0d 0a 53  sort label-19..S
1200: 45 4c 45 43 54 20 2b 20 2b 20 4d 49 4e 28 20 2b  ELECT + + MIN( +
1210: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
1220: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1230: 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .51....skipif my
1240: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1250: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1260: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 0d 0a  wsort label-19..
1270: 53 45 4c 45 43 54 20 2b 20 2b 20 4d 49 4e 20 28  SELECT + + MIN (
1280: 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   + col1 ) FROM t
1290: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
12a0: 2d 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49  -..51....query I
12b0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
12c0: 20 41 4c 4c 20 33 38 20 2b 20 63 6f 6c 30 20 41   ALL 38 + col0 A
12d0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
12e0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
12f0: 6f 6c 30 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  ol0 BETWEEN NULL
1300: 20 41 4e 44 20 28 20 2d 20 35 36 20 29 0d 0a 2d   AND ( - 56 )..-
1310: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
1320: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
1330: 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
1340: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1350: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1360: 6f 72 74 20 6c 61 62 65 6c 2d 32 31 0d 0a 53 45  ort label-21..SE
1370: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1380: 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
1390: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
13a0: 52 45 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 30 20  RE NOT + + col0 
13b0: 2b 20 63 6f 6c 32 20 2a 20 35 36 20 3d 20 28 20  + col2 * 56 = ( 
13c0: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
13d0: 53 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d  SIGNED ) )..----
13e0: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
13f0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1400: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1410: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31 0d 0a  wsort label-21..
1420: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1430: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
1440: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
1450: 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20 63 6f  WHERE NOT + + co
1460: 6c 30 20 2b 20 63 6f 6c 32 20 2a 20 35 36 20 3d  l0 + col2 * 56 =
1470: 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   ( + CAST ( NULL
1480: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 0d   AS INTEGER ) ).
1490: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
14a0: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
14b0: 4c 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63  LECT - col2 AS c
14c0: 6f 6c 31 2c 20 2b 20 38 38 20 46 52 4f 4d 20 74  ol1, + 88 FROM t
14d0: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  ab0..----..-10..
14e0: 38 38 0d 0a 2d 34 37 0d 0a 38 38 0d 0a 2d 39 39  88..-47..88..-99
14f0: 0d 0a 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..88....onlyif m
1500: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1510: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1520: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1530: 2d 32 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -23..SELECT DIST
1540: 49 4e 43 54 20 2d 20 2b 20 28 20 43 4f 55 4e 54  INCT - + ( COUNT
1550: 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 29 20 46  ( - + col0 ) ) F
1560: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1570: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
1580: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1590: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
15a0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
15b0: 65 6c 2d 32 33 0d 0a 53 45 4c 45 43 54 20 44 49  el-23..SELECT DI
15c0: 53 54 49 4e 43 54 20 2d 20 2b 20 28 20 43 4f 55  STINCT - + ( COU
15d0: 4e 54 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20  NT ( - + col0 ) 
15e0: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
15f0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  or0..----..-3...
1600: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1610: 0d 0a 53 45 4c 45 43 54 20 34 39 20 2a 20 2b 20  ..SELECT 49 * + 
1620: 31 31 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  11 + + col2 FROM
1630: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1640: 2d 2d 2d 0d 0a 35 34 39 0d 0a 35 38 36 0d 0a 36  ---..549..586..6
1650: 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  38....query I ro
1660: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
1670: 28 20 32 33 20 29 20 46 52 4f 4d 20 74 61 62 31  ( 23 ) FROM tab1
1680: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1690: 2d 32 33 0d 0a 2d 32 33 0d 0a 2d 32 33 0d 0a 0d  -23..-23..-23...
16a0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
16b0: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
16c0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
16d0: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..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 2d  bel-26..SELECT -
1700: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1710: 49 47 4e 45 44 20 29 20 2b 20 43 4f 55 4e 54 28  IGNED ) + COUNT(
1720: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63   * ) FROM tab2 c
1730: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
1740: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1750: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1760: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1770: 74 20 6c 61 62 65 6c 2d 32 36 0d 0a 53 45 4c 45  t label-26..SELE
1780: 43 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c  CT - CAST ( NULL
1790: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
17a0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
17b0: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
17c0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
17d0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
17e0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
17f0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1800: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 0d 0a 53  sort label-27..S
1810: 45 4c 45 43 54 20 2d 20 2d 20 32 20 44 49 56 20  ELECT - - 2 DIV 
1820: 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  + col1 + - col2 
1830: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
1840: 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a  ----..-59..-68..
1850: 2d 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -96....skipif my
1860: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1870: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1880: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 0d 0a  wsort label-27..
1890: 53 45 4c 45 43 54 20 2d 20 2d 20 32 20 2f 20 2b  SELECT - - 2 / +
18a0: 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 46   col1 + - col2 F
18b0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
18c0: 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d  ---..-59..-68..-
18d0: 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  96....onlyif mys
18e0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
18f0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1900: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1910: 20 6c 61 62 65 6c 2d 32 38 0d 0a 53 45 4c 45 43   label-28..SELEC
1920: 54 20 41 4c 4c 20 2d 20 28 20 2b 20 43 41 53 54  T ALL - ( + CAST
1930: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1940: 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   ) ) AS col2 FRO
1950: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1960: 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c  HERE NOT ( - col
1970: 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  1 ) IS NOT NULL.
1980: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
1990: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
19a0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
19b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
19c0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28  ..SELECT ALL - (
19d0: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
19e0: 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53  S INTEGER ) ) AS
19f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
1a00: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
1a10: 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 49 53 20  T ( - col1 ) IS 
1a20: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1a30: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1a40: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1a50: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1a60: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39 0d 0a 53  sort label-29..S
1a70: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a  ELECT + COUNT( *
1a80: 20 29 20 2b 20 2b 20 39 31 20 46 52 4f 4d 20 74   ) + + 91 FROM t
1a90: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1aa0: 2d 0d 0a 39 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..94....skipif 
1ab0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1ac0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1ad0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 39  rowsort label-29
1ae0: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
1af0: 20 28 20 2a 20 29 20 2b 20 2b 20 39 31 20 46 52   ( * ) + + 91 FR
1b00: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1b10: 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 0d 0a 71 75 65  .----..94....que
1b20: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b30: 4c 45 43 54 20 2b 20 38 37 20 46 52 4f 4d 20 74  LECT + 87 FROM t
1b40: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1b50: 45 20 2d 20 63 6f 6c 30 20 2a 20 28 20 2d 20 63  E - col0 * ( - c
1b60: 6f 6c 31 20 29 20 4e 4f 54 20 49 4e 20 28 20 2b  ol1 ) NOT IN ( +
1b70: 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 38   col0 )..----..8
1b80: 37 0d 0a 38 37 0d 0a 38 37 0d 0a 0d 0a 71 75 65  7..87..87....que
1b90: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1ba0: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20  LECT ALL col1 + 
1bb0: 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 28 20 2b  - col0 * + + ( +
1bc0: 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c   + col0 ) AS col
1bd0: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
1be0: 2d 0d 0a 2d 31 34 34 0d 0a 2d 37 35 34 38 0d 0a  -..-144..-7548..
1bf0: 2d 39 34 30 38 0d 0a 0d 0a 71 75 65 72 79 20 49  -9408....query I
1c00: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c10: 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 41 53 20 63   ALL - col2 AS c
1c20: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol0 FROM tab2 WH
1c30: 45 52 45 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c  ERE col1 IS NULL
1c40: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1c50: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1c60: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1c70: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1c80: 65 6c 2d 33 33 0d 0a 53 45 4c 45 43 54 20 44 49  el-33..SELECT DI
1c90: 53 54 49 4e 43 54 20 34 38 20 2a 20 2d 20 43 4f  STINCT 48 * - CO
1ca0: 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43  UNT( * ) + + + C
1cb0: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 36 31 20 46  OUNT( * ) * 61 F
1cc0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1cd0: 33 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  39....skipif mys
1ce0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1cf0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1d00: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 0d 0a 53  sort label-33..S
1d10: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34  ELECT DISTINCT 4
1d20: 38 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  8 * - COUNT ( * 
1d30: 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  ) + + + COUNT ( 
1d40: 2a 20 29 20 2a 20 36 31 20 46 52 4f 4d 20 74 61  * ) * 61 FROM ta
1d50: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a  b0..----..39....
1d60: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1d70: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1d80: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1d90: 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
1da0: 65 6c 2d 33 34 0d 0a 53 45 4c 45 43 54 20 2a 20  el-34..SELECT * 
1db0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
1dc0: 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( + CAST( NULL A
1dd0: 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2b 20 63  S SIGNED ) - + c
1de0: 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2f 20 2d  ol1 + + col2 / -
1df0: 20 63 6f 6c 31 20 29 20 42 45 54 57 45 45 4e 20   col1 ) BETWEEN 
1e00: 28 20 63 6f 6c 31 20 29 20 41 4e 44 20 28 20 4e  ( col1 ) AND ( N
1e10: 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  ULL )..----....s
1e20: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e30: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e40: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
1e50: 6c 61 62 65 6c 2d 33 34 0d 0a 53 45 4c 45 43 54  label-34..SELECT
1e60: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
1e70: 52 45 20 28 20 2b 20 43 41 53 54 20 28 20 4e 55  RE ( + CAST ( NU
1e80: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
1e90: 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  - + col1 + + col
1ea0: 32 20 2f 20 2d 20 63 6f 6c 31 20 29 20 42 45 54  2 / - col1 ) BET
1eb0: 57 45 45 4e 20 28 20 63 6f 6c 31 20 29 20 41 4e  WEEN ( col1 ) AN
1ec0: 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d  D ( NULL )..----
1ed0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1ee0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
1ef0: 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
1f00: 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
1f10: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
1f20: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
1f30: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1f40: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
1f50: 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  ab2 WHERE NULL I
1f60: 4e 20 28 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d  N ( + col0 * + -
1f70: 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
1f80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f90: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
1fa0: 2d 20 37 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 72 AS col2 FRO
1fb0: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab2..----..-3
1fc0: 33 31 32 0d 0a 2d 34 36 30 38 0d 0a 2d 35 34 30  312..-4608..-540
1fd0: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
1fe0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1ff0: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  LL * FROM tab0 W
2000: 48 45 52 45 20 28 20 2b 20 2d 20 63 6f 6c 31 20  HERE ( + - col1 
2010: 2b 20 31 39 20 2b 20 63 6f 6c 31 20 29 20 49 4e  + 19 + col1 ) IN
2020: 20 28 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d   ( + col2 )..---
2030: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2040: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2050: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2060: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
2070: 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20  ..SELECT - MAX( 
2080: 2d 20 2b 20 34 30 20 29 20 41 53 20 63 6f 6c 30  - + 40 ) AS col0
2090: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
20a0: 0d 0a 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..40....skipif m
20b0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
20c0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
20d0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 0d  owsort label-39.
20e0: 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20  .SELECT - MAX ( 
20f0: 2d 20 2b 20 34 30 20 29 20 41 53 20 63 6f 6c 30  - + 40 ) AS col0
2100: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2110: 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..40....onlyif m
2120: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2130: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2140: 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
2150: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 0d 0a 53  sort label-40..S
2160: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
2170: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2180: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63  r0 WHERE NOT ( c
2190: 6f 6c 32 20 2f 20 2d 20 2d 20 43 41 53 54 28 20  ol2 / - - CAST( 
21a0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
21b0: 20 2b 20 2b 20 39 39 20 29 20 49 53 20 4e 55 4c   + + 99 ) IS NUL
21c0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
21d0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
21e0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
21f0: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2200: 6c 2d 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  l-40..SELECT DIS
2210: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
2220: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
2230: 4e 4f 54 20 28 20 63 6f 6c 32 20 2f 20 2d 20 2d  NOT ( col2 / - -
2240: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2250: 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20 39 39  INTEGER ) + + 99
2260: 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   ) IS NULL..----
2270: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2280: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2290: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
22a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22b0: 61 62 65 6c 2d 34 31 0d 0a 53 45 4c 45 43 54 20  abel-41..SELECT 
22c0: 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
22d0: 30 20 2a 20 43 41 53 54 28 20 2d 20 63 6f 6c 30  0 * CAST( - col0
22e0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
22f0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2300: 2d 2d 2d 2d 0d 0a 32 32 35 0d 0a 37 35 36 39 0d  ----..225..7569.
2310: 0a 39 34 30 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  .9409....skipif 
2320: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2330: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2340: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31  rowsort label-41
2350: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2360: 54 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 43 41 53  T + - col0 * CAS
2370: 54 20 28 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e  T ( - col0 AS IN
2380: 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
2390: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
23a0: 0a 32 32 35 0d 0a 37 35 36 39 0d 0a 39 34 30 39  .225..7569..9409
23b0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
23c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
23d0: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
23e0: 2b 20 34 36 20 2a 20 2d 20 28 20 2d 20 2d 20 28  + 46 * - ( - - (
23f0: 20 36 32 20 29 20 29 20 2b 20 28 20 63 6f 6c 31   62 ) ) + ( col1
2400: 20 29 20 2a 20 2d 20 63 6f 6c 32 20 49 53 20 4e   ) * - col2 IS N
2410: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
2420: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
2430: 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
2440: 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
2450: 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  3b7....query I r
2460: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
2470: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
2480: 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
2490: 2d 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 2d 20 63  - + col2 * - - c
24a0: 6f 6c 30 20 29 20 49 4e 20 28 20 2d 20 33 39 20  ol0 ) IN ( - 39 
24b0: 2a 20 28 20 63 6f 6c 31 20 29 20 29 0d 0a 2d 2d  * ( col1 ) )..--
24c0: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
24d0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
24e0: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20  STINCT + col1 * 
24f0: 2d 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  - - col1 + - col
2500: 30 20 2a 20 2b 20 33 33 20 2a 20 2d 20 2b 20 63  0 * + 33 * - + c
2510: 6f 6c 31 20 2b 20 2b 20 33 20 46 52 4f 4d 20 74  ol1 + + 3 FROM t
2520: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 30 35 0d  ab0..----..3205.
2530: 0a 34 36 36 35 39 0d 0a 36 30 37 33 35 0d 0a 0d  .46659..60735...
2540: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2550: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2560: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2570: 6f 72 74 20 6c 61 62 65 6c 2d 34 35 0d 0a 53 45  ort label-45..SE
2580: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LECT + COUNT( * 
2590: 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) + - COUNT( * )
25a0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
25b0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  b1..----..0....s
25c0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
25d0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
25e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25f0: 62 65 6c 2d 34 35 0d 0a 53 45 4c 45 43 54 20 2b  bel-45..SELECT +
2600: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
2610: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2620: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
2630: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
2640: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2650: 43 54 20 41 4c 4c 20 2d 20 41 56 47 20 28 20 2d  CT ALL - AVG ( -
2660: 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
2670: 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
2680: 28 20 38 34 20 2a 20 63 6f 6c 30 20 2a 20 2d 20  ( 84 * col0 * - 
2690: 38 32 20 29 20 3e 3d 20 2b 20 28 20 2d 20 37 31  82 ) >= + ( - 71
26a0: 20 29 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d   ) + col1..----.
26b0: 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
26c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26d0: 20 41 4c 4c 20 2b 20 34 20 2a 20 2d 20 63 6f 6c   ALL + 4 * - col
26e0: 30 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  0 * + col2 FROM 
26f0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2700: 2d 2d 0d 0a 2d 31 30 32 34 30 0d 0a 2d 31 37 34  --..-10240..-174
2710: 30 30 0d 0a 2d 34 32 33 32 0d 0a 0d 0a 6f 6e 6c  00..-4232....onl
2720: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2730: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2740: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2750: 20 6c 61 62 65 6c 2d 34 38 0d 0a 53 45 4c 45 43   label-48..SELEC
2760: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 39 30 20  T DISTINCT - 90 
2770: 41 53 20 63 6f 6c 32 2c 20 2d 20 43 4f 55 4e 54  AS col2, - COUNT
2780: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
2790: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
27a0: 39 30 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  90..-3....skipif
27b0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
27c0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
27d0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
27e0: 34 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  48..SELECT DISTI
27f0: 4e 43 54 20 2d 20 39 30 20 41 53 20 63 6f 6c 32  NCT - 90 AS col2
2800: 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  , - COUNT ( * ) 
2810: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2820: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 30 0d 0a 2d 33  0..----..-90..-3
2830: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2840: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2850: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
2860: 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c  HERE NOT ( - col
2870: 30 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  0 ) BETWEEN NULL
2880: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
2890: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
28a0: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
28b0: 31 20 2d 20 2b 20 36 36 20 2d 20 2d 20 63 6f 6c  1 - + 66 - - col
28c0: 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
28d0: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
28e0: 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 4e 55 4c  E NOT NULL > NUL
28f0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
2900: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2910: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
2920: 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2930: 52 45 20 4e 4f 54 20 2b 20 31 20 49 53 20 4e 4f  RE NOT + 1 IS NO
2940: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
2950: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2960: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
2970: 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 31 20  col2 * + - col1 
2980: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2990: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34 34 0d 0a  0..----..-1344..
29a0: 2d 32 39 35 0d 0a 2d 33 31 39 36 0d 0a 0d 0a 6f  -295..-3196....o
29b0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
29c0: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
29d0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
29e0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
29f0: 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  53..SELECT ALL -
2a00: 20 43 41 53 54 28 20 2d 20 2b 20 63 6f 6c 32 20   CAST( - + col2 
2a10: 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f  AS SIGNED ) * co
2a20: 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  l2 * + col0 FROM
2a30: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2a40: 2d 2d 2d 0d 0a 33 33 31 33 35 0d 0a 38 37 30 30  ---..33135..8700
2a50: 0d 0a 39 35 30 36 39 37 0d 0a 0d 0a 73 6b 69 70  ..950697....skip
2a60: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a70: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a80: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a90: 2d 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -53..SELECT ALL 
2aa0: 2d 20 43 41 53 54 20 28 20 2d 20 2b 20 63 6f 6c  - CAST ( - + col
2ab0: 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  2 AS INTEGER ) *
2ac0: 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 46   col2 * + col0 F
2ad0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2ae0: 0d 0a 2d 2d 2d 2d 0d 0a 33 33 31 33 35 0d 0a 38  ..----..33135..8
2af0: 37 30 30 0d 0a 39 35 30 36 39 37 0d 0a 0d 0a 71  700..950697....q
2b00: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2b10: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2b20: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
2b30: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2b40: 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45  - col1 NOT BETWE
2b50: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f  EN NULL AND + co
2b60: 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
2b70: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
2b80: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
2b90: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
2ba0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 0d  owsort label-55.
2bb0: 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44  .SELECT + col0 D
2bc0: 49 56 20 2b 20 2b 20 38 33 20 41 53 20 63 6f 6c  IV + + 83 AS col
2bd0: 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  2 FROM tab0..---
2be0: 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b  -..0..1..1....sk
2bf0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2c00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2c10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2c20: 65 6c 2d 35 35 0d 0a 53 45 4c 45 43 54 20 2b 20  el-55..SELECT + 
2c30: 63 6f 6c 30 20 2f 20 2b 20 2b 20 38 33 20 41 53  col0 / + + 83 AS
2c40: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
2c50: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a  .----..0..1..1..
2c60: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c70: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2c80: 33 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  34 AS col1 FROM 
2c90: 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
2ca0: 20 63 6f 6c 32 20 2a 20 38 32 20 3d 20 4e 55 4c   col2 * 82 = NUL
2cb0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
2cc0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2cd0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2ce0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
2cf0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 0d 0a  wsort label-57..
2d00: 53 45 4c 45 43 54 20 63 6f 6c 32 20 46 52 4f 4d  SELECT col2 FROM
2d10: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
2d20: 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( + CAST( NULL A
2d30: 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 63  S SIGNED ) * + c
2d40: 6f 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ol1 ) IS NOT NUL
2d50: 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d  L..----..59..68.
2d60: 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .96....skipif my
2d70: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2d80: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2d90: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 37 0d 0a  wsort label-57..
2da0: 53 45 4c 45 43 54 20 63 6f 6c 32 20 46 52 4f 4d  SELECT col2 FROM
2db0: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
2dc0: 28 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  ( + CAST ( NULL 
2dd0: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b  AS INTEGER ) * +
2de0: 20 63 6f 6c 31 20 29 20 49 53 20 4e 4f 54 20 4e   col1 ) IS NOT N
2df0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36  ULL..----..59..6
2e00: 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  8..96....onlyif 
2e10: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2e20: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2e30: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
2e40: 65 6c 2d 35 38 0d 0a 53 45 4c 45 43 54 20 44 49  el-58..SELECT DI
2e50: 53 54 49 4e 43 54 20 2d 20 31 39 20 63 6f 6c 32  STINCT - 19 col2
2e60: 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  , - COUNT( * ) +
2e70: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
2e80: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
2e90: 0a 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 30 0d 0a 0d  .----..-19..0...
2ea0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2eb0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2ec0: 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
2ed0: 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
2ee0: 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
2ef0: 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
2f00: 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
2f10: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f20: 35 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  58..SELECT DISTI
2f30: 4e 43 54 20 2d 20 31 39 20 63 6f 6c 32 2c 20 2d  NCT - 19 col2, -
2f40: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
2f50: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2f60: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
2f70: 2d 2d 2d 2d 0d 0a 2d 31 39 0d 0a 30 0d 0a 0d 0a  ----..-19..0....
2f80: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2f90: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2fa0: 54 20 2b 20 28 20 2b 20 33 30 20 29 20 41 53 20  T + ( + 30 ) AS 
2fb0: 63 6f 6c 32 2c 20 2b 20 31 37 20 46 52 4f 4d 20  col2, + 17 FROM 
2fc0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a  tab0..----..30..
2fd0: 31 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  17....query I ro
2fe0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2ff0: 39 38 20 2a 20 35 36 20 46 52 4f 4d 20 74 61 62  98 * 56 FROM tab
3000: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 38 38 0d 0a  1..----..-5488..
3010: 2d 35 34 38 38 0d 0a 2d 35 34 38 38 0d 0a 0d 0a  -5488..-5488....
3020: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
3030: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
3040: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
3050: 28 20 28 20 28 20 2d 20 33 30 20 29 20 29 20 3e  ( ( ( - 30 ) ) >
3060: 20 28 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d   ( NULL ) )..---
3070: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
3080: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
3090: 53 54 49 4e 43 54 20 37 2c 20 2d 20 30 20 41 53  STINCT 7, - 0 AS
30a0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
30b0: 0a 2d 2d 2d 2d 0d 0a 37 0d 0a 30 0d 0a 0d 0a 71  .----..7..0....q
30c0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
30d0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
30e0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
30f0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
3100: 28 20 63 6f 6c 31 20 29 20 49 4e 20 28 20 2d 20  ( col1 ) IN ( - 
3110: 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 33 35 20  ( - col1 ) * 35 
3120: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
3130: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
3140: 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
3150: 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
3160: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
3170: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
3180: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
3190: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
31a0: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
31b0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
31c0: 54 20 41 4c 4c 20 63 6f 6c 30 20 63 6f 6c 30 20  T ALL col0 col0 
31d0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
31e0: 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 49  0 WHERE + col1 I
31f0: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
3200: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
3210: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53  ..SELECT col1 AS
3220: 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 46 52 4f 4d   col2, col1 FROM
3230: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
3240: 2d 2d 2d 0d 0a 35 31 0d 0a 35 31 0d 0a 36 37 0d  ---..51..51..67.
3250: 0a 36 37 0d 0a 37 37 0d 0a 37 37 0d 0a 0d 0a 71  .67..77..77....q
3260: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
3270: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3280: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 63   col0 AS col2, c
3290: 6f 6c 30 20 2a 20 2d 20 31 35 20 2a 20 2d 20 2b  ol0 * - 15 * - +
32a0: 20 28 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20   ( + ( col1 ) ) 
32b0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
32c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 31 30 37  0..----..51..107
32d0: 31 30 0d 0a 38 35 0d 0a 36 33 37 35 0d 0a 39 31  10..85..6375..91
32e0: 0d 0a 36 34 31 35 35 0d 0a 0d 0a 6f 6e 6c 79 69  ..64155....onlyi
32f0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
3300: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
3310: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
3320: 62 65 6c 2d 36 37 0d 0a 53 45 4c 45 43 54 20 44  bel-67..SELECT D
3330: 49 53 54 49 4e 43 54 20 4d 49 4e 28 20 31 32 20  ISTINCT MIN( 12 
3340: 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ) * - COUNT( * )
3350: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
3360: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
3370: 62 31 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  b1 cor1..----..-
3380: 31 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  108....skipif my
3390: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
33a0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
33b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 0d 0a  wsort label-67..
33c0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33d0: 4d 49 4e 20 28 20 31 32 20 29 20 2a 20 2d 20 43  MIN ( 12 ) * - C
33e0: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
33f0: 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
3400: 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 63 6f 72  SS JOIN tab1 cor
3410: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 0d 0a 0d  1..----..-108...
3420: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
3430: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
3440: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
3450: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
3460: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
3470: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
3480: 43 54 20 28 20 2b 20 36 32 20 29 20 63 6f 6c 30  CT ( + 62 ) col0
3490: 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  , + col1 AS col0
34a0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
34b0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 32 0d 0a 31 34  r0..----..62..14
34c0: 0d 0a 36 32 0d 0a 34 37 0d 0a 36 32 0d 0a 35 0d  ..62..47..62..5.
34d0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
34e0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
34f0: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
3500: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
3510: 55 4c 4c 20 3c 3e 20 28 20 63 6f 6c 30 20 2b 20  ULL <> ( col0 + 
3520: 2d 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  - + col1 )..----
3530: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
3540: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
3550: 20 28 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63   ( + col0 ) AS c
3560: 6f 6c 31 2c 20 2d 20 38 36 20 46 52 4f 4d 20 74  ol1, - 86 FROM t
3570: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
3580: 2d 0d 0a 2d 34 36 0d 0a 2d 38 36 0d 0a 2d 36 34  -..-46..-86..-64
3590: 0d 0a 2d 38 36 0d 0a 2d 37 35 0d 0a 2d 38 36 0d  ..-86..-75..-86.
35a0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35b0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
35c0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
35d0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 0d  owsort label-71.
35e0: 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 44  .SELECT - MIN( D
35f0: 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 29  ISTINCT - col2 )
3600: 20 41 53 20 63 6f 6c 31 2c 20 35 35 20 46 52 4f   AS col1, 55 FRO
3610: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
3620: 2d 2d 2d 2d 0d 0a 39 39 0d 0a 35 35 0d 0a 0d 0a  ----..99..55....
3630: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
3640: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
3650: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
3660: 6c 61 62 65 6c 2d 37 31 0d 0a 53 45 4c 45 43 54  label-71..SELECT
3670: 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43   - MIN ( DISTINC
3680: 54 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  T - col2 ) AS co
3690: 6c 31 2c 20 35 35 20 46 52 4f 4d 20 74 61 62 30  l1, 55 FROM tab0
36a0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
36b0: 39 39 0d 0a 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  99..55....onlyif
36c0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
36d0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
36e0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
36f0: 65 6c 2d 37 32 0d 0a 53 45 4c 45 43 54 20 43 4f  el-72..SELECT CO
3700: 55 4e 54 28 20 2a 20 29 20 2d 20 2b 20 43 4f 55  UNT( * ) - + COU
3710: 4e 54 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e  NT( * ) * + COUN
3720: 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32  T( * ) FROM tab2
3730: 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 73 6b  ..----..-6....sk
3740: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
3750: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
3760: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
3770: 65 6c 2d 37 32 0d 0a 53 45 4c 45 43 54 20 43 4f  el-72..SELECT CO
3780: 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b 20 43 4f  UNT ( * ) - + CO
3790: 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 43 4f  UNT ( * ) * + CO
37a0: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
37b0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d  ab2..----..-6...
37c0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
37d0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
37e0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
37f0: 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a 53 45  ort label-73..SE
3800: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
3810: 4d 41 58 28 20 2d 20 63 6f 6c 31 20 29 20 46 52  MAX( - col1 ) FR
3820: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
3830: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
3840: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
3850: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
3860: 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a 53 45  ort label-73..SE
3870: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
3880: 4d 41 58 20 28 20 2d 20 63 6f 6c 31 20 29 20 46  MAX ( - col1 ) F
3890: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
38a0: 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  51....onlyif mys
38b0: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
38c0: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
38d0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
38e0: 74 20 6c 61 62 65 6c 2d 37 34 0d 0a 53 45 4c 45  t label-74..SELE
38f0: 43 54 20 2d 20 39 32 20 44 49 56 20 2d 20 63 6f  CT - 92 DIV - co
3900: 6c 32 20 2b 20 2b 20 32 37 20 41 53 20 63 6f 6c  l2 + + 27 AS col
3910: 31 2c 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20  1, + col1 * - + 
3920: 34 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  48 FROM tab1..--
3930: 2d 2d 0d 0a 32 37 0d 0a 2d 36 37 32 0d 0a 32 38  --..27..-672..28
3940: 0d 0a 2d 32 32 35 36 0d 0a 32 38 0d 0a 2d 32 34  ..-2256..28..-24
3950: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
3960: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
3970: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
3980: 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 0d 0a 53  sort label-74..S
3990: 45 4c 45 43 54 20 2d 20 39 32 20 2f 20 2d 20 63  ELECT - 92 / - c
39a0: 6f 6c 32 20 2b 20 2b 20 32 37 20 41 53 20 63 6f  ol2 + + 27 AS co
39b0: 6c 31 2c 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b  l1, + col1 * - +
39c0: 20 34 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   48 FROM tab1..-
39d0: 2d 2d 2d 0d 0a 32 37 0d 0a 2d 36 37 32 0d 0a 32  ---..27..-672..2
39e0: 38 0d 0a 2d 32 32 35 36 0d 0a 32 38 0d 0a 2d 32  8..-2256..28..-2
39f0: 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  40....onlyif mys
3a00: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
3a10: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
3a20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
3a30: 35 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 44  5..SELECT MAX( D
3a40: 49 53 54 49 4e 43 54 20 32 37 20 29 20 2b 20 43  ISTINCT 27 ) + C
3a50: 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
3a60: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
3a70: 2d 0d 0a 33 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..30....skipif 
3a80: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
3a90: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
3aa0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35  rowsort label-75
3ab0: 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 44  ..SELECT MAX ( D
3ac0: 49 53 54 49 4e 43 54 20 32 37 20 29 20 2b 20 43  ISTINCT 27 ) + C
3ad0: 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
3ae0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
3af0: 2d 2d 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72 79 20  --..30....query 
3b00: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
3b10: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
3b20: 57 48 45 52 45 20 2d 20 39 31 20 49 53 20 4e 55  WHERE - 91 IS NU
3b30: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
3b40: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3b50: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
3b60: 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
3b70: 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f   tab2 WHERE + co
3b80: 6c 30 20 42 45 54 57 45 45 4e 20 2b 20 37 35 20  l0 BETWEEN + 75 
3b90: 2d 20 2b 20 63 6f 6c 31 20 41 4e 44 20 28 20 2b  - + col1 AND ( +
3ba0: 20 2b 20 39 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d   + 91 )..----..-
3bb0: 35 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a  51..-67..-77....
3bc0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
3bd0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
3be0: 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 63 6f   + col2 - + + co
3bf0: 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  l2 + - col0 * co
3c00: 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  l0 + + col2 FROM
3c10: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30   tab2..----..-20
3c20: 39 33 0d 0a 2d 34 30 35 36 0d 0a 2d 35 35 36 37  93..-4056..-5567
3c30: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
3c40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
3c50: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  - col2 AS col0 F
3c60: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b  ROM tab0 WHERE +
3c70: 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 31 34 20 2b   - col0 * - 14 +
3c80: 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   - + col1 + + co
3c90: 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
3ca0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
3cb0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
3cc0: 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  - col2 AS col0 F
3cd0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b  ROM tab2 WHERE +
3ce0: 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30   - col2 * - col0
3cf0: 20 2b 20 2d 20 35 39 20 2b 20 2d 20 32 39 20 49   + - 59 + - 29 I
3d00: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
3d10: 0d 0a 2d 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d  ..-23..-40..-58.
3d20: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
3d30: 72 74 0d 0a 53 45 4c 45 43 54 20 35 34 20 2a 20  rt..SELECT 54 * 
3d40: 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20  + col0 * + col1 
3d50: 2b 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  + + - col0 AS co
3d60: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
3d70: 2d 2d 0d 0a 35 31 34 31 0d 0a 36 35 35 39 35 0d  --..5141..65595.
3d80: 0a 39 38 35 37 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  .98571....onlyif
3d90: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
3da0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
3db0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
3dc0: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 0d 0a 53  sort label-82..S
3dd0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 32 38 20 2a  ELECT ALL + 28 *
3de0: 20 28 20 2d 20 2b 20 39 31 20 29 20 2a 20 2b 20   ( - + 91 ) * + 
3df0: 36 38 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 4e  68 * + - CAST( N
3e00: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
3e10: 2b 20 32 33 20 2a 20 2b 20 2b 20 28 20 2b 20 63  + 23 * + + ( + c
3e20: 6f 6c 31 20 29 20 2b 20 2b 20 32 36 20 46 52 4f  ol1 ) + + 26 FRO
3e30: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
3e40: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
3e50: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
3e60: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
3e70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
3e80: 20 6c 61 62 65 6c 2d 38 32 0d 0a 53 45 4c 45 43   label-82..SELEC
3e90: 54 20 41 4c 4c 20 2b 20 32 38 20 2a 20 28 20 2d  T ALL + 28 * ( -
3ea0: 20 2b 20 39 31 20 29 20 2a 20 2b 20 36 38 20 2a   + 91 ) * + 68 *
3eb0: 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
3ec0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
3ed0: 32 33 20 2a 20 2b 20 2b 20 28 20 2b 20 63 6f 6c  23 * + + ( + col
3ee0: 31 20 29 20 2b 20 2b 20 32 36 20 46 52 4f 4d 20  1 ) + + 26 FROM 
3ef0: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
3f00: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
3f10: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
3f20: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 2c 20 34  ..SELECT col0, 4
3f30: 31 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 35 33 20  1 * + col0 * 53 
3f40: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
3f50: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 33 32 35  0..----..15..325
3f60: 39 35 0d 0a 38 37 0d 0a 31 38 39 30 35 31 0d 0a  95..87..189051..
3f70: 39 37 0d 0a 32 31 30 37 38 31 0d 0a 0d 0a 6f 6e  97..210781....on
3f80: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
3f90: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
3fa0: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
3fb0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
3fc0: 2d 38 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  -84..SELECT * FR
3fd0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
3fe0: 57 48 45 52 45 20 2d 20 43 41 53 54 28 20 2d 20  WHERE - CAST( - 
3ff0: 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
4000: 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   <> NULL..----..
4010: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
4020: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
4030: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
4040: 72 74 20 6c 61 62 65 6c 2d 38 34 0d 0a 53 45 4c  rt label-84..SEL
4050: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
4060: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
4070: 43 41 53 54 20 28 20 2d 20 63 6f 6c 30 20 41 53  CAST ( - col0 AS
4080: 20 49 4e 54 45 47 45 52 20 29 20 3c 3e 20 4e 55   INTEGER ) <> NU
4090: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
40a0: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
40b0: 4c 45 43 54 20 63 6f 6c 32 20 41 53 20 63 6f 6c  LECT col2 AS col
40c0: 32 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20  2, col1 AS col2 
40d0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
40e0: 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 0d 0a  0..----..59..5..
40f0: 36 38 0d 0a 34 37 0d 0a 39 36 0d 0a 31 34 0d 0a  68..47..96..14..
4100: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4110: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
4120: 43 54 20 38 38 20 2b 20 2d 20 63 6f 6c 32 20 2b  CT 88 + - col2 +
4130: 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + + col0 AS col
4140: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
4150: 2d 0d 0a 31 30 35 0d 0a 31 31 31 0d 0a 31 31 32  -..105..111..112
4160: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
4170: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
4180: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
4190: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 0d  owsort label-87.
41a0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
41b0: 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   + + COUNT( * ) 
41c0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
41d0: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
41e0: 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  0 AS cor1..----.
41f0: 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .9....skipif mys
4200: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
4210: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
4220: 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 0d 0a 53  sort label-87..S
4230: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
4240: 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
4250: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
4260: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
4270: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
4280: 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
4290: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
42a0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
42b0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
42c0: 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28 20  ..SELECT - SUM( 
42d0: 2b 20 38 34 20 29 20 2a 20 2d 20 33 33 20 2d 20  + 84 ) * - 33 - 
42e0: 35 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  5 FROM tab2 AS c
42f0: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
4300: 61 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab2 AS cor1..---
4310: 2d 0d 0a 32 34 39 34 33 0d 0a 0d 0a 73 6b 69 70  -..24943....skip
4320: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4330: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
4340: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
4350: 2d 38 38 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55  -88..SELECT - SU
4360: 4d 20 28 20 2b 20 38 34 20 29 20 2a 20 2d 20 33  M ( + 84 ) * - 3
4370: 33 20 2d 20 35 20 46 52 4f 4d 20 74 61 62 32 20  3 - 5 FROM tab2 
4380: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
4390: 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d  IN tab2 AS cor1.
43a0: 0a 2d 2d 2d 2d 0d 0a 32 34 39 34 33 0d 0a 0d 0a  .----..24943....
43b0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
43c0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
43d0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
43e0: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
43f0: 6c 2d 38 39 0d 0a 53 45 4c 45 43 54 20 43 41 53  l-89..SELECT CAS
4400: 54 28 20 2d 20 2d 20 39 31 20 41 53 20 53 49 47  T( - - 91 AS SIG
4410: 4e 45 44 20 29 2c 20 2d 20 43 41 53 54 28 20 4e  NED ), - CAST( N
4420: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
4430: 2b 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  + - - col1 AS co
4440: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
4450: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a  cor0..----..91..
4460: 4e 55 4c 4c 0d 0a 39 31 0d 0a 4e 55 4c 4c 0d 0a  NULL..91..NULL..
4470: 39 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  91..NULL....skip
4480: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4490: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
44a0: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
44b0: 6c 2d 38 39 0d 0a 53 45 4c 45 43 54 20 43 41 53  l-89..SELECT CAS
44c0: 54 20 28 20 2d 20 2d 20 39 31 20 41 53 20 49 4e  T ( - - 91 AS IN
44d0: 54 45 47 45 52 20 29 2c 20 2d 20 43 41 53 54 20  TEGER ), - CAST 
44e0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
44f0: 52 20 29 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 41  R ) + - - col1 A
4500: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
4510: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
4520: 39 31 0d 0a 4e 55 4c 4c 0d 0a 39 31 0d 0a 4e 55  91..NULL..91..NU
4530: 4c 4c 0d 0a 39 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  LL..91..NULL....
4540: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
4550: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
4560: 54 20 2d 20 2d 20 37 33 20 2a 20 2d 20 63 6f 6c  T - - 73 * - col
4570: 32 20 41 53 20 63 6f 6c 30 2c 20 2b 20 38 39 20  2 AS col0, + 89 
4580: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
4590: 30 20 57 48 45 52 45 20 31 39 20 2a 20 2d 20 28  0 WHERE 19 * - (
45a0: 20 32 38 20 29 20 3e 3d 20 2d 20 2d 20 35 30 0d   28 ) >= - - 50.
45b0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
45c0: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
45d0: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
45e0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
45f0: 6f 72 74 20 6c 61 62 65 6c 2d 39 31 0d 0a 53 45  ort label-91..SE
4600: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
4610: 2d 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c  - col1 + - + col
4620: 31 20 44 49 56 20 2b 20 63 6f 6c 32 20 41 53 20  1 DIV + col2 AS 
4630: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
4640: 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 31  S cor0 WHERE - 1
4650: 39 20 3c 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a  9 < col2..----..
4660: 2d 31 0d 0a 2d 32 33 0d 0a 2d 38 32 0d 0a 0d 0a  -1..-23..-82....
4670: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
4680: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
4690: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
46a0: 61 62 65 6c 2d 39 31 0d 0a 53 45 4c 45 43 54 20  abel-91..SELECT 
46b0: 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
46c0: 31 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2f 20 2b  1 + - + col1 / +
46d0: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
46e0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
46f0: 57 48 45 52 45 20 2d 20 31 39 20 3c 20 63 6f 6c  WHERE - 19 < col
4700: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 33  2..----..-1..-23
4710: 0d 0a 2d 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-82....query I
4720: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
4730: 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32   DISTINCT - col2
4740: 20 2a 20 39 30 20 2a 20 2d 20 33 37 20 46 52 4f   * 90 * - 37 FRO
4750: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
4760: 2d 2d 2d 2d 0d 0a 31 39 36 34 37 30 0d 0a 32 32  ----..196470..22
4770: 36 34 34 30 0d 0a 33 31 39 36 38 30 0d 0a 0d 0a  6440..319680....
4780: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
4790: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
47a0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
47b0: 72 74 20 6c 61 62 65 6c 2d 39 33 0d 0a 53 45 4c  rt label-93..SEL
47c0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
47d0: 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f  OUNT( * ) * - CO
47e0: 55 4e 54 28 20 2a 20 29 20 2a 20 38 31 20 46 52  UNT( * ) * 81 FR
47f0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
4800: 0a 2d 2d 2d 2d 0d 0a 2d 37 32 39 0d 0a 0d 0a 73  .----..-729....s
4810: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
4820: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4830: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4840: 62 65 6c 2d 39 33 0d 0a 53 45 4c 45 43 54 20 44  bel-93..SELECT D
4850: 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
4860: 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20  ( * ) * - COUNT 
4870: 28 20 2a 20 29 20 2a 20 38 31 20 46 52 4f 4d 20  ( * ) * 81 FROM 
4880: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
4890: 2d 2d 0d 0a 2d 37 32 39 0d 0a 0d 0a 6f 6e 6c 79  --..-729....only
48a0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
48b0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
48c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
48d0: 61 62 65 6c 2d 39 34 0d 0a 53 45 4c 45 43 54 20  abel-94..SELECT 
48e0: 44 49 53 54 49 4e 43 54 20 4d 41 58 28 20 2b 20  DISTINCT MAX( + 
48f0: 2b 20 28 20 2d 20 63 6f 6c 31 20 29 20 29 20 41  + ( - col1 ) ) A
4900: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
4910: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
4920: 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -51....skipif my
4930: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
4940: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
4950: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 0d 0a  wsort label-94..
4960: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
4970: 4d 41 58 20 28 20 2b 20 2b 20 28 20 2d 20 63 6f  MAX ( + + ( - co
4980: 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 32 20 46  l1 ) ) AS col2 F
4990: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
49a0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 71  ..----..-51....q
49b0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
49c0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 38  SELECT ALL - - 8
49d0: 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  3 AS col2 FROM t
49e0: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
49f0: 45 20 2d 20 28 20 63 6f 6c 30 20 29 20 49 53 20  E - ( col0 ) IS 
4a00: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
4a10: 38 33 0d 0a 38 33 0d 0a 38 33 0d 0a 0d 0a 71 75  83..83..83....qu
4a20: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
4a30: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
4a40: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
4a50: 35 32 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  52 + - col0 * co
4a60: 6c 30 20 2a 20 2d 20 31 31 20 49 53 20 4e 4f 54  l0 * - 11 IS NOT
4a70: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
4a80: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
4a90: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
4aa0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4ab0: 74 20 6c 61 62 65 6c 2d 39 37 0d 0a 53 45 4c 45  t label-97..SELE
4ac0: 43 54 20 2d 20 2d 20 4d 49 4e 28 20 41 4c 4c 20  CT - - MIN( ALL 
4ad0: 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
4ae0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
4af0: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
4b00: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
4b10: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
4b20: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4b30: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4b40: 62 65 6c 2d 39 37 0d 0a 53 45 4c 45 43 54 20 2d  bel-97..SELECT -
4b50: 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 63 6f 6c   - MIN ( ALL col
4b60: 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  1 ) AS col2 FROM
4b70: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
4b80: 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
4b90: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  --..NULL....quer
4ba0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
4bb0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
4bc0: 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  1 WHERE NOT col1
4bd0: 20 2a 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31   * col2 + - col1
4be0: 20 2b 20 35 33 20 2a 20 2b 20 2d 20 63 6f 6c 30   + 53 * + - col0
4bf0: 20 2b 20 31 38 20 2a 20 63 6f 6c 30 20 49 53 20   + 18 * col0 IS 
4c00: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
4c10: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
4c20: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
4c30: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
4c40: 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 0d 0a 53  sort label-99..S
4c50: 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 28  ELECT ALL MAX( (
4c60: 20 2b 20 2b 20 63 6f 6c 31 20 29 20 29 20 41 53   + + col1 ) ) AS
4c70: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
4c80: 0a 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69  .----..77....ski
4c90: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4ca0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4cb0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4cc0: 6c 2d 39 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-99..SELECT ALL
4cd0: 20 4d 41 58 20 28 20 28 20 2b 20 2b 20 63 6f 6c   MAX ( ( + + col
4ce0: 31 20 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52  1 ) ) AS col0 FR
4cf0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab2..----..7
4d00: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
4d10: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
4d20: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  LL * FROM tab1 W
4d30: 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 63 6f 6c  HERE NOT + - col
4d40: 32 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  2 BETWEEN NULL A
4d50: 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  ND ( NULL )..---
4d60: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
4d70: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
4d80: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
4d90: 20 4e 4f 54 20 2d 20 2d 20 32 35 20 2f 20 2d 20   NOT - - 25 / - 
4da0: 2b 20 63 6f 6c 31 20 2d 20 2d 20 2d 20 39 39 20  + col1 - - - 99 
4db0: 3c 3d 20 28 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  <= ( + - col1 * 
4dc0: 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col2 )..----..
4dd0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
4de0: 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
4df0: 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
4e00: 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4cad....query I 
4e10: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
4e20: 2b 20 63 6f 6c 32 20 2a 20 28 20 2d 20 63 6f 6c  + col2 * ( - col
4e30: 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
4e40: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   tab2..----..-11
4e50: 37 33 0d 0a 2d 33 30 38 30 0d 0a 2d 33 38 38 36  73..-3080..-3886
4e60: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
4e70: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
4e80: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
4e90: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 33  owsort label-103
4ea0: 0d 0a 53 45 4c 45 43 54 20 33 39 20 2a 20 28 20  ..SELECT 39 * ( 
4eb0: 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
4ec0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
4ed0: 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 0d 0a 73 6b 69  ----..117....ski
4ee0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4ef0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4f00: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4f10: 6c 2d 31 30 33 0d 0a 53 45 4c 45 43 54 20 33 39  l-103..SELECT 39
4f20: 20 2a 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29   * ( COUNT ( * )
4f30: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
4f40: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d  tab0..----..117.
4f50: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
4f60: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
4f70: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
4f80: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
4f90: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
4fa0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
4fb0: 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2f 20 28  ECT ALL col0 / (
4fc0: 20 2b 20 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46   + col1 ) col2 F
4fd0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
4fe0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 3d 20 4e 55   WHERE NULL = NU
4ff0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
5000: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
5010: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
5020: 31 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c  1 + + col0 + col
5030: 32 20 2b 20 2d 20 28 20 63 6f 6c 30 20 29 20 46  2 + - ( col0 ) F
5040: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
5050: 31 31 30 0d 0a 31 31 35 0d 0a 36 34 0d 0a 0d 0a  110..115..64....
5060: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
5070: 0a 53 45 4c 45 43 54 20 2d 20 34 37 20 46 52 4f  .SELECT - 47 FRO
5080: 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20 32  M tab0 WHERE + 2
5090: 36 20 3c 3e 20 28 20 2d 20 63 6f 6c 30 20 29 0d  6 <> ( - col0 ).
50a0: 0a 2d 2d 2d 2d 0d 0a 2d 34 37 0d 0a 2d 34 37 0d  .----..-47..-47.
50b0: 0a 2d 34 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-47....onlyif m
50c0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
50d0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
50e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
50f0: 2d 31 30 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -107..SELECT + C
5100: 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 43 4f  OUNT( * ) + + CO
5110: 55 4e 54 28 20 63 6f 6c 32 20 29 20 41 53 20 63  UNT( col2 ) AS c
5120: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol2 FROM tab1 co
5130: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73  r0..----..6....s
5140: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
5150: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
5160: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5170: 62 65 6c 2d 31 30 37 0d 0a 53 45 4c 45 43 54 20  bel-107..SELECT 
5180: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  + COUNT ( * ) + 
5190: 2b 20 43 4f 55 4e 54 20 28 20 63 6f 6c 32 20 29  + COUNT ( col2 )
51a0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
51b0: 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36  b1 cor0..----..6
51c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
51d0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
51e0: 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 46 52  l1 + + + col1 FR
51f0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
5200: 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 32 38 0d 0a 39  .----..10..28..9
5210: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
5220: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
5230: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
5240: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
5250: 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  9..SELECT + COUN
5260: 54 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54  T( * ) + + COUNT
5270: 28 20 32 32 20 29 20 2a 20 34 20 2b 20 2b 20 37  ( 22 ) * 4 + + 7
5280: 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
5290: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
52a0: 2d 0d 0a 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..86....skipif 
52b0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
52c0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
52d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
52e0: 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  9..SELECT + COUN
52f0: 54 20 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e  T ( * ) + + COUN
5300: 54 20 28 20 32 32 20 29 20 2a 20 34 20 2b 20 2b  T ( 22 ) * 4 + +
5310: 20 37 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   71 AS col1 FROM
5320: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
5330: 2d 2d 2d 0d 0a 38 36 0d 0a 0d 0a 6f 6e 6c 79 69  ---..86....onlyi
5340: 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
5350: 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
5360: 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
5370: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 0d  wsort label-110.
5380: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
5390: 20 28 20 63 6f 6c 30 20 29 20 2a 20 63 6f 6c 30   ( col0 ) * col0
53a0: 20 44 49 56 20 33 38 20 41 53 20 63 6f 6c 32 20   DIV 38 AS col2 
53b0: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
53c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 32 34  0..----..199..24
53d0: 37 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  7..5....skipif m
53e0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
53f0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
5400: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30  owsort label-110
5410: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
5420: 54 20 28 20 63 6f 6c 30 20 29 20 2a 20 63 6f 6c  T ( col0 ) * col
5430: 30 20 2f 20 33 38 20 41 53 20 63 6f 6c 32 20 46  0 / 38 AS col2 F
5440: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
5450: 0d 0a 2d 2d 2d 2d 0d 0a 31 39 39 0d 0a 32 34 37  ..----..199..247
5460: 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..5....onlyif my
5470: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
5480: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
5490: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
54a0: 74 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53 45 4c  t label-111..SEL
54b0: 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b  ECT - col2 + - +
54c0: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
54d0: 49 47 4e 45 44 20 29 20 2d 20 28 20 2d 20 28 20  IGNED ) - ( - ( 
54e0: 2d 20 2d 20 63 6f 6c 32 20 29 20 29 20 41 53 20  - - col2 ) ) AS 
54f0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
5500: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
5510: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
5520: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5530: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5540: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5550: 20 6c 61 62 65 6c 2d 31 31 31 0d 0a 53 45 4c 45   label-111..SELE
5560: 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20  CT - col2 + - + 
5570: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
5580: 4e 54 45 47 45 52 20 29 20 2d 20 28 20 2d 20 28  NTEGER ) - ( - (
5590: 20 2d 20 2d 20 63 6f 6c 32 20 29 20 29 20 41 53   - - col2 ) ) AS
55a0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
55b0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
55c0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
55d0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
55e0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
55f0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
5600: 20 57 48 45 52 45 20 2d 20 35 33 20 49 53 20 4e   WHERE - 53 IS N
5610: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
5620: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
5630: 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64  to c6c0a4111b36d
5640: 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34  04dbc811a11e4d54
5650: 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  cad....query I r
5660: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
5670: 20 63 6f 6c 32 20 2b 20 2b 20 37 36 20 2b 20 2d   col2 + + 76 + -
5680: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
5690: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
56a0: 0a 2d 2d 2d 2d 0d 0a 2d 33 34 0d 0a 2d 33 39 0d  .----..-34..-39.
56b0: 0a 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .12....query III
56c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
56d0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
56e0: 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
56f0: 2d 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20  - + col2 IS NOT 
5700: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
5710: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
5720: 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
5730: 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
5740: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
5750: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
5760: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
5770: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
5780: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
5790: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
57a0: 45 4c 45 43 54 20 41 4c 4c 20 35 32 20 2b 20 63  ELECT ALL 52 + c
57b0: 6f 6c 31 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30  ol1 col1, - col0
57c0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
57d0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 37 0d 0a 2d 38  b1..----..57..-8
57e0: 35 0d 0a 36 36 0d 0a 2d 35 31 0d 0a 39 39 0d 0a  5..66..-51..99..
57f0: 2d 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -91....query III
5800: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
5810: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
5820: 52 45 20 4e 55 4c 4c 20 3c 20 2d 20 63 6f 6c 30  RE NULL < - col0
5830: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
5840: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
5850: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
5860: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5870: 65 6c 2d 31 31 37 0d 0a 53 45 4c 45 43 54 20 41  el-117..SELECT A
5880: 4c 4c 20 2d 20 34 31 20 2b 20 2d 20 43 4f 55 4e  LL - 41 + - COUN
5890: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
58a0: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
58b0: 2d 34 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -44....skipif my
58c0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
58d0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
58e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 0d  wsort label-117.
58f0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 31  .SELECT ALL - 41
5900: 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
5910: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
5920: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 0d 0a 0d  b1..----..-44...
5930: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
5940: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
5950: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
5960: 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 0d 0a 53  ort label-118..S
5970: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2d  ELECT - COUNT( -
5980: 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c   - col1 ) AS col
5990: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
59a0: 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
59b0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
59c0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
59d0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
59e0: 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  8..SELECT - COUN
59f0: 54 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 41  T ( - - col1 ) A
5a00: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
5a10: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
5a20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
5a30: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
5a40: 20 63 6f 6c 31 20 2b 20 39 38 20 2b 20 2b 20 2b   col1 + 98 + + +
5a50: 20 36 35 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f   65 * col0 AS co
5a60: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
5a70: 2d 2d 0d 0a 35 37 33 32 0d 0a 36 34 30 32 0d 0a  --..5732..6402..
5a80: 39 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  992....query I r
5a90: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34  owsort..SELECT 4
5aa0: 35 20 2d 20 33 20 41 53 20 63 6f 6c 31 20 46 52  5 - 3 AS col1 FR
5ab0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab2..----..4
5ac0: 32 0d 0a 34 32 0d 0a 34 32 0d 0a 0d 0a 71 75 65  2..42..42....que
5ad0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5ae0: 4c 45 43 54 20 63 6f 6c 31 20 2d 20 2d 20 2d 20  LECT col1 - - - 
5af0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
5b00: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
5b10: 31 0d 0a 2d 35 34 0d 0a 2d 38 32 0d 0a 0d 0a 71  1..-54..-82....q
5b20: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
5b30: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
5b40: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
5b50: 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20   WHERE NOT col0 
5b60: 2a 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  * + col1 + + col
5b70: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
5b80: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
5b90: 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
5ba0: 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
5bb0: 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  b43b7....onlyif 
5bc0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
5bd0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
5be0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5bf0: 6c 2d 31 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-123..SELECT AL
5c00: 4c 20 2d 20 4d 41 58 28 20 41 4c 4c 20 2b 20 39  L - MAX( ALL + 9
5c10: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
5c20: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  cor0..----..-9..
5c30: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5c40: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5c50: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5c60: 20 6c 61 62 65 6c 2d 31 32 33 0d 0a 53 45 4c 45   label-123..SELE
5c70: 43 54 20 41 4c 4c 20 2d 20 4d 41 58 20 28 20 41  CT ALL - MAX ( A
5c80: 4c 4c 20 2b 20 39 20 29 20 46 52 4f 4d 20 74 61  LL + 9 ) FROM ta
5c90: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
5ca0: 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-9....onlyif m
5cb0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
5cc0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
5cd0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
5ce0: 2d 31 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -124..SELECT ALL
5cf0: 20 2b 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20   + ( + COUNT( * 
5d00: 29 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ) ) FROM tab2 AS
5d10: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
5d20: 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d   tab0 AS cor1..-
5d30: 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66  ---..9....skipif
5d40: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
5d50: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
5d60: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
5d70: 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  24..SELECT ALL +
5d80: 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   ( + COUNT ( * )
5d90: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
5da0: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
5db0: 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab0 AS cor1..--
5dc0: 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..9....skipif 
5dd0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
5de0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
5df0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
5e00: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
5e10: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
5e20: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
5e30: 20 34 33 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c   43 AS col1, col
5e40: 30 20 2a 20 37 39 20 2f 20 2b 20 63 6f 6c 32 20  0 * 79 / + col2 
5e50: 2d 20 63 6f 6c 32 20 63 6f 6c 32 20 46 52 4f 4d  - col2 col2 FROM
5e60: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
5e70: 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
5e80: 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
5e90: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
5ea0: 4c 4c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c  LL col1 AS col2,
5eb0: 20 39 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   94 FROM tab2..-
5ec0: 2d 2d 2d 0d 0a 35 31 0d 0a 39 34 0d 0a 36 37 0d  ---..51..94..67.
5ed0: 0a 39 34 0d 0a 37 37 0d 0a 39 34 0d 0a 0d 0a 6f  .94..77..94....o
5ee0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
5ef0: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
5f00: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
5f10: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
5f20: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
5f30: 6c 2d 31 32 37 0d 0a 53 45 4c 45 43 54 20 43 41  l-127..SELECT CA
5f40: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
5f50: 45 44 20 29 20 2f 20 43 4f 55 4e 54 28 20 2a 20  ED ) / COUNT( * 
5f60: 29 20 2a 20 2d 20 31 20 2f 20 2d 20 34 30 20 46  ) * - 1 / - 40 F
5f70: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
5f80: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
5f90: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
5fa0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
5fb0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37  owsort label-127
5fc0: 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20  ..SELECT CAST ( 
5fd0: 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
5fe0: 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) / COUNT ( * ) 
5ff0: 2a 20 2d 20 31 20 2f 20 2d 20 34 30 20 46 52 4f  * - 1 / - 40 FRO
6000: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
6010: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  LL....query II r
6020: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
6030: 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 41 53 20  ISTINCT col1 AS 
6040: 63 6f 6c 31 2c 20 32 34 20 46 52 4f 4d 20 74 61  col1, 24 FROM ta
6050: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 32 34  b1..----..14..24
6060: 0d 0a 34 37 0d 0a 32 34 0d 0a 35 0d 0a 32 34 0d  ..47..24..5..24.
6070: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
6080: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
6090: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
60a0: 52 45 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57  RE col1 NOT BETW
60b0: 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 2b 20 2d  EEN col1 AND + -
60c0: 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   col1..----..9 v
60d0: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
60e0: 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
60f0: 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
6100: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  7....query II ro
6110: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
6120: 6c 30 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 32  l0 AS col1, col2
6130: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
6140: 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 34 37 0d 0a 38  .----..15..47..8
6150: 37 0d 0a 31 30 0d 0a 39 37 0d 0a 39 39 0d 0a 0d  7..10..97..99...
6160: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6170: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 46 52  ..SELECT col0 FR
6180: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
6190: 57 48 45 52 45 20 4e 4f 54 20 28 20 28 20 33 38  WHERE NOT ( ( 38
61a0: 20 29 20 29 20 2a 20 2b 20 63 6f 6c 30 20 2b 20   ) ) * + col0 + 
61b0: 2b 20 2d 20 34 33 20 2a 20 63 6f 6c 30 20 2a 20  + - 43 * col0 * 
61c0: 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 2b 20 28  + ( + col0 ) + (
61d0: 20 2b 20 32 20 29 20 2d 20 2d 20 63 6f 6c 30 20   + 2 ) - - col0 
61e0: 2f 20 2d 20 2d 20 63 6f 6c 32 20 4e 4f 54 20 49  / - - col2 NOT I
61f0: 4e 20 28 20 39 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a  N ( 95 )..----..
6200: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6210: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
6220: 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
6230: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
6240: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
6250: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
6260: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
6270: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
6280: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
6290: 55 4c 4c 20 29 20 49 4e 20 28 20 2b 20 63 6f 6c  ULL ) IN ( + col
62a0: 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  2 )..----....que
62b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
62c0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
62d0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
62e0: 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  cor0 WHERE + col
62f0: 30 20 2a 20 2b 20 35 38 20 49 53 20 4e 4f 54 20  0 * + 58 IS NOT 
6300: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a  NULL..----..10..
6310: 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  47..99....query 
6320: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
6330: 43 54 20 2d 20 39 30 20 41 53 20 63 6f 6c 32 2c  CT - 90 AS col2,
6340: 20 38 34 20 2d 20 2d 20 2d 20 37 34 20 46 52 4f   84 - - - 74 FRO
6350: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
6360: 2d 2d 2d 2d 0d 0a 2d 39 30 0d 0a 31 30 0d 0a 2d  ----..-90..10..-
6370: 39 30 0d 0a 31 30 0d 0a 2d 39 30 0d 0a 31 30 0d  90..10..-90..10.
6380: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
6390: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
63a0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
63b0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 37  cor0 WHERE NOT 7
63c0: 36 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  6 IS NOT NULL..-
63d0: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
63e0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
63f0: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
6400: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
6410: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
6420: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
6430: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
6440: 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 63 6f  l2 * + - col2 co
6450: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
6460: 2d 2d 0d 0a 2d 33 34 38 31 0d 0a 2d 34 36 32 34  --..-3481..-4624
6470: 0d 0a 2d 39 32 31 36 0d 0a 0d 0a 71 75 65 72 79  ..-9216....query
6480: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
6490: 43 54 20 63 6f 6c 32 20 2a 20 37 39 20 2a 20 31  CT col2 * 79 * 1
64a0: 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  7 AS col1 FROM t
64b0: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 39 32  ab1..----..12892
64c0: 38 0d 0a 37 39 32 33 37 0d 0a 39 31 33 32 34 0d  8..79237..91324.
64d0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
64e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  ort..SELECT - ( 
64f0: 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30  - col1 ) AS col0
6500: 2c 20 2d 20 38 38 20 46 52 4f 4d 20 74 61 62 31  , - 88 FROM tab1
6510: 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 38 38 0d  ..----..14..-88.
6520: 0a 34 37 0d 0a 2d 38 38 0d 0a 35 0d 0a 2d 38 38  .47..-88..5..-88
6530: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
6540: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
6550: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
6560: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
6570: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
6580: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
6590: 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2b 20 2d 20  LECT col2 * + - 
65a0: 28 20 2d 20 63 6f 6c 32 20 29 20 63 6f 6c 31 20  ( - col2 ) col1 
65b0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
65c0: 0a 33 34 38 31 0d 0a 34 36 32 34 0d 0a 39 32 31  .3481..4624..921
65d0: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
65e0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
65f0: 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
6600: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
6610: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
6620: 72 74 20 6c 61 62 65 6c 2d 31 34 31 0d 0a 53 45  rt label-141..SE
6630: 4c 45 43 54 20 31 31 20 44 49 56 20 43 4f 55 4e  LECT 11 DIV COUN
6640: 54 28 20 2a 20 29 2c 20 2b 20 34 30 20 41 53 20  T( * ), + 40 AS 
6650: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
6660: 2d 2d 2d 2d 0d 0a 33 0d 0a 34 30 0d 0a 0d 0a 73  ----..3..40....s
6670: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
6680: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
6690: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
66a0: 61 62 65 6c 2d 31 34 31 0d 0a 53 45 4c 45 43 54  abel-141..SELECT
66b0: 20 31 31 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20   11 / COUNT ( * 
66c0: 29 2c 20 2b 20 34 30 20 41 53 20 63 6f 6c 32 20  ), + 40 AS col2 
66d0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
66e0: 0a 33 0d 0a 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  .3..40....onlyif
66f0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
6700: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
6710: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
6720: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34 32 0d 0a  sort label-142..
6730: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 44 49  SELECT - col1 DI
6740: 56 20 2b 20 28 20 2d 20 33 20 29 20 41 53 20 63  V + ( - 3 ) AS c
6750: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
6760: 2d 2d 2d 0d 0a 31 37 0d 0a 32 32 0d 0a 32 35 0d  ---..17..22..25.
6770: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
6780: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
6790: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
67a0: 74 20 6c 61 62 65 6c 2d 31 34 32 0d 0a 53 45 4c  t label-142..SEL
67b0: 45 43 54 20 2d 20 63 6f 6c 31 20 2f 20 2b 20 28  ECT - col1 / + (
67c0: 20 2d 20 33 20 29 20 41 53 20 63 6f 6c 31 20 46   - 3 ) AS col1 F
67d0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
67e0: 31 37 0d 0a 32 32 0d 0a 32 35 0d 0a 0d 0a 6f 6e  17..22..25....on
67f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
6800: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
6810: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
6820: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
6830: 2d 31 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -143..SELECT ALL
6840: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
6850: 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2f 20  RE NOT - col2 / 
6860: 2b 20 28 20 2d 20 38 34 20 29 20 2b 20 63 6f 6c  + ( - 84 ) + col
6870: 32 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d  2 + + col2 + - -
6880: 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53 20 53   CAST( col1 AS S
6890: 49 47 4e 45 44 20 29 20 49 53 20 4e 4f 54 20 4e  IGNED ) IS NOT N
68a0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
68b0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
68c0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
68d0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
68e0: 62 65 6c 2d 31 34 33 0d 0a 53 45 4c 45 43 54 20  bel-143..SELECT 
68f0: 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
6900: 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32  WHERE NOT - col2
6910: 20 2f 20 2b 20 28 20 2d 20 38 34 20 29 20 2b 20   / + ( - 84 ) + 
6920: 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  col2 + + col2 + 
6930: 2d 20 2d 20 43 41 53 54 20 28 20 63 6f 6c 31 20  - - CAST ( col1 
6940: 41 53 20 49 4e 54 45 47 45 52 20 29 20 49 53 20  AS INTEGER ) IS 
6950: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
6960: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
6970: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
6980: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
6990: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
69a0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
69b0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
69c0: 43 54 20 36 37 20 63 6f 6c 32 20 46 52 4f 4d 20  CT 67 col2 FROM 
69d0: 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab1 WHERE NOT N
69e0: 55 4c 4c 20 3d 20 2b 20 2d 20 31 38 20 2f 20 2d  ULL = + - 18 / -
69f0: 20 2b 20 31 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   + 11..----....s
6a00: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
6a10: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
6a20: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
6a30: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
6a40: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
6a50: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6a60: 33 36 20 2a 20 2d 20 28 20 63 6f 6c 31 20 29 20  36 * - ( col1 ) 
6a70: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
6a80: 2d 2d 2d 2d 0d 0a 2d 31 38 33 36 0d 0a 2d 32 34  ----..-1836..-24
6a90: 31 32 0d 0a 2d 32 37 37 32 0d 0a 0d 0a 6f 6e 6c  12..-2772....onl
6aa0: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
6ab0: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
6ac0: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
6ad0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 34  rowsort label-14
6ae0: 36 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  6..SELECT - col0
6af0: 20 44 49 56 20 34 20 41 53 20 63 6f 6c 31 20 46   DIV 4 AS col1 F
6b00: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
6b10: 4f 54 20 37 31 20 44 49 56 20 2b 20 2d 20 36 38  OT 71 DIV + - 68
6b20: 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20   * + + col1 * - 
6b30: 36 33 20 3d 20 2d 20 35 34 20 2d 20 2b 20 2b 20  63 = - 54 - + + 
6b40: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d  col2..----..-12.
6b50: 0a 2d 32 31 0d 0a 2d 32 32 0d 0a 0d 0a 73 6b 69  .-21..-22....ski
6b60: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6b70: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6b80: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6b90: 6c 2d 31 34 36 0d 0a 53 45 4c 45 43 54 20 2d 20  l-146..SELECT - 
6ba0: 63 6f 6c 30 20 2f 20 34 20 41 53 20 63 6f 6c 31  col0 / 4 AS col1
6bb0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
6bc0: 20 4e 4f 54 20 37 31 20 2f 20 2b 20 2d 20 36 38   NOT 71 / + - 68
6bd0: 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2d 20   * + + col1 * - 
6be0: 36 33 20 3d 20 2d 20 35 34 20 2d 20 2b 20 2b 20  63 = - 54 - + + 
6bf0: 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d  col2..----..-12.
6c00: 0a 2d 32 31 0d 0a 2d 32 32 0d 0a 0d 0a 71 75 65  .-21..-22....que
6c10: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
6c20: 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
6c30: 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  b0 WHERE NOT - c
6c40: 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20 2d 20 34  ol1 NOT IN ( - 4
6c50: 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 32 30   + + col2 * - 20
6c60: 2c 20 2d 20 33 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a  , - 35 )..----..
6c70: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
6c80: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
6c90: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
6ca0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
6cb0: 65 6c 2d 31 34 38 0d 0a 53 45 4c 45 43 54 20 2d  el-148..SELECT -
6cc0: 20 2d 20 63 6f 6c 32 20 2f 20 63 6f 6c 31 20 2b   - col2 / col1 +
6cd0: 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 43 41   - col0 * - - CA
6ce0: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
6cf0: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  ED ) FROM tab0 A
6d00: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
6d10: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
6d20: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
6d30: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
6d40: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6d50: 20 6c 61 62 65 6c 2d 31 34 38 0d 0a 53 45 4c 45   label-148..SELE
6d60: 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2f 20 63 6f  CT - - col2 / co
6d70: 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  l1 + - col0 * - 
6d80: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
6d90: 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
6da0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
6db0: 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
6dc0: 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
6dd0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6de0: 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2b 20  col2 * + col0 + 
6df0: 63 6f 6c 32 20 2a 20 2b 20 2b 20 37 33 20 41 53  col2 * + + 73 AS
6e00: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
6e10: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
6e20: 31 31 35 32 0d 0a 31 31 39 30 34 0d 0a 39 33 32  1152..11904..932
6e30: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
6e40: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
6e50: 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 32 35 20 46   + col0 + - 25 F
6e60: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
6e70: 2d 2d 2d 0d 0a 2d 31 30 0d 0a 36 32 0d 0a 37 32  ---..-10..62..72
6e80: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
6e90: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
6ea0: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
6eb0: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
6ec0: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
6ed0: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
6ee0: 4c 45 43 54 20 32 34 20 2b 20 2b 20 63 6f 6c 31  LECT 24 + + col1
6ef0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
6f00: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
6f10: 30 31 0d 0a 37 35 0d 0a 39 31 0d 0a 0d 0a 71 75  01..75..91....qu
6f20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
6f30: 45 4c 45 43 54 20 2b 20 28 20 2d 20 28 20 2d 20  ELECT + ( - ( - 
6f40: 38 37 20 29 20 29 20 2b 20 63 6f 6c 31 20 46 52  87 ) ) + col1 FR
6f50: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
6f60: 30 31 0d 0a 31 33 34 0d 0a 39 32 0d 0a 0d 0a 6f  01..134..92....o
6f70: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
6f80: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
6f90: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6fa0: 74 20 6c 61 62 65 6c 2d 31 35 33 0d 0a 53 45 4c  t label-153..SEL
6fb0: 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
6fc0: 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
6fd0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43  M tab0 AS cor0 C
6fe0: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
6ff0: 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor1..----..-9
7000: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7010: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
7020: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
7030: 72 74 20 6c 61 62 65 6c 2d 31 35 33 0d 0a 53 45  rt label-153..SE
7040: 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
7050: 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46   ( * ) AS col2 F
7060: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7070: 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
7080: 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
7090: 2d 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -9....onlyif mys
70a0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
70b0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
70c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
70d0: 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  54..SELECT DISTI
70e0: 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  NCT + COUNT( * )
70f0: 20 46 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 32   FROM tab0, tab2
7100: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a   cor0..----..9..
7110: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
7120: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
7130: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7140: 20 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c 45   label-154..SELE
7150: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
7160: 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
7170: 61 62 30 2c 20 74 61 62 32 20 63 6f 72 30 0d 0a  ab0, tab2 cor0..
7180: 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69  ----..9....onlyi
7190: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
71a0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
71b0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
71c0: 62 65 6c 2d 31 35 35 0d 0a 53 45 4c 45 43 54 20  bel-155..SELECT 
71d0: 2b 20 2d 20 4d 41 58 28 20 38 36 20 29 20 46 52  + - MAX( 86 ) FR
71e0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
71f0: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
7200: 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor1..----..-
7210: 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  86....skipif mys
7220: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
7230: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
7240: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 35 0d 0a  sort label-155..
7250: 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58 20 28  SELECT + - MAX (
7260: 20 38 36 20 29 20 46 52 4f 4d 20 74 61 62 32 20   86 ) FROM tab2 
7270: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
7280: 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
7290: 0a 2d 2d 2d 2d 0d 0a 2d 38 36 0d 0a 0d 0a 71 75  .----..-86....qu
72a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
72b0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 32 20 2b  ELECT ALL - 22 +
72c0: 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   + - col0 FROM t
72d0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
72e0: 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2b 20 2b  E NOT + col2 + +
72f0: 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col1 IS NULL..-
7300: 2d 2d 2d 0d 0a 2d 31 30 37 0d 0a 2d 31 31 33 0d  ---..-107..-113.
7310: 0a 2d 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-73....query I 
7320: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
7330: 33 31 20 2d 20 2d 20 32 35 20 41 53 20 63 6f 6c  31 - - 25 AS col
7340: 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
7350: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 35  or0..----..56..5
7360: 36 0d 0a 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49  6..56....query I
7370: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
7380: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 46   DISTINCT col1 F
7390: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
73a0: 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 35   WHERE NOT ( - 5
73b0: 32 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  2 ) NOT BETWEEN 
73c0: 34 30 20 2b 20 33 39 20 41 4e 44 20 2b 20 2b 20  40 + 39 AND + + 
73d0: 63 6f 6c 32 20 2b 20 2d 20 2d 20 34 0d 0a 2d 2d  col2 + - - 4..--
73e0: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
73f0: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
7400: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
7410: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7420: 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53 45 4c 45   label-159..SELE
7430: 43 54 20 2d 20 32 38 20 44 49 56 20 2d 20 2b 20  CT - 28 DIV - + 
7440: 34 32 20 2b 20 2b 20 63 6f 6c 31 20 2d 20 2b 20  42 + + col1 - + 
7450: 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
7460: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7470: 2d 2d 2d 2d 0d 0a 32 38 0d 0a 33 37 0d 0a 39 0d  ----..28..37..9.
7480: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
7490: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
74a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
74b0: 74 20 6c 61 62 65 6c 2d 31 35 39 0d 0a 53 45 4c  t label-159..SEL
74c0: 45 43 54 20 2d 20 32 38 20 2f 20 2d 20 2b 20 34  ECT - 28 / - + 4
74d0: 32 20 2b 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 63  2 + + col1 - + c
74e0: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
74f0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
7500: 2d 2d 2d 0d 0a 32 38 0d 0a 33 37 0d 0a 39 0d 0a  ---..28..37..9..
7510: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
7520: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
7530: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
7540: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20   cor0 WHERE ( + 
7550: 2b 20 28 20 2b 20 34 33 20 29 20 29 20 2a 20 2b  + ( + 43 ) ) * +
7560: 20 32 39 20 3e 3d 20 28 20 4e 55 4c 4c 20 29 0d   29 >= ( NULL ).
7570: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
7580: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7590: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 63  T DISTINCT - - c
75a0: 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c  ol0 AS col0, col
75b0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
75c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 35  or0..----..46..5
75d0: 31 0d 0a 36 34 0d 0a 37 37 0d 0a 37 35 0d 0a 36  1..64..77..75..6
75e0: 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
75f0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
7600: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
7610: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7620: 6c 61 62 65 6c 2d 31 36 32 0d 0a 53 45 4c 45 43  label-162..SELEC
7630: 54 20 43 41 53 54 28 20 2b 20 2d 20 63 6f 6c 32  T CAST( + - col2
7640: 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2b   AS SIGNED ) + +
7650: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   - col0 AS col2 
7660: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
7670: 0a 2d 31 34 34 0d 0a 2d 31 34 37 0d 0a 2d 31 35  .-144..-147..-15
7680: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
7690: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
76a0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
76b0: 6f 72 74 20 6c 61 62 65 6c 2d 31 36 32 0d 0a 53  ort label-162..S
76c0: 45 4c 45 43 54 20 43 41 53 54 20 28 20 2b 20 2d  ELECT CAST ( + -
76d0: 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52   col2 AS INTEGER
76e0: 20 29 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 41 53   ) + + - col0 AS
76f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
7700: 0a 2d 2d 2d 2d 0d 0a 2d 31 34 34 0d 0a 2d 31 34  .----..-144..-14
7710: 37 0d 0a 2d 31 35 39 0d 0a 0d 0a 73 6b 69 70 69  7..-159....skipi
7720: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
7730: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
7740: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
7750: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
7760: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
7770: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
7780: 36 33 20 2b 20 2b 20 32 38 20 2d 20 2d 20 2b 20  63 + + 28 - - + 
7790: 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 63 6f  col1 * - col2 co
77a0: 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
77b0: 2d 2d 0d 0a 2d 31 30 38 32 0d 0a 2d 32 39 38 39  --..-1082..-2989
77c0: 0d 0a 2d 33 37 39 35 0d 0a 0d 0a 71 75 65 72 79  ..-3795....query
77d0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
77e0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
77f0: 6c 32 20 2a 20 63 6f 6c 31 20 2b 20 35 39 20 46  l2 * col1 + 59 F
7800: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
7810: 31 32 33 32 0d 0a 33 31 33 39 0d 0a 33 39 34 35  1232..3139..3945
7820: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
7830: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
7840: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
7850: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7860: 61 62 65 6c 2d 31 36 35 0d 0a 53 45 4c 45 43 54  abel-165..SELECT
7870: 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54   DISTINCT + CAST
7880: 28 20 2b 20 2b 20 28 20 36 38 20 29 20 41 53 20  ( + + ( 68 ) AS 
7890: 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
78a0: 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20  b1 WHERE + col2 
78b0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
78c0: 2d 0d 0a 36 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..68....skipif 
78d0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
78e0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
78f0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
7900: 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
7910: 43 54 20 2b 20 43 41 53 54 20 28 20 2b 20 2b 20  CT + CAST ( + + 
7920: 28 20 36 38 20 29 20 41 53 20 49 4e 54 45 47 45  ( 68 ) AS INTEGE
7930: 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  R ) FROM tab1 WH
7940: 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f  ERE + col2 IS NO
7950: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 36 38  T NULL..----..68
7960: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7970: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
7980: 31 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  10 FROM tab0 WHE
7990: 52 45 20 2d 20 2b 20 39 38 20 49 53 20 4e 4f 54  RE - + 98 IS NOT
79a0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   NULL..----..10.
79b0: 0a 31 30 0d 0a 31 30 0d 0a 0d 0a 6f 6e 6c 79 69  .10..10....onlyi
79c0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
79d0: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
79e0: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
79f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 37  owsort label-167
7a00: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
7a10: 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  T - CAST( NULL A
7a20: 53 20 53 49 47 4e 45 44 20 29 20 63 6f 6c 30 2c  S SIGNED ) col0,
7a30: 20 63 6f 6c 32 20 2a 20 2b 20 32 31 20 2b 20 33   col2 * + 21 + 3
7a40: 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  5 AS col1 FROM t
7a50: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
7a60: 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
7a70: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
7a80: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
7a90: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
7aa0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
7ab0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
7ac0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
7ad0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
7ae0: 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ns..query II row
7af0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 37 0d 0a  sort label-167..
7b00: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
7b10: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
7b20: 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 30 2c   INTEGER ) col0,
7b30: 20 63 6f 6c 32 20 2a 20 2b 20 32 31 20 2b 20 33   col2 * + 21 + 3
7b40: 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  5 AS col1 FROM t
7b50: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
7b60: 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
7b70: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
7b80: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
7b90: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
7ba0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
7bb0: 61 62 65 6c 2d 31 36 38 0d 0a 53 45 4c 45 43 54  abel-168..SELECT
7bc0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
7bd0: 4f 4d 20 28 20 74 61 62 30 20 41 53 20 63 6f 72  OM ( tab0 AS cor
7be0: 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
7bf0: 32 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d  2 AS cor1 )..---
7c00: 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-9....skipif 
7c10: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7c20: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
7c30: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
7c40: 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  8..SELECT - COUN
7c50: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 28 20 74  T ( * ) FROM ( t
7c60: 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
7c70: 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63  S JOIN tab2 AS c
7c80: 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d  or1 )..----..-9.
7c90: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
7ca0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
7cb0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
7cc0: 52 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20  RE NULL BETWEEN 
7cd0: 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f 6c 30 20  NULL AND - col0 
7ce0: 2b 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  + + - col2..----
7cf0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
7d00: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
7d10: 2b 20 2b 20 38 36 20 46 52 4f 4d 20 74 61 62 30  + + 86 FROM tab0
7d20: 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a   AS cor0 CROSS J
7d30: 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31  OIN tab0 AS cor1
7d40: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
7d50: 20 68 61 73 68 69 6e 67 20 74 6f 20 32 64 38 63   hashing to 2d8c
7d60: 33 61 30 64 31 39 65 61 35 31 34 34 37 66 38 33  3a0d19ea51447f83
7d70: 63 64 31 38 62 34 39 66 65 65 31 39 0d 0a 0d 0a  cd18b49fee19....
7d80: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
7d90: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
7da0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
7db0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
7dc0: 2d 31 37 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -171..SELECT ALL
7dd0: 20 2d 20 63 6f 6c 32 20 2a 20 33 35 20 2a 20 43   - col2 * 35 * C
7de0: 41 53 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47  AST( col0 AS SIG
7df0: 4e 45 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  NED ) col2 FROM 
7e00: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
7e10: 2d 2d 0d 0a 2d 32 34 36 37 35 0d 0a 2d 33 30 34  --..-24675..-304
7e20: 35 30 0d 0a 2d 33 33 36 31 30 35 0d 0a 0d 0a 73  50..-336105....s
7e30: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
7e40: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
7e50: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
7e60: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
7e70: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
7e80: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
7e90: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
7ea0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 31  owsort label-171
7eb0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
7ec0: 6f 6c 32 20 2a 20 33 35 20 2a 20 43 41 53 54 20  ol2 * 35 * CAST 
7ed0: 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  ( col0 AS INTEGE
7ee0: 52 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  R ) col2 FROM ta
7ef0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
7f00: 0d 0a 2d 32 34 36 37 35 0d 0a 2d 33 30 34 35 30  ..-24675..-30450
7f10: 0d 0a 2d 33 33 36 31 30 35 0d 0a 0d 0a 6f 6e 6c  ..-336105....onl
7f20: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
7f30: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
7f40: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
7f50: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
7f60: 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  2..SELECT ALL CA
7f70: 53 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e  ST( col1 AS SIGN
7f80: 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ED ) AS col0 FRO
7f90: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
7fa0: 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37  ----..51..67..77
7fb0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
7fc0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
7fd0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
7fe0: 72 74 20 6c 61 62 65 6c 2d 31 37 32 0d 0a 53 45  rt label-172..SE
7ff0: 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20  LECT ALL CAST ( 
8000: 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
8010: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
8020: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
8030: 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d  -..51..67..77...
8040: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
8050: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
8060: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
8070: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
8080: 6c 2d 31 37 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-173..SELECT DI
8090: 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 2b  STINCT + CAST( +
80a0: 20 38 39 20 41 53 20 53 49 47 4e 45 44 20 29 20   89 AS SIGNED ) 
80b0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
80c0: 30 0d 0a 2d 2d 2d 2d 0d 0a 38 39 0d 0a 0d 0a 73  0..----..89....s
80d0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
80e0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
80f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
8100: 62 65 6c 2d 31 37 33 0d 0a 53 45 4c 45 43 54 20  bel-173..SELECT 
8110: 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 20  DISTINCT + CAST 
8120: 28 20 2b 20 38 39 20 41 53 20 49 4e 54 45 47 45  ( + 89 AS INTEGE
8130: 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  R ) FROM tab1 AS
8140: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 39 0d   cor0..----..89.
8150: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
8160: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
8170: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
8180: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
8190: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
81a0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
81b0: 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 28  ECT + col1 + - (
81c0: 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2b 20 63 6f   - col1 ) + + co
81d0: 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l2 col0 FROM tab
81e0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
81f0: 0a 31 30 31 0d 0a 32 30 39 0d 0a 35 32 0d 0a 0d  .101..209..52...
8200: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
8210: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20  ..SELECT col2 + 
8220: 2d 20 63 6f 6c 30 20 2b 20 2b 20 35 32 20 2a 20  - col0 + + 52 * 
8230: 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  - - col1 AS col2
8240: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
8250: 0d 0a 32 33 34 0d 0a 32 34 32 31 0d 0a 37 37 33  ..234..2421..773
8260: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8270: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 39  ort..SELECT - 69
8280: 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   * col0 AS col1 
8290: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
82a0: 0a 2d 31 30 33 35 0d 0a 2d 36 30 30 33 0d 0a 2d  .-1035..-6003..-
82b0: 36 36 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  6693....query II
82c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
82d0: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
82e0: 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20  0 WHERE NOT - + 
82f0: 35 38 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c  58 BETWEEN + col
8300: 31 20 41 4e 44 20 2d 20 2d 20 32 33 20 2b 20 2d  1 AND - - 23 + -
8310: 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 39   + col1..----..9
8320: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
8330: 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
8340: 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
8350: 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  3b7....query II 
8360: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8370: 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c  + col1 * + + col
8380: 32 20 2a 20 2d 20 38 32 2c 20 2d 20 63 6f 6c 30  2 * - 82, - col0
8390: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
83a0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 32 32 30  b0..----..-17220
83b0: 0d 0a 2d 38 37 0d 0a 2d 33 31 32 31 37 34 0d 0a  ..-87..-312174..
83c0: 2d 31 35 0d 0a 2d 38 31 31 38 0d 0a 2d 39 37 0d  -15..-8118..-97.
83d0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
83e0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
83f0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
8400: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 39  owsort label-179
8410: 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 34 34 20  ..SELECT + + 44 
8420: 41 53 20 63 6f 6c 30 2c 20 2b 20 43 4f 55 4e 54  AS col0, + COUNT
8430: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
8440: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
8450: 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 33 0d 0a 0d 0a  .----..44..3....
8460: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
8470: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
8480: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
8490: 6c 61 62 65 6c 2d 31 37 39 0d 0a 53 45 4c 45 43  label-179..SELEC
84a0: 54 20 2b 20 2b 20 34 34 20 41 53 20 63 6f 6c 30  T + + 44 AS col0
84b0: 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  , + COUNT ( * ) 
84c0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
84d0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
84e0: 0a 34 34 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  .44..3....onlyif
84f0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
8500: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
8510: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8520: 65 6c 2d 31 38 30 0d 0a 53 45 4c 45 43 54 20 41  el-180..SELECT A
8530: 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52  LL COUNT( * ) FR
8540: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
8550: 57 48 45 52 45 20 4e 4f 54 20 2d 20 28 20 2d 20  WHERE NOT - ( - 
8560: 63 6f 6c 31 20 29 20 3e 20 28 20 2d 20 2b 20 33  col1 ) > ( - + 3
8570: 35 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d  5 + col2 )..----
8580: 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
8590: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
85a0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
85b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 30 0d  wsort label-180.
85c0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
85d0: 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
85e0: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
85f0: 4e 4f 54 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29  NOT - ( - col1 )
8600: 20 3e 20 28 20 2d 20 2b 20 33 35 20 2b 20 63 6f   > ( - + 35 + co
8610: 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  l2 )..----..1...
8620: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
8630: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
8640: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
8650: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 31 0d 0a 53  ort label-181..S
8660: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
8670: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
8680: 2b 20 2b 20 32 34 20 2a 20 2d 20 32 39 20 41 53  + + 24 * - 29 AS
8690: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
86a0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
86b0: 4c 4c 20 3c 20 2d 20 63 6f 6c 31 20 2f 20 2d 20  LL < - col1 / - 
86c0: 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  + col1..----..0.
86d0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
86e0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
86f0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8700: 74 20 6c 61 62 65 6c 2d 31 38 31 0d 0a 53 45 4c  t label-181..SEL
8710: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
8720: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
8730: 20 2b 20 32 34 20 2a 20 2d 20 32 39 20 41 53 20   + 24 * - 29 AS 
8740: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
8750: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
8760: 4c 20 3c 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 2b  L < - col1 / - +
8770: 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   col1..----..0..
8780: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8790: 74 0d 0a 53 45 4c 45 43 54 20 36 36 20 2b 20 63  t..SELECT 66 + c
87a0: 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 2a  ol1 + - - col1 *
87b0: 20 2d 20 2b 20 39 38 20 2b 20 2d 20 63 6f 6c 30   - + 98 + - col0
87c0: 20 2a 20 2d 20 28 20 2b 20 2b 20 63 6f 6c 32 20   * - ( + + col2 
87d0: 29 20 2a 20 2b 20 2b 20 31 35 20 46 52 4f 4d 20  ) * + + 15 FROM 
87e0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 32 31 34  tab1..----..7214
87f0: 38 0d 0a 37 34 38 30 36 0d 0a 38 38 33 32 37 0d  8..74806..88327.
8800: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
8810: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
8820: 4e 43 54 20 34 35 20 2a 20 63 6f 6c 31 20 2a 20  NCT 45 * col1 * 
8830: 63 6f 6c 32 20 2b 20 2b 20 34 38 20 41 53 20 63  col2 + + 48 AS c
8840: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
8850: 2d 2d 2d 0d 0a 31 33 38 36 34 38 0d 0a 31 37 34  ---..138648..174
8860: 39 31 38 0d 0a 35 32 38 33 33 0d 0a 0d 0a 71 75  918..52833....qu
8870: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
8880: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
8890: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
88a0: 45 20 33 33 20 4e 4f 54 20 49 4e 20 28 20 2d 20  E 33 NOT IN ( - 
88b0: 33 32 2c 20 2b 20 31 34 20 2d 20 63 6f 6c 30 20  32, + 14 - col0 
88c0: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
88d0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
88e0: 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
88f0: 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
8900: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
8910: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
8920: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
8930: 6f 72 74 20 6c 61 62 65 6c 2d 31 38 35 0d 0a 53  ort label-185..S
8940: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
8950: 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20   + COUNT( ALL - 
8960: 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  + col1 ) FROM ta
8970: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
8980: 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
8990: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
89a0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
89b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 35 0d  wsort label-185.
89c0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
89d0: 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c   + + COUNT ( ALL
89e0: 20 2d 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d   - + col1 ) FROM
89f0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
8a00: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
8a10: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8a20: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38 31 20  T DISTINCT + 81 
8a30: 2a 20 2d 20 32 20 2d 20 63 6f 6c 32 20 46 52 4f  * - 2 - col2 FRO
8a40: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
8a50: 2d 2d 2d 2d 0d 0a 2d 31 38 35 0d 0a 2d 32 30 32  ----..-185..-202
8a60: 0d 0a 2d 32 32 30 0d 0a 0d 0a 71 75 65 72 79 20  ..-220....query 
8a70: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
8a80: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 34 20  T DISTINCT + 54 
8a90: 2a 20 2d 20 31 31 20 2a 20 63 6f 6c 30 20 2b 20  * - 11 * col0 + 
8aa0: 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  + col2 AS col0 F
8ab0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
8ac0: 2d 2d 2d 0d 0a 2d 33 30 31 39 38 0d 0a 2d 35 30  ---..-30198..-50
8ad0: 34 33 31 0d 0a 2d 35 33 39 38 36 0d 0a 0d 0a 71  431..-53986....q
8ae0: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
8af0: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
8b00: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
8b10: 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
8b20: 3e 3d 20 63 6f 6c 31 20 2d 20 2d 20 2d 20 63 6f  >= col1 - - - co
8b30: 6c 30 20 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d  l0 * col0..----.
8b40: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
8b50: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
8b60: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
8b70: 20 57 48 45 52 45 20 28 20 63 6f 6c 31 20 2b 20   WHERE ( col1 + 
8b80: 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55  - col0 IS NOT NU
8b90: 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  LL )..----..9 va
8ba0: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
8bb0: 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
8bc0: 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
8bd0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8be0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
8bf0: 49 4e 43 54 20 2d 20 2d 20 35 32 20 2a 20 2b 20  INCT - - 52 * + 
8c00: 35 30 20 2b 20 2b 20 31 39 20 46 52 4f 4d 20 74  50 + + 19 FROM t
8c10: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
8c20: 45 20 4e 4f 54 20 32 30 20 2a 20 2d 20 2d 20 63  E NOT 20 * - - c
8c30: 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
8c40: 2d 0d 0a 32 36 31 39 0d 0a 0d 0a 71 75 65 72 79  -..2619....query
8c50: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
8c60: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
8c70: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
8c80: 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
8c90: 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20   BETWEEN ( NULL 
8ca0: 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ) AND NULL..----
8cb0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
8cc0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
8cd0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
8ce0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
8cf0: 6c 61 62 65 6c 2d 31 39 32 0d 0a 53 45 4c 45 43  label-192..SELEC
8d00: 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 32 20 41  T ALL - + col2 A
8d10: 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20 2d  S col2, - col1 -
8d20: 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20   + - col0 + + - 
8d30: 28 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  ( + + CAST( NULL
8d40: 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41   AS SIGNED ) ) A
8d50: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
8d60: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
8d70: 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  OT - col1 * - co
8d80: 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l1 IS NULL..----
8d90: 0d 0a 2d 31 30 0d 0a 4e 55 4c 4c 0d 0a 2d 34 37  ..-10..NULL..-47
8da0: 0d 0a 4e 55 4c 4c 0d 0a 2d 39 39 0d 0a 4e 55 4c  ..NULL..-99..NUL
8db0: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
8dc0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
8dd0: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
8de0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 32 0d 0a  sort label-192..
8df0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63  SELECT ALL - + c
8e00: 6f 6c 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20 63  ol2 AS col2, - c
8e10: 6f 6c 31 20 2d 20 2b 20 2d 20 63 6f 6c 30 20 2b  ol1 - + - col0 +
8e20: 20 2b 20 2d 20 28 20 2b 20 2b 20 43 41 53 54 20   + - ( + + CAST 
8e30: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
8e40: 52 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  R ) ) AS col1 FR
8e50: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
8e60: 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31  WHERE NOT - col1
8e70: 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c   * - col1 IS NUL
8e80: 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 4e 55  L..----..-10..NU
8e90: 4c 4c 0d 0a 2d 34 37 0d 0a 4e 55 4c 4c 0d 0a 2d  LL..-47..NULL..-
8ea0: 39 39 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  99..NULL....quer
8eb0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8ec0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
8ed0: 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d  ol1 * + col0 * -
8ee0: 20 28 20 2d 20 39 35 20 29 20 46 52 4f 4d 20 74   ( - 95 ) FROM t
8ef0: 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 32 38  ab2..----..-2228
8f00: 37 30 0d 0a 2d 34 36 38 31 36 30 0d 0a 2d 34 37  70..-468160..-47
8f10: 37 33 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  7375....query I 
8f20: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8f30: 38 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 41 53  81 * - + col2 AS
8f40: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
8f50: 0a 2d 2d 2d 2d 0d 0a 2d 33 38 30 37 0d 0a 2d 38  .----..-3807..-8
8f60: 30 31 39 0d 0a 2d 38 31 30 0d 0a 0d 0a 6f 6e 6c  019..-810....onl
8f70: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
8f80: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
8f90: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
8fa0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39  rowsort label-19
8fb0: 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
8fc0: 31 34 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 32  14 + col0 + col2
8fd0: 20 44 49 56 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   DIV + col2 FROM
8fe0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   tab1..----..100
8ff0: 0d 0a 31 30 36 0d 0a 36 36 0d 0a 0d 0a 73 6b 69  ..106..66....ski
9000: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
9010: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
9020: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
9030: 6c 2d 31 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-195..SELECT AL
9040: 4c 20 2b 20 31 34 20 2b 20 63 6f 6c 30 20 2b 20  L + 14 + col0 + 
9050: 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 32 20 46 52  col2 / + col2 FR
9060: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
9070: 30 30 0d 0a 31 30 36 0d 0a 36 36 0d 0a 0d 0a 6f  00..106..66....o
9080: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
9090: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
90a0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
90b0: 74 20 6c 61 62 65 6c 2d 31 39 36 0d 0a 53 45 4c  t label-196..SEL
90c0: 45 43 54 20 4d 49 4e 28 20 2d 20 2b 20 63 6f 6c  ECT MIN( - + col
90d0: 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
90e0: 20 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 31   tab0 WHERE col1
90f0: 20 3c 20 28 20 2d 20 36 37 20 29 0d 0a 2d 2d 2d   < ( - 67 )..---
9100: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
9110: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
9120: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
9130: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9140: 31 39 36 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20  196..SELECT MIN 
9150: 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  ( - + col0 ) AS 
9160: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57  col1 FROM tab0 W
9170: 48 45 52 45 20 63 6f 6c 31 20 3c 20 28 20 2d 20  HERE col1 < ( - 
9180: 36 37 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  67 )..----..NULL
9190: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
91a0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28  sort..SELECT + (
91b0: 20 2d 20 2b 20 33 34 20 29 20 2d 20 63 6f 6c 30   - + 34 ) - col0
91c0: 2c 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  , - col2 AS col1
91d0: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
91e0: 0d 0a 2d 31 30 39 0d 0a 2d 35 38 0d 0a 2d 38 30  ..-109..-58..-80
91f0: 0d 0a 2d 32 33 0d 0a 2d 39 38 0d 0a 2d 34 30 0d  ..-23..-98..-40.
9200: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
9210: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
9220: 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20  INCT + col0 + - 
9230: 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 2c  - col0 + - col2,
9240: 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   + col0 AS col0 
9250: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
9260: 0a 2d 31 37 0d 0a 31 35 0d 0a 31 36 34 0d 0a 38  .-17..15..164..8
9270: 37 0d 0a 39 35 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c  7..95..97....onl
9280: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
9290: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
92a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
92b0: 6c 61 62 65 6c 2d 31 39 39 0d 0a 53 45 4c 45 43  label-199..SELEC
92c0: 54 20 44 49 53 54 49 4e 43 54 20 28 20 4d 49 4e  T DISTINCT ( MIN
92d0: 28 20 37 35 20 29 20 29 20 46 52 4f 4d 20 74 61  ( 75 ) ) FROM ta
92e0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a  b2..----..75....
92f0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9300: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
9310: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
9320: 61 62 65 6c 2d 31 39 39 0d 0a 53 45 4c 45 43 54  abel-199..SELECT
9330: 20 44 49 53 54 49 4e 43 54 20 28 20 4d 49 4e 20   DISTINCT ( MIN 
9340: 28 20 37 35 20 29 20 29 20 46 52 4f 4d 20 74 61  ( 75 ) ) FROM ta
9350: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a  b2..----..75....
9360: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
9370: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
9380: 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   - col2 AS col1 
9390: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
93a0: 30 20 57 48 45 52 45 20 63 6f 6c 31 20 3c 3e 20  0 WHERE col1 <> 
93b0: 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  - col1..----..-5
93c0: 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a 0d 0a 6f  9..-68..-96....o
93d0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
93e0: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
93f0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
9400: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9410: 32 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  201..SELECT - co
9420: 6c 31 20 44 49 56 20 2d 20 32 38 20 46 52 4f 4d  l1 DIV - 28 FROM
9430: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab2..----..1..
9440: 32 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  2..2....skipif m
9450: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
9460: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
9470: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 31  owsort label-201
9480: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
9490: 2f 20 2d 20 32 38 20 46 52 4f 4d 20 74 61 62 32  / - 28 FROM tab2
94a0: 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 0d 0a 32 0d  ..----..1..2..2.
94b0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
94c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
94d0: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
94e0: 4f 54 20 28 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  OT ( NOT ( NULL 
94f0: 29 20 3c 3e 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  ) <> NULL )..---
9500: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
9510: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
9520: 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
9530: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
9540: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9550: 74 20 6c 61 62 65 6c 2d 32 30 33 0d 0a 53 45 4c  t label-203..SEL
9560: 45 43 54 20 2d 20 33 30 20 44 49 56 20 2d 20 43  ECT - 30 DIV - C
9570: 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
9580: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
9590: 2d 0d 0a 31 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..10....skipif 
95a0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
95b0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
95c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30  rowsort label-20
95d0: 33 0d 0a 53 45 4c 45 43 54 20 2d 20 33 30 20 2f  3..SELECT - 30 /
95e0: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   - COUNT ( * ) A
95f0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
9600: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 0d 0a 6f 6e  ..----..10....on
9610: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
9620: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
9630: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
9640: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
9650: 30 34 0d 0a 53 45 4c 45 43 54 20 37 33 20 2f 20  04..SELECT 73 / 
9660: 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
9670: 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 39 36 20  SIGNED ) * + 96 
9680: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
9690: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
96a0: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
96b0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
96c0: 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
96d0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
96e0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
96f0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
9700: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
9710: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9720: 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a 53 45 4c  t label-204..SEL
9730: 45 43 54 20 37 33 20 2f 20 2d 20 43 41 53 54 20  ECT 73 / - CAST 
9740: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
9750: 52 20 29 20 2a 20 2b 20 39 36 20 63 6f 6c 30 20  R ) * + 96 col0 
9760: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
9770: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
9780: 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
9790: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
97a0: 30 20 2a 20 33 32 20 41 53 20 63 6f 6c 32 20 46  0 * 32 AS col2 F
97b0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
97c0: 31 34 37 32 0d 0a 32 30 34 38 0d 0a 32 34 30 30  1472..2048..2400
97d0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
97e0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
97f0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
9800: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
9810: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9820: 20 6c 61 62 65 6c 2d 32 30 36 0d 0a 53 45 4c 45   label-206..SELE
9830: 43 54 20 41 4c 4c 20 38 30 20 2b 20 43 41 53 54  CT ALL 80 + CAST
9840: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
9850: 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) + - COUNT( * 
9860: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
9870: 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
9880: 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab0 AS cor1..---
9890: 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
98a0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
98b0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
98c0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
98d0: 32 30 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  206..SELECT ALL 
98e0: 38 30 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  80 + CAST ( NULL
98f0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
9900: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
9910: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
9920: 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20  CROSS JOIN tab0 
9930: 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor1..----..N
9940: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ULL....query II 
9950: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
9960: 2d 20 37 38 20 41 53 20 63 6f 6c 31 2c 20 2b 20  - 78 AS col1, + 
9970: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
9980: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  S cor0..----..-7
9990: 38 0d 0a 31 35 0d 0a 2d 37 38 0d 0a 38 37 0d 0a  8..15..-78..87..
99a0: 2d 37 38 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  -78..97....query
99b0: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
99c0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
99d0: 20 39 33 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63   93 AS col0, - c
99e0: 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
99f0: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
9a00: 0d 0a 2d 39 33 0d 0a 2d 31 34 0d 0a 2d 39 33 0d  ..-93..-14..-93.
9a10: 0a 2d 34 37 0d 0a 2d 39 33 0d 0a 2d 35 0d 0a 0d  .-47..-93..-5...
9a20: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
9a30: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
9a40: 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 39 30  col2 AS col0, 90
9a50: 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   * - col1 * + co
9a60: 6c 31 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63  l1 - - col0 AS c
9a70: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
9a80: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   cor0..----..-59
9a90: 0d 0a 2d 32 31 36 35 0d 0a 2d 36 38 0d 0a 2d 31  ..-2165..-68..-1
9aa0: 39 38 37 31 39 0d 0a 2d 39 36 0d 0a 2d 31 37 35  98719..-96..-175
9ab0: 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  89....query I ro
9ac0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
9ad0: 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 41 53  STINCT - col1 AS
9ae0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
9af0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
9b00: 4c 4c 20 3c 3d 20 36 31 0d 0a 2d 2d 2d 2d 0d 0a  LL <= 61..----..
9b10: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
9b20: 74 0d 0a 53 45 4c 45 43 54 20 33 35 20 2a 20 2b  t..SELECT 35 * +
9b30: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
9b40: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
9b50: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e  WHERE NOT NULL N
9b60: 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c  OT BETWEEN - col
9b70: 32 20 41 4e 44 20 2b 20 63 6f 6c 30 0d 0a 2d 2d  2 AND + col0..--
9b80: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
9b90: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
9ba0: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
9bb0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9bc0: 20 6c 61 62 65 6c 2d 32 31 32 0d 0a 53 45 4c 45   label-212..SELE
9bd0: 43 54 20 44 49 53 54 49 4e 43 54 20 38 34 20 44  CT DISTINCT 84 D
9be0: 49 56 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  IV + col0 FROM t
9bf0: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
9c00: 45 20 39 38 20 42 45 54 57 45 45 4e 20 2b 20 63  E 98 BETWEEN + c
9c10: 6f 6c 30 20 41 4e 44 20 63 6f 6c 32 0d 0a 2d 2d  ol0 AND col2..--
9c20: 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
9c30: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
9c40: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
9c50: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 31  rowsort label-21
9c60: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
9c70: 43 54 20 38 34 20 2f 20 2b 20 63 6f 6c 30 20 46  CT 84 / + col0 F
9c80: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
9c90: 20 57 48 45 52 45 20 39 38 20 42 45 54 57 45 45   WHERE 98 BETWEE
9ca0: 4e 20 2b 20 63 6f 6c 30 20 41 4e 44 20 63 6f 6c  N + col0 AND col
9cb0: 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  2..----..0....on
9cc0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
9cd0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
9ce0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
9cf0: 74 20 6c 61 62 65 6c 2d 32 31 33 0d 0a 53 45 4c  t label-213..SEL
9d00: 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43 4f 55 4e  ECT ALL - + COUN
9d10: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20  T( * ) AS col0, 
9d20: 2b 20 35 37 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 57 AS col0 FRO
9d30: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
9d40: 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 35 37 0d 0a 0d 0a  ----..-3..57....
9d50: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9d60: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
9d70: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
9d80: 6c 61 62 65 6c 2d 32 31 33 0d 0a 53 45 4c 45 43  label-213..SELEC
9d90: 54 20 41 4c 4c 20 2d 20 2b 20 43 4f 55 4e 54 20  T ALL - + COUNT 
9da0: 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 2c 20 2b  ( * ) AS col0, +
9db0: 20 35 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   57 AS col0 FROM
9dc0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
9dd0: 2d 2d 2d 0d 0a 2d 33 0d 0a 35 37 0d 0a 0d 0a 6f  ---..-3..57....o
9de0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
9df0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
9e00: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
9e10: 72 74 20 6c 61 62 65 6c 2d 32 31 34 0d 0a 53 45  rt label-214..SE
9e20: 4c 45 43 54 20 37 37 20 41 53 20 63 6f 6c 30 2c  LECT 77 AS col0,
9e30: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
9e40: 2d 20 32 31 20 46 52 4f 4d 20 74 61 62 31 20 41  - 21 FROM tab1 A
9e50: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37  S cor0..----..77
9e60: 0d 0a 2d 36 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-63....skipif 
9e70: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
9e80: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
9e90: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
9ea0: 31 34 0d 0a 53 45 4c 45 43 54 20 37 37 20 41 53  14..SELECT 77 AS
9eb0: 20 63 6f 6c 30 2c 20 2b 20 43 4f 55 4e 54 20 28   col0, + COUNT (
9ec0: 20 2a 20 29 20 2a 20 2d 20 32 31 20 46 52 4f 4d   * ) * - 21 FROM
9ed0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
9ee0: 2d 2d 2d 0d 0a 37 37 0d 0a 2d 36 33 0d 0a 0d 0a  ---..77..-63....
9ef0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
9f00: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 63  ..SELECT col1, c
9f10: 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
9f20: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
9f30: 0d 0a 35 31 0d 0a 34 36 0d 0a 36 37 0d 0a 37 35  ..51..46..67..75
9f40: 0d 0a 37 37 0d 0a 36 34 0d 0a 0d 0a 71 75 65 72  ..77..64....quer
9f50: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
9f60: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
9f70: 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 31 37  2 WHERE NOT ( 17
9f80: 20 29 20 3d 20 37 0d 0a 2d 2d 2d 2d 0d 0a 39 20   ) = 7..----..9 
9f90: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
9fa0: 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
9fb0: 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
9fc0: 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  49....query I ro
9fd0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
9fe0: 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  + col1 FROM tab0
9ff0: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
a000: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
a010: 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a 71 75  .1..21..81....qu
a020: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
a030: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
a040: 6f 6c 32 20 2b 20 28 20 63 6f 6c 30 20 29 20 41  ol2 + ( col0 ) A
a050: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
a060: 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 0d 0a 31 34 37  ..----..144..147
a070: 0d 0a 31 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..159....query I
a080: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
a090: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  CT * FROM tab1 W
a0a0: 48 45 52 45 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  HERE - col1 * + 
a0b0: 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  - col0 IS NULL..
a0c0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
a0d0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
a0e0: 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  - col1 AS col2 F
a0f0: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
a100: 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
a110: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
a120: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
a130: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
a140: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a150: 74 20 6c 61 62 65 6c 2d 32 32 31 0d 0a 53 45 4c  t label-221..SEL
a160: 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
a170: 54 28 20 2b 20 2b 20 30 20 41 53 20 53 49 47 4e  T( + + 0 AS SIGN
a180: 45 44 20 29 20 2a 20 2d 20 63 6f 6c 32 20 2a 20  ED ) * - col2 * 
a190: 2b 20 39 35 20 2b 20 63 6f 6c 30 20 2b 20 63 6f  + 95 + col0 + co
a1a0: 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20  l2 + - col2 + - 
a1b0: 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c  + col1 * + + col
a1c0: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
a1d0: 2d 0d 0a 2d 31 32 39 33 0d 0a 2d 32 31 30 0d 0a  -..-1293..-210..
a1e0: 2d 33 31 30 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -3105....skipif 
a1f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
a200: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
a210: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32  rowsort label-22
a220: 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
a230: 43 54 20 43 41 53 54 20 28 20 2b 20 2b 20 30 20  CT CAST ( + + 0 
a240: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d  AS INTEGER ) * -
a250: 20 63 6f 6c 32 20 2a 20 2b 20 39 35 20 2b 20 63   col2 * + 95 + c
a260: 6f 6c 30 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63  ol0 + col2 + - c
a270: 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2a  ol2 + - + col1 *
a280: 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + + col2 FROM t
a290: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 39 33  ab1..----..-1293
a2a0: 0d 0a 2d 32 31 30 0d 0a 2d 33 31 30 35 0d 0a 0d  ..-210..-3105...
a2b0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
a2c0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
a2d0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
a2e0: 6f 72 74 20 6c 61 62 65 6c 2d 32 32 32 0d 0a 53  ort label-222..S
a2f0: 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28  ELECT ALL COUNT(
a300: 20 2b 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   + - col0 ) FROM
a310: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab1..----..3..
a320: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
a330: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
a340: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a350: 20 6c 61 62 65 6c 2d 32 32 32 0d 0a 53 45 4c 45   label-222..SELE
a360: 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2b  CT ALL COUNT ( +
a370: 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74   - col0 ) FROM t
a380: 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab1..----..3....
a390: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
a3a0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 39 38  .SELECT ALL - 98
a3b0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
a3c0: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
a3d0: 39 38 0d 0a 2d 39 38 0d 0a 2d 39 38 0d 0a 0d 0a  98..-98..-98....
a3e0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
a3f0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 33 20 2a  .SELECT ALL 33 *
a400: 20 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   0 FROM tab0 AS 
a410: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  cor0..----..0..0
a420: 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
a430: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
a440: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
a450: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a460: 32 32 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  225..SELECT - CO
a470: 55 4e 54 28 20 2a 20 29 20 2b 20 28 20 35 34 20  UNT( * ) + ( 54 
a480: 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
a490: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d  or0..----..51...
a4a0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
a4b0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
a4c0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
a4d0: 6c 61 62 65 6c 2d 32 32 35 0d 0a 53 45 4c 45 43  label-225..SELEC
a4e0: 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
a4f0: 2b 20 28 20 35 34 20 29 20 46 52 4f 4d 20 74 61  + ( 54 ) FROM ta
a500: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
a510: 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..51....query II
a520: 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  IIII rowsort..SE
a530: 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
a540: 74 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20  tab1 cor0 CROSS 
a550: 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
a560: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  1 WHERE NULL IS 
a570: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
a580: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a590: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
a5a0: 6c 31 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 63 6f  l1 * col1 * + co
a5b0: 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 63 6f  l0 * col0 + - co
a5c0: 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 41 53  l0 + - + col0 AS
a5d0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
a5e0: 0a 2d 2d 2d 2d 0d 0a 31 34 37 36 31 39 35 0d 0a  .----..1476195..
a5f0: 33 33 33 37 37 35 35 0d 0a 39 32 31 35 0d 0a 0d  3337755..9215...
a600: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a610: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63  ..SELECT ALL - c
a620: 6f 6c 31 20 2a 20 2d 20 28 20 2b 20 63 6f 6c 32  ol1 * - ( + col2
a630: 20 29 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b 20   ) + - - col2 + 
a640: 2b 20 2d 20 34 31 20 2a 20 2b 20 63 6f 6c 30 20  + - 41 * + col0 
a650: 2a 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2d  * + col2 * - ( -
a660: 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
a670: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 33 34 30 33  2..----..-103403
a680: 35 36 0d 0a 2d 34 31 39 35 32 38 30 0d 0a 2d 39  56..-4195280..-9
a690: 39 36 34 39 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  96498....onlyif 
a6a0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
a6b0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
a6c0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
a6d0: 6f 72 74 20 6c 61 62 65 6c 2d 32 32 39 0d 0a 53  ort label-229..S
a6e0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
a6f0: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
a700: 20 53 49 47 4e 45 44 20 29 20 2d 20 63 6f 6c 31   SIGNED ) - col1
a710: 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 43 41   + col0 * - - CA
a720: 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
a730: 45 44 20 29 20 2a 20 2b 20 2b 20 39 38 20 41 53  ED ) * + + 98 AS
a740: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
a750: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
a760: 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
a770: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
a780: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
a790: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 39 0d  wsort label-229.
a7a0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
a7b0: 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   - + CAST ( NULL
a7c0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20   AS INTEGER ) - 
a7d0: 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  col1 + col0 * - 
a7e0: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
a7f0: 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 2b   INTEGER ) * + +
a800: 20 39 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   98 AS col2 FROM
a810: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
a820: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
a830: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
a840: 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
a850: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
a860: 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
a870: 3c 3e 20 4e 55 4c 4c 20 41 4e 44 20 4e 4f 54 20  <> NULL AND NOT 
a880: 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c  ( NULL ) IS NULL
a890: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
a8a0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
a8b0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
a8c0: 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  e: DIV for integ
a8d0: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
a8e0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a8f0: 61 62 65 6c 2d 32 33 31 0d 0a 53 45 4c 45 43 54  abel-231..SELECT
a900: 20 41 4c 4c 20 2d 20 28 20 2b 20 63 6f 6c 31 20   ALL - ( + col1 
a910: 29 20 44 49 56 20 2d 20 43 41 53 54 28 20 63 6f  ) DIV - CAST( co
a920: 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  l2 AS SIGNED ) F
a930: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
a940: 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 32 0d  ..----..1..1..2.
a950: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
a960: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
a970: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
a980: 74 20 6c 61 62 65 6c 2d 32 33 31 0d 0a 53 45 4c  t label-231..SEL
a990: 45 43 54 20 41 4c 4c 20 2d 20 28 20 2b 20 63 6f  ECT ALL - ( + co
a9a0: 6c 31 20 29 20 2f 20 2d 20 43 41 53 54 20 28 20  l1 ) / - CAST ( 
a9b0: 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
a9c0: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
a9d0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d  or0..----..1..1.
a9e0: 0a 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .2....query I ro
a9f0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
aa00: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20  STINCT + col1 * 
aa10: 2b 20 63 6f 6c 31 20 2b 20 2d 20 31 33 20 41 53  + col1 + - 13 AS
aa20: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
aa30: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 38 38  cor0..----..2588
aa40: 0d 0a 34 34 37 36 0d 0a 35 39 31 36 0d 0a 0d 0a  ..4476..5916....
aa50: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
aa60: 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2d 20 2d  .SELECT col0 - -
aa70: 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 28 20 2d 20   - col0 + - ( - 
aa80: 63 6f 6c 31 20 29 20 2a 20 2b 20 2d 20 63 6f 6c  col1 ) * + - col
aa90: 31 20 2a 20 2b 20 39 30 20 46 52 4f 4d 20 74 61  1 * + 90 FROM ta
aaa0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
aab0: 0d 0a 2d 33 39 36 39 30 0d 0a 2d 35 39 30 34 39  ..-39690..-59049
aac0: 30 0d 0a 2d 39 30 0d 0a 0d 0a 71 75 65 72 79 20  0..-90....query 
aad0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
aae0: 54 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20  T - col1 + col0 
aaf0: 2a 20 38 33 20 2b 20 2d 20 2d 20 38 38 20 41 53  * 83 + - - 88 AS
ab00: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
ab10: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
ab20: 38 35 35 0d 0a 35 33 32 33 0d 0a 36 32 34 36 0d  855..5323..6246.
ab30: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
ab40: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
ab50: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
ab60: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
ab70: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
ab80: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ab90: 45 43 54 20 2b 20 38 32 20 2b 20 2b 20 63 6f 6c  ECT + 82 + + col
aba0: 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  2 col2 FROM tab0
abb0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
abc0: 31 32 39 0d 0a 31 38 31 0d 0a 39 32 0d 0a 0d 0a  129..181..92....
abd0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
abe0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
abf0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
ac00: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ac10: 2d 32 33 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  -236..SELECT - +
ac20: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
ac30: 49 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 31  IGNED ) + + col1
ac40: 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
ac50: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  2 cor0..----..NU
ac60: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
ac70: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ac80: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
ac90: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
aca0: 20 6c 61 62 65 6c 2d 32 33 36 0d 0a 53 45 4c 45   label-236..SELE
acb0: 43 54 20 2d 20 2b 20 43 41 53 54 20 28 20 4e 55  CT - + CAST ( NU
acc0: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
acd0: 2b 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 30 20  + + col1 + col0 
ace0: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
acf0: 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
ad00: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
ad10: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
ad20: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
ad30: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ad40: 65 6c 2d 32 33 37 0d 0a 53 45 4c 45 43 54 20 41  el-237..SELECT A
ad50: 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  LL + COUNT( * ) 
ad60: 2a 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43  * + SUM( DISTINC
ad70: 54 20 2d 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  T - + col1 ) FRO
ad80: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
ad90: 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a 0d 0a 73 6b  ----..-198....sk
ada0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
adb0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
adc0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
add0: 65 6c 2d 32 33 37 0d 0a 53 45 4c 45 43 54 20 41  el-237..SELECT A
ade0: 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL + COUNT ( * )
adf0: 20 2a 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49   * + SUM ( DISTI
ae00: 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 29 20 46  NCT - + col1 ) F
ae10: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
ae20: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a 0d 0a  ..----..-198....
ae30: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
ae40: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
ae50: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
ae60: 72 74 20 6c 61 62 65 6c 2d 32 33 38 0d 0a 53 45  rt label-238..SE
ae70: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
ae80: 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 2b 20 53  UNT( * ) * + + S
ae90: 55 4d 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29  UM( ALL - col1 )
aea0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
aeb0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a  b1..----..-198..
aec0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
aed0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
aee0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
aef0: 20 6c 61 62 65 6c 2d 32 33 38 0d 0a 53 45 4c 45   label-238..SELE
af00: 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
af10: 54 20 28 20 2a 20 29 20 2a 20 2b 20 2b 20 53 55  T ( * ) * + + SU
af20: 4d 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29  M ( ALL - col1 )
af30: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
af40: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d 0a  b1..----..-198..
af50: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
af60: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
af70: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
af80: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
af90: 65 6c 2d 32 33 39 0d 0a 53 45 4c 45 43 54 20 2d  el-239..SELECT -
afa0: 20 28 20 43 41 53 54 28 20 63 6f 6c 32 20 41 53   ( CAST( col2 AS
afb0: 20 53 49 47 4e 45 44 20 29 20 29 20 41 53 20 63   SIGNED ) ) AS c
afc0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
afd0: 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d  ---..-10..-47..-
afe0: 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  99....skipif mys
aff0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
b000: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
b010: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 39 0d 0a  sort label-239..
b020: 53 45 4c 45 43 54 20 2d 20 28 20 43 41 53 54 20  SELECT - ( CAST 
b030: 28 20 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45  ( col2 AS INTEGE
b040: 52 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52  R ) ) AS col1 FR
b050: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
b060: 31 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d 0a 0d 0a  10..-47..-99....
b070: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
b080: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
b090: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
b0a0: 72 74 20 6c 61 62 65 6c 2d 32 34 30 0d 0a 53 45  rt label-240..SE
b0b0: 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54  LECT ALL + COUNT
b0c0: 28 20 2a 20 29 20 2a 20 2b 20 2d 20 37 20 2b 20  ( * ) * + - 7 + 
b0d0: 28 20 39 36 20 29 20 46 52 4f 4d 20 74 61 62 32  ( 96 ) FROM tab2
b0e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
b0f0: 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  75....skipif mys
b100: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
b110: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
b120: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 30 0d 0a  sort label-240..
b130: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
b140: 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 37  NT ( * ) * + - 7
b150: 20 2b 20 28 20 39 36 20 29 20 46 52 4f 4d 20 74   + ( 96 ) FROM t
b160: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
b170: 2d 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -..75....query I
b180: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
b190: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a   DISTINCT col1 *
b1a0: 20 2b 20 2d 20 32 31 20 2a 20 2b 20 63 6f 6c 31   + - 21 * + col1
b1b0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
b1c0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
b1d0: 0d 0a 2d 34 31 31 36 0d 0a 2d 34 36 33 38 39 0d  ..-4116..-46389.
b1e0: 0a 2d 35 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .-525....onlyif 
b1f0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
b200: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
b210: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
b220: 6c 2d 32 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c  l-242..SELECT AL
b230: 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  L + COUNT( * ) *
b240: 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
b250: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
b260: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
b270: 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-9....skipif my
b280: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
b290: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
b2a0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 32 0d  wsort label-242.
b2b0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f  .SELECT ALL + CO
b2c0: 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20  UNT ( * ) * + - 
b2d0: 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
b2e0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
b2f0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   cor0..----..-9.
b300: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
b310: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
b320: 4e 43 54 20 2d 20 2d 20 36 20 46 52 4f 4d 20 74  NCT - - 6 FROM t
b330: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
b340: 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..6....query I 
b350: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
b360: 41 4c 4c 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 2d  ALL - col2 / - -
b370: 20 36 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   63 AS col0 FROM
b380: 20 74 61 62 31 20 57 48 45 52 45 20 2d 20 32 39   tab1 WHERE - 29
b390: 20 3e 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   > col0..----...
b3a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
b3b0: 0d 0a 53 45 4c 45 43 54 20 37 31 20 46 52 4f 4d  ..SELECT 71 FROM
b3c0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
b3d0: 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
b3e0: 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
b3f0: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
b400: 20 63 31 61 61 63 65 35 64 35 66 65 32 37 37 32   c1aace5d5fe2772
b410: 31 63 63 39 32 35 35 35 32 35 31 33 63 38 35 63  1cc925552513c85c
b420: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
b430: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
b440: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
b450: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b460: 6c 61 62 65 6c 2d 32 34 36 0d 0a 53 45 4c 45 43  label-246..SELEC
b470: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
b480: 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 28  0 * - - col0 * (
b490: 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   - + CAST( NULL 
b4a0: 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 41 53  AS SIGNED ) ) AS
b4b0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
b4c0: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
b4d0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
b4e0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
b4f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
b500: 62 65 6c 2d 32 34 36 0d 0a 53 45 4c 45 43 54 20  bel-246..SELECT 
b510: 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
b520: 2a 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 28 20 2d  * - - col0 * ( -
b530: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
b540: 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41 53  S INTEGER ) ) AS
b550: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
b560: 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71  .----..NULL....q
b570: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
b580: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
b590: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
b5a0: 4f 54 20 28 20 2b 20 63 6f 6c 30 20 2f 20 2d 20  OT ( + col0 / - 
b5b0: 2d 20 63 6f 6c 31 20 29 20 3d 20 28 20 4e 55 4c  - col1 ) = ( NUL
b5c0: 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  L )..----....onl
b5d0: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
b5e0: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
b5f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b600: 6c 61 62 65 6c 2d 32 34 38 0d 0a 53 45 4c 45 43  label-248..SELEC
b610: 54 20 2b 20 38 36 20 2a 20 43 4f 55 4e 54 28 20  T + 86 * COUNT( 
b620: 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
b630: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
b640: 0d 0a 32 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..258....skipif 
b650: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
b660: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
b670: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34  rowsort label-24
b680: 38 0d 0a 53 45 4c 45 43 54 20 2b 20 38 36 20 2a  8..SELECT + 86 *
b690: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
b6a0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63  col1 FROM tab2 c
b6b0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 38 0d 0a  or0..----..258..
b6c0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
b6d0: 72 74 0d 0a 53 45 4c 45 43 54 20 34 33 2c 20 63  rt..SELECT 43, c
b6e0: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
b6f0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
b700: 2d 2d 2d 0d 0a 34 33 0d 0a 31 30 0d 0a 34 33 0d  ---..43..10..43.
b710: 0a 34 37 0d 0a 34 33 0d 0a 39 39 0d 0a 0d 0a 6f  .47..43..99....o
b720: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
b730: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
b740: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
b750: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
b760: 6c 2d 32 35 30 0d 0a 53 45 4c 45 43 54 20 2a 20  l-250..SELECT * 
b770: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
b780: 30 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53 54  0 WHERE NOT CAST
b790: 28 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 53 49  ( + + col0 AS SI
b7a0: 47 4e 45 44 20 29 20 4e 4f 54 20 42 45 54 57 45  GNED ) NOT BETWE
b7b0: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c 32  EN NULL AND col2
b7c0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
b7d0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
b7e0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
b7f0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
b800: 2d 32 35 30 0d 0a 53 45 4c 45 43 54 20 2a 20 46  -250..SELECT * F
b810: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
b820: 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53 54 20   WHERE NOT CAST 
b830: 28 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e  ( + + col0 AS IN
b840: 54 45 47 45 52 20 29 20 4e 4f 54 20 42 45 54 57  TEGER ) NOT BETW
b850: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f 6c  EEN NULL AND col
b860: 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  2..----....query
b870: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
b880: 43 54 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32  CT + col1 * col2
b890: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
b8a0: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
b8b0: 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
b8c0: 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
b8d0: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
b8e0: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
b8f0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
b900: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
b910: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
b920: 0a 53 45 4c 45 43 54 20 2b 20 38 30 20 63 6f 6c  .SELECT + 80 col
b930: 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
b940: 6f 72 30 20 57 48 45 52 45 20 34 36 20 49 53 20  or0 WHERE 46 IS 
b950: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
b960: 38 30 0d 0a 38 30 0d 0a 38 30 0d 0a 0d 0a 71 75  80..80..80....qu
b970: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
b980: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
b990: 61 62 30 20 57 48 45 52 45 20 28 20 2d 20 63 6f  ab0 WHERE ( - co
b9a0: 6c 32 20 2b 20 2b 20 32 39 20 2f 20 2b 20 2b 20  l2 + + 29 / + + 
b9b0: 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 29 20 49 53  col1 * col1 ) IS
b9c0: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
b9d0: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
b9e0: 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
b9f0: 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
ba00: 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
ba10: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
ba20: 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
ba30: 62 32 20 57 48 45 52 45 20 2b 20 33 33 20 49 53  b2 WHERE + 33 IS
ba40: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
ba50: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
ba60: 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
ba70: 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
ba80: 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  d0a49....onlyif 
ba90: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
baa0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
bab0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
bac0: 6c 2d 32 35 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-255..SELECT DI
bad0: 53 54 49 4e 43 54 20 2b 20 31 30 20 2b 20 4d 49  STINCT + 10 + MI
bae0: 4e 28 20 2d 20 28 20 63 6f 6c 32 20 29 20 29 20  N( - ( col2 ) ) 
baf0: 2b 20 2b 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  + + MIN( DISTINC
bb00: 54 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2b 20 38  T + + col2 ) + 8
bb10: 32 20 2b 20 2b 20 32 31 20 46 52 4f 4d 20 74 61  2 + + 21 FROM ta
bb20: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 38 0d 0a 0d 0a  b2..----..78....
bb30: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
bb40: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
bb50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
bb60: 61 62 65 6c 2d 32 35 35 0d 0a 53 45 4c 45 43 54  abel-255..SELECT
bb70: 20 44 49 53 54 49 4e 43 54 20 2b 20 31 30 20 2b   DISTINCT + 10 +
bb80: 20 4d 49 4e 20 28 20 2d 20 28 20 63 6f 6c 32 20   MIN ( - ( col2 
bb90: 29 20 29 20 2b 20 2b 20 4d 49 4e 20 28 20 44 49  ) ) + + MIN ( DI
bba0: 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 32 20  STINCT + + col2 
bbb0: 29 20 2b 20 38 32 20 2b 20 2b 20 32 31 20 46 52  ) + 82 + + 21 FR
bbc0: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37  OM tab2..----..7
bbd0: 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
bbe0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
bbf0: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f   - col2 + + - co
bc00: 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  l0 + + col2 FROM
bc10: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   tab1..----..-51
bc20: 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 71 75  ..-85..-91....qu
bc30: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
bc40: 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 31 20  SELECT + - col1 
bc50: 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 2a 20  AS col0, col1 * 
bc60: 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
bc70: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
bc80: 2d 31 0d 0a 39 39 0d 0a 2d 32 31 0d 0a 32 31 30  -1..99..-21..210
bc90: 0d 0a 2d 38 31 0d 0a 33 38 30 37 0d 0a 0d 0a 6f  ..-81..3807....o
bca0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
bcb0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
bcc0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
bcd0: 72 74 20 6c 61 62 65 6c 2d 32 35 38 0d 0a 53 45  rt label-258..SE
bce0: 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 41 4c  LECT + COUNT( AL
bcf0: 4c 20 36 39 20 29 2c 20 2d 20 43 4f 55 4e 54 28  L 69 ), - COUNT(
bd00: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
bd10: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
bd20: 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 33 0d 0a 0d 0a 73  ----..3..-3....s
bd30: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
bd40: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
bd50: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
bd60: 61 62 65 6c 2d 32 35 38 0d 0a 53 45 4c 45 43 54  abel-258..SELECT
bd70: 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 36   + COUNT ( ALL 6
bd80: 39 20 29 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a  9 ), - COUNT ( *
bd90: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
bda0: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
bdb0: 2d 2d 0d 0a 33 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c  --..3..-3....onl
bdc0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
bdd0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
bde0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
bdf0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35  rowsort label-25
be00: 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
be10: 2b 20 63 6f 6c 32 20 2a 20 43 41 53 54 28 20 4e  + col2 * CAST( N
be20: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
be30: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
be40: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
be50: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
be60: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
be70: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
be80: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
be90: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 39 0d 0a 53  ort label-259..S
bea0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f  ELECT ALL - + co
beb0: 6c 32 20 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c  l2 * CAST ( NULL
bec0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
bed0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
bee0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
bef0: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
bf00: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
bf10: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
bf20: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
bf30: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
bf40: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
bf50: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
bf60: 45 43 54 20 41 4c 4c 20 2b 20 34 33 20 63 6f 6c  ECT ALL + 43 col
bf70: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
bf80: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 33 0d 0a 34  or0..----..43..4
bf90: 33 0d 0a 34 33 0d 0a 0d 0a 71 75 65 72 79 20 49  3..43....query I
bfa0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
bfb0: 20 41 4c 4c 20 2d 20 2b 20 28 20 2b 20 2b 20 63   ALL - + ( + + c
bfc0: 6f 6c 30 20 29 20 2a 20 2d 20 32 34 20 46 52 4f  ol0 ) * - 24 FRO
bfd0: 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
bfe0: 2d 0d 0a 32 30 38 38 0d 0a 32 33 32 38 0d 0a 33  -..2088..2328..3
bff0: 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  60....query I ro
c000: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
c010: 53 54 49 4e 43 54 20 37 39 20 2a 20 2d 20 33 20  STINCT 79 * - 3 
c020: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
c030: 0a 2d 32 33 37 0d 0a 0d 0a 71 75 65 72 79 20 49  .-237....query I
c040: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c050: 54 20 41 4c 4c 20 32 31 20 41 53 20 63 6f 6c 32  T ALL 21 AS col2
c060: 2c 20 38 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  , 80 AS col0 FRO
c070: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31  M tab0..----..21
c080: 0d 0a 38 30 0d 0a 32 31 0d 0a 38 30 0d 0a 32 31  ..80..21..80..21
c090: 0d 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..80....onlyif m
c0a0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
c0b0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
c0c0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c0d0: 2d 32 36 34 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  -264..SELECT - M
c0e0: 49 4e 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 30  IN( ALL + + col0
c0f0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
c100: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d  tab1..----..-51.
c110: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
c120: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
c130: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c140: 74 20 6c 61 62 65 6c 2d 32 36 34 0d 0a 53 45 4c  t label-264..SEL
c150: 45 43 54 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20  ECT - MIN ( ALL 
c160: 2b 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  + + col0 ) AS co
c170: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
c180: 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 71 75 65 72 79  --..-51....query
c190: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
c1a0: 45 43 54 20 2b 20 63 6f 6c 31 2c 20 63 6f 6c 30  ECT + col1, col0
c1b0: 20 2a 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53   * ( - col1 ) AS
c1c0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
c1d0: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 39 37 0d 0a 32  .----..1..-97..2
c1e0: 31 0d 0a 2d 31 38 32 37 0d 0a 38 31 0d 0a 2d 31  1..-1827..81..-1
c1f0: 32 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  215....query II 
c200: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
c210: 63 6f 6c 30 2c 20 2d 20 33 38 20 2a 20 38 36 20  col0, - 38 * 86 
c220: 2a 20 2d 20 2d 20 36 38 20 2a 20 2d 20 63 6f 6c  * - - 68 * - col
c230: 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
c240: 2d 0d 0a 34 36 0d 0a 35 31 31 31 31 35 32 0d 0a  -..46..5111152..
c250: 36 34 0d 0a 38 38 38 38 39 36 30 0d 0a 37 35 0d  64..8888960..75.
c260: 0a 31 32 38 38 38 39 39 32 0d 0a 0d 0a 71 75 65  .12888992....que
c270: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c280: 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20  LECT ALL col1 * 
c290: 2d 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46  - ( + - col2 ) F
c2a0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
c2b0: 31 31 37 33 0d 0a 33 30 38 30 0d 0a 33 38 38 36  1173..3080..3886
c2c0: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
c2d0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
c2e0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
c2f0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
c300: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c310: 20 6c 61 62 65 6c 2d 32 36 38 0d 0a 53 45 4c 45   label-268..SELE
c320: 43 54 20 4d 41 58 28 20 41 4c 4c 20 39 20 29 20  CT MAX( ALL 9 ) 
c330: 2f 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  / - + CAST( NULL
c340: 20 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f   AS SIGNED ) FRO
c350: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
c360: 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
c370: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c380: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c390: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 38 0d 0a  sort label-268..
c3a0: 53 45 4c 45 43 54 20 4d 41 58 20 28 20 41 4c 4c  SELECT MAX ( ALL
c3b0: 20 39 20 29 20 2f 20 2d 20 2b 20 43 41 53 54 20   9 ) / - + CAST 
c3c0: 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
c3d0: 52 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  R ) FROM tab0..-
c3e0: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
c3f0: 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
c400: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c410: 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
c420: 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 30 20 2d  E NOT - + col0 -
c430: 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d   - col0 IS NULL.
c440: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
c450: 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39  hashing to 75c99
c460: 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32  8aa53ac83218cbf2
c470: 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f  feb962d0a49....o
c480: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
c490: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
c4a0: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
c4b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c4c0: 32 37 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  270..SELECT ALL 
c4d0: 2b 20 2d 20 63 6f 6c 32 20 44 49 56 20 2b 20 2b  + - col2 DIV + +
c4e0: 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 41 53 20   col1 * col1 AS 
c4f0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
c500: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  or0..----..0..0.
c510: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
c520: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c530: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c540: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 30 0d 0a  sort label-270..
c550: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63  SELECT ALL + - c
c560: 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c 31 20 2a  ol2 / + + col1 *
c570: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
c580: 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
c590: 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71  --..0..0..0....q
c5a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
c5b0: 53 45 4c 45 43 54 20 63 6f 6c 31 20 2b 20 63 6f  SELECT col1 + co
c5c0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
c5d0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
c5e0: 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57 45 45   col0 NOT BETWEE
c5f0: 4e 20 2b 20 31 34 20 41 4e 44 20 4e 55 4c 4c 0d  N + 14 AND NULL.
c600: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
c610: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
c620: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
c630: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c640: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 32 0d 0a 53  ort label-272..S
c650: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
c660: 20 2d 20 36 20 44 49 56 20 2d 20 63 6f 6c 32 20   - 6 DIV - col2 
c670: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
c680: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
c690: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
c6a0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
c6b0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
c6c0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 32 0d 0a  sort label-272..
c6d0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
c6e0: 2d 20 2d 20 36 20 2f 20 2d 20 63 6f 6c 32 20 41  - - 6 / - col2 A
c6f0: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
c700: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c710: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
c720: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
c730: 32 20 2a 20 2b 20 37 35 20 41 53 20 63 6f 6c 30  2 * + 75 AS col0
c740: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
c750: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 32 35 0d 0a  r0..----..1725..
c760: 33 30 30 30 0d 0a 34 33 35 30 0d 0a 0d 0a 6f 6e  3000..4350....on
c770: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
c780: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
c790: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c7a0: 20 6c 61 62 65 6c 2d 32 37 34 0d 0a 53 45 4c 45   label-274..SELE
c7b0: 43 54 20 2d 20 53 55 4d 28 20 2b 20 63 6f 6c 32  CT - SUM( + col2
c7c0: 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
c7d0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31  cor0..----..-121
c7e0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
c7f0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
c800: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
c810: 72 74 20 6c 61 62 65 6c 2d 32 37 34 0d 0a 53 45  rt label-274..SE
c820: 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 2b 20 63  LECT - SUM ( + c
c830: 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol2 ) FROM tab2 
c840: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
c850: 31 32 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  121....onlyif my
c860: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
c870: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
c880: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
c890: 72 74 20 6c 61 62 65 6c 2d 32 37 35 0d 0a 53 45  rt label-275..SE
c8a0: 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 44 49  LECT - + col1 DI
c8b0: 56 20 2d 20 2b 20 33 34 20 41 53 20 63 6f 6c 30  V - + 34 AS col0
c8c0: 2c 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  , + col2 * + col
c8d0: 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
c8e0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
c8f0: 2d 0d 0a 30 0d 0a 38 37 30 0d 0a 30 0d 0a 39 36  -..0..870..0..96
c900: 30 33 0d 0a 32 0d 0a 37 30 35 0d 0a 0d 0a 73 6b  03..2..705....sk
c910: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
c920: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
c930: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
c940: 62 65 6c 2d 32 37 35 0d 0a 53 45 4c 45 43 54 20  bel-275..SELECT 
c950: 2d 20 2b 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 33  - + col1 / - + 3
c960: 34 20 41 53 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c  4 AS col0, + col
c970: 32 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  2 * + col0 AS co
c980: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
c990: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 38  cor0..----..0..8
c9a0: 37 30 0d 0a 30 0d 0a 39 36 30 33 0d 0a 32 0d 0a  70..0..9603..2..
c9b0: 37 30 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  705....query III
c9c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
c9d0: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
c9e0: 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20  cor0 WHERE col0 
c9f0: 2f 20 2b 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 49  / + - col1 NOT I
ca00: 4e 20 28 20 2b 20 2d 20 63 6f 6c 31 2c 20 2b 20  N ( + - col1, + 
ca10: 63 6f 6c 30 2c 20 2b 20 2d 20 36 30 2c 20 36 31  col0, + - 60, 61
ca20: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75   )..----..9 valu
ca30: 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
ca40: 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
ca50: 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
ca60: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
ca70: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
ca80: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
ca90: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
caa0: 65 6c 2d 32 37 37 0d 0a 53 45 4c 45 43 54 20 44  el-277..SELECT D
cab0: 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 30  ISTINCT - + col0
cac0: 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 43 41   * + col1 * + CA
cad0: 53 54 28 20 32 38 20 41 53 20 53 49 47 4e 45 44  ST( 28 AS SIGNED
cae0: 20 29 20 2b 20 2d 20 2b 20 37 20 2a 20 2d 20 63   ) + - + 7 * - c
caf0: 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
cb00: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
cb10: 2d 2d 2d 0d 0a 2d 31 31 38 36 35 0d 0a 2d 31 31  ---..-11865..-11
cb20: 39 34 32 37 0d 0a 2d 31 39 38 39 34 0d 0a 0d 0a  9427..-19894....
cb30: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
cb40: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
cb50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
cb60: 61 62 65 6c 2d 32 37 37 0d 0a 53 45 4c 45 43 54  abel-277..SELECT
cb70: 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f   DISTINCT - + co
cb80: 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 2b 20  l0 * + col1 * + 
cb90: 43 41 53 54 20 28 20 32 38 20 41 53 20 49 4e 54  CAST ( 28 AS INT
cba0: 45 47 45 52 20 29 20 2b 20 2d 20 2b 20 37 20 2a  EGER ) + - + 7 *
cbb0: 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   - col1 AS col0 
cbc0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
cbd0: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 38 36 35 0d  0..----..-11865.
cbe0: 0a 2d 31 31 39 34 32 37 0d 0a 2d 31 39 38 39 34  .-119427..-19894
cbf0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
cc00: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
cc10: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
cc20: 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2d 20 2b  0 WHERE col0 - +
cc30: 20 2b 20 35 32 20 49 53 20 4e 4f 54 20 4e 55 4c   + 52 IS NOT NUL
cc40: 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
cc50: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
cc60: 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
cc70: 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
cc80: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
cc90: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
cca0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
ccb0: 6f 72 74 20 6c 61 62 65 6c 2d 32 37 39 0d 0a 53  ort label-279..S
ccc0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e  ELECT ALL - COUN
ccd0: 54 28 20 2b 20 38 30 20 29 20 41 53 20 63 6f 6c  T( + 80 ) AS col
cce0: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
ccf0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  or0..----..-3...
cd00: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
cd10: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
cd20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
cd30: 6c 61 62 65 6c 2d 32 37 39 0d 0a 53 45 4c 45 43  label-279..SELEC
cd40: 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20  T ALL - COUNT ( 
cd50: 2b 20 38 30 20 29 20 41 53 20 63 6f 6c 30 20 46  + 80 ) AS col0 F
cd60: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
cd70: 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
cd80: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
cd90: 53 45 4c 45 43 54 20 2d 20 36 37 2c 20 63 6f 6c  SELECT - 67, col
cda0: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
cdb0: 2d 0d 0a 2d 36 37 0d 0a 31 34 0d 0a 2d 36 37 0d  -..-67..14..-67.
cdc0: 0a 34 37 0d 0a 2d 36 37 0d 0a 35 0d 0a 0d 0a 6f  .47..-67..5....o
cdd0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
cde0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
cdf0: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
ce00: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
ce10: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
ce20: 6c 2d 32 38 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-281..SELECT + 
ce30: 53 55 4d 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  SUM( ALL - col0 
ce40: 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 44  ) + COUNT( * ) D
ce50: 49 56 20 2d 20 34 31 20 41 53 20 63 6f 6c 30 20  IV - 41 AS col0 
ce60: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
ce70: 0a 2d 32 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-227....skipif 
ce80: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
ce90: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
cea0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38  rowsort label-28
ceb0: 31 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20  1..SELECT + SUM 
cec0: 28 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 2b  ( ALL - col0 ) +
ced0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2f 20 2d   COUNT ( * ) / -
cee0: 20 34 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   41 AS col0 FROM
cef0: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32   tab1..----..-22
cf00: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
cf10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
cf20: 54 49 4e 43 54 20 63 6f 6c 30 20 2a 20 2d 20 63  TINCT col0 * - c
cf30: 6f 6c 32 20 2b 20 2d 20 33 30 20 46 52 4f 4d 20  ol2 + - 30 FROM 
cf40: 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38  tab2..----..-108
cf50: 38 0d 0a 2d 32 35 39 30 0d 0a 2d 34 33 38 30 0d  8..-2590..-4380.
cf60: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
cf70: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
cf80: 30 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 32 20 41  0 * + col1 + 2 A
cf90: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
cfa0: 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 38 0d 0a 34 39  ..----..2348..49
cfb0: 33 30 0d 0a 35 30 32 37 0d 0a 0d 0a 71 75 65 72  30..5027....quer
cfc0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
cfd0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
cfe0: 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b  ol2 + + col2 + +
cff0: 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   + col0 AS col0 
d000: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
d010: 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 71  .51..85..91....q
d020: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
d030: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63  SELECT ALL + - c
d040: 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
d050: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
d060: 2b 20 2b 20 63 6f 6c 32 20 2a 20 33 35 20 2a 20  + + col2 * 35 * 
d070: 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
d080: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
d090: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d0a0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d0b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d0c0: 65 6c 2d 32 38 36 0d 0a 53 45 4c 45 43 54 20 44  el-286..SELECT D
d0d0: 49 53 54 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e  ISTINCT + + COUN
d0e0: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
d0f0: 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
d100: 4f 54 20 28 20 2b 20 63 6f 6c 32 20 3e 3d 20 2d  OT ( + col2 >= -
d110: 20 63 6f 6c 32 20 2a 20 2b 20 39 33 20 29 0d 0a   col2 * + 93 )..
d120: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
d130: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
d140: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
d150: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d160: 32 38 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  286..SELECT DIST
d170: 49 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28  INCT + + COUNT (
d180: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
d190: 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
d1a0: 20 28 20 2b 20 63 6f 6c 32 20 3e 3d 20 2d 20 63   ( + col2 >= - c
d1b0: 6f 6c 32 20 2a 20 2b 20 39 33 20 29 0d 0a 2d 2d  ol2 * + 93 )..--
d1c0: 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..0....onlyif 
d1d0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
d1e0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
d1f0: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
d200: 65 6c 2d 32 38 37 0d 0a 53 45 4c 45 43 54 20 44  el-287..SELECT D
d210: 49 53 54 49 4e 43 54 20 39 36 20 41 53 20 63 6f  ISTINCT 96 AS co
d220: 6c 31 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  l1, + COUNT( * )
d230: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
d240: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor0..----..9
d250: 36 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  6..3....skipif m
d260: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
d270: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
d280: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
d290: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
d2a0: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
d2b0: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
d2c0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
d2d0: 20 6c 61 62 65 6c 2d 32 38 37 0d 0a 53 45 4c 45   label-287..SELE
d2e0: 43 54 20 44 49 53 54 49 4e 43 54 20 39 36 20 41  CT DISTINCT 96 A
d2f0: 53 20 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e 54 20  S col1, + COUNT 
d300: 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20  ( * ) col0 FROM 
d310: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
d320: 2d 2d 0d 0a 39 36 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  --..96..3....onl
d330: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
d340: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
d350: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d360: 6c 61 62 65 6c 2d 32 38 38 0d 0a 53 45 4c 45 43  label-288..SELEC
d370: 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  T + COUNT( * ) F
d380: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
d390: 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
d3a0: 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  NOT BETWEEN NULL
d3b0: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
d3c0: 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
d3d0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
d3e0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
d3f0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 38 0d 0a  sort label-288..
d400: 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28  SELECT + COUNT (
d410: 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   * ) FROM tab0 A
d420: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
d430: 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45  ULL ) NOT BETWEE
d440: 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d  N NULL AND NULL.
d450: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .----..0....only
d460: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
d470: 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
d480: 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
d490: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
d4a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
d4b0: 38 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  89..SELECT COUNT
d4c0: 28 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  ( + - CAST( NULL
d4d0: 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 63   AS SIGNED ) ) c
d4e0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol0 FROM tab2 co
d4f0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  r0..----..0....s
d500: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
d510: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
d520: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
d530: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
d540: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
d550: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
d560: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
d570: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 39  owsort label-289
d580: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
d590: 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
d5a0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
d5b0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
d5c0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  or0..----..0....
d5d0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
d5e0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20  .SELECT ALL + + 
d5f0: 32 31 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20  21 + + col2 * + 
d600: 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
d610: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
d620: 2d 2d 2d 2d 0d 0a 31 31 39 34 0d 0a 33 31 30 31  ----..1194..3101
d630: 0d 0a 33 39 30 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..3907....onlyif
d640: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
d650: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
d660: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
d670: 65 6c 2d 32 39 31 0d 0a 53 45 4c 45 43 54 20 53  el-291..SELECT S
d680: 55 4d 28 20 44 49 53 54 49 4e 43 54 20 36 20 29  UM( DISTINCT 6 )
d690: 20 46 52 4f 4d 20 28 20 74 61 62 30 20 41 53 20   FROM ( tab0 AS 
d6a0: 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
d6b0: 74 61 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a  tab0 AS cor1 )..
d6c0: 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69  ----..6....skipi
d6d0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
d6e0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
d6f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
d700: 32 39 31 0d 0a 53 45 4c 45 43 54 20 53 55 4d 20  291..SELECT SUM 
d710: 28 20 44 49 53 54 49 4e 43 54 20 36 20 29 20 46  ( DISTINCT 6 ) F
d720: 52 4f 4d 20 28 20 74 61 62 30 20 41 53 20 63 6f  ROM ( tab0 AS co
d730: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
d740: 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d 2d  b0 AS cor1 )..--
d750: 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49  --..6....query I
d760: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
d770: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
d780: 48 45 52 45 20 63 6f 6c 30 20 2b 20 63 6f 6c 30  HERE col0 + col0
d790: 20 2b 20 2d 20 63 6f 6c 30 20 3d 20 4e 55 4c 4c   + - col0 = NULL
d7a0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
d7b0: 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
d7c0: 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
d7d0: 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
d7e0: 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
d7f0: 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
d800: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 34 20  rt..SELECT - 34 
d810: 2b 20 2d 20 63 6f 6c 32 20 63 6f 6c 30 20 46 52  + - col2 col0 FR
d820: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
d830: 57 48 45 52 45 20 4e 4f 54 20 2b 20 38 33 20 49  WHERE NOT + 83 I
d840: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S NULL..----..-1
d850: 30 32 0d 0a 2d 31 33 30 0d 0a 2d 39 33 0d 0a 0d  02..-130..-93...
d860: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d870: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
d880: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
d890: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
d8a0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
d8b0: 62 65 6c 2d 32 39 34 0d 0a 53 45 4c 45 43 54 20  bel-294..SELECT 
d8c0: 2b 20 4d 49 4e 28 20 2d 20 2b 20 43 41 53 54 28  + MIN( - + CAST(
d8d0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
d8e0: 29 20 29 20 2a 20 30 20 41 53 20 63 6f 6c 32 20  ) ) * 0 AS col2 
d8f0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
d900: 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
d910: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
d920: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
d930: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
d940: 6c 61 62 65 6c 2d 32 39 34 0d 0a 53 45 4c 45 43  label-294..SELEC
d950: 54 20 2b 20 4d 49 4e 20 28 20 2d 20 2b 20 43 41  T + MIN ( - + CA
d960: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
d970: 45 47 45 52 20 29 20 29 20 2a 20 30 20 41 53 20  EGER ) ) * 0 AS 
d980: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
d990: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
d9a0: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
d9b0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
d9c0: 4c 20 2b 20 2b 20 28 20 2b 20 35 31 20 29 20 41  L + + ( + 51 ) A
d9d0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
d9e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
d9f0: 35 31 0d 0a 35 31 0d 0a 35 31 0d 0a 0d 0a 6f 6e  51..51..51....on
da00: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
da10: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
da20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
da30: 20 6c 61 62 65 6c 2d 32 39 36 0d 0a 53 45 4c 45   label-296..SELE
da40: 43 54 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 30  CT + MAX( - col0
da50: 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) * - COUNT( * 
da60: 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
da70: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a  or0..----..138..
da80: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
da90: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
daa0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
dab0: 20 6c 61 62 65 6c 2d 32 39 36 0d 0a 53 45 4c 45   label-296..SELE
dac0: 43 54 20 2b 20 4d 41 58 20 28 20 2d 20 63 6f 6c  CT + MAX ( - col
dad0: 30 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28 20  0 ) * - COUNT ( 
dae0: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  * ) FROM tab2 AS
daf0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38   cor0..----..138
db00: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
db10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 35 20  sort..SELECT 25 
db20: 2a 20 2d 20 2d 20 63 6f 6c 32 2c 20 63 6f 6c 31  * - - col2, col1
db30: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
db40: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 37 35 0d 0a  b0..----..1175..
db50: 38 31 0d 0a 32 34 37 35 0d 0a 31 0d 0a 32 35 30  81..2475..1..250
db60: 0d 0a 32 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..21....query I 
db70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
db80: 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + + col0 FROM ta
db90: 62 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b1 WHERE NOT NUL
dba0: 4c 20 3d 20 2d 20 2d 20 63 6f 6c 32 0d 0a 2d 2d  L = - - col2..--
dbb0: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
dbc0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
dbd0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
dbe0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
dbf0: 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  99..SELECT DISTI
dc00: 4e 43 54 20 2b 20 28 20 43 4f 55 4e 54 28 20 2d  NCT + ( COUNT( -
dc10: 20 2d 20 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d   - col1 ) ) FROM
dc20: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
dc30: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ---..3....skipif
dc40: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
dc50: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
dc60: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
dc70: 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  99..SELECT DISTI
dc80: 4e 43 54 20 2b 20 28 20 43 4f 55 4e 54 20 28 20  NCT + ( COUNT ( 
dc90: 2d 20 2d 20 63 6f 6c 31 20 29 20 29 20 46 52 4f  - - col1 ) ) FRO
dca0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
dcb0: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
dcc0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
dcd0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
dce0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
dcf0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
dd00: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
dd10: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  ort..SELECT - + 
dd20: 32 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  21 col0 FROM tab
dd30: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
dd40: 0a 2d 32 31 0d 0a 2d 32 31 0d 0a 2d 32 31 0d 0a  .-21..-21..-21..
dd50: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
dd60: 74 0d 0a 53 45 4c 45 43 54 20 38 35 20 2a 20 2b  t..SELECT 85 * +
dd70: 20 2b 20 36 31 20 46 52 4f 4d 20 74 61 62 32 20   + 61 FROM tab2 
dd80: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
dd90: 54 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d  T NULL = NULL..-
dda0: 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
ddb0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
ddc0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
ddd0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
dde0: 33 30 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  302..SELECT COUN
ddf0: 54 28 20 2a 20 29 20 2b 20 2d 20 2b 20 4d 49 4e  T( * ) + - + MIN
de00: 28 20 41 4c 4c 20 2b 20 35 32 20 29 20 46 52 4f  ( ALL + 52 ) FRO
de10: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab2..----..-4
de20: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
de30: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
de40: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
de50: 6f 72 74 20 6c 61 62 65 6c 2d 33 30 32 0d 0a 53  ort label-302..S
de60: 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  ELECT COUNT ( * 
de70: 29 20 2b 20 2d 20 2b 20 4d 49 4e 20 28 20 41 4c  ) + - + MIN ( AL
de80: 4c 20 2b 20 35 32 20 29 20 46 52 4f 4d 20 74 61  L + 52 ) FROM ta
de90: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 0d  b2..----..-49...
dea0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
deb0: 0d 0a 53 45 4c 45 43 54 20 2d 20 32 30 20 2b 20  ..SELECT - 20 + 
dec0: 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
ded0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
dee0: 32 36 0d 0a 34 34 0d 0a 35 35 0d 0a 0d 0a 71 75  26..44..55....qu
def0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
df00: 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d  ELECT - col2 + -
df10: 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   + col1 AS col2 
df20: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
df30: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d  0..----..-100..-
df40: 31 32 38 0d 0a 2d 33 31 0d 0a 0d 0a 71 75 65 72  128..-31....quer
df50: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
df60: 45 43 54 20 2d 20 33 36 20 46 52 4f 4d 20 74 61  ECT - 36 FROM ta
df70: 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
df80: 20 2b 20 39 36 20 2a 20 35 39 20 49 53 20 4e 4f   + 96 * 59 IS NO
df90: 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  T NULL..----..-3
dfa0: 36 0d 0a 2d 33 36 0d 0a 2d 33 36 0d 0a 0d 0a 71  6..-36..-36....q
dfb0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
dfc0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
dfd0: 20 63 6f 6c 31 2c 20 39 31 20 41 53 20 63 6f 6c   col1, 91 AS col
dfe0: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
dff0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 39  or0..----..51..9
e000: 31 0d 0a 36 37 0d 0a 39 31 0d 0a 37 37 0d 0a 39  1..67..91..77..9
e010: 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
e020: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
e030: 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20   + ( - - col0 ) 
e040: 2a 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63  * - + col2 + + c
e050: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
e060: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   cor0..----..-10
e070: 33 35 0d 0a 2d 32 35 32 30 0d 0a 2d 34 32 39 32  35..-2520..-4292
e080: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
e090: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
e0a0: 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 41 53 20  TINCT + col1 AS 
e0b0: 63 6f 6c 32 2c 20 63 6f 6c 30 20 2a 20 2b 20 63  col2, col0 * + c
e0c0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
e0d0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   cor0..----..14.
e0e0: 0a 34 38 39 36 0d 0a 34 37 0d 0a 36 31 38 38 0d  .4896..47..6188.
e0f0: 0a 35 0d 0a 35 30 31 35 0d 0a 0d 0a 6f 6e 6c 79  .5..5015....only
e100: 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
e110: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
e120: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
e130: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 39  owsort label-309
e140: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
e150: 54 20 31 20 44 49 56 20 32 39 20 2b 20 2b 20 63  T 1 DIV 29 + + c
e160: 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f  ol1 + - col1 FRO
e170: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
e180: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
e190: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
e1a0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
e1b0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
e1c0: 33 30 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  309..SELECT DIST
e1d0: 49 4e 43 54 20 31 20 2f 20 32 39 20 2b 20 2b 20  INCT 1 / 29 + + 
e1e0: 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 46 52  col1 + - col1 FR
e1f0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
e200: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
e210: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
e220: 45 43 54 20 34 34 20 2b 20 2b 20 63 6f 6c 32 20  ECT 44 + + col2 
e230: 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
e240: 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 36 37 0d 0a 38  ----..102..67..8
e250: 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  4....query III r
e260: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
e270: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
e280: 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab0 cor0 WHERE N
e290: 4f 54 20 4e 55 4c 4c 20 3c 20 63 6f 6c 31 0d 0a  OT NULL < col1..
e2a0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
e2b0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e2c0: 38 35 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 2d 20  85 * + col1 + - 
e2d0: 33 20 2a 20 2d 20 38 31 20 2b 20 2d 20 38 39 20  3 * - 81 + - 89 
e2e0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
e2f0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
e300: 0a 31 39 33 39 0d 0a 32 33 39 0d 0a 37 30 33 39  .1939..239..7039
e310: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
e320: 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
e330: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
e340: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
e350: 61 62 65 6c 2d 33 31 33 0d 0a 53 45 4c 45 43 54  abel-313..SELECT
e360: 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
e370: 20 2b 20 2b 20 2d 20 28 20 2b 20 32 31 20 29 20   + + - ( + 21 ) 
e380: 44 49 56 20 2d 20 2d 20 35 33 20 2a 20 28 20 63  DIV - - 53 * ( c
e390: 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol2 ) AS col2 FR
e3a0: 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
e3b0: 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a  --..51..67..77..
e3c0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
e3d0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
e3e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e3f0: 20 6c 61 62 65 6c 2d 33 31 33 0d 0a 53 45 4c 45   label-313..SELE
e400: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
e410: 6c 31 20 2b 20 2b 20 2d 20 28 20 2b 20 32 31 20  l1 + + - ( + 21 
e420: 29 20 2f 20 2d 20 2d 20 35 33 20 2a 20 28 20 63  ) / - - 53 * ( c
e430: 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol2 ) AS col2 FR
e440: 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
e450: 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a  --..51..67..77..
e460: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
e470: 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
e480: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
e490: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
e4a0: 62 65 6c 2d 33 31 34 0d 0a 53 45 4c 45 43 54 20  bel-314..SELECT 
e4b0: 41 4c 4c 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 2b  ALL col0, col1 +
e4c0: 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 2a 20   ( - - col1 ) * 
e4d0: 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + + CAST( NULL A
e4e0: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2d  S SIGNED ) + - -
e4f0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
e500: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
e510: 35 0d 0a 4e 55 4c 4c 0d 0a 38 37 0d 0a 4e 55 4c  5..NULL..87..NUL
e520: 4c 0d 0a 39 37 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  L..97..NULL....s
e530: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
e540: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
e550: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
e560: 61 62 65 6c 2d 33 31 34 0d 0a 53 45 4c 45 43 54  abel-314..SELECT
e570: 20 41 4c 4c 20 63 6f 6c 30 2c 20 63 6f 6c 31 20   ALL col0, col1 
e580: 2b 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 2a  + ( - - col1 ) *
e590: 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
e5a0: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
e5b0: 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  - - col2 FROM ta
e5c0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
e5d0: 0d 0a 31 35 0d 0a 4e 55 4c 4c 0d 0a 38 37 0d 0a  ..15..NULL..87..
e5e0: 4e 55 4c 4c 0d 0a 39 37 0d 0a 4e 55 4c 4c 0d 0a  NULL..97..NULL..
e5f0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
e600: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
e610: 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
e620: 45 20 4e 55 4c 4c 20 3e 3d 20 2d 20 63 6f 6c 30  E NULL >= - col0
e630: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
e640: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
e650: 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
e660: 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
e670: 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
e680: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 36  owsort label-316
e690: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
e6a0: 2a 20 29 20 44 49 56 20 4d 41 58 28 20 33 31 20  * ) DIV MAX( 31 
e6b0: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
e6c0: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
e6d0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
e6e0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
e6f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 36  owsort label-316
e700: 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
e710: 20 2a 20 29 20 2f 20 4d 41 58 20 28 20 33 31 20   * ) / MAX ( 31 
e720: 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
e730: 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..0....query I 
e740: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
e750: 44 49 53 54 49 4e 43 54 20 36 38 20 2b 20 2d 20  DISTINCT 68 + - 
e760: 39 32 20 2a 20 2d 20 63 6f 6c 30 20 2d 20 2d 20  92 * - col0 - - 
e770: 2b 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 31 20  + col1 - + col1 
e780: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
e790: 0a 31 34 34 38 0d 0a 38 30 37 32 0d 0a 38 39 39  .1448..8072..899
e7a0: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
e7b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
e7c0: 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b  TINCT + col2 + +
e7d0: 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 2a 20   - ( + col0 ) * 
e7e0: 2d 20 28 20 36 33 20 29 20 46 52 4f 4d 20 74 61  - ( 63 ) FROM ta
e7f0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 34 39 31 0d 0a  b0..----..5491..
e800: 36 32 31 30 0d 0a 39 39 32 0d 0a 0d 0a 71 75 65  6210..992....que
e810: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
e820: 4c 45 43 54 20 41 4c 4c 20 35 33 20 2b 20 2b 20  LECT ALL 53 + + 
e830: 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  - col1 FROM tab2
e840: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 32 34  ..----..-14..-24
e850: 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ..2....skipif po
e860: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
e870: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
e880: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
e890: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
e8a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
e8b0: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 63  .SELECT col2 * c
e8c0: 6f 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 63 6f 6c  ol0 - + col2 col
e8d0: 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
e8e0: 0d 0a 2d 2d 2d 2d 0d 0a 36 35 38 0d 0a 38 36 30  ..----..658..860
e8f0: 0d 0a 39 35 30 34 0d 0a 0d 0a 71 75 65 72 79 20  ..9504....query 
e900: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
e910: 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20 2d  T ALL + col0 * -
e920: 20 38 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53   83 FROM tab1 AS
e930: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32   cor0..----..-42
e940: 33 33 0d 0a 2d 37 30 35 35 0d 0a 2d 37 35 35 33  33..-7055..-7553
e950: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
e960: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
e970: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
e980: 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 4e  0 WHERE ( NULL N
e990: 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20  OT BETWEEN col1 
e9a0: 41 4e 44 20 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c  AND col0 - - col
e9b0: 31 20 2a 20 2d 20 2d 20 36 35 20 29 0d 0a 2d 2d  1 * - - 65 )..--
e9c0: 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
e9d0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
e9e0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
e9f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
ea00: 32 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  23..SELECT COUNT
ea10: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
ea20: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
ea30: 49 4e 20 74 61 62 31 20 63 6f 72 31 0d 0a 2d 2d  IN tab1 cor1..--
ea40: 2d 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..9....skipif 
ea50: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
ea60: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
ea70: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
ea80: 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20  3..SELECT COUNT 
ea90: 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ( * ) FROM tab1 
eaa0: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
eab0: 49 4e 20 74 61 62 31 20 63 6f 72 31 0d 0a 2d 2d  IN tab1 cor1..--
eac0: 2d 2d 0d 0a 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..9....onlyif 
ead0: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
eae0: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
eaf0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
eb00: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 34 0d 0a 53  ort label-324..S
eb10: 45 4c 45 43 54 20 2d 20 35 34 20 44 49 56 20 2d  ELECT - 54 DIV -
eb20: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
eb30: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
eb40: 0d 0a 32 0d 0a 35 34 0d 0a 0d 0a 73 6b 69 70 69  ..2..54....skipi
eb50: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
eb60: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
eb70: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
eb80: 33 32 34 0d 0a 53 45 4c 45 43 54 20 2d 20 35 34  324..SELECT - 54
eb90: 20 2f 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   / - col1 AS col
eba0: 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
ebb0: 2d 0d 0a 30 0d 0a 32 0d 0a 35 34 0d 0a 0d 0a 6f  -..0..2..54....o
ebc0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
ebd0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
ebe0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
ebf0: 74 20 6c 61 62 65 6c 2d 33 32 35 0d 0a 53 45 4c  t label-325..SEL
ec00: 45 43 54 20 4d 49 4e 28 20 44 49 53 54 49 4e 43  ECT MIN( DISTINC
ec10: 54 20 2d 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f  T - - col2 ) FRO
ec20: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39  M tab1..----..59
ec30: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
ec40: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
ec50: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
ec60: 72 74 20 6c 61 62 65 6c 2d 33 32 35 0d 0a 53 45  rt label-325..SE
ec70: 4c 45 43 54 20 4d 49 4e 20 28 20 44 49 53 54 49  LECT MIN ( DISTI
ec80: 4e 43 54 20 2d 20 2d 20 63 6f 6c 32 20 29 20 46  NCT - - col2 ) F
ec90: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
eca0: 35 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  59....onlyif mys
ecb0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
ecc0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
ecd0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
ece0: 74 20 6c 61 62 65 6c 2d 33 32 36 0d 0a 53 45 4c  t label-326..SEL
ecf0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 43  ECT DISTINCT ( C
ed00: 41 53 54 28 20 2b 20 31 32 20 41 53 20 53 49 47  AST( + 12 AS SIG
ed10: 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 30 2c  NED ) ) AS col0,
ed20: 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b   col2 + - col0 +
ed30: 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + - col2 FROM t
ed40: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
ed50: 2d 0d 0a 31 32 0d 0a 2d 31 35 0d 0a 31 32 0d 0a  -..12..-15..12..
ed60: 2d 38 37 0d 0a 31 32 0d 0a 2d 39 37 0d 0a 0d 0a  -87..12..-97....
ed70: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
ed80: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
ed90: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
eda0: 6c 61 62 65 6c 2d 33 32 36 0d 0a 53 45 4c 45 43  label-326..SELEC
edb0: 54 20 44 49 53 54 49 4e 43 54 20 28 20 43 41 53  T DISTINCT ( CAS
edc0: 54 20 28 20 2b 20 31 32 20 41 53 20 49 4e 54 45  T ( + 12 AS INTE
edd0: 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 30 2c  GER ) ) AS col0,
ede0: 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 2b   col2 + - col0 +
edf0: 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   + - col2 FROM t
ee00: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
ee10: 2d 0d 0a 31 32 0d 0a 2d 31 35 0d 0a 31 32 0d 0a  -..12..-15..12..
ee20: 2d 38 37 0d 0a 31 32 0d 0a 2d 39 37 0d 0a 0d 0a  -87..12..-97....
ee30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ee40: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ee50: 20 38 37 20 2a 20 2b 20 2d 20 35 36 20 2a 20 2d   87 * + - 56 * -
ee60: 20 2d 20 38 36 20 2a 20 2b 20 37 34 20 41 53 20   - 86 * + 74 AS 
ee70: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
ee80: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
ee90: 31 30 30 35 34 30 38 0d 0a 0d 0a 71 75 65 72 79  1005408....query
eea0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
eeb0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
eec0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
eed0: 4f 54 20 4e 55 4c 4c 20 3e 3d 20 28 20 2b 20 63  OT NULL >= ( + c
eee0: 6f 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d  ol0 * - col0 + -
eef0: 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
ef00: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ef10: 0d 0a 53 45 4c 45 43 54 20 2d 20 30 20 2a 20 31  ..SELECT - 0 * 1
ef20: 36 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  6 FROM tab1 WHER
ef30: 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3e 20 2d 20  E NOT NULL <> - 
ef40: 34 31 20 2a 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d  41 * + col2..---
ef50: 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
ef60: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
ef70: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
ef80: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33  rowsort label-33
ef90: 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
efa0: 43 54 20 4d 49 4e 28 20 2b 20 38 39 20 29 20 46  CT MIN( + 89 ) F
efb0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
efc0: 38 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  89....skipif mys
efd0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
efe0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
eff0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 33 30 0d 0a  sort label-330..
f000: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
f010: 4d 49 4e 20 28 20 2b 20 38 39 20 29 20 46 52 4f  MIN ( + 89 ) FRO
f020: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 38 39  M tab2..----..89
f030: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
f040: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
f050: 30 2c 20 2b 20 34 30 20 2b 20 2d 20 63 6f 6c 31  0, + 40 + - col1
f060: 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   * + + col2 FROM
f070: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d   tab1..----..51.
f080: 0a 2d 31 33 30 34 0d 0a 38 35 0d 0a 2d 32 35 35  .-1304..85..-255
f090: 0d 0a 39 31 0d 0a 2d 33 31 35 36 0d 0a 0d 0a 71  ..91..-3156....q
f0a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
f0b0: 53 45 4c 45 43 54 20 41 4c 4c 20 37 31 20 2a 20  SELECT ALL 71 * 
f0c0: 2b 20 34 32 20 2a 20 32 34 20 2a 20 2d 20 2d 20  + 42 * 24 * - - 
f0d0: 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
f0e0: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 36  M tab1..----..36
f0f0: 34 39 39 36 38 0d 0a 36 30 38 33 32 38 30 0d 0a  49968..6083280..
f100: 36 35 31 32 36 38 38 0d 0a 0d 0a 71 75 65 72 79  6512688....query
f110: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
f120: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
f130: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
f140: 4e 4f 54 20 2b 20 28 20 2d 20 37 33 20 29 20 49  NOT + ( - 73 ) I
f150: 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
f160: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
f170: 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
f180: 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
f190: 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  ad....onlyif mys
f1a0: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
f1b0: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
f1c0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
f1d0: 74 20 6c 61 62 65 6c 2d 33 33 34 0d 0a 53 45 4c  t label-334..SEL
f1e0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
f1f0: 6f 6c 30 2c 20 28 20 2b 20 32 20 29 20 44 49 56  ol0, ( + 2 ) DIV
f200: 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20 74   + - col1 FROM t
f210: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
f220: 2d 0d 0a 31 35 0d 0a 30 0d 0a 38 37 0d 0a 30 0d  -..15..0..87..0.
f230: 0a 39 37 0d 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69  .97..-2....skipi
f240: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
f250: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
f260: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
f270: 2d 33 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -334..SELECT DIS
f280: 54 49 4e 43 54 20 2b 20 63 6f 6c 30 2c 20 28 20  TINCT + col0, ( 
f290: 2b 20 32 20 29 20 2f 20 2b 20 2d 20 63 6f 6c 31  + 2 ) / + - col1
f2a0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
f2b0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 30 0d  r0..----..15..0.
f2c0: 0a 38 37 0d 0a 30 0d 0a 39 37 0d 0a 2d 32 0d 0a  .87..0..97..-2..
f2d0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
f2e0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
f2f0: 4e 43 54 20 2b 20 63 6f 6c 32 2c 20 28 20 63 6f  NCT + col2, ( co
f300: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63  l1 ) FROM tab2 c
f310: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 35  or0..----..23..5
f320: 31 0d 0a 34 30 0d 0a 37 37 0d 0a 35 38 0d 0a 36  1..40..77..58..6
f330: 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
f340: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
f350: 54 49 4e 43 54 20 2d 20 39 31 20 41 53 20 63 6f  TINCT - 91 AS co
f360: 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
f370: 2d 2d 0d 0a 2d 39 31 0d 0a 0d 0a 71 75 65 72 79  --..-91....query
f380: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
f390: 43 54 20 41 4c 4c 20 39 32 20 2b 20 32 20 41 53  CT ALL 92 + 2 AS
f3a0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
f3b0: 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 39 34 0d 0a 39  .----..94..94..9
f3c0: 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
f3d0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
f3e0: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
f3f0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f400: 6c 61 62 65 6c 2d 33 33 38 0d 0a 53 45 4c 45 43  label-338..SELEC
f410: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53  T DISTINCT - CAS
f420: 54 28 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 53  T( + + col0 AS S
f430: 49 47 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f  IGNED ) col1 FRO
f440: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
f450: 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d 0a  ----..-15..-87..
f460: 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -97....skipif my
f470: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
f480: 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
f490: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
f4a0: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
f4b0: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
f4c0: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
f4d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
f4e0: 61 62 65 6c 2d 33 33 38 0d 0a 53 45 4c 45 43 54  abel-338..SELECT
f4f0: 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54   DISTINCT - CAST
f500: 20 28 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20 49   ( + + col0 AS I
f510: 4e 54 45 47 45 52 20 29 20 63 6f 6c 31 20 46 52  NTEGER ) col1 FR
f520: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
f530: 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d  .----..-15..-87.
f540: 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-97....query II
f550: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
f560: 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
f570: 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 4f   cor0 WHERE ( NO
f580: 54 20 28 20 4e 4f 54 20 31 31 20 2a 20 2b 20 36  T ( NOT 11 * + 6
f590: 35 20 2b 20 2b 20 2d 20 36 37 20 49 53 20 4e 55  5 + + - 67 IS NU
f5a0: 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  LL ) )..----....
f5b0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
f5c0: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
f5d0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
f5e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f5f0: 2d 33 34 30 0d 0a 53 45 4c 45 43 54 20 2d 20 38  -340..SELECT - 8
f600: 20 44 49 56 20 2d 20 63 6f 6c 30 20 41 53 20 63   DIV - col0 AS c
f610: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
f620: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
f630: 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  0..0....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 30  owsort label-340
f670: 0d 0a 53 45 4c 45 43 54 20 2d 20 38 20 2f 20 2d  ..SELECT - 8 / -
f680: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
f690: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
f6a0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
f6b0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
f6c0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
f6d0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
f6e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 31 0d 0a  sort label-341..
f6f0: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 4d  SELECT ALL + + M
f700: 41 58 28 20 2b 20 63 6f 6c 31 20 29 20 46 52 4f  AX( + col1 ) FRO
f710: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
f720: 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70  ----..77....skip
f730: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
f740: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
f750: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
f760: 2d 33 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -341..SELECT ALL
f770: 20 2b 20 2b 20 4d 41 58 20 28 20 2b 20 63 6f 6c   + + MAX ( + col
f780: 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  1 ) FROM tab2 AS
f790: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 37 0d   cor0..----..77.
f7a0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
f7b0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
f7c0: 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57 48  ROM tab1 cor0 WH
f7d0: 45 52 45 20 2d 20 63 6f 6c 32 20 3d 20 4e 55 4c  ERE - col2 = NUL
f7e0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
f7f0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
f800: 43 54 20 41 4c 4c 20 2d 20 2b 20 38 34 20 41 53  CT ALL - + 84 AS
f810: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
f820: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
f830: 38 34 0d 0a 2d 38 34 0d 0a 2d 38 34 0d 0a 0d 0a  84..-84..-84....
f840: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
f850: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
f860: 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 38 37 20 41   col2 * - + 87 A
f870: 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
f880: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 38 39 0d 0a 2d  ..----..-4089..-
f890: 38 36 31 33 0d 0a 2d 38 37 30 0d 0a 0d 0a 6f 6e  8613..-870....on
f8a0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
f8b0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
f8c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
f8d0: 20 6c 61 62 65 6c 2d 33 34 35 0d 0a 53 45 4c 45   label-345..SELE
f8e0: 43 54 20 41 4c 4c 20 4d 41 58 28 20 2d 20 2b 20  CT ALL MAX( - + 
f8f0: 63 6f 6c 31 20 29 20 2a 20 2d 20 2d 20 34 35 20  col1 ) * - - 45 
f900: 2b 20 2b 20 2d 20 38 39 20 2a 20 2b 20 36 34 20  + + - 89 * + 64 
f910: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
f920: 0a 2d 35 39 32 31 0d 0a 0d 0a 73 6b 69 70 69 66  .-5921....skipif
f930: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
f940: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
f950: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
f960: 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d  45..SELECT ALL M
f970: 41 58 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29 20  AX ( - + col1 ) 
f980: 2a 20 2d 20 2d 20 34 35 20 2b 20 2b 20 2d 20 38  * - - 45 + + - 8
f990: 39 20 2a 20 2b 20 36 34 20 46 52 4f 4d 20 74 61  9 * + 64 FROM ta
f9a0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 32 31 0d  b1..----..-5921.
f9b0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
f9c0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
f9d0: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
f9e0: 32 20 57 48 45 52 45 20 63 6f 6c 30 20 4e 4f 54  2 WHERE col0 NOT
f9f0: 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
fa00: 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
fa10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
fa20: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
fa30: 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 32 20 2b 20  l0 + - - col2 + 
fa40: 2d 20 38 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  - 8 - col1 FROM 
fa50: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d  tab1..----..104.
fa60: 0a 31 32 35 0d 0a 31 33 31 0d 0a 0d 0a 6f 6e 6c  .125..131....onl
fa70: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
fa80: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
fa90: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
faa0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34  rowsort label-34
fab0: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  8..SELECT ALL + 
fac0: 39 39 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 2d 20  99 + + col2 - - 
fad0: 36 36 20 44 49 56 20 63 6f 6c 32 20 41 53 20 63  66 DIV col2 AS c
fae0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
faf0: 2d 2d 2d 0d 0a 31 35 39 0d 0a 31 36 37 0d 0a 31  ---..159..167..1
fb00: 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  95....skipif mys
fb10: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
fb20: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
fb30: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 38 0d 0a  sort label-348..
fb40: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 39 39 20  SELECT ALL + 99 
fb50: 2b 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 36 36 20  + + col2 - - 66 
fb60: 2f 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  / col2 AS col1 F
fb70: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
fb80: 31 35 39 0d 0a 31 36 37 0d 0a 31 39 35 0d 0a 0d  159..167..195...
fb90: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
fba0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
fbb0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
fbc0: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 39 0d 0a 53  ort label-349..S
fbd0: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
fbe0: 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) + COUNT( * ) 
fbf0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
fc00: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  0..----..0....sk
fc10: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
fc20: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
fc30: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
fc40: 65 6c 2d 33 34 39 0d 0a 53 45 4c 45 43 54 20 2d  el-349..SELECT -
fc50: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43   COUNT ( * ) + C
fc60: 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
fc70: 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
fc80: 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..0....onlyif 
fc90: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
fca0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
fcb0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
fcc0: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 30 0d 0a 53  ort label-350..S
fcd0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
fce0: 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
fcf0: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
fd00: 54 20 28 20 39 32 20 2a 20 2d 20 63 6f 6c 32 20  T ( 92 * - col2 
fd10: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
fd20: 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55 4c 4c  SIGNED ) IS NULL
fd30: 20 29 20 4f 52 20 4e 4f 54 20 4e 55 4c 4c 20 49   ) OR NOT NULL I
fd40: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
fd50: 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d  ..-10..-47..-99.
fd60: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
fd70: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
fd80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
fd90: 74 20 6c 61 62 65 6c 2d 33 35 30 0d 0a 53 45 4c  t label-350..SEL
fda0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
fdb0: 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
fdc0: 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
fdd0: 28 20 39 32 20 2a 20 2d 20 63 6f 6c 32 20 2b 20  ( 92 * - col2 + 
fde0: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
fdf0: 4e 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c  NTEGER ) IS NULL
fe00: 20 29 20 4f 52 20 4e 4f 54 20 4e 55 4c 4c 20 49   ) OR NOT NULL I
fe10: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
fe20: 0d 0a 2d 31 30 0d 0a 2d 34 37 0d 0a 2d 39 39 0d  ..-10..-47..-99.
fe30: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
fe40: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
fe50: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
fe60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
fe70: 62 65 6c 2d 33 35 31 0d 0a 53 45 4c 45 43 54 20  bel-351..SELECT 
fe80: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
fe90: 2a 20 28 20 2b 20 63 6f 6c 32 20 29 20 44 49 56  * ( + col2 ) DIV
fea0: 20 35 36 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2a   56 * - - col2 *
feb0: 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 33 33   + + col1 * + 33
fec0: 20 2d 20 2b 20 2b 20 38 33 20 2a 20 2b 20 63 6f   - + + 83 * + co
fed0: 6c 31 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 2d 20  l1 * col0 + + - 
fee0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
fef0: 2d 2d 2d 2d 0d 0a 35 31 38 31 31 33 36 0d 0a 35  ----..5181136..5
ff00: 37 39 34 33 39 0d 0a 38 34 33 31 32 38 39 0d 0a  79439..8431289..
ff10: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
ff20: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
ff30: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ff40: 20 6c 61 62 65 6c 2d 33 35 31 0d 0a 53 45 4c 45   label-351..SELE
ff50: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
ff60: 6c 31 20 2a 20 28 20 2b 20 63 6f 6c 32 20 29 20  l1 * ( + col2 ) 
ff70: 2f 20 35 36 20 2a 20 2d 20 2d 20 63 6f 6c 32 20  / 56 * - - col2 
ff80: 2a 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 33  * + + col1 * + 3
ff90: 33 20 2d 20 2b 20 2b 20 38 33 20 2a 20 2b 20 63  3 - + + 83 * + c
ffa0: 6f 6c 31 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 2d  ol1 * col0 + + -
ffb0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
ffc0: 0a 2d 2d 2d 2d 0d 0a 35 31 38 31 31 33 36 0d 0a  .----..5181136..
ffd0: 35 37 39 34 33 39 0d 0a 38 34 33 31 32 38 39 0d  579439..8431289.
ffe0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
fff0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
10000 4e 43 54 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 63  NCT + col0 / + c
10010 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f  ol2 * - col2 FRO
10020 4d 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 63  M tab2 WHERE + c
10030 6f 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2b  ol2 * + col2 + +
10040 20 36 20 2b 20 63 6f 6c 32 20 3d 20 2d 20 37 37   6 + col2 = - 77
10050 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
10060 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
10070 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
10080 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
10090 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 33 0d 0a  sort label-353..
100a0 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20  SELECT - + col2 
100b0 2a 20 35 36 20 2a 20 2d 20 63 6f 6c 32 20 2f 20  * 56 * - col2 / 
100c0 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20 41  - CAST( + col2 A
100d0 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
100e0 74 61 62 32 20 57 48 45 52 45 20 2b 20 2b 20 32  tab2 WHERE + + 2
100f0 30 20 49 4e 20 28 20 2d 20 2d 20 36 30 20 2b 20  0 IN ( - - 60 + 
10100 2b 20 2d 20 37 20 2a 20 63 6f 6c 32 20 2d 20 2d  + - 7 * col2 - -
10110 20 63 6f 6c 31 2c 20 28 20 2b 20 63 6f 6c 30 20   col1, ( + col0 
10120 29 2c 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 31  ), + col0 + col1
10130 20 2b 20 2b 20 33 32 20 29 0d 0a 2d 2d 2d 2d 0d   + + 32 )..----.
10140 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10150 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10160 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10170 74 20 6c 61 62 65 6c 2d 33 35 33 0d 0a 53 45 4c  t label-353..SEL
10180 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2a 20 35  ECT - + col2 * 5
10190 36 20 2a 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 43  6 * - col2 / - C
101a0 41 53 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20  AST ( + col2 AS 
101b0 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74  INTEGER ) FROM t
101c0 61 62 32 20 57 48 45 52 45 20 2b 20 2b 20 32 30  ab2 WHERE + + 20
101d0 20 49 4e 20 28 20 2d 20 2d 20 36 30 20 2b 20 2b   IN ( - - 60 + +
101e0 20 2d 20 37 20 2a 20 63 6f 6c 32 20 2d 20 2d 20   - 7 * col2 - - 
101f0 63 6f 6c 31 2c 20 28 20 2b 20 63 6f 6c 30 20 29  col1, ( + col0 )
10200 2c 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 31 20  , + col0 + col1 
10210 2b 20 2b 20 33 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + + 32 )..----..
10220 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10230 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
10240 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
10250 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 34 0d 0a  sort label-354..
10260 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
10270 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  ) * + - COUNT( *
10280 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
10290 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a  cor0..----..-9..
102a0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
102b0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
102c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
102d0 20 6c 61 62 65 6c 2d 33 35 34 0d 0a 53 45 4c 45   label-354..SELE
102e0 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  CT COUNT ( * ) *
102f0 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
10300 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
10310 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  r0..----..-9....
10320 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
10330 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
10340 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
10350 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10360 2d 33 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -355..SELECT DIS
10370 54 49 4e 43 54 20 2d 20 37 36 20 2f 20 2d 20 63  TINCT - 76 / - c
10380 6f 6c 30 20 2a 20 2b 20 43 41 53 54 28 20 4e 55  ol0 * + CAST( NU
10390 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  LL AS SIGNED ) F
103a0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
103b0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
103c0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
103d0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
103e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 35  owsort label-355
103f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
10400 54 20 2d 20 37 36 20 2f 20 2d 20 63 6f 6c 30 20  T - 76 / - col0 
10410 2a 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  * + CAST ( NULL 
10420 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
10430 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab1..----..NU
10440 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
10450 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
10460 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
10470 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10480 20 6c 61 62 65 6c 2d 33 35 36 0d 0a 53 45 4c 45   label-356..SELE
10490 43 54 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b 20  CT + col2 DIV + 
104a0 35 37 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  57 FROM tab1..--
104b0 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73  --..1..1..1....s
104c0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
104d0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
104e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
104f0 62 65 6c 2d 33 35 36 0d 0a 53 45 4c 45 43 54 20  bel-356..SELECT 
10500 2b 20 63 6f 6c 32 20 2f 20 2b 20 35 37 20 46 52  + col2 / + 57 FR
10510 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
10520 0d 0a 31 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20  ..1..1....query 
10530 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  IIIIII rowsort..
10540 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
10550 62 31 20 63 6f 72 30 20 4c 45 46 54 20 4f 55 54  b1 cor0 LEFT OUT
10560 45 52 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  ER JOIN tab1 AS 
10570 63 6f 72 31 20 4f 4e 20 2d 20 2b 20 35 35 20 2f  cor1 ON - + 55 /
10580 20 2d 20 37 35 20 49 53 20 4e 4f 54 20 4e 55 4c   - 75 IS NOT NUL
10590 4c 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  L WHERE NOT NULL
105a0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
105b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
105c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
105d0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
105e0 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 38 0d 0a  sort label-358..
105f0 53 45 4c 45 43 54 20 4d 49 4e 28 20 2d 20 63 6f  SELECT MIN( - co
10600 6c 32 20 29 20 2a 20 43 4f 55 4e 54 28 20 2a 20  l2 ) * COUNT( * 
10610 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
10620 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34 0d  or0..----..-174.
10630 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10640 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10650 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10660 74 20 6c 61 62 65 6c 2d 33 35 38 0d 0a 53 45 4c  t label-358..SEL
10670 45 43 54 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 32  ECT MIN ( - col2
10680 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20 29   ) * COUNT ( * )
10690 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
106a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 34 0d 0a  r0..----..-174..
106b0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
106c0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
106d0 43 54 20 2b 20 34 30 20 41 53 20 63 6f 6c 31 20  CT + 40 AS col1 
106e0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
106f0 30 0d 0a 2d 2d 2d 2d 0d 0a 34 30 0d 0a 0d 0a 6f  0..----..40....o
10700 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
10710 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
10720 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10730 74 20 6c 61 62 65 6c 2d 33 36 30 0d 0a 53 45 4c  t label-360..SEL
10740 45 43 54 20 2b 20 4d 41 58 28 20 44 49 53 54 49  ECT + MAX( DISTI
10750 4e 43 54 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  NCT col1 ) AS co
10760 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
10770 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a  cor0..----..81..
10780 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10790 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
107a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
107b0 20 6c 61 62 65 6c 2d 33 36 30 0d 0a 53 45 4c 45   label-360..SELE
107c0 43 54 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49  CT + MAX ( DISTI
107d0 4e 43 54 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  NCT col1 ) AS co
107e0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
107f0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a  cor0..----..81..
10800 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10810 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37 35 20 2a  t..SELECT - 75 *
10820 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 38 35 20 41   + col0 * + 85 A
10830 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
10840 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
10850 2d 33 32 35 31 32 35 0d 0a 2d 35 34 31 38 37 35  -325125..-541875
10860 0d 0a 2d 35 38 30 31 32 35 0d 0a 0d 0a 6f 6e 6c  ..-580125....onl
10870 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
10880 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
10890 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
108a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36  rowsort label-36
108b0 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  2..SELECT ALL + 
108c0 2d 20 32 39 20 44 49 56 20 2d 20 2b 20 63 6f 6c  - 29 DIV - + col
108d0 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  0 FROM tab2 cor0
108e0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d  ..----..0..0..0.
108f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10900 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10910 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10920 74 20 6c 61 62 65 6c 2d 33 36 32 0d 0a 53 45 4c  t label-362..SEL
10930 45 43 54 20 41 4c 4c 20 2b 20 2d 20 32 39 20 2f  ECT ALL + - 29 /
10940 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74   - + col0 FROM t
10950 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
10960 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  0..0..0....onlyi
10970 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
10980 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
10990 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
109a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 33 0d  wsort label-363.
109b0 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2d 20  .SELECT CAST( - 
109c0 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 53 49  ( + col1 ) AS SI
109d0 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46  GNED ) AS col2 F
109e0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
109f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 34 37  ..----..-14..-47
10a00 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-5....skipif m
10a10 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
10a20 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
10a30 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 33  owsort label-363
10a40 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20  ..SELECT CAST ( 
10a50 2d 20 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20  - ( + col1 ) AS 
10a60 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
10a70 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
10a80 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a  or0..----..-14..
10a90 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69  -47..-5....skipi
10aa0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
10ab0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
10ac0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
10ad0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
10ae0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
10af0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
10b00 49 4e 43 54 20 35 34 20 2a 20 2d 20 36 37 20 2b  INCT 54 * - 67 +
10b10 20 2d 20 2b 20 38 34 20 63 6f 6c 32 20 46 52 4f   - + 84 col2 FRO
10b20 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
10b30 20 2d 20 63 6f 6c 30 20 3e 20 4e 55 4c 4c 0d 0a   - col0 > NULL..
10b40 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
10b50 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
10b60 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
10b70 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
10b80 72 74 20 6c 61 62 65 6c 2d 33 36 35 0d 0a 53 45  rt label-365..SE
10b90 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2b 20 2b  LECT ALL + ( + +
10ba0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
10bb0 49 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c  IGNED ) ) AS col
10bc0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
10bd0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
10be0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
10bf0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
10c00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
10c10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 35 0d  wsort label-365.
10c20 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20  .SELECT ALL + ( 
10c30 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + + CAST ( NULL 
10c40 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41  AS INTEGER ) ) A
10c50 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
10c60 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
10c70 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  LL..NULL....only
10c80 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
10c90 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
10ca0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
10cb0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
10cc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10cd0 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  66..SELECT - COU
10ce0 4e 54 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31  NT( ALL + + col1
10cf0 20 29 20 44 49 56 20 2d 20 43 4f 55 4e 54 28 20   ) DIV - COUNT( 
10d00 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20  DISTINCT - col0 
10d10 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
10d20 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..1....skipif m
10d30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
10d40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
10d50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 36 36  owsort label-366
10d60 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
10d70 20 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 31 20   ( ALL + + col1 
10d80 29 20 2f 20 2d 20 43 4f 55 4e 54 20 28 20 44 49  ) / - COUNT ( DI
10d90 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20  STINCT - col0 ) 
10da0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
10db0 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .1....query III 
10dc0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10dd0 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
10de0 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2a 20 2b  E NOT - col2 * +
10df0 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col2 IS NULL..-
10e00 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
10e10 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31  shing to c6c0a41
10e20 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31  11b36d04dbc811a1
10e30 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c  1e4d54cad....onl
10e40 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
10e50 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
10e60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10e70 6c 61 62 65 6c 2d 33 36 38 0d 0a 53 45 4c 45 43  label-368..SELEC
10e80 54 20 2b 20 43 4f 55 4e 54 28 20 2b 20 2d 20 63  T + COUNT( + - c
10e90 6f 6c 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol0 ) AS col2 FR
10ea0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
10eb0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
10ec0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
10ed0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
10ee0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
10ef0 2d 33 36 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -368..SELECT + C
10f00 4f 55 4e 54 20 28 20 2b 20 2d 20 63 6f 6c 30 20  OUNT ( + - col0 
10f10 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
10f20 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
10f30 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..3....query I 
10f40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10f50 28 20 2b 20 31 32 20 29 20 46 52 4f 4d 20 74 61  ( + 12 ) FROM ta
10f60 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
10f70 0d 0a 31 32 0d 0a 31 32 0d 0a 31 32 0d 0a 0d 0a  ..12..12..12....
10f80 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
10f90 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
10fa0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
10fb0 72 74 20 6c 61 62 65 6c 2d 33 37 30 0d 0a 53 45  rt label-370..SE
10fc0 4c 45 43 54 20 2b 20 53 55 4d 28 20 44 49 53 54  LECT + SUM( DIST
10fd0 49 4e 43 54 20 2b 20 63 6f 6c 32 20 29 20 46 52  INCT + col2 ) FR
10fe0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
10ff0 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 73 6b  .----..223....sk
11000 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
11010 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
11020 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
11030 65 6c 2d 33 37 30 0d 0a 53 45 4c 45 43 54 20 2b  el-370..SELECT +
11040 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
11050 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61  + col2 ) FROM ta
11060 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
11070 0d 0a 32 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..223....query I
11080 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
11090 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
110a0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
110b0 20 4e 4f 54 20 2b 20 31 35 20 3e 20 32 36 20 2a   NOT + 15 > 26 *
110c0 20 2d 20 2d 20 38 39 20 2b 20 2d 20 33 35 20 2a   - - 89 + - 35 *
110d0 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 35 39 0d 0a   - col2 + - 59..
110e0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
110f0 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
11100 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
11110 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75  11e4d54cad....qu
11120 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
11130 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
11140 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30   + col1 + - col0
11150 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2d 20   + + col0 + + - 
11160 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 46 52  col1 * + col1 FR
11170 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
11180 2d 2d 0d 0a 2d 32 0d 0a 2d 34 36 32 0d 0a 2d 36  --..-2..-462..-6
11190 36 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  642....onlyif my
111a0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
111b0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
111c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
111d0 33 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  373..SELECT ALL 
111e0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
111f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
11200 48 45 52 45 20 28 20 4e 4f 54 20 4e 55 4c 4c 20  HERE ( NOT NULL 
11210 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a 2d  IS NOT NULL )..-
11220 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69  ---..-3....skipi
11230 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
11240 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
11250 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11260 33 37 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  373..SELECT ALL 
11270 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
11280 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
11290 57 48 45 52 45 20 28 20 4e 4f 54 20 4e 55 4c 4c  WHERE ( NOT NULL
112a0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20 29 0d 0a   IS NOT NULL )..
112b0 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79  ----..-3....only
112c0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
112d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
112e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
112f0 61 62 65 6c 2d 33 37 34 0d 0a 53 45 4c 45 43 54  abel-374..SELECT
11300 20 41 4c 4c 20 2d 20 35 31 20 2b 20 43 4f 55 4e   ALL - 51 + COUN
11310 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
11320 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
11330 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 0d 0a 0d 0a 73  ..----..-48....s
11340 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
11350 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
11360 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11370 62 65 6c 2d 33 37 34 0d 0a 53 45 4c 45 43 54 20  bel-374..SELECT 
11380 41 4c 4c 20 2d 20 35 31 20 2b 20 43 4f 55 4e 54  ALL - 51 + COUNT
11390 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
113a0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
113b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 38 0d 0a 0d 0a 71  ..----..-48....q
113c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
113d0 53 45 4c 45 43 54 20 35 37 20 2b 20 2d 20 63 6f  SELECT 57 + - co
113e0 6c 32 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2d 20  l2 * + col2 + - 
113f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
11400 2d 2d 2d 2d 0d 0a 2d 31 35 38 33 0d 0a 2d 33 33  ----..-1583..-33
11410 36 35 0d 0a 2d 34 39 35 0d 0a 0d 0a 71 75 65 72  65..-495....quer
11420 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
11430 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 37  ECT - col0 * + 7
11440 31 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  1 + - col2 FROM 
11450 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 31  tab0..----..-111
11460 32 0d 0a 2d 36 31 38 37 0d 0a 2d 36 39 38 36 0d  2..-6187..-6986.
11470 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
11480 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
11490 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
114a0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
114b0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
114c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
114d0 45 43 54 20 2b 20 33 30 20 63 6f 6c 30 20 46 52  ECT + 30 col0 FR
114e0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
114f0 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
11500 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
11510 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
11520 64 61 35 64 65 30 63 34 31 31 61 32 63 30 66 34  da5de0c411a2c0f4
11530 34 35 34 30 30 66 31 62 36 33 65 61 39 66 38 39  45400f1b63ea9f89
11540 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
11550 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
11560 49 4e 43 54 20 2b 20 35 39 20 2a 20 2d 20 2b 20  INCT + 59 * - + 
11570 33 36 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63  36 - + col1 AS c
11580 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
11590 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   cor0..----..-21
115a0 37 35 0d 0a 2d 32 31 39 31 0d 0a 2d 32 32 30 31  75..-2191..-2201
115b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
115c0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
115d0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
115e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 39  owsort label-379
115f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
11600 41 58 28 20 2b 20 2b 20 38 36 20 29 20 41 53 20  AX( + + 86 ) AS 
11610 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
11620 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
11630 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   + col1 IS NULL.
11640 0a 2d 2d 2d 2d 0d 0a 38 36 0d 0a 0d 0a 73 6b 69  .----..86....ski
11650 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
11660 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
11670 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11680 6c 2d 33 37 39 0d 0a 53 45 4c 45 43 54 20 41 4c  l-379..SELECT AL
11690 4c 20 2b 20 4d 41 58 20 28 20 2b 20 2b 20 38 36  L + MAX ( + + 86
116a0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
116b0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
116c0 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20 49 53  RE NOT + col1 IS
116d0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 38 36 0d   NULL..----..86.
116e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
116f0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
11700 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
11710 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 30 0d  wsort label-380.
11720 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35 37 20 2a  .SELECT ALL 57 *
11730 20 4d 49 4e 28 20 33 37 20 29 20 46 52 4f 4d 20   MIN( 37 ) FROM 
11740 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
11750 2d 2d 0d 0a 32 31 30 39 0d 0a 0d 0a 73 6b 69 70  --..2109....skip
11760 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
11770 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
11780 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
11790 2d 33 38 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -380..SELECT ALL
117a0 20 35 37 20 2a 20 4d 49 4e 20 28 20 33 37 20 29   57 * MIN ( 37 )
117b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
117c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30 39 0d 0a  r0..----..2109..
117d0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
117e0 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
117f0 30 20 2b 20 2b 20 2d 20 38 38 2c 20 31 20 41 53  0 + + - 88, 1 AS
11800 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
11810 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 34  cor0..----..-134
11820 0d 0a 31 0d 0a 2d 31 35 32 0d 0a 31 0d 0a 2d 31  ..1..-152..1..-1
11830 36 33 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  63..1....query I
11840 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
11850 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c 30   col0 + - - col0
11860 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
11870 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 31 37 30 0d  .----..102..170.
11880 0a 31 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .182....query II
11890 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
118a0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
118b0 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52  M tab0 cor0 WHER
118c0 45 20 4e 4f 54 20 63 6f 6c 32 20 2f 20 32 38 20  E NOT col2 / 28 
118d0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
118e0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
118f0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
11900 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
11910 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  3b7....query I r
11920 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
11930 20 63 6f 6c 32 20 2b 20 32 31 20 2a 20 2d 20 63   col2 + 21 * - c
11940 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
11950 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
11960 2d 2d 2d 0d 0a 2d 31 32 39 38 0d 0a 2d 31 34 39  ---..-1298..-149
11970 36 0d 0a 2d 32 31 31 32 0d 0a 0d 0a 6f 6e 6c 79  6..-2112....only
11980 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
11990 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
119a0 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
119b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
119c0 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  5..SELECT ALL - 
119d0 38 31 2c 20 32 31 20 2b 20 63 6f 6c 31 20 44 49  81, 21 + col1 DI
119e0 56 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  V - col0 AS col0
119f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
11a00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 32  r0..----..-81..2
11a10 31 0d 0a 2d 38 31 0d 0a 32 31 0d 0a 2d 38 31 0d  1..-81..21..-81.
11a20 0a 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .21....skipif my
11a30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
11a40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
11a50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 35  owsort label-385
11a60 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 38  ..SELECT ALL - 8
11a70 31 2c 20 32 31 20 2b 20 63 6f 6c 31 20 2f 20 2d  1, 21 + col1 / -
11a80 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
11a90 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
11aa0 0a 2d 2d 2d 2d 0d 0a 2d 38 31 0d 0a 32 31 0d 0a  .----..-81..21..
11ab0 2d 38 31 0d 0a 32 31 0d 0a 2d 38 31 0d 0a 32 31  -81..21..-81..21
11ac0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
11ad0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
11ae0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
11af0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
11b00 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
11b10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
11b20 4c 45 43 54 20 28 20 63 6f 6c 30 20 29 20 63 6f  LECT ( col0 ) co
11b30 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
11b40 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
11b50 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  < NULL..----....
11b60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11b70 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f  .SELECT ALL + co
11b80 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
11b90 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
11ba0 52 45 20 39 20 2a 20 2b 20 63 6f 6c 30 20 49 53  RE 9 * + col0 IS
11bb0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
11bc0 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e  .14..47..5....on
11bd0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
11be0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
11bf0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11c00 20 6c 61 62 65 6c 2d 33 38 38 0d 0a 53 45 4c 45   label-388..SELE
11c10 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT + COUNT( * ) 
11c20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
11c30 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
11c40 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54  ( NULL ) NOT BET
11c50 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55  WEEN NULL AND NU
11c60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
11c70 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
11c80 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
11c90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
11ca0 62 65 6c 2d 33 38 38 0d 0a 53 45 4c 45 43 54 20  bel-388..SELECT 
11cb0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
11cc0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
11cd0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
11ce0 4e 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45  NULL ) NOT BETWE
11cf0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
11d00 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..----..0....onl
11d10 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
11d20 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
11d30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11d40 6c 61 62 65 6c 2d 33 38 39 0d 0a 53 45 4c 45 43  label-389..SELEC
11d50 54 20 2b 20 53 55 4d 28 20 41 4c 4c 20 39 31 20  T + SUM( ALL 91 
11d60 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
11d70 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33 0d 0a  ab2..----..273..
11d80 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
11d90 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
11da0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11db0 20 6c 61 62 65 6c 2d 33 38 39 0d 0a 53 45 4c 45   label-389..SELE
11dc0 43 54 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 39  CT + SUM ( ALL 9
11dd0 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
11de0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 37 33   tab2..----..273
11df0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
11e00 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
11e10 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
11e20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 30  owsort label-390
11e30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
11e40 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
11e50 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49  2 WHERE + col2 I
11e60 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
11e70 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
11e80 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
11e90 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
11ea0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 30 0d  wsort label-390.
11eb0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
11ec0 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
11ed0 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49  2 WHERE + col2 I
11ee0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
11ef0 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..3....query I r
11f00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
11f10 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2b 20  LL - col2 * + + 
11f20 63 6f 6c 30 20 2d 20 2d 20 2d 20 63 6f 6c 32 20  col0 - - - col2 
11f30 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
11f40 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 31 0d 0a  2..----..-1081..
11f50 2d 32 36 30 30 0d 0a 2d 34 34 30 38 0d 0a 0d 0a  -2600..-4408....
11f60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
11f70 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d 20 28  .SELECT col1 - (
11f80 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
11f90 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d  2..----..-8..13.
11fa0 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .5....onlyif mys
11fb0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
11fc0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
11fd0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
11fe0 39 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  93..SELECT COUNT
11ff0 28 20 2a 20 29 20 2d 20 2d 20 4d 41 58 28 20 63  ( * ) - - MAX( c
12000 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol1 ) FROM tab0.
12010 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a 73 6b 69  .----..84....ski
12020 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
12030 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
12040 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12050 6c 2d 33 39 33 0d 0a 53 45 4c 45 43 54 20 43 4f  l-393..SELECT CO
12060 55 4e 54 20 28 20 2a 20 29 20 2d 20 2d 20 4d 41  UNT ( * ) - - MA
12070 58 20 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  X ( col1 ) FROM 
12080 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a  tab0..----..84..
12090 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
120a0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45   CAST syntax: DE
120b0 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
120c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
120d0 62 65 6c 2d 33 39 34 0d 0a 53 45 4c 45 43 54 20  bel-394..SELECT 
120e0 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  ALL - CAST( NULL
120f0 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2a 20   AS DECIMAL ) * 
12100 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  - col0 AS col1 F
12110 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
12120 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
12130 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
12140 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
12150 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
12160 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12170 2d 33 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -394..SELECT ALL
12180 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
12190 53 20 52 45 41 4c 20 29 20 2a 20 2d 20 63 6f 6c  S REAL ) * - col
121a0 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
121b0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
121c0 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e  -..NULL..NULL..N
121d0 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
121e0 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
121f0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
12200 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12210 74 20 6c 61 62 65 6c 2d 33 39 35 0d 0a 53 45 4c  t label-395..SEL
12220 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  ECT DISTINCT + -
12230 20 63 6f 6c 32 20 44 49 56 20 63 6f 6c 31 20 46   col2 DIV col1 F
12240 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
12250 2d 2d 2d 0d 0a 2d 39 39 0d 0a 30 0d 0a 0d 0a 73  ---..-99..0....s
12260 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
12270 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
12280 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12290 62 65 6c 2d 33 39 35 0d 0a 53 45 4c 45 43 54 20  bel-395..SELECT 
122a0 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
122b0 32 20 2f 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  2 / col1 FROM ta
122c0 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
122d0 39 39 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  99..0....query I
122e0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
122f0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
12300 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
12310 20 33 30 20 2a 20 37 39 20 2d 20 2d 20 63 6f 6c   30 * 79 - - col
12320 32 20 2a 20 2d 20 32 30 20 2b 20 63 6f 6c 32 20  2 * - 20 + col2 
12330 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
12340 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
12350 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
12360 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
12370 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  3b7....onlyif my
12380 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
12390 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
123a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
123b0 74 20 6c 61 62 65 6c 2d 33 39 37 0d 0a 53 45 4c  t label-397..SEL
123c0 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  ECT - CAST( NULL
123d0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2d   AS SIGNED ) * -
123e0 20 38 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   84 FROM tab2..-
123f0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
12400 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
12410 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
12420 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
12430 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39  rowsort label-39
12440 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  7..SELECT - CAST
12450 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
12460 45 52 20 29 20 2a 20 2d 20 38 34 20 46 52 4f 4d  ER ) * - 84 FROM
12470 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
12480 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
12490 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
124a0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20  ..SELECT + col0 
124b0 2a 20 2b 20 2b 20 38 32 20 46 52 4f 4d 20 74 61  * + + 82 FROM ta
124c0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 30 0d 0a  b0..----..1230..
124d0 37 31 33 34 0d 0a 37 39 35 34 0d 0a 0d 0a 71 75  7134..7954....qu
124e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
124f0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 37 20 2a  ELECT ALL - 27 *
12500 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
12510 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 36 39 0d 0a  1..----..-1269..
12520 2d 31 33 35 0d 0a 2d 33 37 38 0d 0a 0d 0a 6f 6e  -135..-378....on
12530 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
12540 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
12550 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
12560 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
12570 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12580 2d 34 30 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -400..SELECT ALL
12590 20 2d 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 43 41   - - MIN( ALL CA
125a0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
125b0 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  ED ) ) FROM tab1
125c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
125d0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
125e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
125f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
12600 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 30  owsort label-400
12610 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
12620 20 4d 49 4e 20 28 20 41 4c 4c 20 43 41 53 54 20   MIN ( ALL CAST 
12630 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
12640 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20  R ) ) FROM tab1 
12650 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
12660 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ULL....query II 
12670 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
12680 2d 20 63 6f 6c 30 20 2a 20 2d 20 35 32 20 2b 20  - col0 * - 52 + 
12690 2b 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 46 52 4f  + col0, col0 FRO
126a0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
126b0 2d 0d 0a 32 37 30 33 0d 0a 35 31 0d 0a 34 35 30  -..2703..51..450
126c0 35 0d 0a 38 35 0d 0a 34 38 32 33 0d 0a 39 31 0d  5..85..4823..91.
126d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
126e0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
126f0 20 2d 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20   - ( + - col0 ) 
12700 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  * col1 FROM tab2
12710 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
12720 2d 32 33 34 36 0d 0a 2d 34 39 32 38 0d 0a 2d 35  -2346..-4928..-5
12730 30 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  025....query I r
12740 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
12750 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31  ISTINCT - + col1
12760 20 2a 20 2b 20 34 37 20 2a 20 38 39 20 46 52 4f   * + 47 * 89 FRO
12770 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
12780 2d 0d 0a 2d 33 33 38 38 32 33 0d 0a 2d 34 31 38  -..-338823..-418
12790 33 0d 0a 2d 38 37 38 34 33 0d 0a 0d 0a 71 75 65  3..-87843....que
127a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
127b0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
127c0 2a 20 37 37 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 77 AS col2 FRO
127d0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
127e0 2d 2d 2d 2d 0d 0a 2d 33 35 34 32 0d 0a 2d 34 39  ----..-3542..-49
127f0 32 38 0d 0a 2d 35 37 37 35 0d 0a 0d 0a 6f 6e 6c  28..-5775....onl
12800 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
12810 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
12820 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
12830 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
12840 34 30 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  405..SELECT ALL 
12850 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
12860 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or0 WHERE NULL I
12870 4e 20 28 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 43  N ( + col0 / + C
12880 41 53 54 28 20 2b 20 2d 20 34 33 20 41 53 20 53  AST( + - 43 AS S
12890 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c 30 2c 20  IGNED ) + col0, 
128a0 35 31 2c 20 2b 20 2d 20 39 30 2c 20 2d 20 43 41  51, + - 90, - CA
128b0 53 54 28 20 2b 20 28 20 63 6f 6c 31 20 29 20 41  ST( + ( col1 ) A
128c0 53 20 53 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d  S SIGNED ) )..--
128d0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
128e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
128f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
12900 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 35  owsort label-405
12910 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
12920 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
12930 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28   WHERE NULL IN (
12940 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 43 41 53 54   + col0 / + CAST
12950 20 28 20 2b 20 2d 20 34 33 20 41 53 20 49 4e 54   ( + - 43 AS INT
12960 45 47 45 52 20 29 20 2b 20 63 6f 6c 30 2c 20 35  EGER ) + col0, 5
12970 31 2c 20 2b 20 2d 20 39 30 2c 20 2d 20 43 41 53  1, + - 90, - CAS
12980 54 20 28 20 2b 20 28 20 63 6f 6c 31 20 29 20 41  T ( + ( col1 ) A
12990 53 20 49 4e 54 45 47 45 52 20 29 20 29 0d 0a 2d  S INTEGER ) )..-
129a0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
129b0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
129c0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
129d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
129e0 74 20 6c 61 62 65 6c 2d 34 30 36 0d 0a 53 45 4c  t label-406..SEL
129f0 45 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ECT CAST( NULL A
12a00 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20 2d  S SIGNED ) * + -
12a10 20 35 37 20 46 52 4f 4d 20 74 61 62 31 20 63 6f   57 FROM tab1 co
12a20 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
12a30 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
12a40 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
12a50 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
12a60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12a70 65 6c 2d 34 30 36 0d 0a 53 45 4c 45 43 54 20 43  el-406..SELECT C
12a80 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
12a90 54 45 47 45 52 20 29 20 2a 20 2b 20 2d 20 35 37  TEGER ) * + - 57
12aa0 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
12ab0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
12ac0 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
12ad0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
12ae0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
12af0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
12b00 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 37 0d  wsort label-407.
12b10 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
12b20 20 2b 20 34 33 20 44 49 56 20 2b 20 2b 20 63 6f   + 43 DIV + + co
12b30 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
12b40 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
12b50 2d 2d 0d 0a 30 0d 0a 33 0d 0a 38 0d 0a 0d 0a 73  --..0..3..8....s
12b60 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
12b70 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
12b80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12b90 62 65 6c 2d 34 30 37 0d 0a 53 45 4c 45 43 54 20  bel-407..SELECT 
12ba0 44 49 53 54 49 4e 43 54 20 2b 20 34 33 20 2f 20  DISTINCT + 43 / 
12bb0 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  + + col1 AS col2
12bc0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
12bd0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 33 0d 0a  r0..----..0..3..
12be0 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  8....skipif post
12bf0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
12c00 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
12c10 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
12c20 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
12c30 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
12c40 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 63 6f  SELECT - col1 co
12c50 6c 31 2c 20 2b 20 36 30 20 41 53 20 63 6f 6c 31  l1, + 60 AS col1
12c60 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
12c70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 36  r0..----..-51..6
12c80 30 0d 0a 2d 36 37 0d 0a 36 30 0d 0a 2d 37 37 0d  0..-67..60..-77.
12c90 0a 36 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .60....query I r
12ca0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
12cb0 4c 4c 20 2b 20 35 20 2b 20 2b 20 2b 20 63 6f 6c  LL + 5 + + + col
12cc0 32 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  2 + col0 AS col0
12cd0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
12ce0 0d 0a 31 30 39 0d 0a 31 33 38 0d 0a 37 34 0d 0a  ..109..138..74..
12cf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12d00 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
12d10 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20  CT + col0 + - - 
12d20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
12d30 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34  M tab2..----..14
12d40 31 0d 0a 31 34 32 0d 0a 39 37 0d 0a 0d 0a 71 75  1..142..97....qu
12d50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
12d60 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31  ELECT ALL + col1
12d70 20 2b 20 34 32 20 41 53 20 63 6f 6c 30 20 46 52   + 42 AS col0 FR
12d80 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab1..----..4
12d90 37 0d 0a 35 36 0d 0a 38 39 0d 0a 0d 0a 71 75 65  7..56..89....que
12da0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
12db0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
12dc0 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
12dd0 20 2b 20 32 32 20 49 53 20 4e 4f 54 20 4e 55 4c   + 22 IS NOT NUL
12de0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
12df0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
12e00 45 43 54 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29  ECT - ( - col2 )
12e10 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  , col0 FROM tab2
12e20 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 36 0d 0a  ..----..23..46..
12e30 34 30 0d 0a 36 34 0d 0a 35 38 0d 0a 37 35 0d 0a  40..64..58..75..
12e40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12e50 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 34 20 46  t..SELECT - 54 F
12e60 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
12e70 55 4c 4c 20 3c 3d 20 31 34 20 2a 20 37 34 0d 0a  ULL <= 14 * 74..
12e80 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
12e90 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
12ea0 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
12eb0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
12ec0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
12ed0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 35 0d 0a  sort label-415..
12ee0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55  SELECT ALL - COU
12ef0 4e 54 28 20 2b 20 2b 20 43 41 53 54 28 20 2d 20  NT( + + CAST( - 
12f00 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29  col1 AS SIGNED )
12f10 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
12f20 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  0..----..-3....s
12f30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
12f40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
12f50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12f60 62 65 6c 2d 34 31 35 0d 0a 53 45 4c 45 43 54 20  bel-415..SELECT 
12f70 41 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2b 20  ALL - COUNT ( + 
12f80 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 31 20  + CAST ( - col1 
12f90 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 46  AS INTEGER ) ) F
12fa0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
12fb0 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69  ---..-3....onlyi
12fc0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
12fd0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
12fe0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
12ff0 61 62 65 6c 2d 34 31 36 0d 0a 53 45 4c 45 43 54  abel-416..SELECT
13000 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
13010 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
13020 6c 31 2c 20 38 33 20 46 52 4f 4d 20 74 61 62 30  l1, 83 FROM tab0
13030 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
13040 30 0d 0a 38 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  0..83....skipif 
13050 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13060 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
13070 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13080 31 36 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  16..SELECT COUNT
13090 20 28 20 2a 20 29 20 2b 20 2d 20 43 4f 55 4e 54   ( * ) + - COUNT
130a0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20   ( * ) AS col1, 
130b0 38 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  83 FROM tab0 AS 
130c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 38  cor0..----..0..8
130d0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
130e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
130f0 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 41  ol0 + + - col1 A
13100 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
13110 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
13120 33 37 0d 0a 34 34 0d 0a 38 30 0d 0a 0d 0a 71 75  37..44..80....qu
13130 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
13140 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 33  ELECT DISTINCT 3
13150 20 2b 20 2b 20 38 20 41 53 20 63 6f 6c 30 20 46   + + 8 AS col0 F
13160 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
13170 0d 0a 2d 2d 2d 2d 0d 0a 31 31 0d 0a 0d 0a 6f 6e  ..----..11....on
13180 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
13190 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
131a0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49  ate syntax: DECI
131b0 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
131c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
131d0 6c 2d 34 31 39 0d 0a 53 45 4c 45 43 54 20 43 41  l-419..SELECT CA
131e0 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49  ST( NULL AS DECI
131f0 4d 41 4c 20 29 20 2b 20 2b 20 2d 20 43 4f 55 4e  MAL ) + + - COUN
13200 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
13210 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
13220 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
13230 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
13240 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
13250 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13260 61 62 65 6c 2d 34 31 39 0d 0a 53 45 4c 45 43 54  abel-419..SELECT
13270 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
13280 52 45 41 4c 20 29 20 2b 20 2b 20 2d 20 43 4f 55  REAL ) + + - COU
13290 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
132a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
132b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
132c0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
132d0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
132e0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
132f0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
13300 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
13310 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
13320 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 2b 20  CT ALL col1 + + 
13330 63 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74  col1 col2 FROM t
13340 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 32 0d 0a  ab0..----..162..
13350 32 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72 79 20 49  2..42....query I
13360 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
13370 20 39 37 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   97 AS col0 FROM
13380 20 74 61 62 32 2c 20 74 61 62 32 20 41 53 20 63   tab2, tab2 AS c
13390 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or0..----..9 val
133a0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35  ues hashing to 5
133b0 65 30 64 33 31 61 63 34 31 39 38 31 62 63 64 66  e0d31ac41981bcdf
133c0 36 61 36 36 35 35 33 38 61 37 31 61 30 39 63 0d  6a665538a71a09c.
133d0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
133e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
133f0 6c 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 32  l0 AS col2, col2
13400 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   * - + col0 FROM
13410 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   tab2..----..46.
13420 0a 2d 31 30 35 38 0d 0a 36 34 0d 0a 2d 32 35 36  .-1058..64..-256
13430 30 0d 0a 37 35 0d 0a 2d 34 33 35 30 0d 0a 0d 0a  0..75..-4350....
13440 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
13450 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49  AST syntax: DECI
13460 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  MAL type: ..quer
13470 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
13480 6c 2d 34 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-423..SELECT AL
13490 4c 20 36 36 20 2d 20 43 41 53 54 28 20 4e 55 4c  L 66 - CAST( NUL
134a0 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46  L AS DECIMAL ) F
134b0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
134c0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
134d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
134e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
134f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
13500 72 74 20 6c 61 62 65 6c 2d 34 32 33 0d 0a 53 45  rt label-423..SE
13510 4c 45 43 54 20 41 4c 4c 20 36 36 20 2d 20 43 41  LECT ALL 66 - CA
13520 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
13530 4c 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  L ) FROM tab1..-
13540 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
13550 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
13560 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
13570 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
13580 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
13590 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
135a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 34 0d  wsort label-424.
135b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f  .SELECT ALL - CO
135c0 55 4e 54 28 20 2a 20 29 20 2d 20 2d 20 4d 41 58  UNT( * ) - - MAX
135d0 28 20 2b 20 37 38 20 29 20 2b 20 2d 20 43 4f 55  ( + 78 ) + - COU
135e0 4e 54 28 20 2a 20 29 20 44 49 56 20 43 4f 55 4e  NT( * ) DIV COUN
135f0 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
13600 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
13610 0d 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 73 6b  ..----..74....sk
13620 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
13630 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
13640 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13650 65 6c 2d 34 32 34 0d 0a 53 45 4c 45 43 54 20 41  el-424..SELECT A
13660 4c 4c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  LL - COUNT ( * )
13670 20 2d 20 2d 20 4d 41 58 20 28 20 2b 20 37 38 20   - - MAX ( + 78 
13680 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) + - COUNT ( * 
13690 29 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) / COUNT ( * ) 
136a0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
136b0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
136c0 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .74....onlyif my
136d0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
136e0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
136f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13700 34 32 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  425..SELECT + - 
13710 37 38 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20  78 - - COUNT( * 
13720 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
13730 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a  or0..----..-75..
13740 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13750 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13760 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13770 20 6c 61 62 65 6c 2d 34 32 35 0d 0a 53 45 4c 45   label-425..SELE
13780 43 54 20 2b 20 2d 20 37 38 20 2d 20 2d 20 43 4f  CT + - 78 - - CO
13790 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
137a0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
137b0 2d 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79 20  -..-75....query 
137c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
137d0 54 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20  T col0 + - col0 
137e0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
137f0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
13800 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  NULL = NULL..---
13810 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
13820 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
13830 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
13840 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
13850 37 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  7..SELECT - COUN
13860 54 28 20 2a 20 29 20 2d 20 34 32 20 41 53 20 63  T( * ) - 42 AS c
13870 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
13880 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35   cor0..----..-45
13890 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
138a0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
138b0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
138c0 72 74 20 6c 61 62 65 6c 2d 34 32 37 0d 0a 53 45  rt label-427..SE
138d0 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
138e0 20 29 20 2d 20 34 32 20 41 53 20 63 6f 6c 32 20   ) - 42 AS col2 
138f0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
13900 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 0d 0a 0d 0a  0..----..-45....
13910 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
13920 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c  ..SELECT - - col
13930 32 20 41 53 20 63 6f 6c 31 2c 20 36 36 20 46 52  2 AS col1, 66 FR
13940 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
13950 52 45 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d  RE col0 IS NULL.
13960 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
13970 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
13980 20 2d 20 34 34 20 2d 20 63 6f 6c 32 20 41 53 20   - 44 - col2 AS 
13990 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63  col0 FROM tab2 c
139a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d  or0..----..-102.
139b0 0a 2d 36 37 0d 0a 2d 38 34 0d 0a 0d 0a 71 75 65  .-67..-84....que
139c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
139d0 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  LECT ALL + col2 
139e0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
139f0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
13a00 4e 4f 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 35  NOT + col1 * - 5
13a10 37 20 2d 20 2d 20 2b 20 63 6f 6c 32 20 3c 3e 20  7 - - + col2 <> 
13a20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  + col0..----....
13a30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
13a40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 31 39 20 2a  .SELECT ALL 19 *
13a50 20 2d 20 2d 20 35 20 46 52 4f 4d 20 74 61 62 30   - - 5 FROM tab0
13a60 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
13a70 39 35 0d 0a 39 35 0d 0a 39 35 0d 0a 0d 0a 73 6b  95..95..95....sk
13a80 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
13a90 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
13aa0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
13ab0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
13ac0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
13ad0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
13ae0 4c 4c 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f  LL col2 + + - co
13af0 6c 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  l2 col2 FROM tab
13b00 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
13b10 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .0..0..0....only
13b20 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13b30 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13b40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13b50 61 62 65 6c 2d 34 33 33 0d 0a 53 45 4c 45 43 54  abel-433..SELECT
13b60 20 43 4f 55 4e 54 28 20 63 6f 6c 31 20 29 20 41   COUNT( col1 ) A
13b70 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
13b80 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 31   AS cor0 WHERE 1
13b90 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  7 IS NULL..----.
13ba0 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
13bb0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
13bc0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
13bd0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 33 0d 0a  sort label-433..
13be0 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 63  SELECT COUNT ( c
13bf0 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
13c00 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
13c10 57 48 45 52 45 20 31 37 20 49 53 20 4e 55 4c 4c  WHERE 17 IS NULL
13c20 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
13c30 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13c40 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
13c50 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
13c60 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b   NULL NOT IN ( +
13c70 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 20 2b 20   ( + + col0 ) + 
13c80 32 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29  2 + + ( + col2 )
13c90 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
13ca0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
13cb0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
13cc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
13cd0 61 62 65 6c 2d 34 33 35 0d 0a 53 45 4c 45 43 54  abel-435..SELECT
13ce0 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 28   DISTINCT + MAX(
13cf0 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52   ALL - col2 ) FR
13d00 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
13d10 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 73 6b  .----..-23....sk
13d20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
13d30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
13d40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
13d50 65 6c 2d 34 33 35 0d 0a 53 45 4c 45 43 54 20 44  el-435..SELECT D
13d60 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20  ISTINCT + MAX ( 
13d70 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f  ALL - col2 ) FRO
13d80 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
13d90 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 71 75 65  ----..-23....que
13da0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
13db0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
13dc0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
13dd0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
13de0 2d 20 36 31 20 29 20 2b 20 2d 20 35 37 20 2b 20  - 61 ) + - 57 + 
13df0 2d 20 63 6f 6c 32 20 3e 3d 20 4e 55 4c 4c 0d 0a  - col2 >= NULL..
13e00 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
13e10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
13e20 2b 20 35 31 20 2b 20 2d 20 63 6f 6c 32 20 46 52  + 51 + - col2 FR
13e30 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
13e40 31 37 0d 0a 2d 34 35 0d 0a 2d 38 0d 0a 0d 0a 6f  17..-45..-8....o
13e50 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
13e60 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
13e70 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
13e80 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13e90 34 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  438..SELECT ALL 
13ea0 2b 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53 54 28  + col2 + - CAST(
13eb0 20 2d 20 37 39 20 41 53 20 53 49 47 4e 45 44 20   - 79 AS SIGNED 
13ec0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
13ed0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a  ab2..----..102..
13ee0 31 31 39 0d 0a 31 33 37 0d 0a 0d 0a 73 6b 69 70  119..137....skip
13ef0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
13f00 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
13f10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13f20 2d 34 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -438..SELECT ALL
13f30 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53 54   + col2 + - CAST
13f40 20 28 20 2d 20 37 39 20 41 53 20 49 4e 54 45 47   ( - 79 AS INTEG
13f50 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  ER ) AS col2 FRO
13f60 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab2..----..10
13f70 32 0d 0a 31 31 39 0d 0a 31 33 37 0d 0a 0d 0a 71  2..119..137....q
13f80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13f90 53 45 4c 45 43 54 20 34 34 20 2a 20 2d 20 2b 20  SELECT 44 * - + 
13fa0 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 46 52  col0 + - col2 FR
13fb0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
13fc0 32 33 34 30 0d 0a 2d 33 37 39 39 0d 0a 2d 34 30  2340..-3799..-40
13fd0 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  72....onlyif mys
13fe0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
13ff0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
14000 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
14010 34 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  40..SELECT DISTI
14020 4e 43 54 20 33 38 20 2b 20 2d 20 4d 49 4e 28 20  NCT 38 + - MIN( 
14030 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  + col0 ) FROM ta
14040 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 0d  b1..----..-13...
14050 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14060 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14070 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14080 6c 61 62 65 6c 2d 34 34 30 0d 0a 53 45 4c 45 43  label-440..SELEC
14090 54 20 44 49 53 54 49 4e 43 54 20 33 38 20 2b 20  T DISTINCT 38 + 
140a0 2d 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 30 20 29  - MIN ( + col0 )
140b0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
140c0 0d 0a 2d 31 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-13....query I
140d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
140e0 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 41 53 20  T ALL - col2 AS 
140f0 63 6f 6c 32 2c 20 34 31 20 41 53 20 63 6f 6c 32  col2, 41 AS col2
14100 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
14110 0d 0a 2d 35 39 0d 0a 34 31 0d 0a 2d 36 38 0d 0a  ..-59..41..-68..
14120 34 31 0d 0a 2d 39 36 0d 0a 34 31 0d 0a 0d 0a 71  41..-96..41....q
14130 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
14140 53 45 4c 45 43 54 20 41 4c 4c 20 35 37 20 2b 20  SELECT ALL 57 + 
14150 2b 20 39 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 98 AS col0 FRO
14160 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  M tab0..----..15
14170 35 0d 0a 31 35 35 0d 0a 31 35 35 0d 0a 0d 0a 6f  5..155..155....o
14180 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
14190 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
141a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
141b0 74 20 6c 61 62 65 6c 2d 34 34 33 0d 0a 53 45 4c  t label-443..SEL
141c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
141d0 4e 54 28 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  NT( - col1 ) FRO
141e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  M tab0..----..3.
141f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
14200 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
14210 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14220 74 20 6c 61 62 65 6c 2d 34 34 33 0d 0a 53 45 4c  t label-443..SEL
14230 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
14240 4e 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 46 52  NT ( - col1 ) FR
14250 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab0..----..3
14260 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
14270 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
14280 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
14290 4e 4f 54 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 2d  NOT + - col1 - -
142a0 20 31 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   19 IS NULL..---
142b0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
142c0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
142d0 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
142e0 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
142f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
14300 43 54 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63  CT - - col0 AS c
14310 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
14320 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 30  ERE NOT - + col0
14330 20 2f 20 2b 20 63 6f 6c 31 20 3e 20 4e 55 4c 4c   / + col1 > NULL
14340 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
14350 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
14360 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
14370 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
14380 62 65 6c 2d 34 34 36 0d 0a 53 45 4c 45 43 54 20  bel-446..SELECT 
14390 41 4c 4c 20 4d 41 58 28 20 2b 20 2d 20 63 6f 6c  ALL MAX( + - col
143a0 31 20 29 2c 20 38 20 41 53 20 63 6f 6c 31 20 46  1 ), 8 AS col1 F
143b0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
143c0 2d 35 31 0d 0a 38 0d 0a 0d 0a 73 6b 69 70 69 66  -51..8....skipif
143d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
143e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
143f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
14400 34 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  446..SELECT ALL 
14410 4d 41 58 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  MAX ( + - col1 )
14420 2c 20 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  , 8 AS col1 FROM
14430 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   tab2..----..-51
14440 0d 0a 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ..8....query II 
14450 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14460 36 30 20 41 53 20 63 6f 6c 31 2c 20 2b 20 31 37  60 AS col1, + 17
14470 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * - col2 FROM t
14480 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
14490 2d 0d 0a 36 30 0d 0a 2d 31 36 38 33 0d 0a 36 30  -..60..-1683..60
144a0 0d 0a 2d 31 37 30 0d 0a 36 30 0d 0a 2d 37 39 39  ..-170..60..-799
144b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
144c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  sort..SELECT - -
144d0 20 63 6f 6c 32 20 2a 20 28 20 63 6f 6c 32 20 29   col2 * ( col2 )
144e0 2c 20 32 36 20 46 52 4f 4d 20 74 61 62 32 20 41  , 26 FROM tab2 A
144f0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
14500 20 63 6f 6c 32 20 2a 20 63 6f 6c 32 20 3d 20 4e   col2 * col2 = N
14510 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
14520 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
14530 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
14540 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14550 6c 61 62 65 6c 2d 34 34 39 0d 0a 53 45 4c 45 43  label-449..SELEC
14560 54 20 41 4c 4c 20 2d 20 4d 49 4e 28 20 2d 20 2d  T ALL - MIN( - -
14570 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
14580 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
14590 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-51....skipif m
145a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
145b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
145c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 39  owsort label-449
145d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d  ..SELECT ALL - M
145e0 49 4e 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20  IN ( - - col1 ) 
145f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
14600 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a  0..----..-51....
14610 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
14620 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
14630 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
14640 72 74 20 6c 61 62 65 6c 2d 34 35 30 0d 0a 53 45  rt label-450..SE
14650 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
14660 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 63 6f 6c  COUNT( ALL + col
14670 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  0 ) FROM tab1 co
14680 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
14690 6f 6c 31 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol1 = NULL..----
146a0 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
146b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
146c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
146d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 30 0d  wsort label-450.
146e0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
146f0 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b   + COUNT ( ALL +
14700 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
14710 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  1 cor0 WHERE NOT
14720 20 2d 20 63 6f 6c 31 20 3d 20 4e 55 4c 4c 0d 0a   - col1 = NULL..
14730 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
14740 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
14750 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
14760 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
14770 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  0 WHERE NOT ( NU
14780 4c 4c 20 29 20 3c 20 2b 20 2b 20 63 6f 6c 31 20  LL ) < + + col1 
14790 2a 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  * col0..----....
147a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
147b0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
147c0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
147d0 72 74 20 6c 61 62 65 6c 2d 34 35 32 0d 0a 53 45  rt label-452..SE
147e0 4c 45 43 54 20 41 4c 4c 20 2b 20 36 30 20 2a 20  LECT ALL + 60 * 
147f0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
14800 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
14810 38 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  80....skipif mys
14820 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
14830 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
14840 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 32 0d 0a  sort label-452..
14850 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 30 20  SELECT ALL + 60 
14860 2a 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  * - COUNT ( * ) 
14870 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
14880 0a 2d 31 38 30 0d 0a 0d 0a 71 75 65 72 79 20 49  .-180....query I
14890 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
148a0 20 41 4c 4c 20 2d 20 32 38 20 41 53 20 63 6f 6c   ALL - 28 AS col
148b0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
148c0 2d 0d 0a 2d 32 38 0d 0a 2d 32 38 0d 0a 2d 32 38  -..-28..-28..-28
148d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
148e0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
148f0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
14900 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 34  owsort label-454
14910 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
14920 54 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 2d  T + MIN( ALL - -
14930 20 36 37 20 29 20 2a 20 2d 20 2d 20 43 4f 55 4e   67 ) * - - COUN
14940 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46  T( * ) AS col2 F
14950 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
14960 32 30 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  201....skipif my
14970 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
14980 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
14990 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35 34 0d  wsort label-454.
149a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
149b0 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 2d   + MIN ( ALL - -
149c0 20 36 37 20 29 20 2a 20 2d 20 2d 20 43 4f 55 4e   67 ) * - - COUN
149d0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
149e0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
149f0 0a 32 30 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .201....query I 
14a00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
14a10 2b 20 2b 20 33 34 20 41 53 20 63 6f 6c 31 20 46  + + 34 AS col1 F
14a20 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
14a30 2d 2d 2d 0d 0a 33 34 0d 0a 33 34 0d 0a 33 34 0d  ---..34..34..34.
14a40 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
14a50 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63  rt..SELECT - - c
14a60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
14a70 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
14a80 36 33 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  63 IS NULL..----
14a90 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a  ..46..64..75....
14aa0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
14ab0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
14ac0 20 2d 20 34 20 2a 20 2d 20 2d 20 63 6f 6c 31 20   - 4 * - - col1 
14ad0 2d 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  - - - col2 AS co
14ae0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
14af0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 32  cor0..----..-152
14b00 0d 0a 2d 32 35 36 0d 0a 2d 37 39 0d 0a 0d 0a 71  ..-256..-79....q
14b10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
14b20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
14b30 2b 20 2b 20 33 35 20 46 52 4f 4d 20 74 61 62 30  + + 35 FROM tab0
14b40 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14b50 33 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  35....query I ro
14b60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
14b70 4c 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 2a  L + + ( col1 ) *
14b80 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20   + + col2 + - - 
14b90 36 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  66 AS col2 FROM 
14ba0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
14bb0 2d 2d 0d 0a 31 36 35 0d 0a 32 37 36 0d 0a 33 38  --..165..276..38
14bc0 37 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  73....query I ro
14bd0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
14be0 4c 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c  L - col1 * - col
14bf0 31 20 2b 20 2b 20 35 35 20 2b 20 63 6f 6c 30 20  1 + + 55 + col0 
14c00 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
14c10 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 30 32 0d 0a 34  0..----..2702..4
14c20 36 31 39 0d 0a 36 30 34 38 0d 0a 0d 0a 71 75 65  619..6048....que
14c30 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
14c40 45 4c 45 43 54 20 2d 20 2d 20 34 36 20 2b 20 2d  ELECT - - 46 + -
14c50 20 2b 20 38 34 2c 20 2b 20 63 6f 6c 32 20 46 52   + 84, + col2 FR
14c60 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
14c70 0a 2d 2d 2d 2d 0d 0a 2d 33 38 0d 0a 32 33 0d 0a  .----..-38..23..
14c80 2d 33 38 0d 0a 34 30 0d 0a 2d 33 38 0d 0a 35 38  -38..40..-38..58
14c90 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
14ca0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
14cb0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
14cc0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
14cd0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
14ce0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
14cf0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
14d00 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 63 6f  col2 + - col0 co
14d10 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
14d20 2d 2d 0d 0a 2d 31 37 0d 0a 2d 32 33 0d 0a 2d 32  --..-17..-23..-2
14d30 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
14d40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
14d50 54 49 4e 43 54 20 2b 20 33 37 20 2a 20 2b 20 36  TINCT + 37 * + 6
14d60 31 20 2a 20 28 20 2d 20 32 33 20 29 20 46 52 4f  1 * ( - 23 ) FRO
14d70 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab2..----..-5
14d80 31 39 31 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  1911....skipif p
14d90 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
14da0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
14db0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
14dc0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
14dd0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
14de0 0d 0a 53 45 4c 45 43 54 20 36 33 20 2a 20 2b 20  ..SELECT 63 * + 
14df0 63 6f 6c 31 20 2a 20 2b 20 39 20 2a 20 63 6f 6c  col1 * + 9 * col
14e00 32 20 2a 20 2d 20 63 6f 6c 31 20 63 6f 6c 32 20  2 * - col1 col2 
14e10 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
14e20 0a 2d 31 30 36 36 38 36 37 32 0d 0a 2d 38 33 36  .-10668672..-836
14e30 33 32 35 0d 0a 2d 38 35 31 37 30 32 30 34 0d 0a  325..-85170204..
14e40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14e50 74 0d 0a 53 45 4c 45 43 54 20 32 33 20 2a 20 63  t..SELECT 23 * c
14e60 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
14e70 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
14e80 2d 2d 2d 0d 0a 31 30 35 38 0d 0a 31 34 37 32 0d  ---..1058..1472.
14e90 0a 31 37 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .1725....query I
14ea0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
14eb0 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 35 35   DISTINCT - - 55
14ec0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
14ed0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
14ee0 30 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 30  0 BETWEEN + col0
14ef0 20 41 4e 44 20 2d 20 2d 20 63 6f 6c 31 20 2d 20   AND - - col1 - 
14f00 34 31 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 0d 0a  41..----..55....
14f10 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
14f20 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
14f30 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
14f40 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
14f50 6c 2d 34 36 37 0d 0a 53 45 4c 45 43 54 20 63 6f  l-467..SELECT co
14f60 6c 32 20 44 49 56 20 2d 20 38 38 20 2a 20 2d 20  l2 DIV - 88 * - 
14f70 63 6f 6c 32 20 44 49 56 20 2b 20 63 6f 6c 32 20  col2 DIV + col2 
14f80 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20  AS col1, - col2 
14f90 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
14fa0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  2 cor0..----..0.
14fb0 0a 2d 32 33 0d 0a 30 0d 0a 2d 34 30 0d 0a 30 0d  .-23..0..-40..0.
14fc0 0a 2d 35 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-58....skipif m
14fd0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
14fe0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
14ff0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36  rowsort label-46
15000 37 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2f  7..SELECT col2 /
15010 20 2d 20 38 38 20 2a 20 2d 20 63 6f 6c 32 20 2f   - 88 * - col2 /
15020 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c   + col2 AS col1,
15030 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   - col2 AS col0 
15040 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
15050 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 32 33 0d 0a 30 0d  ----..0..-23..0.
15060 0a 2d 34 30 0d 0a 30 0d 0a 2d 35 38 0d 0a 0d 0a  .-40..0..-58....
15070 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15080 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
15090 28 20 2b 20 63 6f 6c 32 20 29 20 2b 20 2d 20 63  ( + col2 ) + - c
150a0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
150b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 0d 0a  r0..----..-117..
150c0 2d 31 32 35 0d 0a 2d 37 34 0d 0a 0d 0a 73 6b 69  -125..-74....ski
150d0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
150e0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
150f0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
15100 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
15110 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
15120 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
15130 4c 20 2b 20 63 6f 6c 32 20 2b 20 37 38 20 63 6f  L + col2 + 78 co
15140 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
15150 2d 2d 0d 0a 31 33 37 0d 0a 31 34 36 0d 0a 31 37  --..137..146..17
15160 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
15170 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
15180 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
15190 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
151a0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
151b0 72 74 20 6c 61 62 65 6c 2d 34 37 30 0d 0a 53 45  rt label-470..SE
151c0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
151d0 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20  UNT( DISTINCT + 
151e0 63 6f 6c 31 20 29 20 2b 20 2b 20 43 41 53 54 28  col1 ) + + CAST(
151f0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
15200 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
15210 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab2..----..NULL
15220 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
15230 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
15240 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
15250 72 74 20 6c 61 62 65 6c 2d 34 37 30 0d 0a 53 45  rt label-470..SE
15260 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
15270 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20 2b  UNT ( DISTINCT +
15280 20 63 6f 6c 31 20 29 20 2b 20 2b 20 43 41 53 54   col1 ) + + CAST
15290 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
152a0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
152b0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab2..----..NULL.
152c0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
152d0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
152e0 4e 43 54 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 33  NCT - col1 - + 3
152f0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
15300 0d 0a 2d 31 37 0d 0a 2d 35 30 0d 0a 2d 38 0d 0a  ..-17..-50..-8..
15310 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15320 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
15330 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
15340 73 6f 72 74 20 6c 61 62 65 6c 2d 34 37 32 0d 0a  sort label-472..
15350 53 45 4c 45 43 54 20 2d 20 35 39 20 2a 20 28 20  SELECT - 59 * ( 
15360 4d 41 58 28 20 2d 20 63 6f 6c 31 20 29 20 29 20  MAX( - col1 ) ) 
15370 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
15380 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 35 0d 0a 0d 0a  1..----..295....
15390 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
153a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
153b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
153c0 61 62 65 6c 2d 34 37 32 0d 0a 53 45 4c 45 43 54  abel-472..SELECT
153d0 20 2d 20 35 39 20 2a 20 28 20 4d 41 58 20 28 20   - 59 * ( MAX ( 
153e0 2d 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f  - col1 ) ) AS co
153f0 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
15400 2d 2d 0d 0a 32 39 35 0d 0a 0d 0a 6f 6e 6c 79 69  --..295....onlyi
15410 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
15420 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
15430 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15440 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45 43 54 20  bel-473..SELECT 
15450 41 4c 4c 20 28 20 2d 20 43 4f 55 4e 54 28 20 2a  ALL ( - COUNT( *
15460 20 29 20 29 20 2a 20 2b 20 31 34 20 41 53 20 63   ) ) * + 14 AS c
15470 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol2 FROM tab0 WH
15480 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
15490 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63 6f  WEEN NULL AND co
154a0 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  l2..----..0....s
154b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
154c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
154d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
154e0 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45 43 54 20  bel-473..SELECT 
154f0 41 4c 4c 20 28 20 2d 20 43 4f 55 4e 54 20 28 20  ALL ( - COUNT ( 
15500 2a 20 29 20 29 20 2a 20 2b 20 31 34 20 41 53 20  * ) ) * + 14 AS 
15510 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
15520 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45  HERE NULL NOT BE
15530 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 63  TWEEN NULL AND c
15540 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ol2..----..0....
15550 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15560 0a 53 45 4c 45 43 54 20 34 20 2a 20 2b 20 63 6f  .SELECT 4 * + co
15570 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
15580 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63  tab2 WHERE NOT c
15590 6f 6c 31 20 2b 20 38 32 20 3c 20 63 6f 6c 31 0d  ol1 + 82 < col1.
155a0 0a 2d 2d 2d 2d 0d 0a 32 30 34 0d 0a 32 36 38 0d  .----..204..268.
155b0 0a 33 30 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .308....query I 
155c0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
155d0 41 4c 4c 20 2b 20 34 38 20 2a 20 2b 20 28 20 2d  ALL + 48 * + ( -
155e0 20 63 6f 6c 31 20 29 20 2b 20 63 6f 6c 31 20 41   col1 ) + col1 A
155f0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
15600 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38 30 37 0d 0a 2d  ..----..-3807..-
15610 34 37 0d 0a 2d 39 38 37 0d 0a 0d 0a 71 75 65 72  47..-987....quer
15620 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
15630 45 43 54 20 38 35 20 2a 20 2d 20 38 33 20 46 52  ECT 85 * - 83 FR
15640 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
15650 37 30 35 35 0d 0a 2d 37 30 35 35 0d 0a 2d 37 30  7055..-7055..-70
15660 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  55....query III 
15670 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15680 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
15690 45 20 28 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c  E ( - col2 * col
156a0 32 20 29 20 3c 3e 20 63 6f 6c 31 0d 0a 2d 2d 2d  2 ) <> col1..---
156b0 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
156c0 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64  ing to c4b42765d
156d0 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33  ff94eaaa46040e53
156e0 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79  7fb43b7....query
156f0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
15700 43 54 20 39 31 20 2a 20 35 39 20 46 52 4f 4d 20  CT 91 * 59 FROM 
15710 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 33 36 39  tab2..----..5369
15720 0d 0a 35 33 36 39 0d 0a 35 33 36 39 0d 0a 0d 0a  ..5369..5369....
15730 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15740 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
15750 20 2d 20 63 6f 6c 32 20 2a 20 28 20 34 37 20 29   - col2 * ( 47 )
15760 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
15770 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63  b1 WHERE NOT ( c
15780 6f 6c 31 20 29 20 3c 3e 20 28 20 2d 20 63 6f 6c  ol1 ) <> ( - col
15790 32 20 2b 20 2d 20 35 35 20 29 0d 0a 2d 2d 2d 2d  2 + - 55 )..----
157a0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
157b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
157c0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
157d0 62 31 20 57 48 45 52 45 20 4e 4f 54 20 33 32 20  b1 WHERE NOT 32 
157e0 2b 20 63 6f 6c 31 20 2a 20 38 20 3c 3e 20 28 20  + col1 * 8 <> ( 
157f0 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 0d 0a  + ( + col0 ) )..
15800 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
15810 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
15820 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
15830 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
15840 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
15850 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15860 0d 0a 53 45 4c 45 43 54 20 28 20 63 6f 6c 32 20  ..SELECT ( col2 
15870 29 20 2b 20 2d 20 63 6f 6c 31 20 63 6f 6c 30 20  ) + - col1 col0 
15880 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
15890 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
158a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d  NULL..----..-28.
158b0 0a 2d 33 37 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c 79  .-37..-9....only
158c0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
158d0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
158e0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
158f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 32  owsort label-482
15900 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28  ..SELECT + CAST(
15910 20 2b 20 43 41 53 54 28 20 2d 20 43 41 53 54 28   + CAST( - CAST(
15920 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
15930 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  ) AS SIGNED ) AS
15940 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 63 6f   SIGNED ) + - co
15950 6c 32 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d  l2 * + col1 FROM
15960 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 55   tab2 WHERE ( NU
15970 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  LL ) IS NULL..--
15980 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
15990 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
159a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
159b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
159c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 32  owsort label-482
159d0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
159e0 28 20 2b 20 43 41 53 54 20 28 20 2d 20 43 41 53  ( + CAST ( - CAS
159f0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
15a00 47 45 52 20 29 20 41 53 20 49 4e 54 45 47 45 52  GER ) AS INTEGER
15a10 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   ) AS INTEGER ) 
15a20 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  + - col2 * + col
15a30 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  1 FROM tab2 WHER
15a40 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 55  E ( NULL ) IS NU
15a50 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
15a60 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
15a70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
15a80 45 4c 45 43 54 20 2d 20 28 20 36 33 20 29 20 41  ELECT - ( 63 ) A
15a90 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
15aa0 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a 2d 36 33  ..----..-63..-63
15ab0 0d 0a 2d 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-63....query I
15ac0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
15ad0 20 41 4c 4c 20 63 6f 6c 31 20 41 53 20 63 6f 6c   ALL col1 AS col
15ae0 32 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  2 FROM tab2 WHER
15af0 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 42 45 54  E NOT - col0 BET
15b00 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20  WEEN NULL AND ( 
15b10 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
15b20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
15b30 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
15b40 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
15b50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15b60 2d 34 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -485..SELECT DIS
15b70 54 49 4e 43 54 20 63 6f 6c 31 20 44 49 56 20 63  TINCT col1 DIV c
15b80 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ol1 col1 FROM ta
15b90 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73  b2..----..1....s
15ba0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
15bb0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
15bc0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
15bd0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
15be0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
15bf0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
15c00 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
15c10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 35  owsort label-485
15c20 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15c30 54 20 63 6f 6c 31 20 2f 20 63 6f 6c 31 20 63 6f  T col1 / col1 co
15c40 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
15c50 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  --..1....query I
15c60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
15c70 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
15c80 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   * col2 AS col0 
15c90 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
15ca0 63 6f 6c 30 20 49 4e 20 28 20 63 6f 6c 30 20 2b  col0 IN ( col0 +
15cb0 20 2b 20 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   + 4 )..----....
15cc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
15cd0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34 20 2b 20  .SELECT ALL 4 + 
15ce0 2d 20 39 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a  - 93 FROM tab0..
15cf0 2d 2d 2d 2d 0d 0a 2d 38 39 0d 0a 2d 38 39 0d 0a  ----..-89..-89..
15d00 2d 38 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -89....query I r
15d10 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
15d20 20 31 31 20 2a 20 63 6f 6c 32 20 2b 20 63 6f 6c   11 * col2 + col
15d30 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  1 FROM tab2 WHER
15d40 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 31 20 2b  E NOT ( + col1 +
15d50 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e   col0 ) IS NOT N
15d60 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
15d70 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15d80 4c 45 43 54 20 39 37 20 2a 20 63 6f 6c 32 20 2b  LECT 97 * col2 +
15d90 20 2b 20 37 34 20 41 53 20 63 6f 6c 30 20 46 52   + 74 AS col0 FR
15da0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
15db0 37 39 37 0d 0a 36 36 37 30 0d 0a 39 33 38 36 0d  797..6670..9386.
15dc0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
15dd0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
15de0 4e 43 54 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c  NCT - col1 + col
15df0 30 20 2a 20 2b 20 31 31 20 46 52 4f 4d 20 74 61  0 * + 11 FROM ta
15e00 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 35 35 0d 0a 36  b2..----..455..6
15e10 32 37 0d 0a 37 35 38 0d 0a 0d 0a 71 75 65 72 79  27..758....query
15e20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
15e30 43 54 20 36 38 20 46 52 4f 4d 20 74 61 62 30 20  CT 68 FROM tab0 
15e40 57 48 45 52 45 20 4e 4f 54 20 38 36 20 3c 20 4e  WHERE NOT 86 < N
15e50 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
15e60 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15e70 4c 45 43 54 20 41 4c 4c 20 38 31 20 2a 20 63 6f  LECT ALL 81 * co
15e80 6c 30 20 2b 20 2d 20 39 39 20 2a 20 32 35 20 46  l0 + - 99 * 25 F
15e90 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
15ea0 31 36 35 36 0d 0a 34 34 31 30 0d 0a 34 38 39 36  1656..4410..4896
15eb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
15ec0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
15ed0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
15ee0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 33  owsort label-493
15ef0 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20  ..SELECT + MAX( 
15f00 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20  DISTINCT col1 ) 
15f10 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15f20 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d 0a 73  0..----..81....s
15f30 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
15f40 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
15f50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15f60 62 65 6c 2d 34 39 33 0d 0a 53 45 4c 45 43 54 20  bel-493..SELECT 
15f70 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54  + MAX ( DISTINCT
15f80 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
15f90 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
15fa0 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .81....onlyif my
15fb0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
15fc0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
15fd0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15fe0 34 39 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  494..SELECT COUN
15ff0 54 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54  T( * ) + + COUNT
16000 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28  ( * ) * + COUNT(
16010 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   * ) FROM tab1..
16020 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a 73 6b 69 70  ----..12....skip
16030 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
16040 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
16050 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
16060 2d 34 39 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -494..SELECT COU
16070 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55  NT ( * ) + + COU
16080 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 43 4f 55  NT ( * ) * + COU
16090 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
160a0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a  b1..----..12....
160b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
160c0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
160d0 45 44 20 74 79 70 65 3a 20 44 45 43 49 4d 41 4c  ED type: DECIMAL
160e0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
160f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
16100 39 35 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  95..SELECT + CAS
16110 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
16120 41 4c 20 29 20 2b 20 43 41 53 54 28 20 4e 55 4c  AL ) + CAST( NUL
16130 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
16140 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
16150 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
16160 54 20 2d 20 39 20 4e 4f 54 20 49 4e 20 28 20 2d  T - 9 NOT IN ( -
16170 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
16180 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
16190 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
161a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
161b0 6c 61 62 65 6c 2d 34 39 35 0d 0a 53 45 4c 45 43  label-495..SELEC
161c0 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T + CAST ( NULL 
161d0 41 53 20 52 45 41 4c 20 29 20 2b 20 43 41 53 54  AS REAL ) + CAST
161e0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
161f0 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ER ) AS col0 FRO
16200 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
16210 48 45 52 45 20 4e 4f 54 20 2d 20 39 20 4e 4f 54  HERE NOT - 9 NOT
16220 20 49 4e 20 28 20 2d 20 63 6f 6c 30 20 29 0d 0a   IN ( - col0 )..
16230 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
16240 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16250 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
16260 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
16270 48 45 52 45 20 28 20 32 20 29 20 49 53 20 4e 4f  HERE ( 2 ) IS NO
16280 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
16290 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
162a0 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
162b0 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
162c0 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  b7....query III 
162d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
162e0 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
162f0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20  AS cor0 WHERE - 
16300 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31 20 49 53  col1 - - col1 IS
16310 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
16320 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
16330 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
16340 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
16350 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
16360 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16370 20 38 35 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f   85 * - col0 FRO
16380 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
16390 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 33 33 20 2b   + col2 * - 33 +
163a0 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 42 45 54 57   - col0 NOT BETW
163b0 45 45 4e 20 31 35 20 2d 20 2b 20 36 32 20 41 4e  EEN 15 - + 62 AN
163c0 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
163d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
163e0 0a 53 45 4c 45 43 54 20 2d 20 36 33 20 41 53 20  .SELECT - 63 AS 
163f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
16400 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
16410 4e 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20  N tab2..----..9 
16420 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
16430 6f 20 35 61 37 38 34 35 65 66 36 65 32 33 39 35  o 5a7845ef6e2395
16440 36 31 63 61 66 39 61 31 37 61 32 38 65 32 37 34  61caf9a17a28e274
16450 62 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  b5....query I ro
16460 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
16470 53 54 49 4e 43 54 20 2b 20 37 34 20 41 53 20 63  STINCT + 74 AS c
16480 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
16490 2d 2d 2d 0d 0a 37 34 0d 0a 0d 0a 71 75 65 72 79  ---..74....query
164a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
164b0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33 36  CT DISTINCT + 36
164c0 20 2a 20 2d 20 30 20 46 52 4f 4d 20 74 61 62 30   * - 0 FROM tab0
164d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
164e0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  0....skipif post
164f0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
16500 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
16510 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
16520 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
16530 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
16540 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
16550 20 31 38 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   18 col2 FROM ta
16560 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
16570 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  8....query III r
16580 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
16590 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
165a0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 38 34 20  r0 WHERE NOT 84 
165b0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
165c0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
165d0 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
165e0 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
165f0 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  a49....query III
16600 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16610 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
16620 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
16630 45 52 45 20 4e 4f 54 20 2d 20 28 20 2b 20 63 6f  ERE NOT - ( + co
16640 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  l0 ) IS NOT NULL
16650 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
16660 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16670 54 20 38 32 20 46 52 4f 4d 20 74 61 62 31 20 41  T 82 FROM tab1 A
16680 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
16690 20 28 20 2b 20 39 33 20 29 20 49 53 20 4e 55 4c   ( + 93 ) IS NUL
166a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 38 32 0d 0a 38 32 0d  L..----..82..82.
166b0 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .82....query III
166c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
166d0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
166e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
166f0 45 52 45 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c  ERE col1 - - col
16700 32 20 3c 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  2 <= ( NULL )..-
16710 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
16720 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
16730 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
16740 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16750 35 30 37 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49  507..SELECT - MI
16760 4e 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  N( DISTINCT col0
16770 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
16780 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
16790 0a 2d 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-15....skipif m
167a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
167b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
167c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30 37  owsort label-507
167d0 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28  ..SELECT - MIN (
167e0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 29   DISTINCT col0 )
167f0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
16800 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
16810 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  15....query III 
16820 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16830 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
16840 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20 63  cor0 WHERE ( + c
16850 6f 6c 31 20 29 20 4e 4f 54 20 42 45 54 57 45 45  ol1 ) NOT BETWEE
16860 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 63 6f 6c  N NULL AND ( col
16870 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38  2 )..----..15..8
16880 31 0d 0a 34 37 0d 0a 38 37 0d 0a 32 31 0d 0a 31  1..47..87..21..1
16890 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
168a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
168b0 30 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  0 * col2 FROM ta
168c0 62 30 20 57 48 45 52 45 20 36 32 20 3c 3e 20 35  b0 WHERE 62 <> 5
168d0 39 0d 0a 2d 2d 2d 2d 0d 0a 37 30 35 0d 0a 38 37  9..----..705..87
168e0 30 0d 0a 39 36 30 33 0d 0a 0d 0a 6f 6e 6c 79 69  0..9603....onlyi
168f0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
16900 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
16910 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16920 62 65 6c 2d 35 31 30 0d 0a 53 45 4c 45 43 54 20  bel-510..SELECT 
16930 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ALL + COUNT( * )
16940 20 2a 20 2d 20 31 38 20 46 52 4f 4d 20 74 61 62   * - 18 FROM tab
16950 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 0d 0a  1..----..-54....
16960 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16970 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
16980 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16990 61 62 65 6c 2d 35 31 30 0d 0a 53 45 4c 45 43 54  abel-510..SELECT
169a0 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ALL + COUNT ( *
169b0 20 29 20 2a 20 2d 20 31 38 20 46 52 4f 4d 20 74   ) * - 18 FROM t
169c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a  ab1..----..-54..
169d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
169e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
169f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
16a00 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 31 0d 0a  sort label-511..
16a10 53 45 4c 45 43 54 20 2d 20 4d 41 58 28 20 44 49  SELECT - MAX( DI
16a20 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20  STINCT + col1 ) 
16a30 2a 20 2b 20 39 34 20 46 52 4f 4d 20 74 61 62 32  * + 94 FROM tab2
16a40 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
16a50 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44  EEN ( NULL ) AND
16a60 20 28 20 31 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e   ( 10 )..----..N
16a70 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
16a80 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
16a90 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
16aa0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 31 0d  wsort label-511.
16ab0 0a 53 45 4c 45 43 54 20 2d 20 4d 41 58 20 28 20  .SELECT - MAX ( 
16ac0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
16ad0 29 20 2a 20 2b 20 39 34 20 46 52 4f 4d 20 74 61  ) * + 94 FROM ta
16ae0 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45  b2 WHERE NULL BE
16af0 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41  TWEEN ( NULL ) A
16b00 4e 44 20 28 20 31 30 20 29 0d 0a 2d 2d 2d 2d 0d  ND ( 10 )..----.
16b10 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
16b20 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16b30 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   ALL + col2 * - 
16b40 63 6f 6c 32 20 2b 20 36 38 20 46 52 4f 4d 20 74  col2 + 68 FROM t
16b50 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 34 31  ab0..----..-2141
16b60 0d 0a 2d 33 32 0d 0a 2d 39 37 33 33 0d 0a 0d 0a  ..-32..-9733....
16b70 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
16b80 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
16b90 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f 72  ED type: DIV for
16ba0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
16bb0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
16bc0 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 33 0d 0a  sort label-513..
16bd0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
16be0 44 49 56 20 2b 20 2d 20 43 41 53 54 28 20 63 6f  DIV + - CAST( co
16bf0 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  l0 AS SIGNED ) F
16c00 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
16c10 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  0..0..0....skipi
16c20 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16c30 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16c40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
16c50 35 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  513..SELECT ALL 
16c60 63 6f 6c 32 20 2f 20 2b 20 2d 20 43 41 53 54 20  col2 / + - CAST 
16c70 28 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  ( col0 AS INTEGE
16c80 52 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  R ) FROM tab2..-
16c90 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
16ca0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
16cb0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
16cc0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
16cd0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 42 45  HERE NOT col0 BE
16ce0 54 57 45 45 4e 20 28 20 2d 20 63 6f 6c 31 20 29  TWEEN ( - col1 )
16cf0 20 41 4e 44 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   AND col0 * - co
16d00 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  l2..----..9 valu
16d10 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
16d20 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
16d30 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
16d40 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
16d50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
16d60 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
16d70 57 48 45 52 45 20 63 6f 6c 31 20 2b 20 2d 20 63  WHERE col1 + - c
16d80 6f 6c 30 20 2a 20 2b 20 63 6f 6c 31 20 49 4e 20  ol0 * + col1 IN 
16d90 28 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 29  ( + ( + col1 ) )
16da0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
16db0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
16dc0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
16dd0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
16de0 65 6c 2d 35 31 36 0d 0a 53 45 4c 45 43 54 20 41  el-516..SELECT A
16df0 4c 4c 20 4d 49 4e 28 20 44 49 53 54 49 4e 43 54  LL MIN( DISTINCT
16e00 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
16e10 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  1 cor0 WHERE NOT
16e20 20 63 6f 6c 32 20 2a 20 2d 20 38 34 20 2b 20 2b   col2 * - 84 + +
16e30 20 31 30 20 2a 20 2b 20 63 6f 6c 31 20 49 53 20   10 * + col1 IS 
16e40 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 0d  NULL..----..5...
16e50 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
16e60 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
16e70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
16e80 6c 61 62 65 6c 2d 35 31 36 0d 0a 53 45 4c 45 43  label-516..SELEC
16e90 54 20 41 4c 4c 20 4d 49 4e 20 28 20 44 49 53 54  T ALL MIN ( DIST
16ea0 49 4e 43 54 20 63 6f 6c 31 20 29 20 46 52 4f 4d  INCT col1 ) FROM
16eb0 20 74 61 62 31 20 63 6f 72 30 20 57 48 45 52 45   tab1 cor0 WHERE
16ec0 20 4e 4f 54 20 63 6f 6c 32 20 2a 20 2d 20 38 34   NOT col2 * - 84
16ed0 20 2b 20 2b 20 31 30 20 2a 20 2b 20 63 6f 6c 31   + + 10 * + col1
16ee0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
16ef0 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
16f00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
16f10 54 49 4e 43 54 20 33 37 20 2a 20 63 6f 6c 32 20  TINCT 37 * col2 
16f20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
16f30 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
16f40 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
16f50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
16f60 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
16f70 34 34 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 63 6f  44 + - col0 + co
16f80 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
16f90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d  cor0..----..-22.
16fa0 0a 2d 35 32 0d 0a 31 31 30 0d 0a 0d 0a 71 75 65  .-52..110....que
16fb0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
16fc0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
16fd0 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45  b0 WHERE NULL BE
16fe0 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41 4e 44  TWEEN - col1 AND
16ff0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
17000 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
17010 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
17020 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
17030 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
17040 6c 2d 35 32 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-520..SELECT AL
17050 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  L * FROM tab0 WH
17060 45 52 45 20 28 20 4e 4f 54 20 43 41 53 54 28 20  ERE ( NOT CAST( 
17070 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  + col2 AS SIGNED
17080 20 29 20 2a 20 2b 20 38 39 20 2d 20 63 6f 6c 31   ) * + 89 - col1
17090 20 2a 20 2d 20 33 35 20 42 45 54 57 45 45 4e 20   * - 35 BETWEEN 
170a0 28 20 37 33 20 29 20 41 4e 44 20 2d 20 28 20 2d  ( 73 ) AND - ( -
170b0 20 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 30 20 29   col0 ) + col0 )
170c0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
170d0 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
170e0 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
170f0 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
17100 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
17110 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
17120 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
17130 20 6c 61 62 65 6c 2d 35 32 30 0d 0a 53 45 4c 45   label-520..SELE
17140 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
17150 62 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 43  b0 WHERE ( NOT C
17160 41 53 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20  AST ( + col2 AS 
17170 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 38 39  INTEGER ) * + 89
17180 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 33 35 20 42   - col1 * - 35 B
17190 45 54 57 45 45 4e 20 28 20 37 33 20 29 20 41 4e  ETWEEN ( 73 ) AN
171a0 44 20 2d 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b  D - ( - col0 ) +
171b0 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   col0 )..----..9
171c0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
171d0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
171e0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
171f0 33 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  3b7....onlyif my
17200 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
17210 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
17220 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49 20 72  ..query IIIIII r
17230 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 31  owsort label-521
17240 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
17250 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
17260 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
17270 63 6f 72 31 20 57 48 45 52 45 20 28 20 4e 55 4c  cor1 WHERE ( NUL
17280 4c 20 29 20 3d 20 2b 20 43 41 53 54 28 20 2d 20  L ) = + CAST( - 
17290 28 20 2b 20 33 32 20 29 20 41 53 20 53 49 47 4e  ( + 32 ) AS SIGN
172a0 45 44 20 29 20 2b 20 2d 20 38 39 0d 0a 2d 2d 2d  ED ) + - 89..---
172b0 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  -....skipif mysq
172c0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
172d0 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 49 49 49  le..query IIIIII
172e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
172f0 32 31 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  21..SELECT * FRO
17300 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
17310 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
17320 53 20 63 6f 72 31 20 57 48 45 52 45 20 28 20 4e  S cor1 WHERE ( N
17330 55 4c 4c 20 29 20 3d 20 2b 20 43 41 53 54 20 28  ULL ) = + CAST (
17340 20 2d 20 28 20 2b 20 33 32 20 29 20 41 53 20 49   - ( + 32 ) AS I
17350 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 38 39 0d  NTEGER ) + - 89.
17360 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
17370 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
17380 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 31 32   + col2 - + + 12
17390 20 2b 20 2d 20 2b 20 31 37 20 2a 20 31 38 20 41   + - + 17 * 18 A
173a0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
173b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 0d 0a 2d 32  ..----..-260..-2
173c0 37 38 0d 0a 2d 32 39 35 0d 0a 0d 0a 71 75 65 72  78..-295....quer
173d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
173e0 45 43 54 20 41 4c 4c 20 2d 20 39 33 20 2d 20 2b  ECT ALL - 93 - +
173f0 20 2b 20 39 30 20 46 52 4f 4d 20 74 61 62 32 20   + 90 FROM tab2 
17400 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 33  cor0..----..-183
17410 0d 0a 2d 31 38 33 0d 0a 2d 31 38 33 0d 0a 0d 0a  ..-183..-183....
17420 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
17430 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
17440 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
17450 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
17460 65 6c 2d 35 32 34 0d 0a 53 45 4c 45 43 54 20 41  el-524..SELECT A
17470 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  LL * FROM tab1 A
17480 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
17490 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 20 4f 52   NULL IS NULL OR
174a0 20 63 6f 6c 30 20 2b 20 63 6f 6c 30 20 2a 20 2d   col0 + col0 * -
174b0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
174c0 49 47 4e 45 44 20 29 20 3c 20 2d 20 63 6f 6c 31  IGNED ) < - col1
174d0 20 2a 20 2d 20 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a   * - 0..----....
174e0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
174f0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
17500 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
17510 20 6c 61 62 65 6c 2d 35 32 34 0d 0a 53 45 4c 45   label-524..SELE
17520 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
17530 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
17540 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
17550 4c 20 4f 52 20 63 6f 6c 30 20 2b 20 63 6f 6c 30  L OR col0 + col0
17560 20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   * - CAST ( NULL
17570 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 3c 20   AS INTEGER ) < 
17580 2d 20 63 6f 6c 31 20 2a 20 2d 20 30 0d 0a 2d 2d  - col1 * - 0..--
17590 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
175a0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
175b0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
175c0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
175d0 72 74 20 6c 61 62 65 6c 2d 35 32 35 0d 0a 53 45  rt label-525..SE
175e0 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
175f0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
17600 52 45 20 28 20 2d 20 43 41 53 54 28 20 2b 20 28  RE ( - CAST( + (
17610 20 35 39 20 29 20 41 53 20 53 49 47 4e 45 44 20   59 ) AS SIGNED 
17620 29 20 29 20 3c 20 2b 20 63 6f 6c 31 0d 0a 2d 2d  ) ) < + col1..--
17630 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
17640 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
17650 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
17660 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70  962d0a49....skip
17670 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
17680 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
17690 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
176a0 65 6c 2d 35 32 35 0d 0a 53 45 4c 45 43 54 20 41  el-525..SELECT A
176b0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  LL * FROM tab2 A
176c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2d  S cor0 WHERE ( -
176d0 20 43 41 53 54 20 28 20 2b 20 28 20 35 39 20 29   CAST ( + ( 59 )
176e0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
176f0 3c 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  < + col1..----..
17700 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
17710 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
17720 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
17730 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
17740 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
17750 41 4c 4c 20 2b 20 32 33 20 2d 20 2b 20 2b 20 28  ALL + 23 - + + (
17760 20 36 31 20 29 20 2a 20 63 6f 6c 31 20 46 52 4f   61 ) * col1 FRO
17770 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
17780 2d 2d 2d 2d 0d 0a 2d 33 30 38 38 0d 0a 2d 34 30  ----..-3088..-40
17790 36 34 0d 0a 2d 34 36 37 34 0d 0a 0d 0a 71 75 65  64..-4674....que
177a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
177b0 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20 41 53  LECT ALL col2 AS
177c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
177d0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
177e0 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  T NULL IS NULL..
177f0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
17800 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
17810 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
17820 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
17830 2d 35 32 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -528..SELECT ALL
17840 20 2d 20 28 20 43 4f 55 4e 54 28 20 41 4c 4c 20   - ( COUNT( ALL 
17850 2b 20 33 37 20 29 20 29 20 46 52 4f 4d 20 74 61  + 37 ) ) FROM ta
17860 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
17870 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-3....skipif m
17880 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
17890 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
178a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 38  owsort label-528
178b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28  ..SELECT ALL - (
178c0 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 33   COUNT ( ALL + 3
178d0 37 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20  7 ) ) FROM tab1 
178e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
178f0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
17900 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  sort..SELECT + +
17910 20 34 39 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   49 AS col1 FROM
17920 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
17930 2d 2d 2d 0d 0a 34 39 0d 0a 34 39 0d 0a 34 39 0d  ---..49..49..49.
17940 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
17950 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 38  rt..SELECT - - 8
17960 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  3 AS col1 FROM t
17970 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
17980 38 33 0d 0a 38 33 0d 0a 38 33 0d 0a 0d 0a 73 6b  83..83..83....sk
17990 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
179a0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
179b0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
179c0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
179d0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
179e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
179f0 2b 20 2b 20 38 34 20 63 6f 6c 30 2c 20 63 6f 6c  + + 84 col0, col
17a00 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
17a10 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
17a20 2d 0d 0a 38 34 0d 0a 31 0d 0a 38 34 0d 0a 32 31  -..84..1..84..21
17a30 0d 0a 38 34 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79  ..84..81....only
17a40 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
17a50 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
17a60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17a70 61 62 65 6c 2d 35 33 32 0d 0a 53 45 4c 45 43 54  abel-532..SELECT
17a80 20 2d 20 53 55 4d 28 20 2b 20 63 6f 6c 31 20 29   - SUM( + col1 )
17a90 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
17aa0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
17ab0 0d 0a 2d 36 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-66....skipif 
17ac0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
17ad0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
17ae0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33  rowsort label-53
17af0 32 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20  2..SELECT - SUM 
17b00 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
17b10 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
17b20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d  cor0..----..-66.
17b30 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17b40 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
17b50 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
17b60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 33 0d  wsort label-533.
17b70 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
17b80 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
17b90 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45   tab2 cor0 WHERE
17ba0 20 4e 4f 54 20 63 6f 6c 31 20 2f 20 2b 20 2b 20   NOT col1 / + + 
17bb0 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
17bc0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
17bd0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
17be0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
17bf0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17c00 6c 2d 35 33 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-533..SELECT DI
17c10 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a  STINCT COUNT ( *
17c20 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72   ) FROM tab2 cor
17c30 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  0 WHERE NOT col1
17c40 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 49 53 20 4e   / + + col0 IS N
17c50 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  OT NULL..----..0
17c60 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
17c70 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
17c80 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
17c90 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
17ca0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
17cb0 20 6c 61 62 65 6c 2d 35 33 34 0d 0a 53 45 4c 45   label-534..SELE
17cc0 43 54 20 2b 20 41 56 47 20 28 20 2d 20 63 6f 6c  CT + AVG ( - col
17cd0 30 20 29 20 2f 20 2b 20 43 4f 55 4e 54 28 20 2a  0 ) / + COUNT( *
17ce0 20 29 20 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c   ) * - CAST( NUL
17cf0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  L AS SIGNED ) AS
17d00 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
17d10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
17d20 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
17d30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
17d40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
17d50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 34 0d  wsort label-534.
17d60 0a 53 45 4c 45 43 54 20 2b 20 41 56 47 20 28 20  .SELECT + AVG ( 
17d70 2d 20 63 6f 6c 30 20 29 20 2f 20 2b 20 43 4f 55  - col0 ) / + COU
17d80 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 43 41 53  NT ( * ) * - CAS
17d90 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
17da0 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52  GER ) AS col0 FR
17db0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
17dc0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f  .----..NULL....o
17dd0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
17de0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
17df0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17e00 74 20 6c 61 62 65 6c 2d 35 33 35 0d 0a 53 45 4c  t label-535..SEL
17e10 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20 32  ECT DISTINCT ( 2
17e20 38 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20 41  8 ) * + COUNT( A
17e30 4c 4c 20 2b 20 36 38 20 29 20 41 53 20 63 6f 6c  LL + 68 ) AS col
17e40 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
17e50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d  or0..----..84...
17e60 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
17e70 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
17e80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
17e90 6c 61 62 65 6c 2d 35 33 35 0d 0a 53 45 4c 45 43  label-535..SELEC
17ea0 54 20 44 49 53 54 49 4e 43 54 20 28 20 32 38 20  T DISTINCT ( 28 
17eb0 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c  ) * + COUNT ( AL
17ec0 4c 20 2b 20 36 38 20 29 20 41 53 20 63 6f 6c 31  L + 68 ) AS col1
17ed0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
17ee0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d 0a  r0..----..84....
17ef0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
17f00 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
17f10 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
17f20 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
17f30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17f40 65 6c 2d 35 33 36 0d 0a 53 45 4c 45 43 54 20 44  el-536..SELECT D
17f50 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a  ISTINCT COUNT( *
17f60 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
17f70 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
17f80 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
17f90 4e 55 4c 4c 20 41 4e 44 20 2b 20 43 41 53 54 28  NULL AND + CAST(
17fa0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
17fb0 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  )..----..0....sk
17fc0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17fd0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17fe0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17ff0 65 6c 2d 35 33 36 0d 0a 53 45 4c 45 43 54 20 44  el-536..SELECT D
18000 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20  ISTINCT COUNT ( 
18010 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  * ) FROM tab1 AS
18020 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
18030 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
18040 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 43 41 53 54   NULL AND + CAST
18050 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
18060 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  ER )..----..0...
18070 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18080 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d  ..SELECT ALL ( -
18090 20 2d 20 35 39 20 29 20 46 52 4f 4d 20 74 61 62   - 59 ) FROM tab
180a0 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 39 0d  1..----..59..59.
180b0 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .59....query I r
180c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
180d0 49 53 54 49 4e 43 54 20 36 31 20 46 52 4f 4d 20  ISTINCT 61 FROM 
180e0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab1 WHERE NOT +
180f0 20 2b 20 28 20 2d 20 2d 20 28 20 2d 20 28 20 2d   + ( - - ( - ( -
18100 20 63 6f 6c 32 20 29 20 29 20 29 20 3d 20 28 20   col2 ) ) ) = ( 
18110 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  NULL )..----....
18120 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
18130 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
18140 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
18150 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
18160 65 6c 2d 35 33 39 0d 0a 53 45 4c 45 43 54 20 2a  el-539..SELECT *
18170 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
18180 20 4e 4f 54 20 43 41 53 54 28 20 4e 55 4c 4c 20   NOT CAST( NULL 
18190 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20  AS SIGNED ) * + 
181a0 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 2b 20 37  col2 BETWEEN + 7
181b0 31 20 2f 20 33 34 20 41 4e 44 20 4e 55 4c 4c 0d  1 / 34 AND NULL.
181c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
181d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
181e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
181f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18200 35 33 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  539..SELECT * FR
18210 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
18220 54 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  T CAST ( NULL AS
18230 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 63   INTEGER ) * + c
18240 6f 6c 32 20 42 45 54 57 45 45 4e 20 2b 20 37 31  ol2 BETWEEN + 71
18250 20 2f 20 33 34 20 41 4e 44 20 4e 55 4c 4c 0d 0a   / 34 AND NULL..
18260 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
18270 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
18280 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
18290 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
182a0 20 4e 55 4c 4c 20 49 4e 20 28 20 2b 20 63 6f 6c   NULL IN ( + col
182b0 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
182c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
182d0 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2d 20  LECT + + col2 - 
182e0 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
182f0 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 39 36 20   WHERE NOT + 96 
18300 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
18310 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
18320 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18330 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
18340 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34  rowsort label-54
18350 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  2..SELECT ALL + 
18360 53 55 4d 28 20 41 4c 4c 20 2d 20 2d 20 39 37 20  SUM( ALL - - 97 
18370 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
18380 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 39 31 0d 0a  ab1..----..291..
18390 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
183a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
183b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
183c0 20 6c 61 62 65 6c 2d 35 34 32 0d 0a 53 45 4c 45   label-542..SELE
183d0 43 54 20 41 4c 4c 20 2b 20 53 55 4d 20 28 20 41  CT ALL + SUM ( A
183e0 4c 4c 20 2d 20 2d 20 39 37 20 29 20 41 53 20 63  LL - - 97 ) AS c
183f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
18400 2d 2d 2d 0d 0a 32 39 31 0d 0a 0d 0a 71 75 65 72  ---..291....quer
18410 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18420 45 43 54 20 63 6f 6c 30 20 2a 20 32 34 20 2a 20  ECT col0 * 24 * 
18430 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 63  + - col0 * + + c
18440 6f 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f  ol1 * + col2 FRO
18450 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab2..----..-3
18460 30 32 37 37 36 33 32 30 0d 0a 2d 35 32 34 36 31  02776320..-52461
18470 30 30 30 30 0d 0a 2d 35 39 35 36 39 36 33 32 0d  0000..-59569632.
18480 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
18490 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
184a0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
184b0 20 57 48 45 52 45 20 4e 4f 54 20 37 32 20 3e 3d   WHERE NOT 72 >=
184c0 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d   + col2..----...
184d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
184e0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
184f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
18500 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
18510 29 20 3e 3d 20 2b 20 2d 20 38 39 0d 0a 2d 2d 2d  ) >= + - 89..---
18520 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
18530 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
18540 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57  LL * FROM tab1 W
18550 48 45 52 45 20 4e 4f 54 20 2b 20 2d 20 33 38 20  HERE NOT + - 38 
18560 3c 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  <> ( NULL )..---
18570 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
18580 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
18590 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
185a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
185b0 6c 61 62 65 6c 2d 35 34 37 0d 0a 53 45 4c 45 43  label-547..SELEC
185c0 54 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54 28  T col2 * - CAST(
185d0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
185e0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
185f0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab2 WHERE NOT - 
18600 63 6f 6c 30 20 2a 20 2b 20 2d 20 33 37 20 4e 4f  col0 * + - 37 NO
18610 54 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 33 36  T BETWEEN - + 36
18620 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
18630 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
18640 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
18650 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18660 74 20 6c 61 62 65 6c 2d 35 34 37 0d 0a 53 45 4c  t label-547..SEL
18670 45 43 54 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53  ECT col2 * - CAS
18680 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
18690 47 45 52 20 29 20 41 53 20 63 6f 6c 32 20 46 52  GER ) AS col2 FR
186a0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
186b0 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 33  T - col0 * + - 3
186c0 37 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20  7 NOT BETWEEN - 
186d0 2b 20 33 36 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  + 36 AND NULL..-
186e0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
186f0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
18700 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
18710 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
18720 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
18730 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
18740 0a 53 45 4c 45 43 54 20 2d 20 2b 20 38 38 20 63  .SELECT - + 88 c
18750 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
18760 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
18770 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d   tab0 AS cor1..-
18780 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
18790 73 68 69 6e 67 20 74 6f 20 34 36 37 33 30 31 66  shing to 467301f
187a0 38 38 37 36 31 34 65 62 37 62 65 64 61 32 32 63  887614eb7beda22c
187b0 35 36 31 62 30 66 61 64 32 0d 0a 0d 0a 6f 6e 6c  561b0fad2....onl
187c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
187d0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
187e0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
187f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18800 35 34 39 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  549..SELECT * FR
18810 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
18820 54 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20 28 20  T ( NULL ) IN ( 
18830 35 33 20 2f 20 2d 20 43 41 53 54 28 20 2d 20 2d  53 / - CAST( - -
18840 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
18850 29 20 2a 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d  ) * - col1 )..--
18860 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
18870 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
18880 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
18890 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 39  owsort label-549
188a0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
188b0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
188c0 20 4e 55 4c 4c 20 29 20 49 4e 20 28 20 35 33 20   NULL ) IN ( 53 
188d0 2f 20 2d 20 43 41 53 54 20 28 20 2d 20 2d 20 63  / - CAST ( - - c
188e0 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol0 AS INTEGER )
188f0 20 2a 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   * - col1 )..---
18900 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
18910 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18920 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
18930 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
18940 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
18950 43 54 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20  CT + COUNT( ALL 
18960 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  - - col2 ) AS co
18970 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
18980 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
18990 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
189a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
189b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35  rowsort label-55
189c0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
189d0 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c  CT + COUNT ( ALL
189e0 20 2d 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63   - - col2 ) AS c
189f0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
18a00 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20  ---..3....query 
18a10 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
18a20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
18a30 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
18a40 4f 54 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 32 32  OT + col1 - - 22
18a50 20 3c 3e 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d   <> ( NULL )..--
18a60 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
18a70 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
18a80 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
18a90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18aa0 20 6c 61 62 65 6c 2d 35 35 32 0d 0a 53 45 4c 45   label-552..SELE
18ab0 43 54 20 2b 20 63 6f 6c 32 20 44 49 56 20 2b 20  CT + col2 DIV + 
18ac0 37 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  73 AS col0 FROM 
18ad0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab0..----..0..0
18ae0 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
18af0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
18b00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
18b10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 32 0d  wsort label-552.
18b20 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2f  .SELECT + col2 /
18b30 20 2b 20 37 33 20 41 53 20 63 6f 6c 30 20 46 52   + 73 AS col0 FR
18b40 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab0..----..0
18b50 0d 0a 30 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20  ..0..1....query 
18b60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
18b70 54 20 2d 20 63 6f 6c 32 20 2b 20 38 32 20 41 53  T - col2 + 82 AS
18b80 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
18b90 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
18ba0 31 37 0d 0a 33 35 0d 0a 37 32 0d 0a 0d 0a 6f 6e  17..35..72....on
18bb0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
18bc0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
18bd0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
18be0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18bf0 35 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  554..SELECT ALL 
18c00 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
18c10 53 49 47 4e 45 44 20 29 2c 20 2b 20 63 6f 6c 32  SIGNED ), + col2
18c20 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
18c30 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
18c40 0d 0a 4e 55 4c 4c 0d 0a 35 39 0d 0a 4e 55 4c 4c  ..NULL..59..NULL
18c50 0d 0a 36 38 0d 0a 4e 55 4c 4c 0d 0a 39 36 0d 0a  ..68..NULL..96..
18c60 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
18c70 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
18c80 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
18c90 74 20 6c 61 62 65 6c 2d 35 35 34 0d 0a 53 45 4c  t label-554..SEL
18ca0 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 20 28  ECT ALL + CAST (
18cb0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
18cc0 20 29 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f   ), + col2 AS co
18cd0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
18ce0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
18cf0 0d 0a 35 39 0d 0a 4e 55 4c 4c 0d 0a 36 38 0d 0a  ..59..NULL..68..
18d00 4e 55 4c 4c 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72  NULL..96....quer
18d10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
18d20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38  ECT DISTINCT + 8
18d30 39 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  9 FROM tab0 AS c
18d40 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42  or0 WHERE NULL B
18d50 45 54 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20  ETWEEN col2 AND 
18d60 28 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2b 20 37  ( + col2 + + + 7
18d70 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  2 )..----....que
18d80 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
18d90 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30  ELECT ALL + col0
18da0 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30   AS col2, + col0
18db0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
18dc0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
18dd0 0d 0a 31 35 0d 0a 31 35 0d 0a 38 37 0d 0a 38 37  ..15..15..87..87
18de0 0d 0a 39 37 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79  ..97..97....only
18df0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
18e00 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
18e10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18e20 61 62 65 6c 2d 35 35 37 0d 0a 53 45 4c 45 43 54  abel-557..SELECT
18e30 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20   COUNT( * ) + - 
18e40 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2d 20  SUM( DISTINCT - 
18e50 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
18e60 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18e70 32 30 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  202....skipif my
18e80 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
18e90 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
18ea0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 37 0d  wsort label-557.
18eb0 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
18ec0 2a 20 29 20 2b 20 2d 20 53 55 4d 20 28 20 44 49  * ) + - SUM ( DI
18ed0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20  STINCT - col0 ) 
18ee0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
18ef0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 32 0d 0a 0d 0a  0..----..202....
18f00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
18f10 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
18f20 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
18f30 6f 72 74 20 6c 61 62 65 6c 2d 35 35 38 0d 0a 53  ort label-558..S
18f40 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
18f50 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
18f60 32 2c 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  2, COUNT( * ) AS
18f70 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
18f80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
18f90 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
18fa0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
18fb0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
18fc0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 35 38  owsort label-558
18fd0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
18fe0 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  T COUNT ( * ) AS
18ff0 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 20 28 20 2a   col2, COUNT ( *
19000 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
19010 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
19020 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 71 75 65 72  --..3..3....quer
19030 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
19040 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52 4f  ECT ALL col0 FRO
19050 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
19060 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e  HERE + col2 IS N
19070 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
19080 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
19090 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2b  LECT ALL + ( - +
190a0 20 33 32 20 29 20 2b 20 2d 20 28 20 2b 20 63 6f   32 ) + - ( + co
190b0 6c 30 20 29 20 2a 20 2d 20 2d 20 32 32 20 46 52  l0 ) * - - 22 FR
190c0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
190d0 0a 2d 2d 2d 2d 0d 0a 2d 31 31 35 34 0d 0a 2d 31  .----..-1154..-1
190e0 39 30 32 0d 0a 2d 32 30 33 34 0d 0a 0d 0a 6f 6e  902..-2034....on
190f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
19100 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
19110 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19120 20 6c 61 62 65 6c 2d 35 36 31 0d 0a 53 45 4c 45   label-561..SELE
19130 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52  CT COUNT( * ) FR
19140 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
19150 57 48 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 4e 55  WHERE NULL <> NU
19160 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
19170 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
19180 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
19190 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
191a0 62 65 6c 2d 35 36 31 0d 0a 53 45 4c 45 43 54 20  bel-561..SELECT 
191b0 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
191c0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
191d0 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c  ERE NULL <> NULL
191e0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
191f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
19200 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c  LECT ALL + + col
19210 32 20 2b 20 2d 20 2b 20 28 20 63 6f 6c 32 20 29  2 + - + ( col2 )
19220 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
19230 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
19240 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c  ..0..0..0....onl
19250 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
19260 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
19270 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
19280 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
19290 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
192a0 35 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  563..SELECT DIST
192b0 49 4e 43 54 20 2b 20 39 38 20 44 49 56 20 2b 20  INCT + 98 DIV + 
192c0 2b 20 53 55 4d 28 20 41 4c 4c 20 2b 20 63 6f 6c  + SUM( ALL + col
192d0 31 20 29 20 2b 20 2d 20 2b 20 38 35 20 41 53 20  1 ) + - + 85 AS 
192e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
192f0 2d 2d 2d 2d 0d 0a 2d 38 35 0d 0a 0d 0a 73 6b 69  ----..-85....ski
19300 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
19310 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
19320 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19330 6c 2d 35 36 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-563..SELECT DI
19340 53 54 49 4e 43 54 20 2b 20 39 38 20 2f 20 2b 20  STINCT + 98 / + 
19350 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20 63 6f  + SUM ( ALL + co
19360 6c 31 20 29 20 2b 20 2d 20 2b 20 38 35 20 41 53  l1 ) + - + 85 AS
19370 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
19380 0a 2d 2d 2d 2d 0d 0a 2d 38 35 0d 0a 0d 0a 73 6b  .----..-85....sk
19390 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
193a0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
193b0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
193c0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
193d0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
193e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
193f0 63 6f 6c 32 2c 20 63 6f 6c 30 20 63 6f 6c 31 20  col2, col0 col1 
19400 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
19410 0a 31 30 0d 0a 38 37 0d 0a 34 37 0d 0a 31 35 0d  .10..87..47..15.
19420 0a 39 39 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72 79  .99..97....query
19430 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d   IIIIII rowsort.
19440 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
19450 61 62 30 2c 20 74 61 62 30 20 63 6f 72 30 20 57  ab0, tab0 cor0 W
19460 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
19470 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) IS NULL..----.
19480 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
19490 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
194a0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
194b0 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 49   col2 * + col0 I
194c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
194d0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
194e0 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
194f0 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
19500 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
19510 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
19520 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
19530 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
19540 4e 55 4c 4c 20 29 20 3e 3d 20 28 20 32 38 20 29  NULL ) >= ( 28 )
19550 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
19560 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19570 54 20 2d 20 2d 20 35 33 20 2b 20 2d 20 2d 20 63  T - - 53 + - - c
19580 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
19590 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
195a0 2d 2d 2d 0d 0a 31 30 34 0d 0a 31 32 30 0d 0a 31  ---..104..120..1
195b0 33 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  30....onlyif mys
195c0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
195d0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
195e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
195f0 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20 38 20 2b  69..SELECT + 8 +
19600 20 2d 20 34 36 20 2d 20 53 55 4d 28 20 63 6f 6c   - 46 - SUM( col
19610 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  0 ) FROM tab1..-
19620 2d 2d 2d 0d 0a 2d 32 36 35 0d 0a 0d 0a 73 6b 69  ---..-265....ski
19630 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
19640 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
19650 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19660 6c 2d 35 36 39 0d 0a 53 45 4c 45 43 54 20 2b 20  l-569..SELECT + 
19670 38 20 2b 20 2d 20 34 36 20 2d 20 53 55 4d 20 28  8 + - 46 - SUM (
19680 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
19690 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 35 0d 0a 0d  1..----..-265...
196a0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
196b0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
196c0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
196d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
196e0 6c 2d 35 37 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-570..SELECT AL
196f0 4c 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f 4d  L col0 col2 FROM
19700 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
19710 2b 20 63 6f 6c 31 20 2a 20 2b 20 43 41 53 54 28  + col1 * + CAST(
19720 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
19730 29 20 2b 20 2d 20 2b 20 34 20 2d 20 2d 20 43 41  ) + - + 4 - - CA
19740 53 54 28 20 31 20 41 53 20 53 49 47 4e 45 44 20  ST( 1 AS SIGNED 
19750 29 20 2a 20 33 36 20 4e 4f 54 20 42 45 54 57 45  ) * 36 NOT BETWE
19760 45 4e 20 63 6f 6c 31 20 2b 20 2d 20 28 20 2b 20  EN col1 + - ( + 
19770 28 20 63 6f 6c 31 20 29 20 29 20 41 4e 44 20 2b  ( col1 ) ) AND +
19780 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
19790 49 47 4e 45 44 20 29 20 2a 20 36 35 0d 0a 2d 2d  IGNED ) * 65..--
197a0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
197b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
197c0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
197d0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
197e0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
197f0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
19800 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
19810 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19820 62 65 6c 2d 35 37 30 0d 0a 53 45 4c 45 43 54 20  bel-570..SELECT 
19830 41 4c 4c 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52  ALL col0 col2 FR
19840 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
19850 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 43 41 53  T + col1 * + CAS
19860 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
19870 47 45 52 20 29 20 2b 20 2d 20 2b 20 34 20 2d 20  GER ) + - + 4 - 
19880 2d 20 43 41 53 54 20 28 20 31 20 41 53 20 49 4e  - CAST ( 1 AS IN
19890 54 45 47 45 52 20 29 20 2a 20 33 36 20 4e 4f 54  TEGER ) * 36 NOT
198a0 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20 2b 20   BETWEEN col1 + 
198b0 2d 20 28 20 2b 20 28 20 63 6f 6c 31 20 29 20 29  - ( + ( col1 ) )
198c0 20 41 4e 44 20 2b 20 43 41 53 54 20 28 20 4e 55   AND + CAST ( NU
198d0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
198e0 2a 20 36 35 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  * 65..----....qu
198f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
19900 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 38 20 2b  ELECT ALL + 38 +
19910 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
19920 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
19930 0a 31 30 35 0d 0a 31 31 35 0d 0a 38 39 0d 0a 0d  .105..115..89...
19940 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19950 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
19960 54 20 2d 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 63  T - - col2 * + c
19970 6f 6c 31 20 2b 20 2d 20 38 33 20 2b 20 63 6f 6c  ol1 + - 83 + col
19980 30 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  0 - - col0 AS co
19990 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
199a0 52 45 20 4e 55 4c 4c 20 3c 20 2b 20 63 6f 6c 32  RE NULL < + col2
199b0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
199c0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
199d0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
199e0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
199f0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
19a00 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
19a10 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
19a20 20 37 35 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   75 col2 FROM ta
19a30 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 37 35  b1..----..75..75
19a40 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..75....onlyif m
19a50 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
19a60 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
19a70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19a80 2d 35 37 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -574..SELECT DIS
19a90 54 49 4e 43 54 20 4d 41 58 28 20 2b 20 2d 20 63  TINCT MAX( + - c
19aa0 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol1 ) AS col0 FR
19ab0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
19ac0 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
19ad0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
19ae0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
19af0 6f 72 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53  ort label-574..S
19b00 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
19b10 41 58 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29 20  AX ( + - col1 ) 
19b20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
19b30 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 71  1..----..-5....q
19b40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19b50 53 45 4c 45 43 54 20 2d 20 2d 20 28 20 2d 20 2d  SELECT - - ( - -
19b60 20 37 36 20 29 20 2a 20 2b 20 39 36 20 46 52 4f   76 ) * + 96 FRO
19b70 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
19b80 2d 2d 2d 2d 0d 0a 37 32 39 36 0d 0a 37 32 39 36  ----..7296..7296
19b90 0d 0a 37 32 39 36 0d 0a 0d 0a 71 75 65 72 79 20  ..7296....query 
19ba0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
19bb0 54 20 44 49 53 54 49 4e 43 54 20 32 37 20 41 53  T DISTINCT 27 AS
19bc0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
19bd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37 0d 0a  cor0..----..27..
19be0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19bf0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
19c00 2b 20 33 31 20 2a 20 63 6f 6c 32 20 2b 20 2d 20  + 31 * col2 + - 
19c10 2b 20 36 34 20 2a 20 2d 20 31 38 20 2a 20 63 6f  + 64 * - 18 * co
19c20 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20 46 52  l1 * - + col0 FR
19c30 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
19c40 0a 2d 2d 2d 2d 0d 0a 2d 34 39 31 34 32 39 0d 0a  .----..-491429..
19c50 2d 34 39 32 39 32 31 32 0d 0a 2d 38 32 35 35 30  -4929212..-82550
19c60 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  4....query II ro
19c70 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
19c80 4c 20 34 32 20 2a 20 2d 20 2b 20 35 36 2c 20 63  L 42 * - + 56, c
19c90 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
19ca0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
19cb0 2d 2d 2d 0d 0a 2d 32 33 35 32 0d 0a 31 30 0d 0a  ---..-2352..10..
19cc0 2d 32 33 35 32 0d 0a 34 37 0d 0a 2d 32 33 35 32  -2352..47..-2352
19cd0 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..99....skipif p
19ce0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
19cf0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
19d00 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
19d10 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
19d20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19d30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
19d40 54 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2d 20 2b  T col2 * - ( - +
19d50 20 63 6f 6c 31 20 29 20 2a 20 2b 20 63 6f 6c 32   col1 ) * + col2
19d60 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
19d70 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
19d80 32 39 30 32 34 0d 0a 31 37 34 30 35 0d 0a 32 31  29024..17405..21
19d90 37 33 32 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  7328....query I 
19da0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
19db0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20  DISTINCT + col0 
19dc0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
19dd0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
19de0 4e 4f 54 20 28 20 2b 20 28 20 2d 20 2d 20 63 6f  NOT ( + ( - - co
19df0 6c 31 20 29 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  l1 ) ) IS NULL..
19e00 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39 37  ----..15..87..97
19e10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
19e20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
19e30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
19e40 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
19e50 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 4e 55 4c   NOT NULL <= NUL
19e60 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
19e70 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
19e80 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
19e90 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
19ea0 4f 54 20 2d 20 36 35 20 49 53 20 4e 4f 54 20 4e  OT - 65 IS NOT N
19eb0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
19ec0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
19ed0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
19ee0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b  b0 WHERE NOT ( +
19ef0 20 2d 20 31 30 20 29 20 4e 4f 54 20 49 4e 20 28   - 10 ) NOT IN (
19f00 20 33 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   34 )..----....s
19f10 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
19f20 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
19f30 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
19f40 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
19f50 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
19f60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19f70 20 63 6f 6c 32 20 63 6f 6c 31 2c 20 2d 20 63 6f   col2 col1, - co
19f80 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l2 AS col2 FROM 
19f90 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  tab1..----..59..
19fa0 2d 35 39 0d 0a 36 38 0d 0a 2d 36 38 0d 0a 39 36  -59..68..-68..96
19fb0 0d 0a 2d 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-96....onlyif 
19fc0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
19fd0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
19fe0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19ff0 6c 2d 35 38 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-585..SELECT DI
1a000 53 54 49 4e 43 54 20 53 55 4d 28 20 34 30 20 29  STINCT SUM( 40 )
1a010 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1a020 0d 0a 31 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..120....skipif 
1a030 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1a040 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1a050 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38  rowsort label-58
1a060 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
1a070 43 54 20 53 55 4d 20 28 20 34 30 20 29 20 46 52  CT SUM ( 40 ) FR
1a080 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
1a090 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  20....onlyif mys
1a0a0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1a0b0 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
1a0c0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1a0d0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1a0e0 72 74 20 6c 61 62 65 6c 2d 35 38 36 0d 0a 53 45  rt label-586..SE
1a0f0 4c 45 43 54 20 28 20 2b 20 4d 49 4e 28 20 2d 20  LECT ( + MIN( - 
1a100 2b 20 63 6f 6c 30 20 29 20 29 20 44 49 56 20 2b  + col0 ) ) DIV +
1a110 20 2d 20 38 34 20 46 52 4f 4d 20 74 61 62 32 0d   - 84 FROM tab2.
1a120 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
1a130 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a140 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a150 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a160 2d 35 38 36 0d 0a 53 45 4c 45 43 54 20 28 20 2b  -586..SELECT ( +
1a170 20 4d 49 4e 20 28 20 2d 20 2b 20 63 6f 6c 30 20   MIN ( - + col0 
1a180 29 20 29 20 2f 20 2b 20 2d 20 38 34 20 46 52 4f  ) ) / + - 84 FRO
1a190 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
1a1a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1a1b0 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 32 20  rt..SELECT + 22 
1a1c0 2a 20 2d 20 2b 20 35 38 20 46 52 4f 4d 20 74 61  * - + 58 FROM ta
1a1d0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 37 36 0d  b1..----..-1276.
1a1e0 0a 2d 31 32 37 36 0d 0a 2d 31 32 37 36 0d 0a 0d  .-1276..-1276...
1a1f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a200 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1a210 54 20 2d 20 32 35 20 41 53 20 63 6f 6c 32 20 46  T - 25 AS col2 F
1a220 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
1a230 2d 2d 2d 0d 0a 2d 32 35 0d 0a 0d 0a 71 75 65 72  ---..-25....quer
1a240 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1a250 45 43 54 20 41 4c 4c 20 30 20 2a 20 2d 20 34 38  ECT ALL 0 * - 48
1a260 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + + col2 AS col
1a270 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
1a280 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 34  or0..----..10..4
1a290 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49  7..99....query I
1a2a0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a2b0 20 41 4c 4c 20 2d 20 39 35 20 46 52 4f 4d 20 74   ALL - 95 FROM t
1a2c0 61 62 30 2c 20 74 61 62 31 20 41 53 20 63 6f 72  ab0, tab1 AS cor
1a2d0 30 20 57 48 45 52 45 20 2d 20 39 34 20 49 53 20  0 WHERE - 94 IS 
1a2e0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1a2f0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1a300 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1a310 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a320 20 6c 61 62 65 6c 2d 35 39 31 0d 0a 53 45 4c 45   label-591..SELE
1a330 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
1a340 54 28 20 2a 20 29 20 2b 20 2d 20 33 34 20 2b 20  T( * ) + - 34 + 
1a350 2b 20 2b 20 31 30 20 41 53 20 63 6f 6c 31 20 46  + + 10 AS col1 F
1a360 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1a370 2d 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -21....skipif my
1a380 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1a390 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1a3a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 31 0d  wsort label-591.
1a3b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1a3c0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
1a3d0 20 33 34 20 2b 20 2b 20 2b 20 31 30 20 41 53 20   34 + + + 10 AS 
1a3e0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
1a3f0 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 0d 0a 71 75 65  ----..-21....que
1a400 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1a410 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1a420 35 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  53 AS col2 FROM 
1a430 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
1a440 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
1a450 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 0d  cor1..----..-53.
1a460 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1a470 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44  # CAST syntax: D
1a480 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
1a490 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1a4a0 6c 61 62 65 6c 2d 35 39 33 0d 0a 53 45 4c 45 43  label-593..SELEC
1a4b0 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b 20 63  T + col1 * - + c
1a4c0 6f 6c 32 20 2a 20 2b 20 2d 20 31 35 20 2f 20 2b  ol2 * + - 15 / +
1a4d0 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
1a4e0 20 44 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f   DECIMAL ) AS co
1a4f0 6c 31 2c 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  l1, - CAST( NULL
1a500 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 46 52   AS DECIMAL ) FR
1a510 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
1a520 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
1a530 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
1a540 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1a550 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1a560 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1a570 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1a580 35 39 33 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  593..SELECT + co
1a590 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2a 20  l1 * - + col2 * 
1a5a0 2b 20 2d 20 31 35 20 2f 20 2b 20 2d 20 43 41 53  + - 15 / + - CAS
1a5b0 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c  T ( NULL AS REAL
1a5c0 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 43 41   ) AS col1, - CA
1a5d0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
1a5e0 4c 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  L ) FROM tab0 co
1a5f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
1a600 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
1a610 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
1a620 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1a630 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1a640 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
1a650 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
1a660 20 4e 55 4c 4c 20 3d 20 2d 20 33 33 20 2d 20 2b   NULL = - 33 - +
1a670 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
1a680 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1a690 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
1a6a0 30 20 2b 20 31 39 20 41 53 20 63 6f 6c 30 20 46  0 + 19 AS col0 F
1a6b0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1a6c0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 36 0d 0a 31 31 36  ..----..106..116
1a6d0 0d 0a 33 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..34....onlyif m
1a6e0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1a6f0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1a700 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a710 2d 35 39 36 0d 0a 53 45 4c 45 43 54 20 2d 20 36  -596..SELECT - 6
1a720 39 20 2a 20 2d 20 32 38 20 2a 20 2b 20 2d 20 4d  9 * - 28 * + - M
1a730 49 4e 28 20 28 20 36 35 20 29 20 29 20 2a 20 2b  IN( ( 65 ) ) * +
1a740 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
1a750 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1a760 0a 2d 2d 2d 2d 0d 0a 33 37 36 37 34 30 0d 0a 0d  .----..376740...
1a770 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1a780 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1a790 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a7a0 6c 61 62 65 6c 2d 35 39 36 0d 0a 53 45 4c 45 43  label-596..SELEC
1a7b0 54 20 2d 20 36 39 20 2a 20 2d 20 32 38 20 2a 20  T - 69 * - 28 * 
1a7c0 2b 20 2d 20 4d 49 4e 20 28 20 28 20 36 35 20 29  + - MIN ( ( 65 )
1a7d0 20 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 20 28   ) * + - COUNT (
1a7e0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   * ) FROM tab2 A
1a7f0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 37  S cor0..----..37
1a800 36 37 34 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  6740....onlyif m
1a810 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1a820 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1a830 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1a840 72 74 20 6c 61 62 65 6c 2d 35 39 37 0d 0a 53 45  rt label-597..SE
1a850 4c 45 43 54 20 41 56 47 20 28 20 28 20 2b 20 2d  LECT AVG ( ( + -
1a860 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1a870 49 47 4e 45 44 20 29 20 29 20 29 20 2a 20 2b 20  IGNED ) ) ) * + 
1a880 37 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  75 AS col1 FROM 
1a890 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1a8a0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
1a8b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1a8c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1a8d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1a8e0 2d 35 39 37 0d 0a 53 45 4c 45 43 54 20 41 56 47  -597..SELECT AVG
1a8f0 20 28 20 28 20 2b 20 2d 20 43 41 53 54 20 28 20   ( ( + - CAST ( 
1a900 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1a910 29 20 29 20 29 20 2a 20 2b 20 37 35 20 41 53 20  ) ) ) * + 75 AS 
1a920 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
1a930 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1a940 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  LL....query III 
1a950 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a960 2a 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  * FROM tab1 cor0
1a970 20 57 48 45 52 45 20 63 6f 6c 31 20 3e 20 4e 55   WHERE col1 > NU
1a980 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
1a990 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1a9a0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1a9b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1a9c0 61 62 65 6c 2d 35 39 39 0d 0a 53 45 4c 45 43 54  abel-599..SELECT
1a9d0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 53 55   DISTINCT + - SU
1a9e0 4d 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46 52  M( + - col2 ) FR
1a9f0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1aa00 0a 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 73 6b  .----..121....sk
1aa10 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1aa20 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1aa30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1aa40 65 6c 2d 35 39 39 0d 0a 53 45 4c 45 43 54 20 44  el-599..SELECT D
1aa50 49 53 54 49 4e 43 54 20 2b 20 2d 20 53 55 4d 20  ISTINCT + - SUM 
1aa60 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f  ( + - col2 ) FRO
1aa70 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1aa80 2d 2d 2d 2d 0d 0a 31 32 31 0d 0a 0d 0a 6f 6e 6c  ----..121....onl
1aa90 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1aaa0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1aab0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1aac0 6c 61 62 65 6c 2d 36 30 30 0d 0a 53 45 4c 45 43  label-600..SELEC
1aad0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b  T COUNT( * ) + +
1aae0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
1aaf0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
1ab00 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 73 6b 69 70  .----..6....skip
1ab10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1ab20 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1ab30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1ab40 2d 36 30 30 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -600..SELECT COU
1ab50 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 2b 20 43  NT ( * ) + + + C
1ab60 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
1ab70 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
1ab80 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20 49  --..6....query I
1ab90 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1aba0 20 41 4c 4c 20 63 6f 6c 32 20 2b 20 2b 20 28 20   ALL col2 + + ( 
1abb0 2d 20 35 39 20 29 20 2a 20 2d 20 2b 20 63 6f 6c  - 59 ) * - + col
1abc0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
1abd0 2d 0d 0a 31 32 34 39 0d 0a 31 35 38 0d 0a 34 38  -..1249..158..48
1abe0 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  26....query I ro
1abf0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
1ac00 6c 32 20 2a 20 2b 20 2d 20 28 20 63 6f 6c 32 20  l2 * + - ( col2 
1ac10 29 20 2b 20 2d 20 39 36 20 46 52 4f 4d 20 74 61  ) + - 96 FROM ta
1ac20 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 39 36 0d  b2..----..-1696.
1ac30 0a 2d 33 34 36 30 0d 0a 2d 36 32 35 0d 0a 0d 0a  .-3460..-625....
1ac40 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1ac50 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
1ac60 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 46 52  AS col0, col2 FR
1ac70 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55  OM tab0 WHERE NU
1ac80 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
1ac90 0d 0a 2d 31 0d 0a 39 39 0d 0a 2d 32 31 0d 0a 31  ..-1..99..-21..1
1aca0 30 0d 0a 2d 38 31 0d 0a 34 37 0d 0a 0d 0a 71 75  0..-81..47....qu
1acb0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1acc0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1acd0 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  ab2 WHERE NULL <
1ace0 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 39 35   + + col1 + - 95
1acf0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1ad00 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1ad10 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1ad20 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
1ad30 32 35 20 2a 20 2d 20 39 37 20 2f 20 2d 20 63 6f  25 * - 97 / - co
1ad40 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l0 IS NULL..----
1ad50 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
1ad60 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66  ng to c4b42765df
1ad70 66 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37  f94eaaa46040e537
1ad80 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20  fb43b7....query 
1ad90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ada0 54 20 41 4c 4c 20 34 20 2d 20 2d 20 2b 20 63 6f  T ALL 4 - - + co
1adb0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
1adc0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 35 31 0d  0..----..18..51.
1add0 0a 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .9....query I ro
1ade0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1adf0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2d 20  STINCT - col2 - 
1ae00 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 30 20  col2 + - - col0 
1ae10 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20  + col2 * + col0 
1ae20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1ae30 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1ae40 0a 36 32 36 0d 0a 39 33 37 0d 0a 39 35 30 32 0d  .626..937..9502.
1ae50 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
1ae60 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
1ae70 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
1ae80 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
1ae90 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
1aea0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1aeb0 45 43 54 20 2d 20 33 35 20 63 6f 6c 31 20 46 52  ECT - 35 col1 FR
1aec0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
1aed0 2d 2d 0d 0a 2d 33 35 0d 0a 2d 33 35 0d 0a 2d 33  --..-35..-35..-3
1aee0 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
1aef0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39  sort..SELECT + 9
1af00 39 20 2a 20 36 35 20 41 53 20 63 6f 6c 32 20 46  9 * 65 AS col2 F
1af10 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
1af20 2d 2d 2d 0d 0a 36 34 33 35 0d 0a 36 34 33 35 0d  ---..6435..6435.
1af30 0a 36 34 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .6435....onlyif 
1af40 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1af50 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1af60 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1af70 6f 72 74 20 6c 61 62 65 6c 2d 36 31 30 0d 0a 53  ort label-610..S
1af80 45 4c 45 43 54 20 2d 20 39 20 44 49 56 20 2b 20  ELECT - 9 DIV + 
1af90 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
1afa0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1afb0 2d 0d 0a 2d 39 0d 0a 2d 39 0d 0a 2d 39 0d 0a 0d  -..-9..-9..-9...
1afc0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1afd0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1afe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1aff0 6c 61 62 65 6c 2d 36 31 30 0d 0a 53 45 4c 45 43  label-610..SELEC
1b000 54 20 2d 20 39 20 2f 20 2b 20 31 20 41 53 20 63  T - 9 / + 1 AS c
1b010 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
1b020 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   cor0..----..-9.
1b030 0a 2d 39 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79  .-9..-9....query
1b040 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b050 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
1b060 6c 31 20 2f 20 2b 20 38 30 20 2b 20 2b 20 63 6f  l1 / + 80 + + co
1b070 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
1b080 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab0 WHERE NOT N
1b090 55 4c 4c 20 3c 3e 20 2d 20 63 6f 6c 32 0d 0a 2d  ULL <> - col2..-
1b0a0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
1b0b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1b0c0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
1b0d0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
1b0e0 20 35 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   50 IS NOT NULL.
1b0f0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
1b100 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
1b110 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
1b120 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
1b130 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1b140 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20  .SELECT col0 AS 
1b150 63 6f 6c 31 2c 20 63 6f 6c 31 20 46 52 4f 4d 20  col1, col1 FROM 
1b160 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1b170 2d 2d 0d 0a 35 31 0d 0a 31 34 0d 0a 38 35 0d 0a  --..51..14..85..
1b180 35 0d 0a 39 31 0d 0a 34 37 0d 0a 0d 0a 71 75 65  5..91..47....que
1b190 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1b1a0 4c 45 43 54 20 2d 20 28 20 2b 20 31 31 20 29 20  LECT - ( + 11 ) 
1b1b0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1b1c0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d 31  0..----..-11..-1
1b1d0 31 0d 0a 2d 31 31 0d 0a 0d 0a 71 75 65 72 79 20  1..-11....query 
1b1e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b1f0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  T DISTINCT - + c
1b200 6f 6c 31 20 2a 20 2d 20 34 35 20 46 52 4f 4d 20  ol1 * - 45 FROM 
1b210 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
1b220 0a 33 36 34 35 0d 0a 34 35 0d 0a 39 34 35 0d 0a  .3645..45..945..
1b230 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1b240 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1b250 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1b260 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1b270 65 6c 2d 36 31 36 0d 0a 53 45 4c 45 43 54 20 41  el-616..SELECT A
1b280 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 43 41  LL + col0 * + CA
1b290 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1b2a0 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ED ) AS col1 FRO
1b2b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1b2c0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
1b2d0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
1b2e0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1b2f0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1b300 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1b310 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  16..SELECT ALL +
1b320 20 63 6f 6c 30 20 2a 20 2b 20 43 41 53 54 20 28   col0 * + CAST (
1b330 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
1b340 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
1b350 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
1b360 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
1b370 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20  NULL....query I 
1b380 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1b390 44 49 53 54 49 4e 43 54 20 2b 20 36 35 20 2a 20  DISTINCT + 65 * 
1b3a0 2b 20 31 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 12 AS col0 FRO
1b3b0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
1b3c0 2d 2d 2d 2d 0d 0a 37 38 30 0d 0a 0d 0a 71 75 65  ----..780....que
1b3d0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1b3e0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
1b3f0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
1b400 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3e 3d  HERE ( NULL ) >=
1b410 20 2b 20 39 30 20 2b 20 2b 20 2b 20 63 6f 6c 31   + 90 + + + col1
1b420 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1b430 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1b440 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1b450 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1b460 65 6c 2d 36 31 39 0d 0a 53 45 4c 45 43 54 20 4d  el-619..SELECT M
1b470 49 4e 28 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29  IN( ALL - col2 )
1b480 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1b490 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 36 0d 0a 0d  r0..----..-96...
1b4a0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1b4b0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1b4c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1b4d0 6c 61 62 65 6c 2d 36 31 39 0d 0a 53 45 4c 45 43  label-619..SELEC
1b4e0 54 20 4d 49 4e 20 28 20 41 4c 4c 20 2d 20 63 6f  T MIN ( ALL - co
1b4f0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41  l2 ) FROM tab1 A
1b500 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
1b510 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
1b520 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1b530 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1b540 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1b550 20 6c 61 62 65 6c 2d 36 32 30 0d 0a 53 45 4c 45   label-620..SELE
1b560 43 54 20 44 49 53 54 49 4e 43 54 20 33 35 20 2b  CT DISTINCT 35 +
1b570 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c   - col0 AS col1,
1b580 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1b590 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1b5a0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
1b5b0 53 49 47 4e 45 44 20 29 20 2b 20 35 36 20 4e 4f  SIGNED ) + 56 NO
1b5c0 54 20 49 4e 20 28 20 63 6f 6c 30 20 2a 20 43 41  T IN ( col0 * CA
1b5d0 53 54 28 20 2d 20 33 31 20 41 53 20 53 49 47 4e  ST( - 31 AS SIGN
1b5e0 45 44 20 29 20 2a 20 2b 20 63 6f 6c 31 20 29 0d  ED ) * + col1 ).
1b5f0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
1b600 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1b610 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1b620 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1b630 32 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  20..SELECT DISTI
1b640 4e 43 54 20 33 35 20 2b 20 2d 20 63 6f 6c 30 20  NCT 35 + - col0 
1b650 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20  AS col1, + col0 
1b660 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1b670 30 20 57 48 45 52 45 20 2d 20 43 41 53 54 20 28  0 WHERE - CAST (
1b680 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
1b690 20 29 20 2b 20 35 36 20 4e 4f 54 20 49 4e 20 28   ) + 56 NOT IN (
1b6a0 20 63 6f 6c 30 20 2a 20 43 41 53 54 20 28 20 2d   col0 * CAST ( -
1b6b0 20 33 31 20 41 53 20 49 4e 54 45 47 45 52 20 29   31 AS INTEGER )
1b6c0 20 2a 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   * + col1 )..---
1b6d0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
1b6e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1b6f0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1b700 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1b710 31 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 43 4f  1..SELECT + - CO
1b720 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  UNT( * ) FROM ta
1b730 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  b2 WHERE NOT ( N
1b740 4f 54 20 32 36 20 2a 20 2d 20 2b 20 37 37 20 49  OT 26 * - + 77 I
1b750 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  S NULL )..----..
1b760 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
1b770 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1b780 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1b790 6f 72 74 20 6c 61 62 65 6c 2d 36 32 31 0d 0a 53  ort label-621..S
1b7a0 45 4c 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54 20  ELECT + - COUNT 
1b7b0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
1b7c0 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20  WHERE NOT ( NOT 
1b7d0 32 36 20 2a 20 2d 20 2b 20 37 37 20 49 53 20 4e  26 * - + 77 IS N
1b7e0 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a  ULL )..----..0..
1b7f0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b800 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1b810 43 54 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  CT + + col2 FROM
1b820 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1b830 63 6f 6c 31 20 2b 20 63 6f 6c 30 20 2f 20 2b 20  col1 + col0 / + 
1b840 33 35 20 2a 20 63 6f 6c 32 20 49 53 20 4e 55 4c  35 * col2 IS NUL
1b850 4c 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d  L..----..59..68.
1b860 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .96....query III
1b870 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1b880 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
1b890 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 28 20 4e  RE NOT ( NOT ( N
1b8a0 4f 54 20 2d 20 2d 20 36 20 3c 3e 20 28 20 63 6f  OT - - 6 <> ( co
1b8b0 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 29 20 29 20  l1 * + col2 ) ) 
1b8c0 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
1b8d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1b8e0 43 54 20 41 4c 4c 20 28 20 2b 20 63 6f 6c 31 20  CT ALL ( + col1 
1b8f0 29 20 2a 20 2d 20 33 34 20 41 53 20 63 6f 6c 30  ) * - 34 AS col0
1b900 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1b910 0d 0a 2d 32 37 35 34 0d 0a 2d 33 34 0d 0a 2d 37  ..-2754..-34..-7
1b920 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  14....query I ro
1b930 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1b940 63 6f 6c 31 20 2a 20 2d 20 34 32 20 2b 20 2b 20  col1 * - 42 + + 
1b950 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1b960 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
1b970 31 31 39 0d 0a 2d 32 37 35 36 0d 0a 2d 33 31 39  119..-2756..-319
1b980 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
1b990 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1b9a0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1b9b0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
1b9c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1b9d0 74 20 6c 61 62 65 6c 2d 36 32 36 0d 0a 53 45 4c  t label-626..SEL
1b9e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
1b9f0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
1ba00 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
1ba10 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 43 41  or0 WHERE NOT CA
1ba20 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
1ba30 45 44 20 29 20 2f 20 2b 20 2b 20 28 20 2d 20 63  ED ) / + + ( - c
1ba40 6f 6c 32 20 29 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d  ol2 ) <= NULL..-
1ba50 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
1ba60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ba70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ba80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ba90 32 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  26..SELECT DISTI
1baa0 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  NCT + COUNT ( * 
1bab0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1bac0 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
1bad0 45 20 4e 4f 54 20 43 41 53 54 20 28 20 4e 55 4c  E NOT CAST ( NUL
1bae0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  L AS INTEGER ) /
1baf0 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 32 20 29 20   + + ( - col2 ) 
1bb00 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  <= NULL..----..0
1bb10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1bb20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1bb30 49 4e 43 54 20 2b 20 2b 20 34 36 20 41 53 20 63  INCT + + 46 AS c
1bb40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
1bb50 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
1bb60 20 74 61 62 31 20 63 6f 72 31 0d 0a 2d 2d 2d 2d   tab1 cor1..----
1bb70 0d 0a 34 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..46....onlyif m
1bb80 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1bb90 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1bba0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1bbb0 2d 36 32 38 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -628..SELECT - -
1bbc0 20 4d 49 4e 28 20 41 4c 4c 20 31 37 20 29 20 2b   MIN( ALL 17 ) +
1bbd0 20 32 34 20 46 52 4f 4d 20 74 61 62 32 20 41 53   24 FROM tab2 AS
1bbe0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 31 0d   cor0..----..41.
1bbf0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1bc00 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1bc10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1bc20 74 20 6c 61 62 65 6c 2d 36 32 38 0d 0a 53 45 4c  t label-628..SEL
1bc30 45 43 54 20 2d 20 2d 20 4d 49 4e 20 28 20 41 4c  ECT - - MIN ( AL
1bc40 4c 20 31 37 20 29 20 2b 20 32 34 20 46 52 4f 4d  L 17 ) + 24 FROM
1bc50 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
1bc60 2d 2d 2d 0d 0a 34 31 0d 0a 0d 0a 71 75 65 72 79  ---..41....query
1bc70 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1bc80 43 54 20 2b 20 32 37 20 2b 20 2d 20 2b 20 36 37  CT + 27 + - + 67
1bc90 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1bca0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 0d 0a 2d  r0..----..-40..-
1bcb0 34 30 0d 0a 2d 34 30 0d 0a 0d 0a 71 75 65 72 79  40..-40....query
1bcc0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1bcd0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 37 31  CT DISTINCT - 71
1bce0 20 2d 20 2b 20 39 35 20 41 53 20 63 6f 6c 32 20   - + 95 AS col2 
1bcf0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1bd00 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 36 0d 0a 0d  0..----..-166...
1bd10 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1bd20 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1bd30 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1bd40 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1bd50 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1bd60 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1bd70 43 54 20 44 49 53 54 49 4e 43 54 20 39 35 20 63  CT DISTINCT 95 c
1bd80 6f 6c 30 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c  ol0, col2 AS col
1bd90 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
1bda0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 35 0d 0a 32  or0..----..95..2
1bdb0 33 0d 0a 39 35 0d 0a 34 30 0d 0a 39 35 0d 0a 35  3..95..40..95..5
1bdc0 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
1bdd0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 37 20  sort..SELECT 67 
1bde0 2b 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  + - - col0 AS co
1bdf0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
1be00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 33 0d  cor0..----..113.
1be10 0a 31 33 31 0d 0a 31 34 32 0d 0a 0d 0a 71 75 65  .131..142....que
1be20 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1be30 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b 20  LECT + col2 + + 
1be40 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 2a 20  col1 * - col2 * 
1be50 2d 20 36 34 20 46 52 4f 4d 20 74 61 62 30 20 41  - 64 FROM tab0 A
1be60 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33  S cor0..----..13
1be70 34 35 30 0d 0a 32 34 33 36 39 35 0d 0a 36 34 33  450..243695..643
1be80 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
1be90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
1bea0 6f 6c 32 20 2b 20 2b 20 2d 20 36 38 20 41 53 20  ol2 + + - 68 AS 
1beb0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1bec0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
1bed0 30 0d 0a 2d 32 38 0d 0a 2d 34 35 0d 0a 0d 0a 71  0..-28..-45....q
1bee0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1bef0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1bf00 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
1bf10 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1bf20 31 32 20 49 4e 20 28 20 2b 20 2b 20 63 6f 6c 30  12 IN ( + + col0
1bf30 20 2a 20 2d 20 63 6f 6c 30 2c 20 63 6f 6c 30 2c   * - col0, col0,
1bf40 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   - col2 )..----.
1bf50 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1bf60 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
1bf70 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
1bf80 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49  54cad....query I
1bf90 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1bfa0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
1bfb0 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 28  S cor0 WHERE ( (
1bfc0 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c   col2 IS NOT NUL
1bfd0 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  L ) )..----..9 v
1bfe0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1bff0 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32   75c998aa53ac832
1c000 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34  18cbf2feb962d0a4
1c010 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
1c020 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1c030 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1c040 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c050 6c 61 62 65 6c 2d 36 33 37 0d 0a 53 45 4c 45 43  label-637..SELEC
1c060 54 20 2b 20 34 20 41 53 20 63 6f 6c 31 20 46 52  T + 4 AS col1 FR
1c070 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
1c080 57 48 45 52 45 20 43 41 53 54 28 20 4e 55 4c 4c  WHERE CAST( NULL
1c090 20 41 53 20 53 49 47 4e 45 44 20 29 20 49 53 20   AS SIGNED ) IS 
1c0a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 34  NULL..----..4..4
1c0b0 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..4....skipif my
1c0c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1c0d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1c0e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 37 0d  wsort label-637.
1c0f0 0a 53 45 4c 45 43 54 20 2b 20 34 20 41 53 20 63  .SELECT + 4 AS c
1c100 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
1c110 20 63 6f 72 30 20 57 48 45 52 45 20 43 41 53 54   cor0 WHERE CAST
1c120 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
1c130 45 52 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  ER ) IS NULL..--
1c140 2d 2d 0d 0a 34 0d 0a 34 0d 0a 34 0d 0a 0d 0a 71  --..4..4..4....q
1c150 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1c160 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c170 63 6f 6c 30 20 2a 20 63 6f 6c 31 20 2b 20 2b 20  col0 * col1 + + 
1c180 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
1c190 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33  M tab2..----..23
1c1a0 39 32 0d 0a 34 39 39 32 0d 0a 35 31 30 30 0d 0a  92..4992..5100..
1c1b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1c1c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1c1d0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1c1e0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 39 0d 0a  sort label-639..
1c1f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1c200 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 43 4f 55  COUNT( * ) + COU
1c210 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e  NT( * ) * - COUN
1c220 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
1c230 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
1c240 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d  ULL..----..-6...
1c250 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1c260 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1c270 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c280 6c 61 62 65 6c 2d 36 33 39 0d 0a 53 45 4c 45 43  label-639..SELEC
1c290 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
1c2a0 20 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 20 28   ( * ) + COUNT (
1c2b0 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e 54 20 28   * ) * - COUNT (
1c2c0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57   * ) FROM tab1 W
1c2d0 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c  HERE NULL IS NUL
1c2e0 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 0d 0a 71  L..----..-6....q
1c2f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1c300 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 38 36 20  SELECT + ( + 86 
1c310 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
1c320 2d 0d 0a 38 36 0d 0a 38 36 0d 0a 38 36 0d 0a 0d  -..86..86..86...
1c330 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1c340 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1c350 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1c360 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c370 6c 2d 36 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-641..SELECT DI
1c380 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20  STINCT - col2 * 
1c390 2d 20 2b 20 31 36 20 2b 20 2d 20 2b 20 63 6f 6c  - + 16 + - + col
1c3a0 31 20 44 49 56 20 2b 20 63 6f 6c 30 20 46 52 4f  1 DIV + col0 FRO
1c3b0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35  M tab0..----..15
1c3c0 38 34 0d 0a 31 36 30 0d 0a 37 34 37 0d 0a 0d 0a  84..160..747....
1c3d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1c3e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1c3f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1c400 61 62 65 6c 2d 36 34 31 0d 0a 53 45 4c 45 43 54  abel-641..SELECT
1c410 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32   DISTINCT - col2
1c420 20 2a 20 2d 20 2b 20 31 36 20 2b 20 2d 20 2b 20   * - + 16 + - + 
1c430 63 6f 6c 31 20 2f 20 2b 20 63 6f 6c 30 20 46 52  col1 / + col0 FR
1c440 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
1c450 35 38 34 0d 0a 31 36 30 0d 0a 37 34 37 0d 0a 0d  584..160..747...
1c460 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1c470 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1c480 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1c490 6f 72 74 20 6c 61 62 65 6c 2d 36 34 32 0d 0a 53  ort label-642..S
1c4a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1c4b0 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20   COUNT( * ) * + 
1c4c0 38 35 20 2a 20 2b 20 2b 20 37 38 20 2d 20 2d 20  85 * + + 78 - - 
1c4d0 2d 20 28 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a  - ( - - COUNT( *
1c4e0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   ) ) FROM tab2..
1c4f0 2d 2d 2d 2d 0d 0a 31 39 38 38 37 0d 0a 0d 0a 73  ----..19887....s
1c500 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1c510 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1c520 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1c530 62 65 6c 2d 36 34 32 0d 0a 53 45 4c 45 43 54 20  bel-642..SELECT 
1c540 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
1c550 20 28 20 2a 20 29 20 2a 20 2b 20 38 35 20 2a 20   ( * ) * + 85 * 
1c560 2b 20 2b 20 37 38 20 2d 20 2d 20 2d 20 28 20 2d  + + 78 - - - ( -
1c570 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   - COUNT ( * ) )
1c580 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1c590 0d 0a 31 39 38 38 37 0d 0a 0d 0a 71 75 65 72 79  ..19887....query
1c5a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1c5b0 43 54 20 2d 20 37 35 20 2d 20 2b 20 63 6f 6c 32  CT - 75 - + col2
1c5c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1c5d0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 32 0d 0a  b0..----..-122..
1c5e0 2d 31 37 34 0d 0a 2d 38 35 0d 0a 0d 0a 6f 6e 6c  -174..-85....onl
1c5f0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1c600 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1c610 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1c620 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34  rowsort label-64
1c630 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  4..SELECT - CAST
1c640 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
1c650 20 29 20 2d 20 2d 20 34 30 20 41 53 20 63 6f 6c   ) - - 40 AS col
1c660 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  1 FROM tab2 cor0
1c670 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
1c680 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
1c690 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1c6a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1c6b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c6c0 2d 36 34 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -644..SELECT - C
1c6d0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
1c6e0 54 45 47 45 52 20 29 20 2d 20 2d 20 34 30 20 41  TEGER ) - - 40 A
1c6f0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
1c700 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
1c710 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1c720 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1c730 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1c740 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1c750 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1c760 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1c770 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c780 54 20 41 4c 4c 20 2d 20 28 20 2d 20 63 6f 6c 32  T ALL - ( - col2
1c790 20 29 20 2d 20 2b 20 28 20 34 39 20 29 20 63 6f   ) - + ( 49 ) co
1c7a0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
1c7b0 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 39 0d  0..----..10..19.
1c7c0 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .47....query III
1c7d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1c7e0 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
1c7f0 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
1c800 32 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20  2 - col1 IS NOT 
1c810 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
1c820 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
1c830 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
1c840 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
1c850 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1c860 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
1c870 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
1c880 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c  cor0 WHERE ( NUL
1c890 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  L ) IS NULL..---
1c8a0 2d 0d 0a 31 0d 0a 32 31 0d 0a 38 31 0d 0a 0d 0a  -..1..21..81....
1c8b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1c8c0 0d 0a 53 45 4c 45 43 54 20 33 36 2c 20 2d 20 63  ..SELECT 36, - c
1c8d0 6f 6c 30 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  ol0 + col2 AS co
1c8e0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
1c8f0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
1c900 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 32 20 49   col1 - - col2 I
1c910 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1c920 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1c930 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
1c940 49 4e 43 54 20 36 32 20 2a 20 2d 20 63 6f 6c 30  INCT 62 * - col0
1c950 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1c960 0d 0a 2d 33 31 36 32 0d 0a 2d 35 32 37 30 0d 0a  ..-3162..-5270..
1c970 2d 35 36 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -5642....onlyif 
1c980 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1c990 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1c9a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c9b0 6c 2d 36 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-650..SELECT AL
1c9c0 4c 20 2b 20 4d 49 4e 28 20 2d 20 63 6f 6c 30 20  L + MIN( - col0 
1c9d0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1c9e0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1c9f0 2d 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66  -..-97....skipif
1ca00 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ca10 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ca20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ca30 35 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  50..SELECT ALL +
1ca40 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 30 20 29 20   MIN ( - col0 ) 
1ca50 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1ca60 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1ca70 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-97....onlyif m
1ca80 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
1ca90 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
1caa0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
1cab0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 31 0d 0a  sort label-651..
1cac0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1cad0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
1cae0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 36 34  or0 WHERE NOT 64
1caf0 20 2d 20 2d 20 63 6f 6c 30 20 4e 4f 54 20 42 45   - - col0 NOT BE
1cb00 54 57 45 45 4e 20 28 20 2d 20 39 32 20 29 20 41  TWEEN ( - 92 ) A
1cb10 4e 44 20 28 20 2d 20 43 41 53 54 28 20 4e 55 4c  ND ( - CAST( NUL
1cb20 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 0d  L AS SIGNED ) ).
1cb30 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
1cb40 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1cb50 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1cb60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1cb70 36 35 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  651..SELECT DIST
1cb80 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
1cb90 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
1cba0 4f 54 20 36 34 20 2d 20 2d 20 63 6f 6c 30 20 4e  OT 64 - - col0 N
1cbb0 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2d 20 39  OT BETWEEN ( - 9
1cbc0 32 20 29 20 41 4e 44 20 28 20 2d 20 43 41 53 54  2 ) AND ( - CAST
1cbd0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
1cbe0 45 52 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  ER ) )..----....
1cbf0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1cc00 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1cc10 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1cc20 72 74 20 6c 61 62 65 6c 2d 36 35 32 0d 0a 53 45  rt label-652..SE
1cc30 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
1cc40 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
1cc50 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
1cc60 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
1cc70 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
1cc80 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
1cc90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1cca0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1ccb0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 32  owsort label-652
1ccc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1ccd0 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
1cce0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1ccf0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1cd00 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
1cd10 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
1cd20 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1cd30 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1cd40 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
1cd50 20 4e 4f 54 20 2b 20 31 32 20 49 53 20 4e 4f 54   NOT + 12 IS NOT
1cd60 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
1cd70 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1cd80 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1cd90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1cda0 74 20 6c 61 62 65 6c 2d 36 35 34 0d 0a 53 45 4c  t label-654..SEL
1cdb0 45 43 54 20 41 4c 4c 20 2b 20 2b 20 4d 41 58 28  ECT ALL + + MAX(
1cdc0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f   DISTINCT + - co
1cdd0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l0 ) FROM tab2 A
1cde0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
1cdf0 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
1ce00 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1ce10 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1ce20 6f 72 74 20 6c 61 62 65 6c 2d 36 35 34 0d 0a 53  ort label-654..S
1ce30 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 4d 41  ELECT ALL + + MA
1ce40 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2d  X ( DISTINCT + -
1ce50 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
1ce60 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1ce70 0a 2d 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-46....query II
1ce80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ce90 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32   DISTINCT - col2
1cea0 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 31   AS col1, - col1
1ceb0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1cec0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d  r0..----..-23..-
1ced0 35 31 0d 0a 2d 34 30 0d 0a 2d 37 37 0d 0a 2d 35  51..-40..-77..-5
1cee0 38 0d 0a 2d 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  8..-67....onlyif
1cef0 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
1cf00 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
1cf10 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
1cf20 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 36 0d 0a  sort label-656..
1cf30 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44 49  SELECT + col0 DI
1cf40 56 20 38 38 20 46 52 4f 4d 20 74 61 62 31 0d 0a  V 88 FROM tab1..
1cf50 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a 0d  ----..0..0..1...
1cf60 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1cf70 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1cf80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1cf90 6c 61 62 65 6c 2d 36 35 36 0d 0a 53 45 4c 45 43  label-656..SELEC
1cfa0 54 20 2b 20 63 6f 6c 30 20 2f 20 38 38 20 46 52  T + col0 / 88 FR
1cfb0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab1..----..0
1cfc0 0d 0a 30 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..0..1....onlyif
1cfd0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1cfe0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1cff0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d000 65 6c 2d 36 35 37 0d 0a 53 45 4c 45 43 54 20 41  el-657..SELECT A
1d010 4c 4c 20 2d 20 4d 49 4e 28 20 44 49 53 54 49 4e  LL - MIN( DISTIN
1d020 43 54 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63  CT - col2 ) AS c
1d030 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
1d040 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69  ---..96....skipi
1d050 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1d060 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1d070 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1d080 36 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  657..SELECT ALL 
1d090 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e 43 54  - MIN ( DISTINCT
1d0a0 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   - col2 ) AS col
1d0b0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
1d0c0 2d 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..96....onlyif 
1d0d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1d0e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1d0f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1d100 6f 72 74 20 6c 61 62 65 6c 2d 36 35 38 0d 0a 53  ort label-658..S
1d110 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34  ELECT DISTINCT 4
1d120 37 20 2f 20 2d 20 2d 20 43 41 53 54 28 20 4e 55  7 / - - CAST( NU
1d130 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
1d140 20 2b 20 36 32 20 2b 20 2b 20 2b 20 63 6f 6c 31   + 62 + + + col1
1d150 20 2a 20 2d 20 38 20 41 53 20 63 6f 6c 32 20 46   * - 8 AS col2 F
1d160 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1d170 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
1d180 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1d190 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1d1a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 38  owsort label-658
1d1b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d1c0 54 20 34 37 20 2f 20 2d 20 2d 20 43 41 53 54 20  T 47 / - - CAST 
1d1d0 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1d1e0 52 20 29 20 2a 20 2b 20 36 32 20 2b 20 2b 20 2b  R ) * + 62 + + +
1d1f0 20 63 6f 6c 31 20 2a 20 2d 20 38 20 41 53 20 63   col1 * - 8 AS c
1d200 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
1d210 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
1d220 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1d230 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1d240 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1d250 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1d260 39 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20  9..SELECT CAST( 
1d270 37 37 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  77 AS SIGNED ) *
1d280 20 2d 20 34 38 20 2b 20 2d 20 2d 20 31 33 20 63   - 48 + - - 13 c
1d290 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
1d2a0 2d 2d 2d 0d 0a 2d 33 36 38 33 0d 0a 2d 33 36 38  ---..-3683..-368
1d2b0 33 0d 0a 2d 33 36 38 33 0d 0a 0d 0a 73 6b 69 70  3..-3683....skip
1d2c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1d2d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1d2e0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1d2f0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1d300 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1d310 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1d320 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1d330 6f 72 74 20 6c 61 62 65 6c 2d 36 35 39 0d 0a 53  ort label-659..S
1d340 45 4c 45 43 54 20 43 41 53 54 20 28 20 37 37 20  ELECT CAST ( 77 
1d350 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2d  AS INTEGER ) * -
1d360 20 34 38 20 2b 20 2d 20 2d 20 31 33 20 63 6f 6c   48 + - - 13 col
1d370 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
1d380 2d 0d 0a 2d 33 36 38 33 0d 0a 2d 33 36 38 33 0d  -..-3683..-3683.
1d390 0a 2d 33 36 38 33 0d 0a 0d 0a 71 75 65 72 79 20  .-3683....query 
1d3a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d3b0 54 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 31  T + col0 * + - 1
1d3c0 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
1d3d0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 30 0d  ab2..----..-460.
1d3e0 0a 2d 36 34 30 0d 0a 2d 37 35 30 0d 0a 0d 0a 73  .-640..-750....s
1d3f0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1d400 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1d410 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1d420 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1d430 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
1d440 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d450 63 6f 6c 31 20 2a 20 2b 20 35 35 20 2a 20 2d 20  col1 * + 55 * - 
1d460 2d 20 63 6f 6c 30 20 63 6f 6c 31 20 46 52 4f 4d  - col0 col1 FROM
1d470 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   tab0..----..100
1d480 34 38 35 0d 0a 35 33 33 35 0d 0a 36 36 38 32 35  485..5335..66825
1d490 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1d4a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 34 38  ort..SELECT - 48
1d4b0 20 2a 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   * + col1 AS col
1d4c0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
1d4d0 2d 0d 0a 2d 32 34 34 38 0d 0a 2d 33 32 31 36 0d  -..-2448..-3216.
1d4e0 0a 2d 33 36 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-3696....onlyif
1d4f0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1d500 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1d510 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1d520 65 6c 2d 36 36 33 0d 0a 53 45 4c 45 43 54 20 44  el-663..SELECT D
1d530 49 53 54 49 4e 43 54 20 4d 41 58 28 20 2b 20 63  ISTINCT MAX( + c
1d540 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 20  ol0 ) FROM tab1 
1d550 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
1d560 3e 20 2d 20 36 35 20 2b 20 2d 20 28 20 63 6f 6c  > - 65 + - ( col
1d570 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  0 )..----..NULL.
1d580 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1d590 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1d5a0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1d5b0 74 20 6c 61 62 65 6c 2d 36 36 33 0d 0a 53 45 4c  t label-663..SEL
1d5c0 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58  ECT DISTINCT MAX
1d5d0 20 28 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d   ( + col0 ) FROM
1d5e0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1d5f0 4e 55 4c 4c 20 3c 3e 20 2d 20 36 35 20 2b 20 2d  NULL <> - 65 + -
1d600 20 28 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d   ( col0 )..----.
1d610 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
1d620 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1d630 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
1d640 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1d650 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1d660 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 34 0d  wsort label-664.
1d670 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1d680 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
1d690 49 47 4e 45 44 20 29 20 2a 20 2b 20 41 56 47 20  IGNED ) * + AVG 
1d6a0 28 20 2b 20 33 38 20 29 20 2a 20 2b 20 2b 20 28  ( + 38 ) * + + (
1d6b0 20 2d 20 28 20 2d 20 2b 20 28 20 2b 20 43 4f 55   - ( - + ( + COU
1d6c0 4e 54 28 20 2a 20 29 20 29 20 29 20 29 20 41 53  NT( * ) ) ) ) AS
1d6d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
1d6e0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
1d6f0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1d700 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1d710 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1d720 62 65 6c 2d 36 36 34 0d 0a 53 45 4c 45 43 54 20  bel-664..SELECT 
1d730 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20  DISTINCT CAST ( 
1d740 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
1d750 29 20 2a 20 2b 20 41 56 47 20 28 20 2b 20 33 38  ) * + AVG ( + 38
1d760 20 29 20 2a 20 2b 20 2b 20 28 20 2d 20 28 20 2d   ) * + + ( - ( -
1d770 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a   + ( + COUNT ( *
1d780 20 29 20 29 20 29 20 29 20 41 53 20 63 6f 6c 32   ) ) ) ) AS col2
1d790 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1d7a0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
1d7b0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1d7c0 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
1d7d0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1d7e0 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
1d7f0 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
1d800 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d810 20 6c 61 62 65 6c 2d 36 36 35 0d 0a 53 45 4c 45   label-665..SELE
1d820 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54  CT DISTINCT CAST
1d830 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  ( + COUNT( * ) A
1d840 53 20 53 49 47 4e 45 44 20 29 20 44 49 56 20 2b  S SIGNED ) DIV +
1d850 20 34 39 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   49 FROM tab0..-
1d860 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
1d870 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1d880 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1d890 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d8a0 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  65..SELECT DISTI
1d8b0 4e 43 54 20 43 41 53 54 20 28 20 2b 20 43 4f 55  NCT CAST ( + COU
1d8c0 4e 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45  NT ( * ) AS INTE
1d8d0 47 45 52 20 29 20 2f 20 2b 20 34 39 20 46 52 4f  GER ) / + 49 FRO
1d8e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
1d8f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1d900 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1d910 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
1d920 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 36  owsort label-666
1d930 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d940 54 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  T + + COUNT( * )
1d950 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43 4f 55 4e   AS col2, - COUN
1d960 54 28 20 2a 20 29 20 2a 20 2d 20 35 38 20 41 53  T( * ) * - 58 AS
1d970 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1d980 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
1d990 0d 0a 31 37 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..174....skipif 
1d9a0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1d9b0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1d9c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d9d0 36 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  66..SELECT DISTI
1d9e0 4e 43 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  NCT + + COUNT ( 
1d9f0 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43  * ) AS col2, - C
1da00 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d 20 35  OUNT ( * ) * - 5
1da10 38 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  8 AS col1 FROM t
1da20 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1da30 2d 0d 0a 33 0d 0a 31 37 34 0d 0a 0d 0a 71 75 65  -..3..174....que
1da40 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1da50 4c 45 43 54 20 2b 20 28 20 2b 20 2b 20 63 6f 6c  LECT + ( + + col
1da60 31 20 29 20 2b 20 2b 20 2b 20 28 20 2b 20 63 6f  1 ) + + + ( + co
1da70 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l1 ) FROM tab0 A
1da80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
1da90 32 0d 0a 32 0d 0a 34 32 0d 0a 0d 0a 71 75 65 72  2..2..42....quer
1daa0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1dab0 45 43 54 20 35 34 20 2b 20 2b 20 33 37 20 2d 20  ECT 54 + + 37 - 
1dac0 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63  - + col1 + + + c
1dad0 6f 6c 32 20 2a 20 2d 20 33 33 20 41 53 20 63 6f  ol2 * - 33 AS co
1dae0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1daf0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 35  cor0..----..-115
1db00 32 0d 0a 2d 31 37 35 36 0d 0a 2d 36 31 37 0d 0a  2..-1756..-617..
1db10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1db20 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
1db30 43 54 20 63 6f 6c 32 20 2b 20 2d 20 39 30 20 46  CT col2 + - 90 F
1db40 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1db50 2d 32 32 0d 0a 2d 33 31 0d 0a 36 0d 0a 0d 0a 6f  -22..-31..6....o
1db60 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1db70 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1db80 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1db90 74 20 6c 61 62 65 6c 2d 36 37 30 0d 0a 53 45 4c  t label-670..SEL
1dba0 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54 28  ECT ALL - COUNT(
1dbb0 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
1dbc0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  M tab2 AS cor0 C
1dbd0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41  ROSS JOIN tab2 A
1dbe0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor1..----..-9
1dbf0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1dc00 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1dc10 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1dc20 72 74 20 6c 61 62 65 6c 2d 36 37 30 0d 0a 53 45  rt label-670..SE
1dc30 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
1dc40 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
1dc50 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1dc60 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
1dc70 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
1dc80 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 49  -9....query IIII
1dc90 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1dca0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
1dcb0 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
1dcc0 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 20 57  N tab0 AS cor1 W
1dcd0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20  HERE NOT NULL > 
1dce0 2d 20 28 20 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  - ( 4 )..----...
1dcf0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
1dd00 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
1dd10 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63   * - - col0 AS c
1dd20 6f 6c 30 2c 20 39 37 20 41 53 20 63 6f 6c 30 20  ol0, 97 AS col0 
1dd30 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1dd40 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 35 0d 0a 39  0..----..-425..9
1dd50 37 0d 0a 2d 34 32 37 37 0d 0a 39 37 0d 0a 2d 37  7..-4277..97..-7
1dd60 31 34 0d 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  14..97....onlyif
1dd70 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1dd80 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1dd90 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
1dda0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 33  owsort label-673
1ddb0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1ddc0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
1ddd0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1dde0 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  ( CAST( NULL AS 
1ddf0 53 49 47 4e 45 44 20 29 20 29 20 49 53 20 4e 4f  SIGNED ) ) IS NO
1de00 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
1de10 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1de20 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
1de30 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
1de40 61 64 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  ad....skipif mys
1de50 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1de60 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
1de70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 33  owsort label-673
1de80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1de90 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
1dea0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1deb0 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  ( CAST ( NULL AS
1dec0 20 49 4e 54 45 47 45 52 20 29 20 29 20 49 53 20   INTEGER ) ) IS 
1ded0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1dee0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1def0 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
1df00 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
1df10 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4cad....query I 
1df20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1df30 2d 20 2b 20 34 20 41 53 20 63 6f 6c 30 20 46 52  - + 4 AS col0 FR
1df40 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
1df50 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e  RE ( NULL ) IS N
1df60 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 2d  ULL..----..-4..-
1df70 34 0d 0a 2d 34 0d 0a 0d 0a 71 75 65 72 79 20 49  4..-4....query I
1df80 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1df90 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
1dfa0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1dfb0 57 48 45 52 45 20 4e 4f 54 20 38 34 20 4e 4f 54  WHERE NOT 84 NOT
1dfc0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
1dfd0 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
1dfe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1dff0 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32  .SELECT - - col2
1e000 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   + - col0 * - co
1e010 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l0 FROM tab1 cor
1e020 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 39 37 0d 0a 37  0..----..2697..7
1e030 32 38 34 0d 0a 38 33 34 39 0d 0a 0d 0a 6f 6e 6c  284..8349....onl
1e040 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1e050 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1e060 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
1e070 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e080 36 37 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  677..SELECT * FR
1e090 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
1e0a0 52 45 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43 41  RE + col2 + - CA
1e0b0 53 54 28 20 2d 20 63 6f 6c 31 20 41 53 20 53 49  ST( - col1 AS SI
1e0c0 47 4e 45 44 20 29 20 3c 3e 20 4e 55 4c 4c 0d 0a  GNED ) <> NULL..
1e0d0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
1e0e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1e0f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
1e100 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1e110 37 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  77..SELECT * FRO
1e120 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
1e130 45 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53  E + col2 + - CAS
1e140 54 20 28 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e  T ( - col1 AS IN
1e150 54 45 47 45 52 20 29 20 3c 3e 20 4e 55 4c 4c 0d  TEGER ) <> NULL.
1e160 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1e170 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1e180 54 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20  T - col0 * col1 
1e190 2b 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 41  + + col2, col0 A
1e1a0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
1e1b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 36 0d 0a 38 35  ..----..-366..85
1e1c0 0d 0a 2d 34 32 30 39 0d 0a 39 31 0d 0a 2d 36 31  ..-4209..91..-61
1e1d0 38 0d 0a 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  8..51....onlyif 
1e1e0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1e1f0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1e200 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1e210 6c 2d 36 37 39 0d 0a 53 45 4c 45 43 54 20 43 4f  l-679..SELECT CO
1e220 55 4e 54 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54  UNT( * ) + COUNT
1e230 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20  ( * ) col2 FROM 
1e240 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d  tab0..----..6...
1e250 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1e260 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1e270 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
1e280 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
1e290 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
1e2a0 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
1e2b0 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
1e2c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1e2d0 37 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  79..SELECT COUNT
1e2e0 20 28 20 2a 20 29 20 2b 20 43 4f 55 4e 54 20 28   ( * ) + COUNT (
1e2f0 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * ) col2 FROM t
1e300 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a  ab0..----..6....
1e310 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
1e320 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
1e330 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1e340 72 74 20 6c 61 62 65 6c 2d 36 38 30 0d 0a 53 45  rt label-680..SE
1e350 4c 45 43 54 20 2d 20 4d 41 58 28 20 2d 20 63 6f  LECT - MAX( - co
1e360 6c 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l2 ) AS col1 FRO
1e370 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
1e380 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
1e390 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 73  L..----..23....s
1e3a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e3b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e3c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e3d0 62 65 6c 2d 36 38 30 0d 0a 53 45 4c 45 43 54 20  bel-680..SELECT 
1e3e0 2d 20 4d 41 58 20 28 20 2d 20 63 6f 6c 32 20 29  - MAX ( - col2 )
1e3f0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1e400 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b2 WHERE NOT NUL
1e410 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
1e420 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79 69  ---..23....onlyi
1e430 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1e440 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1e450 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e460 62 65 6c 2d 36 38 31 0d 0a 53 45 4c 45 43 54 20  bel-681..SELECT 
1e470 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 63 6f  MAX( DISTINCT co
1e480 6c 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l2 ) col2 FROM t
1e490 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
1e4a0 2d 0d 0a 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..96....skipif 
1e4b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1e4c0 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
1e4d0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1e4e0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1e4f0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1e500 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1e510 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e520 20 6c 61 62 65 6c 2d 36 38 31 0d 0a 53 45 4c 45   label-681..SELE
1e530 43 54 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43  CT MAX ( DISTINC
1e540 54 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52  T col2 ) col2 FR
1e550 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1e560 0a 2d 2d 2d 2d 0d 0a 39 36 0d 0a 0d 0a 71 75 65  .----..96....que
1e570 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1e580 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e590 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
1e5a0 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e  or0 WHERE NULL >
1e5b0 20 2b 20 36 33 20 2d 20 63 6f 6c 32 20 2a 20 2b   + 63 - col2 * +
1e5c0 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   col1..----....s
1e5d0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
1e5e0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
1e5f0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
1e600 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
1e610 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
1e620 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1e630 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32   DISTINCT + col2
1e640 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 2a 20 2d 20   col2, col0 * - 
1e650 28 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 20 46  ( ( + col0 ) ) F
1e660 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1e670 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 2d 32 31 31  ..----..23..-211
1e680 36 0d 0a 34 30 0d 0a 2d 34 30 39 36 0d 0a 35 38  6..40..-4096..58
1e690 0d 0a 2d 35 36 32 35 0d 0a 0d 0a 71 75 65 72 79  ..-5625....query
1e6a0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
1e6b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
1e6c0 6f 6c 31 2c 20 2d 20 33 33 20 46 52 4f 4d 20 74  ol1, - 33 FROM t
1e6d0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1e6e0 2d 0d 0a 31 0d 0a 2d 33 33 0d 0a 32 31 0d 0a 2d  -..1..-33..21..-
1e6f0 33 33 0d 0a 38 31 0d 0a 2d 33 33 0d 0a 0d 0a 6f  33..81..-33....o
1e700 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1e710 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
1e720 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
1e730 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e740 36 38 35 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  685..SELECT - co
1e750 6c 30 20 2f 20 2b 20 2b 20 43 41 53 54 28 20 4e  l0 / + + CAST( N
1e760 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
1e770 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
1e780 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1e790 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
1e7a0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
1e7b0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1e7c0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1e7d0 6f 72 74 20 6c 61 62 65 6c 2d 36 38 35 0d 0a 53  ort label-685..S
1e7e0 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2f 20 2b  ELECT - col0 / +
1e7f0 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
1e800 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
1e810 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
1e820 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
1e830 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1e840 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1e850 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
1e860 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
1e870 20 2b 20 2b 20 63 6f 6c 31 20 4e 4f 54 20 42 45   + + col1 NOT BE
1e880 54 57 45 45 4e 20 63 6f 6c 32 20 2a 20 2b 20 63  TWEEN col2 * + c
1e890 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ol1 AND NULL..--
1e8a0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1e8b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1e8c0 35 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  52 AS col1 FROM 
1e8d0 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f  tab1 AS cor0 CRO
1e8e0 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20  SS JOIN tab1 AS 
1e8f0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
1e900 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
1e910 37 66 34 61 65 33 30 38 39 33 61 62 33 33 30 37  7f4ae30893ab3307
1e920 38 34 38 32 39 37 31 31 30 33 32 61 65 35 39 39  84829711032ae599
1e930 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1e940 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1e950 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1e960 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 38  owsort label-688
1e970 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1e980 54 20 4d 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c  T MAX( ALL + col
1e990 32 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  2 ) AS col1 FROM
1e9a0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
1e9b0 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70 69  ---..99....skipi
1e9c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1e9d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1e9e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e9f0 36 38 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  688..SELECT DIST
1ea00 49 4e 43 54 20 4d 41 58 20 28 20 41 4c 4c 20 2b  INCT MAX ( ALL +
1ea10 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 31 20   col2 ) AS col1 
1ea20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1ea30 30 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 6f  0..----..99....o
1ea40 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1ea50 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1ea60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1ea70 74 20 6c 61 62 65 6c 2d 36 38 39 0d 0a 53 45 4c  t label-689..SEL
1ea80 45 43 54 20 2d 20 53 55 4d 28 20 2d 20 2d 20 39  ECT - SUM( - - 9
1ea90 34 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  4 ) FROM tab1 co
1eaa0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
1eab0 30 20 2a 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  0 * + col2 IS NU
1eac0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 32 0d 0a  LL..----..-282..
1ead0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1eae0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1eaf0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1eb00 20 6c 61 62 65 6c 2d 36 38 39 0d 0a 53 45 4c 45   label-689..SELE
1eb10 43 54 20 2d 20 53 55 4d 20 28 20 2d 20 2d 20 39  CT - SUM ( - - 9
1eb20 34 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  4 ) FROM tab1 co
1eb30 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
1eb40 30 20 2a 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  0 * + col2 IS NU
1eb50 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 32 0d 0a  LL..----..-282..
1eb60 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1eb70 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1eb80 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1eb90 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 30 0d 0a  sort label-690..
1eba0 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 31 36  SELECT COUNT( 16
1ebb0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
1ebc0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b  0..----..3....sk
1ebd0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1ebe0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1ebf0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ec00 65 6c 2d 36 39 30 0d 0a 53 45 4c 45 43 54 20 43  el-690..SELECT C
1ec10 4f 55 4e 54 20 28 20 31 36 20 29 20 46 52 4f 4d  OUNT ( 16 ) FROM
1ec20 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
1ec30 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..3....onlyif my
1ec40 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1ec50 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1ec60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1ec70 36 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  691..SELECT DIST
1ec80 49 4e 43 54 20 2b 20 53 55 4d 28 20 37 37 20 29  INCT + SUM( 77 )
1ec90 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1eca0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1ecb0 20 4e 55 4c 4c 20 3c 20 28 20 4e 55 4c 4c 20 29   NULL < ( NULL )
1ecc0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
1ecd0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1ece0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1ecf0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ed00 61 62 65 6c 2d 36 39 31 0d 0a 53 45 4c 45 43 54  abel-691..SELECT
1ed10 20 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 20   DISTINCT + SUM 
1ed20 28 20 37 37 20 29 20 41 53 20 63 6f 6c 30 20 46  ( 77 ) AS col0 F
1ed30 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1ed40 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 28 20   WHERE NULL < ( 
1ed50 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  NULL )..----..NU
1ed60 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
1ed70 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
1ed80 2b 20 63 6f 6c 32 20 2b 20 2b 20 37 30 20 41 53  + col2 + + 70 AS
1ed90 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
1eda0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
1edb0 31 30 0d 0a 31 32 38 0d 0a 39 33 0d 0a 0d 0a 71  10..128..93....q
1edc0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1edd0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
1ede0 20 2a 20 28 20 2b 20 2d 20 37 37 20 29 20 41 53   * ( + - 77 ) AS
1edf0 20 63 6f 6c 30 2c 20 2d 20 36 32 20 46 52 4f 4d   col0, - 62 FROM
1ee00 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35   tab1..----..-45
1ee10 34 33 0d 0a 2d 36 32 0d 0a 2d 35 32 33 36 0d 0a  43..-62..-5236..
1ee20 2d 36 32 0d 0a 2d 37 33 39 32 0d 0a 2d 36 32 0d  -62..-7392..-62.
1ee30 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
1ee40 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
1ee50 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
1ee60 4f 54 20 2b 20 63 6f 6c 31 20 3e 3d 20 2b 20 2b  OT + col1 >= + +
1ee70 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d   col0..----..75.
1ee80 0a 36 37 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69  .67..58....onlyi
1ee90 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1eea0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1eeb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1eec0 62 65 6c 2d 36 39 35 0d 0a 53 45 4c 45 43 54 20  bel-695..SELECT 
1eed0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
1eee0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
1eef0 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30  WHERE NOT - col0
1ef00 20 2a 20 34 34 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d   * 44 <> NULL..-
1ef10 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
1ef20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1ef30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1ef40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1ef50 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  95..SELECT DISTI
1ef60 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  NCT - COUNT ( * 
1ef70 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  ) FROM tab0 WHER
1ef80 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2a 20 34  E NOT - col0 * 4
1ef90 34 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  4 <> NULL..----.
1efa0 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .0....onlyif mys
1efb0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1efc0 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
1efd0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
1efe0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
1eff0 72 74 20 6c 61 62 65 6c 2d 36 39 36 0d 0a 53 45  rt label-696..SE
1f000 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
1f010 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 37 39 20  DISTINCT - - 79 
1f020 29 20 44 49 56 20 43 4f 55 4e 54 28 20 2a 20 29  ) DIV COUNT( * )
1f030 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1f040 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
1f050 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1f060 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1f070 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 36 0d  wsort label-696.
1f080 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
1f090 54 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2d  T ( DISTINCT - -
1f0a0 20 37 39 20 29 20 2f 20 43 4f 55 4e 54 20 28 20   79 ) / COUNT ( 
1f0b0 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  * ) FROM tab2..-
1f0c0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
1f0d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1f0e0 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20  T DISTINCT col0 
1f0f0 2a 20 2d 20 36 35 20 41 53 20 63 6f 6c 32 20 46  * - 65 AS col2 F
1f100 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1f110 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 39 30 0d 0a 2d  ..----..-2990..-
1f120 34 31 36 30 0d 0a 2d 34 38 37 35 0d 0a 0d 0a 71  4160..-4875....q
1f130 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
1f140 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 2c 20  .SELECT - col0, 
1f150 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  - col1 AS col2 F
1f160 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
1f170 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 31  ..----..-15..-81
1f180 0d 0a 2d 38 37 0d 0a 2d 32 31 0d 0a 2d 39 37 0d  ..-87..-21..-97.
1f190 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .-1....query III
1f1a0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
1f1b0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
1f1c0 61 62 31 20 63 6f 72 30 20 43 52 4f 53 53 20 4a  ab1 cor0 CROSS J
1f1d0 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31  OIN tab2 AS cor1
1f1e0 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
1f1f0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
1f200 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f210 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f220 54 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 34 20 2b  T col0 * + + 4 +
1f230 20 2d 20 2b 20 37 32 20 41 53 20 63 6f 6c 32 20   - + 72 AS col2 
1f240 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1f250 0a 2d 31 32 0d 0a 32 37 36 0d 0a 33 31 36 0d 0a  .-12..276..316..
1f260 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1f270 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
1f280 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c  1 AS col1, + col
1f290 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  2 * + - col2 AS 
1f2a0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
1f2b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S cor0..----..51
1f2c0 0d 0a 2d 35 32 39 0d 0a 36 37 0d 0a 2d 33 33 36  ..-529..67..-336
1f2d0 34 0d 0a 37 37 0d 0a 2d 31 36 30 30 0d 0a 0d 0a  4..77..-1600....
1f2e0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1f2f0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1f300 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1f310 45 52 45 20 31 31 20 49 53 20 4e 4f 54 20 4e 55  ERE 11 IS NOT NU
1f320 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
1f330 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
1f340 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
1f350 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
1f360 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1f370 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
1f380 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
1f390 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
1f3a0 61 62 65 6c 2d 37 30 33 0d 0a 53 45 4c 45 43 54  abel-703..SELECT
1f3b0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
1f3c0 63 6f 72 30 20 57 48 45 52 45 20 36 34 20 3d 20  cor0 WHERE 64 = 
1f3d0 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - - CAST( NULL A
1f3e0 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d  S SIGNED )..----
1f3f0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1f400 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1f410 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
1f420 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 33 0d 0a  sort label-703..
1f430 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1f440 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
1f450 20 36 34 20 3d 20 2d 20 2d 20 43 41 53 54 20 28   64 = - - CAST (
1f460 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
1f470 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
1f480 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
1f490 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
1f4a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
1f4b0 6c 61 62 65 6c 2d 37 30 34 0d 0a 53 45 4c 45 43  label-704..SELEC
1f4c0 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29  T ALL COUNT( * )
1f4d0 20 41 53 20 63 6f 6c 31 2c 20 2b 20 43 4f 55 4e   AS col1, + COUN
1f4e0 54 28 20 2a 20 29 20 2a 20 4d 41 58 28 20 44 49  T( * ) * MAX( DI
1f4f0 53 54 49 4e 43 54 20 2d 20 2b 20 28 20 2b 20 63  STINCT - + ( + c
1f500 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol2 ) ) AS col2 
1f510 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1f520 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 33 30 0d  0..----..3..-30.
1f530 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1f540 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1f550 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
1f560 72 74 20 6c 61 62 65 6c 2d 37 30 34 0d 0a 53 45  rt label-704..SE
1f570 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
1f580 20 2a 20 29 20 41 53 20 63 6f 6c 31 2c 20 2b 20   * ) AS col1, + 
1f590 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 4d 41  COUNT ( * ) * MA
1f5a0 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  X ( DISTINCT - +
1f5b0 20 28 20 2b 20 63 6f 6c 32 20 29 20 29 20 41 53   ( + col2 ) ) AS
1f5c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
1f5d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
1f5e0 0d 0a 2d 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-30....query I
1f5f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f600 20 41 4c 4c 20 2b 20 28 20 2b 20 35 35 20 29 20   ALL + ( + 55 ) 
1f610 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1f620 30 0d 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 35 35 0d  0..----..55..55.
1f630 0a 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .55....query II 
1f640 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1f650 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63  ALL - col1 + - c
1f660 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 38 32 20  ol2 AS col1, 82 
1f670 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1f680 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 38  0..----..-100..8
1f690 32 0d 0a 2d 31 32 38 0d 0a 38 32 0d 0a 2d 33 31  2..-128..82..-31
1f6a0 0d 0a 38 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..82....query I 
1f6b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1f6c0 44 49 53 54 49 4e 43 54 20 33 33 20 46 52 4f 4d  DISTINCT 33 FROM
1f6d0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1f6e0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
1f6f0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
1f700 33 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  33....query I ro
1f710 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
1f720 6c 31 20 2a 20 32 35 20 46 52 4f 4d 20 74 61 62  l1 * 25 FROM tab
1f730 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
1f740 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d  NULL <> NULL..--
1f750 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
1f760 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
1f770 4c 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  L + col2 * - col
1f780 32 20 2b 20 39 32 20 2a 20 63 6f 6c 32 20 41 53  2 + 92 * col2 AS
1f790 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
1f7a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 38 37  cor0..----..1587
1f7b0 0d 0a 31 39 37 32 0d 0a 32 30 38 30 0d 0a 0d 0a  ..1972..2080....
1f7c0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
1f7d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1f7e0 54 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20  T + col0 * col0 
1f7f0 41 53 20 63 6f 6c 30 2c 20 2d 20 28 20 2d 20 63  AS col0, - ( - c
1f800 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31 0d  ol0 ) FROM tab1.
1f810 0a 2d 2d 2d 2d 0d 0a 32 36 30 31 0d 0a 35 31 0d  .----..2601..51.
1f820 0a 37 32 32 35 0d 0a 38 35 0d 0a 38 32 38 31 0d  .7225..85..8281.
1f830 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .91....query I r
1f840 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 31  owsort..SELECT 1
1f850 39 20 2d 20 2b 20 33 32 20 46 52 4f 4d 20 74 61  9 - + 32 FROM ta
1f860 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 2d  b0..----..-13..-
1f870 31 33 0d 0a 2d 31 33 0d 0a 0d 0a 6f 6e 6c 79 69  13..-13....onlyi
1f880 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1f890 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1f8a0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1f8b0 62 65 6c 2d 37 31 32 0d 0a 53 45 4c 45 43 54 20  bel-712..SELECT 
1f8c0 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
1f8d0 28 20 2a 20 29 20 2a 20 2b 20 32 38 20 2b 20 2b  ( * ) * + 28 + +
1f8e0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
1f8f0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
1f900 2d 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 73 6b 69 70  ---..-81....skip
1f910 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1f920 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1f930 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1f940 2d 37 31 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  -712..SELECT DIS
1f950 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20 28 20  TINCT - COUNT ( 
1f960 2a 20 29 20 2a 20 2b 20 32 38 20 2b 20 2b 20 43  * ) * + 28 + + C
1f970 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
1f980 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
1f990 2d 2d 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79  --..-81....query
1f9a0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1f9b0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
1f9c0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
1f9d0 4e 55 4c 4c 20 3c 20 2d 20 2d 20 63 6f 6c 32 0d  NULL < - - col2.
1f9e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
1f9f0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
1fa00 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
1fa10 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1fa20 6f 72 74 20 6c 61 62 65 6c 2d 37 31 34 0d 0a 53  ort label-714..S
1fa30 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32  ELECT ALL - col2
1fa40 20 44 49 56 20 2b 20 2d 20 63 6f 6c 30 20 41 53   DIV + - col0 AS
1fa50 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
1fa60 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
1fa70 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1fa80 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1fa90 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1faa0 20 6c 61 62 65 6c 2d 37 31 34 0d 0a 53 45 4c 45   label-714..SELE
1fab0 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 2f 20  CT ALL - col2 / 
1fac0 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  + - col0 AS col2
1fad0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1fae0 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65  ..0..0..0....que
1faf0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1fb00 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1fb10 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
1fb20 45 20 31 37 20 2b 20 36 20 49 53 20 4e 55 4c 4c  E 17 + 6 IS NULL
1fb30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
1fb40 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
1fb50 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
1fb60 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
1fb70 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
1fb80 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
1fb90 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
1fba0 6f 6c 31 20 2f 20 2b 20 2d 20 31 38 20 2b 20 63  ol1 / + - 18 + c
1fbb0 6f 6c 32 20 2b 20 2b 20 34 33 20 63 6f 6c 31 20  ol2 + + 43 col1 
1fbc0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1fbd0 30 20 57 48 45 52 45 20 2d 20 28 20 2d 20 2d 20  0 WHERE - ( - - 
1fbe0 63 6f 6c 30 20 29 20 2b 20 2b 20 63 6f 6c 30 20  col0 ) + + col0 
1fbf0 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63  * + + col2 * - c
1fc00 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
1fc10 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
1fc20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1fc30 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
1fc40 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
1fc50 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42  E NOT NULL NOT B
1fc60 45 54 57 45 45 4e 20 35 32 20 41 4e 44 20 4e 55  ETWEEN 52 AND NU
1fc70 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
1fc80 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1fc90 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 34  ECT ALL col1 * 4
1fca0 35 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  5 AS col0 FROM t
1fcb0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 32 39 35 0d  ab2..----..2295.
1fcc0 0a 33 30 31 35 0d 0a 33 34 36 35 0d 0a 0d 0a 6f  .3015..3465....o
1fcd0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
1fce0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1fcf0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1fd00 74 20 6c 61 62 65 6c 2d 37 31 39 0d 0a 53 45 4c  t label-719..SEL
1fd10 45 43 54 20 2b 20 33 36 20 2a 20 2b 20 43 4f 55  ECT + 36 * + COU
1fd20 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20 28  NT( DISTINCT - (
1fd30 20 63 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c   col2 ) ) AS col
1fd40 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
1fd50 2d 0d 0a 31 30 38 0d 0a 0d 0a 73 6b 69 70 69 66  -..108....skipif
1fd60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1fd70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1fd80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1fd90 31 39 0d 0a 53 45 4c 45 43 54 20 2b 20 33 36 20  19..SELECT + 36 
1fda0 2a 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53 54  * + COUNT ( DIST
1fdb0 49 4e 43 54 20 2d 20 28 20 63 6f 6c 32 20 29 20  INCT - ( col2 ) 
1fdc0 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1fdd0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38 0d 0a  ab2..----..108..
1fde0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1fdf0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1fe00 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1fe10 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 30 0d 0a  sort label-720..
1fe20 53 45 4c 45 43 54 20 2b 20 2d 20 4d 41 58 28 20  SELECT + - MAX( 
1fe30 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
1fe40 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  ) FROM tab2 cor0
1fe50 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 73 6b  ..----..23....sk
1fe60 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1fe70 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1fe80 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1fe90 65 6c 2d 37 32 30 0d 0a 53 45 4c 45 43 54 20 2b  el-720..SELECT +
1fea0 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   - MAX ( DISTINC
1feb0 54 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  T - col2 ) FROM 
1fec0 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
1fed0 0a 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  .23....query II 
1fee0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1fef0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 2c  DISTINCT - col1,
1ff00 20 2d 20 33 33 20 2d 20 31 31 20 41 53 20 63 6f   - 33 - 11 AS co
1ff10 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l2 FROM tab0 cor
1ff20 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 34 34  0..----..-1..-44
1ff30 0d 0a 2d 32 31 0d 0a 2d 34 34 0d 0a 2d 38 31 0d  ..-21..-44..-81.
1ff40 0a 2d 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-44....query II
1ff50 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ff60 20 41 4c 4c 20 2b 20 38 39 2c 20 2b 20 63 6f 6c   ALL + 89, + col
1ff70 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
1ff80 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1ff90 2d 0d 0a 38 39 0d 0a 34 36 0d 0a 38 39 0d 0a 36  -..89..46..89..6
1ffa0 34 0d 0a 38 39 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c  4..89..75....onl
1ffb0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
1ffc0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
1ffd0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
1ffe0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32  rowsort label-72
1fff0 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  3..SELECT + CAST
20000 28 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( - CAST( NULL A
20010 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 53 49  S SIGNED ) AS SI
20020 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32 20 46  GNED ) AS col2 F
20030 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
20040 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
20050 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
20060 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
20070 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
20080 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
20090 2d 37 32 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -723..SELECT + C
200a0 41 53 54 20 28 20 2d 20 43 41 53 54 20 28 20 4e  AST ( - CAST ( N
200b0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
200c0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
200d0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
200e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
200f0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
20100 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
20110 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
20120 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  ax: ..query II r
20130 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 34  owsort label-724
20140 0d 0a 53 45 4c 45 43 54 20 39 36 20 41 53 20 63  ..SELECT 96 AS c
20150 6f 6c 30 2c 20 2d 20 4d 41 58 28 20 2d 20 2d 20  ol0, - MAX( - - 
20160 34 35 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  45 ) AS col2 FRO
20170 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
20180 2d 2d 2d 2d 0d 0a 39 36 0d 0a 2d 34 35 0d 0a 0d  ----..96..-45...
20190 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
201a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
201b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
201c0 20 6c 61 62 65 6c 2d 37 32 34 0d 0a 53 45 4c 45   label-724..SELE
201d0 43 54 20 39 36 20 41 53 20 63 6f 6c 30 2c 20 2d  CT 96 AS col0, -
201e0 20 4d 41 58 20 28 20 2d 20 2d 20 34 35 20 29 20   MAX ( - - 45 ) 
201f0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
20200 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
20210 0a 39 36 0d 0a 2d 34 35 0d 0a 0d 0a 6f 6e 6c 79  .96..-45....only
20220 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
20230 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
20240 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
20250 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20260 32 35 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  25..SELECT * FRO
20270 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e  M tab2 WHERE ( N
20280 4f 54 20 28 20 4e 55 4c 4c 20 42 45 54 57 45 45  OT ( NULL BETWEE
20290 4e 20 2b 20 2d 20 63 6f 6c 32 20 41 4e 44 20 43  N + - col2 AND C
202a0 41 53 54 28 20 31 31 20 41 53 20 53 49 47 4e 45  AST( 11 AS SIGNE
202b0 44 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  D ) ) )..----...
202c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
202d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
202e0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
202f0 74 20 6c 61 62 65 6c 2d 37 32 35 0d 0a 53 45 4c  t label-725..SEL
20300 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
20310 57 48 45 52 45 20 28 20 4e 4f 54 20 28 20 4e 55  WHERE ( NOT ( NU
20320 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 2d 20 63  LL BETWEEN + - c
20330 6f 6c 32 20 41 4e 44 20 43 41 53 54 20 28 20 31  ol2 AND CAST ( 1
20340 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  1 AS INTEGER ) )
20350 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
20360 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
20370 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
20380 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
20390 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
203a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
203b0 32 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  26..SELECT ALL -
203c0 20 39 20 2b 20 2b 20 43 4f 55 4e 54 28 20 63 6f   9 + + COUNT( co
203d0 6c 31 20 29 20 44 49 56 20 33 35 20 41 53 20 63  l1 ) DIV 35 AS c
203e0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
203f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d   cor0..----..-9.
20400 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
20410 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
20420 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20430 74 20 6c 61 62 65 6c 2d 37 32 36 0d 0a 53 45 4c  t label-726..SEL
20440 45 43 54 20 41 4c 4c 20 2d 20 39 20 2b 20 2b 20  ECT ALL - 9 + + 
20450 43 4f 55 4e 54 20 28 20 63 6f 6c 31 20 29 20 2f  COUNT ( col1 ) /
20460 20 33 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   35 AS col2 FROM
20470 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
20480 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79  ---..-9....query
20490 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
204a0 43 54 20 2b 20 31 36 20 2b 20 2b 20 2b 20 37 35  CT + 16 + + + 75
204b0 20 2b 20 2d 20 33 37 20 46 52 4f 4d 20 74 61 62   + - 37 FROM tab
204c0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
204d0 0a 35 34 0d 0a 35 34 0d 0a 35 34 0d 0a 0d 0a 71  .54..54..54....q
204e0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
204f0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
20500 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
20510 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 30 20 42 45  col2 + - col0 BE
20520 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20 2b 20 2d  TWEEN + col1 + -
20530 20 35 37 20 41 4e 44 20 2d 20 2b 20 36 32 0d 0a   57 AND - + 62..
20540 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
20550 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
20560 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
20570 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
20580 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
20590 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 39 0d 0a  sort label-729..
205a0 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 34  SELECT CAST( + 4
205b0 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20  2 AS SIGNED ) + 
205c0 2b 20 2b 20 53 55 4d 28 20 63 6f 6c 31 20 29 20  + + SUM( col1 ) 
205d0 2a 20 2b 20 2b 20 38 39 20 46 52 4f 4d 20 74 61  * + + 89 FROM ta
205e0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
205f0 0d 0a 39 32 30 39 0d 0a 0d 0a 73 6b 69 70 69 66  ..9209....skipif
20600 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
20610 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
20620 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20630 32 39 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20  29..SELECT CAST 
20640 28 20 2b 20 34 32 20 41 53 20 49 4e 54 45 47 45  ( + 42 AS INTEGE
20650 52 20 29 20 2b 20 2b 20 2b 20 53 55 4d 20 28 20  R ) + + + SUM ( 
20660 63 6f 6c 31 20 29 20 2a 20 2b 20 2b 20 38 39 20  col1 ) * + + 89 
20670 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
20680 30 0d 0a 2d 2d 2d 2d 0d 0a 39 32 30 39 0d 0a 0d  0..----..9209...
20690 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
206a0 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 38  ..SELECT - ( + 8
206b0 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  0 ) AS col1 FROM
206c0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30   tab0..----..-80
206d0 0d 0a 2d 38 30 0d 0a 2d 38 30 0d 0a 0d 0a 71 75  ..-80..-80....qu
206e0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
206f0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
20700 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
20710 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2a  WHERE NOT col0 *
20720 20 2d 20 2b 20 38 38 20 3c 3d 20 2d 20 63 6f 6c   - + 88 <= - col
20730 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  0..----....query
20740 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
20750 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
20760 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
20770 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  0 WHERE NOT - co
20780 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  l1 + + col1 + + 
20790 2b 20 63 6f 6c 30 20 4e 4f 54 20 49 4e 20 28 20  + col0 NOT IN ( 
207a0 2b 20 63 6f 6c 30 2c 20 37 31 20 2b 20 63 6f 6c  + col0, 71 + col
207b0 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  0 )..----..9 val
207c0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37  ues hashing to 7
207d0 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38  5c998aa53ac83218
207e0 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d  cbf2feb962d0a49.
207f0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
20800 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
20810 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
20820 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20830 62 65 6c 2d 37 33 33 0d 0a 53 45 4c 45 43 54 20  bel-733..SELECT 
20840 43 41 53 54 28 20 2d 20 63 6f 6c 30 20 41 53 20  CAST( - col0 AS 
20850 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 63 6f 6c  SIGNED ) + - col
20860 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
20870 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
20880 2d 0d 0a 2d 31 39 36 0d 0a 2d 36 32 0d 0a 2d 39  -..-196..-62..-9
20890 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
208a0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
208b0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
208c0 6f 72 74 20 6c 61 62 65 6c 2d 37 33 33 0d 0a 53  ort label-733..S
208d0 45 4c 45 43 54 20 43 41 53 54 20 28 20 2d 20 63  ELECT CAST ( - c
208e0 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol0 AS INTEGER )
208f0 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
20900 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
20910 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 36 0d  or0..----..-196.
20920 0a 2d 36 32 0d 0a 2d 39 37 0d 0a 0d 0a 6f 6e 6c  .-62..-97....onl
20930 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
20940 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
20950 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20960 6c 61 62 65 6c 2d 37 33 34 0d 0a 53 45 4c 45 43  label-734..SELEC
20970 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29  T ALL COUNT( * )
20980 20 2a 20 34 36 20 46 52 4f 4d 20 74 61 62 31 20   * 46 FROM tab1 
20990 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
209a0 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  38....skipif mys
209b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
209c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
209d0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 34 0d 0a  sort label-734..
209e0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
209f0 20 28 20 2a 20 29 20 2a 20 34 36 20 46 52 4f 4d   ( * ) * 46 FROM
20a00 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
20a10 2d 2d 2d 0d 0a 31 33 38 0d 0a 0d 0a 6f 6e 6c 79  ---..138....only
20a20 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
20a30 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20  syntax: DECIMAL 
20a40 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
20a50 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33  rowsort label-73
20a60 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
20a70 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20  CT + + col1 * + 
20a80 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
20a90 43 49 4d 41 4c 20 29 20 46 52 4f 4d 20 74 61 62  CIMAL ) FROM tab
20aa0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
20ab0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
20ac0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
20ad0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
20ae0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33  rowsort label-73
20af0 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
20b00 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20  CT + + col1 * + 
20b10 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52  CAST ( NULL AS R
20b20 45 41 4c 20 29 20 46 52 4f 4d 20 74 61 62 31 20  EAL ) FROM tab1 
20b30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
20b40 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
20b50 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
20b60 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
20b70 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
20b80 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
20b90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
20ba0 0a 53 45 4c 45 43 54 20 2d 20 35 35 20 2a 20 2b  .SELECT - 55 * +
20bb0 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31   + col1 + - col1
20bc0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
20bd0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
20be0 32 38 35 36 0d 0a 2d 33 37 35 32 0d 0a 2d 34 33  2856..-3752..-43
20bf0 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  12....query II r
20c00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
20c10 4c 4c 20 2d 20 36 20 2a 20 2d 20 63 6f 6c 31 20  LL - 6 * - col1 
20c20 2b 20 2b 20 63 6f 6c 32 2c 20 28 20 2d 20 2d 20  + + col2, ( - - 
20c30 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46  col2 ) AS col0 F
20c40 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
20c50 0d 0a 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a 39 39 0d  ..----..105..99.
20c60 0a 31 33 36 0d 0a 31 30 0d 0a 35 33 33 0d 0a 34  .136..10..533..4
20c70 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
20c80 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
20c90 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
20ca0 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
20cb0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20cc0 74 20 6c 61 62 65 6c 2d 37 33 38 0d 0a 53 45 4c  t label-738..SEL
20cd0 45 43 54 20 2b 20 2b 20 28 20 2b 20 43 4f 55 4e  ECT + + ( + COUN
20ce0 54 28 20 2a 20 29 20 29 20 2a 20 31 30 20 44 49  T( * ) ) * 10 DI
20cf0 56 20 2b 20 2b 20 34 31 20 41 53 20 63 6f 6c 31  V + + 41 AS col1
20d00 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
20d10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  r0..----..0....s
20d20 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
20d30 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
20d40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20d50 62 65 6c 2d 37 33 38 0d 0a 53 45 4c 45 43 54 20  bel-738..SELECT 
20d60 2b 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28 20  + + ( + COUNT ( 
20d70 2a 20 29 20 29 20 2a 20 31 30 20 2f 20 2b 20 2b  * ) ) * 10 / + +
20d80 20 34 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   41 AS col1 FROM
20d90 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
20da0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
20db0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
20dc0 43 54 20 36 38 20 41 53 20 63 6f 6c 32 2c 20 2d  CT 68 AS col2, -
20dd0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52   col0 AS col0 FR
20de0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab2..----..6
20df0 38 0d 0a 2d 34 36 0d 0a 36 38 0d 0a 2d 36 34 0d  8..-46..68..-64.
20e00 0a 36 38 0d 0a 2d 37 35 0d 0a 0d 0a 6f 6e 6c 79  .68..-75....only
20e10 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
20e20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
20e30 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
20e40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
20e50 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  0..SELECT + CAST
20e60 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
20e70 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 36 33   ) AS col1, - 63
20e80 20 2d 20 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c   - - CAST( + col
20e90 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  1 AS SIGNED ) AS
20ea0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
20eb0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 34 32  .----..NULL..-42
20ec0 0d 0a 4e 55 4c 4c 0d 0a 2d 36 32 0d 0a 4e 55 4c  ..NULL..-62..NUL
20ed0 4c 0d 0a 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  L..18....skipif 
20ee0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
20ef0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
20f00 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
20f10 34 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  40..SELECT + CAS
20f20 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
20f30 47 45 52 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d  GER ) AS col1, -
20f40 20 36 33 20 2d 20 2d 20 43 41 53 54 20 28 20 2b   63 - - CAST ( +
20f50 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52   col1 AS INTEGER
20f60 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
20f70 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
20f80 0d 0a 2d 34 32 0d 0a 4e 55 4c 4c 0d 0a 2d 36 32  ..-42..NULL..-62
20f90 0d 0a 4e 55 4c 4c 0d 0a 31 38 0d 0a 0d 0a 71 75  ..NULL..18....qu
20fa0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20fb0 45 4c 45 43 54 20 35 30 20 2a 20 2d 20 63 6f 6c  ELECT 50 * - col
20fc0 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
20fd0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 35 30  ab1..----..-2550
20fe0 0d 0a 2d 34 32 35 30 0d 0a 2d 34 35 35 30 0d 0a  ..-4250..-4550..
20ff0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
21000 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
21010 32 20 41 53 20 63 6f 6c 32 2c 20 2d 20 34 32 20  2 AS col2, - 42 
21020 2b 20 2d 20 2d 20 28 20 63 6f 6c 32 20 29 20 2d  + - - ( col2 ) -
21030 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
21040 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 34 32 0d  .----..-10..-42.
21050 0a 2d 34 37 0d 0a 2d 34 32 0d 0a 2d 39 39 0d 0a  .-47..-42..-99..
21060 2d 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -42....onlyif my
21070 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
21080 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
21090 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
210a0 37 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  743..SELECT ALL 
210b0 4d 49 4e 28 20 2b 20 63 6f 6c 31 20 29 20 41 53  MIN( + col1 ) AS
210c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
210d0 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .----..1....skip
210e0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
210f0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21100 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21110 2d 37 34 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -743..SELECT ALL
21120 20 4d 49 4e 20 28 20 2b 20 63 6f 6c 31 20 29 20   MIN ( + col1 ) 
21130 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
21140 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75  0..----..1....qu
21150 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
21160 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
21170 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
21180 36 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  60 IS NULL..----
21190 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
211a0 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
211b0 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
211c0 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
211d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
211e0 54 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  T - col2 FROM ta
211f0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  b0 WHERE NOT - c
21200 6f 6c 31 20 2a 20 2b 20 2b 20 33 38 20 2f 20 2b  ol1 * + + 38 / +
21210 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 30 20 49   col2 + + col0 I
21220 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
21230 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21240 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
21250 2d 20 2d 20 33 30 20 46 52 4f 4d 20 74 61 62 32  - - 30 FROM tab2
21260 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 2b 20   WHERE NULL < + 
21270 2b 20 36 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  + 61..----....qu
21280 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
21290 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2a  ELECT ALL col1 *
212a0 20 39 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   94 FROM tab1..-
212b0 2d 2d 2d 0d 0a 31 33 31 36 0d 0a 34 34 31 38 0d  ---..1316..4418.
212c0 0a 34 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .470....onlyif m
212d0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
212e0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
212f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21300 2d 37 34 38 0d 0a 53 45 4c 45 43 54 20 2d 20 53  -748..SELECT - S
21310 55 4d 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30  UM( ALL + - col0
21320 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
21330 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
21340 2d 2d 0d 0a 32 32 37 0d 0a 0d 0a 73 6b 69 70 69  --..227....skipi
21350 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
21360 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
21370 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
21380 37 34 38 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55  748..SELECT - SU
21390 4d 20 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30  M ( ALL + - col0
213a0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
213b0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
213c0 2d 2d 0d 0a 32 32 37 0d 0a 0d 0a 6f 6e 6c 79 69  --..227....onlyi
213d0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
213e0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
213f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21400 62 65 6c 2d 37 34 39 0d 0a 53 45 4c 45 43 54 20  bel-749..SELECT 
21410 43 4f 55 4e 54 28 20 2d 20 28 20 34 33 20 29 20  COUNT( - ( 43 ) 
21420 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
21430 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
21440 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
21450 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
21460 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
21470 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 39  owsort label-749
21480 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
21490 20 2d 20 28 20 34 33 20 29 20 29 20 41 53 20 63   - ( 43 ) ) AS c
214a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol0 FROM tab0 AS
214b0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
214c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
214d0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
214e0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
214f0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 30 0d 0a  sort label-750..
21500 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
21510 2d 20 2d 20 53 55 4d 28 20 2d 20 28 20 2b 20 63  - - SUM( - ( + c
21520 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62  ol2 ) ) FROM tab
21530 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
21540 0a 2d 31 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-121....skipif 
21550 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21560 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
21570 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35  rowsort label-75
21580 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
21590 43 54 20 2d 20 2d 20 53 55 4d 20 28 20 2d 20 28  CT - - SUM ( - (
215a0 20 2b 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d   + col2 ) ) FROM
215b0 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
215c0 2d 2d 2d 0d 0a 2d 31 32 31 0d 0a 0d 0a 71 75 65  ---..-121....que
215d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
215e0 45 4c 45 43 54 20 31 34 20 41 53 20 63 6f 6c 32  ELECT 14 AS col2
215f0 2c 20 2d 20 36 31 20 41 53 20 63 6f 6c 31 20 46  , - 61 AS col1 F
21600 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
21610 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 2d 36 31 0d  ..----..14..-61.
21620 0a 31 34 0d 0a 2d 36 31 0d 0a 31 34 0d 0a 2d 36  .14..-61..14..-6
21630 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  1....query II ro
21640 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
21650 4c 20 63 6f 6c 32 2c 20 2b 20 34 35 20 41 53 20  L col2, + 45 AS 
21660 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
21670 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
21680 0d 0a 34 35 0d 0a 34 37 0d 0a 34 35 0d 0a 39 39  ..45..47..45..99
21690 0d 0a 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..45....onlyif m
216a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
216b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
216c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
216d0 2d 37 35 33 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -753..SELECT - C
216e0 4f 55 4e 54 28 20 2a 20 29 20 2a 20 4d 41 58 28  OUNT( * ) * MAX(
216f0 20 2d 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d   - - col0 ) FROM
21700 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
21710 2d 2d 2d 0d 0a 2d 32 39 31 0d 0a 0d 0a 73 6b 69  ---..-291....ski
21720 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
21730 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
21740 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
21750 6c 2d 37 35 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-753..SELECT - 
21760 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 4d 41  COUNT ( * ) * MA
21770 58 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29 20 46  X ( - - col0 ) F
21780 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21790 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 31 0d 0a 0d 0a  ..----..-291....
217a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
217b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
217c0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
217d0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20  OM tab0 WHERE ( 
217e0 4e 55 4c 4c 20 3c 3e 20 4e 55 4c 4c 20 29 0d 0a  NULL <> NULL )..
217f0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
21800 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
21810 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
21820 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21830 2d 37 35 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -755..SELECT ALL
21840 20 2d 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   - + COUNT( * ) 
21850 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 43  FROM tab2 cor0 C
21860 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41  ROSS JOIN tab1 A
21870 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor1..----..-9
21880 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
21890 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
218a0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
218b0 72 74 20 6c 61 62 65 6c 2d 37 35 35 0d 0a 53 45  rt label-755..SE
218c0 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43 4f 55  LECT ALL - + COU
218d0 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
218e0 62 32 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  b2 cor0 CROSS JO
218f0 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
21900 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 6f 6e 6c  .----..-9....onl
21910 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
21920 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
21930 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
21940 6c 61 62 65 6c 2d 37 35 36 0d 0a 53 45 4c 45 43  label-756..SELEC
21950 54 20 2b 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c  T + + COUNT( ALL
21960 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
21970 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
21980 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..3....skipif m
21990 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
219a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
219b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 36  owsort label-756
219c0 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43 4f 55  ..SELECT + + COU
219d0 4e 54 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  NT ( ALL - col1 
219e0 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  ) FROM tab2 AS c
219f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
21a00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
21a10 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
21a20 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
21a30 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
21a40 65 6c 2d 37 35 37 0d 0a 53 45 4c 45 43 54 20 2a  el-757..SELECT *
21a50 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
21a60 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 43  r0 WHERE NOT + C
21a70 41 53 54 28 20 2d 20 2d 20 33 35 20 41 53 20 53  AST( - - 35 AS S
21a80 49 47 4e 45 44 20 29 20 42 45 54 57 45 45 4e 20  IGNED ) BETWEEN 
21a90 2b 20 63 6f 6c 32 20 41 4e 44 20 2d 20 63 6f 6c  + col2 AND - col
21aa0 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
21ab0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
21ac0 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
21ad0 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
21ae0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
21af0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
21b00 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
21b10 74 20 6c 61 62 65 6c 2d 37 35 37 0d 0a 53 45 4c  t label-757..SEL
21b20 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
21b30 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
21b40 54 20 2b 20 43 41 53 54 20 28 20 2d 20 2d 20 33  T + CAST ( - - 3
21b50 35 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 42  5 AS INTEGER ) B
21b60 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32 20 41 4e  ETWEEN + col2 AN
21b70 44 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  D - col1..----..
21b80 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
21b90 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
21ba0 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
21bb0 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4cad....onlyif m
21bc0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
21bd0 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
21be0 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
21bf0 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
21c00 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 38 0d 0a  sort label-758..
21c10 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54  SELECT - - COUNT
21c20 28 20 41 4c 4c 20 2d 20 38 30 20 29 20 2b 20 36  ( ALL - 80 ) + 6
21c30 33 20 2b 20 2d 20 39 32 20 44 49 56 20 2d 20 4d  3 + - 92 DIV - M
21c40 49 4e 28 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  IN( - col1 ) FRO
21c50 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
21c60 2d 2d 2d 2d 0d 0a 36 35 0d 0a 0d 0a 73 6b 69 70  ----..65....skip
21c70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21c80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21c90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21ca0 2d 37 35 38 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  -758..SELECT - -
21cb0 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2d 20 38   COUNT ( ALL - 8
21cc0 30 20 29 20 2b 20 36 33 20 2b 20 2d 20 39 32 20  0 ) + 63 + - 92 
21cd0 2f 20 2d 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 31  / - MIN ( - col1
21ce0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
21cf0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 35 0d 0a  cor0..----..65..
21d00 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
21d10 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
21d20 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
21d30 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35 39 0d 0a  sort label-759..
21d40 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20  SELECT ALL MIN( 
21d50 2b 20 2d 20 37 33 20 29 20 46 52 4f 4d 20 74 61  + - 73 ) FROM ta
21d60 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
21d70 0d 0a 2d 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-73....skipif 
21d80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21d90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
21da0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 35  rowsort label-75
21db0 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49  9..SELECT ALL MI
21dc0 4e 20 28 20 2b 20 2d 20 37 33 20 29 20 46 52 4f  N ( + - 73 ) FRO
21dd0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
21de0 2d 2d 2d 2d 0d 0a 2d 37 33 0d 0a 0d 0a 71 75 65  ----..-73....que
21df0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
21e00 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  LECT - col1 * + 
21e10 2b 20 33 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 46  + 3 + + - col2 F
21e20 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
21e30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 2d 32  ..----..-102..-2
21e40 39 30 0d 0a 2d 37 33 0d 0a 0d 0a 71 75 65 72 79  90..-73....query
21e50 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
21e60 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
21e70 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 39   AS cor0 WHERE 9
21e80 38 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 49 53 20  8 + + + col2 IS 
21e90 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
21ea0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
21eb0 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
21ec0 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
21ed0 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  43b7....skipif p
21ee0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
21ef0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
21f00 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
21f10 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
21f20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21f30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
21f40 54 20 63 6f 6c 31 20 2b 20 2b 20 38 20 63 6f 6c  T col1 + + 8 col
21f50 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
21f60 2d 0d 0a 31 33 0d 0a 32 32 0d 0a 35 35 0d 0a 0d  -..13..22..55...
21f70 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
21f80 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
21f90 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
21fa0 20 2b 20 32 37 20 2f 20 2d 20 63 6f 6c 32 20 2d   + 27 / - col2 -
21fb0 20 2d 20 28 20 63 6f 6c 30 20 29 20 49 53 20 4e   - ( col0 ) IS N
21fc0 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  OT NULL..----..9
21fd0 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
21fe0 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
21ff0 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
22000 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  3b7....query III
22010 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
22020 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
22030 52 45 20 2b 20 32 30 20 49 53 20 4e 55 4c 4c 0d  RE + 20 IS NULL.
22040 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
22050 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22060 54 20 2b 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32  T + col2, + col2
22070 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
22080 0d 0a 32 33 0d 0a 32 33 0d 0a 34 30 0d 0a 34 30  ..23..23..40..40
22090 0d 0a 35 38 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79  ..58..58....only
220a0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
220b0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
220c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
220d0 61 62 65 6c 2d 37 36 36 0d 0a 53 45 4c 45 43 54  abel-766..SELECT
220e0 20 4d 49 4e 28 20 41 4c 4c 20 2b 20 2b 20 63 6f   MIN( ALL + + co
220f0 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  l0 ) FROM tab2..
22100 2d 2d 2d 2d 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70  ----..46....skip
22110 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
22120 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
22130 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22140 2d 37 36 36 0d 0a 53 45 4c 45 43 54 20 4d 49 4e  -766..SELECT MIN
22150 20 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 30 20   ( ALL + + col0 
22160 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
22170 2d 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -..46....query I
22180 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22190 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63  CT * FROM tab0 c
221a0 6f 72 30 20 57 48 45 52 45 20 32 35 20 2a 20 2b  or0 WHERE 25 * +
221b0 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 32 32 20 2b   col0 + + + 22 +
221c0 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d   + col0 IS NULL.
221d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
221e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
221f0 54 20 2d 20 2b 20 35 30 20 41 53 20 63 6f 6c 30  T - + 50 AS col0
22200 2c 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63  , + col2 * + - c
22210 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
22220 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
22230 45 52 45 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f  ERE - col2 IS NO
22240 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  T NULL..----..-5
22250 30 0d 0a 2d 31 31 37 33 0d 0a 2d 35 30 0d 0a 2d  0..-1173..-50..-
22260 33 30 38 30 0d 0a 2d 35 30 0d 0a 2d 33 38 38 36  3080..-50..-3886
22270 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22280 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
22290 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
222a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
222b0 61 62 65 6c 2d 37 36 39 0d 0a 53 45 4c 45 43 54  abel-769..SELECT
222c0 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f   DISTINCT + - co
222d0 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 63 6f  l0 * col0 + - co
222e0 6c 32 20 2a 20 2b 20 35 39 20 2a 20 2b 20 2b 20  l2 * + 59 * + + 
222f0 32 33 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c  23 * + CAST( NUL
22300 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
22310 39 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  91 FROM tab0 cor
22320 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
22330 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
22340 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
22350 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22360 6c 61 62 65 6c 2d 37 36 39 0d 0a 53 45 4c 45 43  label-769..SELEC
22370 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63  T DISTINCT + - c
22380 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 63  ol0 * col0 + - c
22390 6f 6c 32 20 2a 20 2b 20 35 39 20 2a 20 2b 20 2b  ol2 * + 59 * + +
223a0 20 32 33 20 2a 20 2b 20 43 41 53 54 20 28 20 4e   23 * + CAST ( N
223b0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
223c0 20 2a 20 39 31 20 46 52 4f 4d 20 74 61 62 30 20   * 91 FROM tab0 
223d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
223e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
223f0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
22400 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
22410 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 37 30  owsort label-770
22420 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
22430 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
22440 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  1 ) FROM tab1 WH
22450 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
22460 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
22470 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
22480 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
22490 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
224a0 6c 61 62 65 6c 2d 37 37 30 0d 0a 53 45 4c 45 43  label-770..SELEC
224b0 54 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e  T COUNT ( DISTIN
224c0 43 54 20 2b 20 2d 20 63 6f 6c 31 20 29 20 46 52  CT + - col1 ) FR
224d0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55  OM tab1 WHERE NU
224e0 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  LL IS NOT NULL..
224f0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  ----..0....query
22500 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
22510 43 54 20 41 4c 4c 20 63 6f 6c 32 20 2d 20 38 35  CT ALL col2 - 85
22520 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + - col0 AS col
22530 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
22540 2d 0d 0a 2d 31 30 32 0d 0a 2d 31 30 38 0d 0a 2d  -..-102..-108..-
22550 31 30 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  109....skipif po
22560 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
22570 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
22580 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
22590 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
225a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
225b0 0a 53 45 4c 45 43 54 20 28 20 2d 20 2b 20 38 33  .SELECT ( - + 83
225c0 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
225d0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
225e0 0a 2d 38 33 0d 0a 2d 38 33 0d 0a 2d 38 33 0d 0a  .-83..-83..-83..
225f0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
22600 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
22610 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
22620 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
22630 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
22640 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
22650 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d 20  CT - col1 * - - 
22660 63 6f 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74  col2 col1 FROM t
22670 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
22680 2d 31 33 34 34 0d 0a 2d 32 39 35 0d 0a 2d 33 31  -1344..-295..-31
22690 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  96....query III 
226a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
226b0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
226c0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
226d0 36 39 20 2b 20 33 20 29 20 3e 3d 20 4e 55 4c 4c  69 + 3 ) >= NULL
226e0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
226f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22700 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35 38 20  T DISTINCT + 58 
22710 2a 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 32  * - - col2 + + 2
22720 36 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  6 + + - col2 AS 
22730 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
22740 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 37  S cor0..----..27
22750 30 35 0d 0a 35 36 36 39 0d 0a 35 39 36 0d 0a 0d  05..5669..596...
22760 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
22770 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
22780 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
22790 57 48 45 52 45 20 4e 4f 54 20 31 37 20 2b 20 2b  WHERE NOT 17 + +
227a0 20 38 32 20 42 45 54 57 45 45 4e 20 28 20 2b 20   82 BETWEEN ( + 
227b0 34 38 20 29 20 41 4e 44 20 2b 20 63 6f 6c 32 0d  48 ) AND + col2.
227c0 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 34  .----..15..81..4
227d0 37 0d 0a 38 37 0d 0a 32 31 0d 0a 31 30 0d 0a 0d  7..87..21..10...
227e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
227f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 38  ..SELECT ALL + 8
22800 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
22810 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
22820 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
22830 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
22840 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
22850 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
22860 4f 54 20 2b 20 33 31 20 49 53 20 4e 55 4c 4c 0d  OT + 31 IS NULL.
22870 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
22880 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
22890 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
228a0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 71  a11e4d54cad....q
228b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
228c0 53 45 4c 45 43 54 20 31 39 20 2a 20 63 6f 6c 32  SELECT 19 * col2
228d0 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * + col2 FROM t
228e0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 35 31  ab2..----..10051
228f0 0d 0a 33 30 34 30 30 0d 0a 36 33 39 31 36 0d 0a  ..30400..63916..
22900 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
22910 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
22920 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
22930 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 30 0d 0a  sort label-780..
22940 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
22950 4d 49 4e 28 20 2d 20 63 6f 6c 31 20 29 20 41 53  MIN( - col1 ) AS
22960 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
22970 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b  .----..-77....sk
22980 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
22990 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
229a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
229b0 65 6c 2d 37 38 30 0d 0a 53 45 4c 45 43 54 20 44  el-780..SELECT D
229c0 49 53 54 49 4e 43 54 20 4d 49 4e 20 28 20 2d 20  ISTINCT MIN ( - 
229d0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
229e0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
229f0 2d 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -77....query I r
22a00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
22a10 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31  ISTINCT - - col1
22a20 20 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74   * + col2 FROM t
22a30 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab2 WHERE NOT - 
22a40 63 6f 6c 30 20 3c 3e 20 2d 20 63 6f 6c 30 0d 0a  col0 <> - col0..
22a50 2d 2d 2d 2d 0d 0a 31 31 37 33 0d 0a 33 30 38 30  ----..1173..3080
22a60 0d 0a 33 38 38 36 0d 0a 0d 0a 71 75 65 72 79 20  ..3886....query 
22a70 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22a80 43 54 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20  CT col0, + col2 
22a90 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  * col1 FROM tab0
22aa0 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 33 38 30 37  ..----..15..3807
22ab0 0d 0a 38 37 0d 0a 32 31 30 0d 0a 39 37 0d 0a 39  ..87..210..97..9
22ac0 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
22ad0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
22ae0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
22af0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22b00 6c 61 62 65 6c 2d 37 38 33 0d 0a 53 45 4c 45 43  label-783..SELEC
22b10 54 20 2b 20 33 38 20 44 49 56 20 63 6f 6c 31 20  T + 38 DIV col1 
22b20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
22b30 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 33  0..----..0..1..3
22b40 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
22b50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
22b60 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
22b70 6f 72 74 20 6c 61 62 65 6c 2d 37 38 33 0d 0a 53  ort label-783..S
22b80 45 4c 45 43 54 20 2b 20 33 38 20 2f 20 63 6f 6c  ELECT + 38 / col
22b90 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
22ba0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  ab0..----..0..1.
22bb0 0a 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .38....query I r
22bc0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
22bd0 4c 4c 20 2b 20 31 30 20 41 53 20 63 6f 6c 31 20  LL + 10 AS col1 
22be0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
22bf0 4e 4f 54 20 31 31 20 49 53 20 4e 4f 54 20 4e 55  NOT 11 IS NOT NU
22c00 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
22c10 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
22c20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
22c30 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
22c40 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
22c50 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
22c60 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 36 20  sort..SELECT 76 
22c70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
22c80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 36  S cor0..----..76
22c90 0d 0a 37 36 0d 0a 37 36 0d 0a 0d 0a 71 75 65 72  ..76..76....quer
22ca0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
22cb0 4c 45 43 54 20 2d 20 63 6f 6c 30 2c 20 63 6f 6c  LECT - col0, col
22cc0 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
22cd0 2d 0d 0a 2d 34 36 0d 0a 32 33 0d 0a 2d 36 34 0d  -..-46..23..-64.
22ce0 0a 34 30 0d 0a 2d 37 35 0d 0a 35 38 0d 0a 0d 0a  .40..-75..58....
22cf0 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77  query IIIIII row
22d00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
22d10 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
22d20 30 20 41 53 20 63 6f 72 30 20 49 4e 4e 45 52 20  0 AS cor0 INNER 
22d30 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72  JOIN tab0 AS cor
22d40 31 20 4f 4e 20 28 20 4e 55 4c 4c 20 49 53 20 4e  1 ON ( NULL IS N
22d50 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 34 20  ULL )..----..54 
22d60 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
22d70 6f 20 34 32 64 61 61 30 33 65 34 38 61 61 36 37  o 42daa03e48aa67
22d80 35 35 64 65 66 64 30 61 33 32 30 36 65 35 31 64  55defd0a3206e51d
22d90 38 65 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  8e....query I ro
22da0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
22db0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
22dc0 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e 4f 54  cor0 WHERE ( NOT
22dd0 20 2b 20 2b 20 63 6f 6c 31 20 49 53 20 4e 4f 54   + + col1 IS NOT
22de0 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
22df0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
22e00 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 37 35  t..SELECT + ( 75
22e10 20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 34 30   ) AS col1, - 40
22e20 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
22e30 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 2d 34  r0..----..75..-4
22e40 30 0d 0a 37 35 0d 0a 2d 34 30 0d 0a 37 35 0d 0a  0..75..-40..75..
22e50 2d 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -40....query II 
22e60 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
22e70 2d 20 2d 20 38 33 20 41 53 20 63 6f 6c 31 2c 20  - - 83 AS col1, 
22e80 2d 20 63 6f 6c 32 20 2b 20 2d 20 36 37 20 41 53  - col2 + - 67 AS
22e90 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
22ea0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  AS cor0..----..8
22eb0 33 0d 0a 2d 31 30 37 0d 0a 38 33 0d 0a 2d 31 32  3..-107..83..-12
22ec0 35 0d 0a 38 33 0d 0a 2d 39 30 0d 0a 0d 0a 6f 6e  5..83..-90....on
22ed0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
22ee0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
22ef0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
22f00 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
22f10 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
22f20 2d 37 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -791..SELECT ALL
22f30 20 2d 20 4d 49 4e 28 20 2b 20 2b 20 43 41 53 54   - MIN( + + CAST
22f40 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
22f50 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   ) ) FROM tab1 A
22f60 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
22f70 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
22f80 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
22f90 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
22fa0 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 31 0d 0a  sort label-791..
22fb0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49 4e  SELECT ALL - MIN
22fc0 20 28 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55   ( + + CAST ( NU
22fd0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
22fe0 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
22ff0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
23000 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
23010 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 32  rt..SELECT - - 2
23020 36 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b  6 + - + col0 * +
23030 20 2b 20 36 35 20 41 53 20 63 6f 6c 31 20 46 52   + 65 AS col1 FR
23040 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
23050 0a 2d 2d 2d 2d 0d 0a 2d 33 32 38 39 0d 0a 2d 35  .----..-3289..-5
23060 34 39 39 0d 0a 2d 35 38 38 39 0d 0a 0d 0a 71 75  499..-5889....qu
23070 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
23080 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
23090 61 62 30 20 57 48 45 52 45 20 2d 20 33 35 20 49  ab0 WHERE - 35 I
230a0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
230b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
230c0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
230d0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
230e0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
230f0 6c 2d 37 39 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-794..SELECT DI
23100 53 54 49 4e 43 54 20 34 37 20 2b 20 2b 20 2d 20  STINCT 47 + + - 
23110 43 41 53 54 28 20 2d 20 28 20 2b 20 2d 20 37 39  CAST( - ( + - 79
23120 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b   ) AS SIGNED ) +
23130 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 2c 20 2b 20   + col0 col0, + 
23140 31 20 2b 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  1 + + col1 FROM 
23150 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 39 0d 0a  tab1..----..19..
23160 31 35 0d 0a 35 33 0d 0a 36 0d 0a 35 39 0d 0a 34  15..53..6..59..4
23170 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
23180 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23190 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
231a0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
231b0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
231c0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
231d0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
231e0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
231f0 62 65 6c 2d 37 39 34 0d 0a 53 45 4c 45 43 54 20  bel-794..SELECT 
23200 44 49 53 54 49 4e 43 54 20 34 37 20 2b 20 2b 20  DISTINCT 47 + + 
23210 2d 20 43 41 53 54 20 28 20 2d 20 28 20 2b 20 2d  - CAST ( - ( + -
23220 20 37 39 20 29 20 41 53 20 49 4e 54 45 47 45 52   79 ) AS INTEGER
23230 20 29 20 2b 20 2b 20 63 6f 6c 30 20 63 6f 6c 30   ) + + col0 col0
23240 2c 20 2b 20 31 20 2b 20 2b 20 63 6f 6c 31 20 46  , + 1 + + col1 F
23250 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
23260 31 39 0d 0a 31 35 0d 0a 35 33 0d 0a 36 0d 0a 35  19..15..53..6..5
23270 39 0d 0a 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  9..48....onlyif 
23280 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
23290 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
232a0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
232b0 6f 72 74 20 6c 61 62 65 6c 2d 37 39 35 0d 0a 53  ort label-795..S
232c0 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 44 49 56  ELECT + col2 DIV
232d0 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30   + col1 + - col0
232e0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
232f0 0d 0a 2d 34 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d  ..-46..-64..-75.
23300 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
23310 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
23320 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23330 74 20 6c 61 62 65 6c 2d 37 39 35 0d 0a 53 45 4c  t label-795..SEL
23340 45 43 54 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 63  ECT + col2 / + c
23350 6f 6c 31 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  ol1 + - col0 FRO
23360 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab2..----..-4
23370 36 0d 0a 2d 36 34 0d 0a 2d 37 35 0d 0a 0d 0a 71  6..-64..-75....q
23380 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23390 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
233a0 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f 6c  - col0 + - - col
233b0 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
233c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a  ab1..----..-23..
233d0 2d 32 36 0d 0a 34 35 0d 0a 0d 0a 71 75 65 72 79  -26..45....query
233e0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
233f0 43 54 20 2b 20 31 35 20 2a 20 2d 20 63 6f 6c 30  CT + 15 * - col0
23400 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
23410 62 31 20 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c  b1 WHERE + + col
23420 30 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  0 < NULL..----..
23430 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23440 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
23450 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 31 20  col0 + - + col1 
23460 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * + col2 FROM ta
23470 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 36 0d 0a  b0..----..-196..
23480 2d 32 39 37 0d 0a 2d 33 38 32 32 0d 0a 0d 0a 6f  -297..-3822....o
23490 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
234a0 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
234b0 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
234c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
234d0 2d 37 39 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -799..SELECT ALL
234e0 20 2d 20 35 20 2a 20 2b 20 43 41 53 54 28 20 4e   - 5 * + CAST( N
234f0 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
23500 20 2d 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63   - + - col1 AS c
23510 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
23520 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
23530 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
23540 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
23550 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
23560 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39  rowsort label-79
23570 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  9..SELECT ALL - 
23580 35 20 2a 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  5 * + CAST ( NUL
23590 4c 20 41 53 20 52 45 41 4c 20 29 20 2d 20 2b 20  L AS REAL ) - + 
235a0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  - col1 AS col1 F
235b0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
235c0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
235d0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
235e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
235f0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
23600 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
23610 2b 20 37 31 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d  + 71 <> NULL..--
23620 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
23630 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23640 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
23650 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  or0 WHERE NULL N
23660 4f 54 20 49 4e 20 28 20 63 6f 6c 32 2c 20 2b 20  OT IN ( col2, + 
23670 63 6f 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 2c  col2 + - + col1,
23680 20 2d 20 34 2c 20 2d 20 63 6f 6c 31 2c 20 63 6f   - 4, - col1, co
23690 6c 31 2c 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 63  l1, col2 * - + c
236a0 6f 6c 32 20 2a 20 2d 20 2b 20 28 20 2d 20 32 39  ol2 * - + ( - 29
236b0 20 29 20 2b 20 2b 20 63 6f 6c 31 2c 20 63 6f 6c   ) + + col1, col
236c0 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  1 )..----....que
236d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
236e0 4c 45 43 54 20 2b 20 36 31 20 2a 20 2d 20 2b 20  LECT + 61 * - + 
236f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
23700 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
23710 31 31 31 0d 0a 2d 34 30 38 37 0d 0a 2d 34 36 39  111..-4087..-469
23720 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
23730 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
23740 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
23750 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30  rowsort label-80
23760 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
23770 2d 20 53 55 4d 28 20 41 4c 4c 20 2b 20 2d 20 39  - SUM( ALL + - 9
23780 38 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  8 ) AS col2 FROM
23790 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
237a0 2d 2d 2d 0d 0a 2d 32 39 34 0d 0a 0d 0a 73 6b 69  ---..-294....ski
237b0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
237c0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
237d0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
237e0 6c 2d 38 30 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-803..SELECT AL
237f0 4c 20 2d 20 2d 20 53 55 4d 20 28 20 41 4c 4c 20  L - - SUM ( ALL 
23800 2b 20 2d 20 39 38 20 29 20 41 53 20 63 6f 6c 32  + - 98 ) AS col2
23810 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
23820 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 39 34 0d 0a  r0..----..-294..
23830 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
23840 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
23850 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
23860 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 34 0d  wsort label-804.
23870 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
23880 20 2a 20 29 2c 20 2d 20 33 38 20 41 53 20 63 6f   * ), - 38 AS co
23890 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
238a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
238b0 2d 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -38....skipif my
238c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
238d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
238e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 34  owsort label-804
238f0 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
23900 20 28 20 2a 20 29 2c 20 2d 20 33 38 20 41 53 20   ( * ), - 38 AS 
23910 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
23920 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
23930 0d 0a 2d 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-38....onlyif 
23940 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
23950 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
23960 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
23970 6c 2d 38 30 35 0d 0a 53 45 4c 45 43 54 20 2d 20  l-805..SELECT - 
23980 2b 20 4d 49 4e 28 20 41 4c 4c 20 32 32 20 29 20  + MIN( ALL 22 ) 
23990 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
239a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a 0d 0a  0..----..-22....
239b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
239c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
239d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
239e0 61 62 65 6c 2d 38 30 35 0d 0a 53 45 4c 45 43 54  abel-805..SELECT
239f0 20 2d 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20 32   - + MIN ( ALL 2
23a00 32 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  2 ) FROM tab1 AS
23a10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32   cor0..----..-22
23a20 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
23a30 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
23a40 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
23a50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30 36  owsort label-806
23a60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
23a70 54 20 2d 20 28 20 53 55 4d 28 20 41 4c 4c 20 63  T - ( SUM( ALL c
23a80 6f 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 31 20  ol2 ) ) AS col1 
23a90 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
23aa0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d  0..----..-156...
23ab0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23ac0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23ad0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23ae0 6c 61 62 65 6c 2d 38 30 36 0d 0a 53 45 4c 45 43  label-806..SELEC
23af0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 53  T DISTINCT - ( S
23b00 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20  UM ( ALL col2 ) 
23b10 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
23b20 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
23b30 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 6f 6e 6c 79 69  -..-156....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 38 30 37 0d 0a 53 45 4c 45 43 54 20  bel-807..SELECT 
23b80 37 38 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20  78 * + COUNT( * 
23b90 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
23ba0 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
23bb0 2d 0d 0a 32 33 34 0d 0a 0d 0a 73 6b 69 70 69 66  -..234....skipif
23bc0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
23bd0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
23be0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
23bf0 30 37 0d 0a 53 45 4c 45 43 54 20 37 38 20 2a 20  07..SELECT 78 * 
23c00 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
23c10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
23c20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
23c30 33 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  34....query III 
23c40 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23c50 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ALL * FROM tab1 
23c60 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
23c70 54 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2d 20 63  T + col2 - - - c
23c80 6f 6c 31 20 2b 20 33 38 20 2b 20 2b 20 33 30 20  ol1 + 38 + + 30 
23c90 3c 3d 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 2b 20  <= - col2 - - + 
23ca0 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  col2 + col0 * - 
23cb0 39 39 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  99..----..9 valu
23cc0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36  es hashing to c6
23cd0 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63  c0a4111b36d04dbc
23ce0 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a  811a11e4d54cad..
23cf0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
23d00 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
23d10 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
23d20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
23d30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
23d40 61 62 65 6c 2d 38 30 39 0d 0a 53 45 4c 45 43 54  abel-809..SELECT
23d50 20 28 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e   ( - MAX( DISTIN
23d60 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT - CAST( NULL 
23d70 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 29 20  AS SIGNED ) ) ) 
23d80 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
23d90 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
23da0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
23db0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
23dc0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 30  rowsort label-80
23dd0 39 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 4d 41  9..SELECT ( - MA
23de0 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 43  X ( DISTINCT - C
23df0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
23e00 54 45 47 45 52 20 29 20 29 20 29 20 46 52 4f 4d  TEGER ) ) ) FROM
23e10 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
23e20 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  L....query III r
23e30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
23e40 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
23e50 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 33  r0 WHERE NOT + 3
23e60 38 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  8 NOT BETWEEN + 
23e70 2d 20 36 39 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  - 69 AND NULL..-
23e80 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
23e90 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
23ea0 4c 4c 20 2b 20 28 20 2b 20 2d 20 31 31 20 29 20  LL + ( + - 11 ) 
23eb0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
23ec0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 2d 31  0..----..-11..-1
23ed0 31 0d 0a 2d 31 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  1..-11....onlyif
23ee0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
23ef0 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79  ntax: DECIMAL ty
23f00 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
23f10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 32 0d  wsort label-812.
23f20 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 30  .SELECT + - col0
23f30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
23f40 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  b1 WHERE NOT col
23f50 32 20 2a 20 2d 20 63 6f 6c 32 20 2d 20 43 41 53  2 * - col2 - CAS
23f60 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
23f70 41 4c 20 29 20 2f 20 2d 20 2b 20 38 35 20 2b 20  AL ) / - + 85 + 
23f80 2b 20 63 6f 6c 32 20 3e 20 2d 20 63 6f 6c 30 0d  + col2 > - col0.
23f90 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
23fa0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
23fb0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
23fc0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
23fd0 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  2..SELECT + - co
23fe0 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
23ff0 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63  tab1 WHERE NOT c
24000 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2d 20 43  ol2 * - col2 - C
24010 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45  AST ( NULL AS RE
24020 41 4c 20 29 20 2f 20 2d 20 2b 20 38 35 20 2b 20  AL ) / - + 85 + 
24030 2b 20 63 6f 6c 32 20 3e 20 2d 20 63 6f 6c 30 0d  + col2 > - col0.
24040 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
24050 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24060 20 41 4c 4c 20 63 6f 6c 31 20 2a 20 33 36 20 46   ALL col1 * 36 F
24070 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
24080 0d 0a 2d 2d 2d 2d 0d 0a 31 38 33 36 0d 0a 32 34  ..----..1836..24
24090 31 32 0d 0a 32 37 37 32 0d 0a 0d 0a 71 75 65 72  12..2772....quer
240a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
240b0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 41  ECT ALL - col1 A
240c0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
240d0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
240e0 37 32 20 2b 20 2d 20 2d 20 63 6f 6c 31 20 49 53  72 + - - col1 IS
240f0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   NULL..----..-14
24100 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 6f 6e 6c  ..-47..-5....onl
24110 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
24120 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
24130 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
24140 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
24150 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
24160 28 20 2b 20 2b 20 33 39 20 29 20 44 49 56 20 2b  ( + + 39 ) DIV +
24170 20 63 6f 6c 32 20 2b 20 36 34 20 41 53 20 63 6f   col2 + 64 AS co
24180 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
24190 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a  cor0..----..64..
241a0 36 34 0d 0a 36 34 0d 0a 0d 0a 73 6b 69 70 69 66  64..64....skipif
241b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
241c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
241d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
241e0 31 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  15..SELECT ALL +
241f0 20 28 20 2b 20 2b 20 33 39 20 29 20 2f 20 2b 20   ( + + 39 ) / + 
24200 63 6f 6c 32 20 2b 20 36 34 20 41 53 20 63 6f 6c  col2 + 64 AS col
24210 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
24220 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 36  or0..----..64..6
24230 34 0d 0a 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  4..64....onlyif 
24240 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
24250 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
24260 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24270 6f 72 74 20 6c 61 62 65 6c 2d 38 31 36 0d 0a 53  ort label-816..S
24280 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20 41  ELECT + + col1 A
24290 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
242a0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 63   AS cor0 WHERE c
242b0 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20 63 6f 6c  ol1 NOT IN ( col
242c0 32 20 2b 20 2b 20 37 36 2c 20 2b 20 63 6f 6c 32  2 + + 76, + col2
242d0 2c 20 63 6f 6c 32 20 2f 20 28 20 2b 20 63 6f 6c  , col2 / ( + col
242e0 30 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 32 2c 20  0 ) + - + col2, 
242f0 2d 20 63 6f 6c 32 20 2a 20 39 31 20 2f 20 2d 20  - col2 * 91 / - 
24300 2d 20 43 41 53 54 28 20 2b 20 63 6f 6c 30 20 41  - CAST( + col0 A
24310 53 20 53 49 47 4e 45 44 20 29 20 2f 20 63 6f 6c  S SIGNED ) / col
24320 32 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 29  2 + col2, col0 )
24330 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a  ..----..51..67..
24340 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  77....skipif mys
24350 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24360 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
24370 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 36 0d 0a  sort label-816..
24380 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31 20  SELECT + + col1 
24390 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
243a0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
243b0 63 6f 6c 31 20 4e 4f 54 20 49 4e 20 28 20 63 6f  col1 NOT IN ( co
243c0 6c 32 20 2b 20 2b 20 37 36 2c 20 2b 20 63 6f 6c  l2 + + 76, + col
243d0 32 2c 20 63 6f 6c 32 20 2f 20 28 20 2b 20 63 6f  2, col2 / ( + co
243e0 6c 30 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 32 2c  l0 ) + - + col2,
243f0 20 2d 20 63 6f 6c 32 20 2a 20 39 31 20 2f 20 2d   - col2 * 91 / -
24400 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 30   - CAST ( + col0
24410 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
24420 63 6f 6c 32 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c  col2 + col2, col
24430 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36  0 )..----..51..6
24440 37 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49  7..77....query I
24450 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
24460 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f 6c 32   col2 + - - col2
24470 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
24480 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
24490 0d 0a 31 31 36 0d 0a 34 36 0d 0a 38 30 0d 0a 0d  ..116..46..80...
244a0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
244b0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
244c0 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
244d0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20  AS cor0 WHERE ( 
244e0 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c  - col2 * + - col
244f0 31 20 2a 20 38 38 20 2d 20 63 6f 6c 31 20 29 20  1 * 88 - col1 ) 
24500 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
24510 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
24520 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35  ing to 75c998aa5
24530 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39  3ac83218cbf2feb9
24540 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69  62d0a49....skipi
24550 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
24560 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
24570 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
24580 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
24590 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
245a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
245b0 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20  INCT - col0 + - 
245c0 63 6f 6c 32 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col2 col0 FROM t
245d0 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab2 cor0..----..
245e0 2d 31 30 34 0d 0a 2d 31 33 33 0d 0a 2d 36 39 0d  -104..-133..-69.
245f0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
24600 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
24610 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
24620 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
24630 4e 4f 54 20 63 6f 6c 30 20 3d 20 2d 20 63 6f 6c  NOT col0 = - col
24640 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  2..----..9 value
24650 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
24660 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
24670 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
24680 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24690 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
246a0 54 20 2b 20 35 34 20 2b 20 2d 20 39 37 20 41 53  T + 54 + - 97 AS
246b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
246c0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
246d0 34 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  43....query I ro
246e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
246f0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
24700 48 45 52 45 20 28 20 4e 55 4c 4c 20 3c 3d 20 2b  HERE ( NULL <= +
24710 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
24720 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
24730 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
24740 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20 66 6f  NED type: DIV fo
24750 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
24760 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
24770 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 33  owsort label-823
24780 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b  ..SELECT CAST( +
24790 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45   + col2 AS SIGNE
247a0 44 20 29 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 2b  D ) col0, col0 +
247b0 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f   - col0 + + - co
247c0 6c 32 20 44 49 56 20 63 6f 6c 32 20 41 53 20 63  l2 DIV col2 AS c
247d0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
247e0 2d 2d 2d 0d 0a 31 30 0d 0a 2d 31 0d 0a 34 37 0d  ---..10..-1..47.
247f0 0a 2d 31 0d 0a 39 39 0d 0a 2d 31 0d 0a 0d 0a 73  .-1..99..-1....s
24800 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
24810 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
24820 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
24830 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
24840 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
24850 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
24860 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
24870 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
24880 33 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28  3..SELECT CAST (
24890 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54   + + col2 AS INT
248a0 45 47 45 52 20 29 20 63 6f 6c 30 2c 20 63 6f 6c  EGER ) col0, col
248b0 30 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d  0 + - col0 + + -
248c0 20 63 6f 6c 32 20 2f 20 63 6f 6c 32 20 41 53 20   col2 / col2 AS 
248d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
248e0 2d 2d 2d 2d 0d 0a 31 30 0d 0a 2d 31 0d 0a 34 37  ----..10..-1..47
248f0 0d 0a 2d 31 0d 0a 39 39 0d 0a 2d 31 0d 0a 0d 0a  ..-1..99..-1....
24900 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
24910 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
24920 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
24930 6f 72 74 20 6c 61 62 65 6c 2d 38 32 34 0d 0a 53  ort label-824..S
24940 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  ELECT COUNT( * )
24950 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 63  , + COUNT( * ) c
24960 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
24970 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a 73 6b 69  ---..3..3....ski
24980 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
24990 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
249a0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
249b0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
249c0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
249d0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
249e0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
249f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 34 0d  wsort label-824.
24a00 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
24a10 2a 20 29 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a  * ), + COUNT ( *
24a20 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
24a30 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d  1..----..3..3...
24a40 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
24a50 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
24a60 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c  M tab2 WHERE NUL
24a70 4c 20 3c 3d 20 2d 20 28 20 2b 20 63 6f 6c 30 20  L <= - ( + col0 
24a80 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
24a90 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
24aa0 45 43 54 20 2b 20 38 32 20 41 53 20 63 6f 6c 31  ECT + 82 AS col1
24ab0 2c 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  , + col2 * - col
24ac0 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
24ad0 2d 0d 0a 38 32 0d 0a 2d 33 34 38 31 0d 0a 38 32  -..82..-3481..82
24ae0 0d 0a 2d 34 36 32 34 0d 0a 38 32 0d 0a 2d 39 32  ..-4624..82..-92
24af0 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  16....onlyif mys
24b00 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
24b10 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
24b20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
24b30 20 6c 61 62 65 6c 2d 38 32 37 0d 0a 53 45 4c 45   label-827..SELE
24b40 43 54 20 41 4c 4c 20 2b 20 36 33 20 2b 20 43 41  CT ALL + 63 + CA
24b50 53 54 28 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20  ST( + - col0 AS 
24b60 53 49 47 4e 45 44 20 29 20 2a 20 2d 20 36 20 2d  SIGNED ) * - 6 -
24b70 20 2d 20 31 39 20 2a 20 2d 20 37 20 2a 20 2b 20   - 19 * - 7 * + 
24b80 2b 20 36 38 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 68 AS col2 FRO
24b90 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  M tab1..----..-8
24ba0 34 33 35 0d 0a 2d 38 34 37 31 0d 0a 2d 38 36 37  435..-8471..-867
24bb0 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
24bc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
24bd0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
24be0 6f 72 74 20 6c 61 62 65 6c 2d 38 32 37 0d 0a 53  ort label-827..S
24bf0 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36 33 20 2b  ELECT ALL + 63 +
24c00 20 43 41 53 54 20 28 20 2b 20 2d 20 63 6f 6c 30   CAST ( + - col0
24c10 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
24c20 2d 20 36 20 2d 20 2d 20 31 39 20 2a 20 2d 20 37  - 6 - - 19 * - 7
24c30 20 2a 20 2b 20 2b 20 36 38 20 41 53 20 63 6f 6c   * + + 68 AS col
24c40 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
24c50 2d 0d 0a 2d 38 34 33 35 0d 0a 2d 38 34 37 31 0d  -..-8435..-8471.
24c60 0a 2d 38 36 37 35 0d 0a 0d 0a 71 75 65 72 79 20  .-8675....query 
24c70 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
24c80 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
24c90 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2d  ROM tab1 WHERE -
24ca0 20 38 38 20 42 45 54 57 45 45 4e 20 2d 20 2d 20   88 BETWEEN - - 
24cb0 39 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  9 AND NULL..----
24cc0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
24cd0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
24ce0 63 6f 6c 30 20 2d 20 2b 20 39 33 20 2b 20 2b 20  col0 - + 93 + + 
24cf0 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 46 52  col2 * - col0 FR
24d00 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
24d10 0a 2d 2d 2d 2d 0d 0a 2d 34 39 33 38 0d 0a 2d 35  .----..-4938..-5
24d20 30 32 33 0d 0a 2d 36 31 39 30 0d 0a 0d 0a 73 6b  023..-6190....sk
24d30 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
24d40 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
24d50 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
24d60 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
24d70 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
24d80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
24d90 41 4c 4c 20 2d 20 39 34 20 2a 20 2b 20 63 6f 6c  ALL - 94 * + col
24da0 31 20 41 53 20 63 6f 6c 32 2c 20 30 20 2a 20 2d  1 AS col2, 0 * -
24db0 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f   + col0 + + + co
24dc0 6c 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  l2 col1 FROM tab
24dd0 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 31 36 0d 0a  1..----..-1316..
24de0 39 36 0d 0a 2d 34 34 31 38 0d 0a 36 38 0d 0a 2d  96..-4418..68..-
24df0 34 37 30 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79  470..59....query
24e00 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
24e10 43 54 20 2b 20 37 36 20 41 53 20 63 6f 6c 31 20  CT + 76 AS col1 
24e20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
24e30 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
24e40 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  0 AS cor1..----.
24e50 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
24e60 67 20 74 6f 20 33 30 62 38 39 34 31 61 37 30 30  g to 30b8941a700
24e70 63 66 66 64 35 62 39 38 33 31 31 36 33 38 33 62  cffd5b983116383b
24e80 64 34 32 64 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  d42d5....onlyif 
24e90 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
24ea0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
24eb0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
24ec0 6f 72 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a 53  ort label-832..S
24ed0 45 4c 45 43 54 20 2b 20 28 20 2d 20 2b 20 33 36  ELECT + ( - + 36
24ee0 20 29 20 44 49 56 20 39 38 20 46 52 4f 4d 20 74   ) DIV 98 FROM t
24ef0 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab0 AS cor0 CROS
24f00 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
24f10 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  or1..----..9 val
24f20 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 38  ues hashing to 8
24f30 62 37 35 31 33 36 62 32 62 35 31 63 37 37 33 34  b75136b2b51c7734
24f40 35 63 30 33 38 30 34 65 63 31 63 64 61 35 63 0d  5c03804ec1cda5c.
24f50 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
24f60 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
24f70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24f80 74 20 6c 61 62 65 6c 2d 38 33 32 0d 0a 53 45 4c  t label-832..SEL
24f90 45 43 54 20 2b 20 28 20 2d 20 2b 20 33 36 20 29  ECT + ( - + 36 )
24fa0 20 2f 20 39 38 20 46 52 4f 4d 20 74 61 62 30 20   / 98 FROM tab0 
24fb0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
24fc0 49 4e 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d  IN tab0 AS cor1.
24fd0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
24fe0 68 61 73 68 69 6e 67 20 74 6f 20 38 62 37 35 31  hashing to 8b751
24ff0 33 36 62 32 62 35 31 63 37 37 33 34 35 63 30 33  36b2b51c77345c03
25000 38 30 34 65 63 31 63 64 61 35 63 0d 0a 0d 0a 6f  804ec1cda5c....o
25010 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
25020 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
25030 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
25040 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
25050 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
25060 6c 2d 38 33 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-833..SELECT - 
25070 28 20 2b 20 43 41 53 54 28 20 2b 20 2d 20 43 4f  ( + CAST( + - CO
25080 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e  UNT( * ) AS SIGN
25090 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  ED ) ) FROM tab0
250a0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
250b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
250c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
250d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
250e0 20 6c 61 62 65 6c 2d 38 33 33 0d 0a 53 45 4c 45   label-833..SELE
250f0 43 54 20 2d 20 28 20 2b 20 43 41 53 54 20 28 20  CT - ( + CAST ( 
25100 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
25110 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 46  AS INTEGER ) ) F
25120 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
25130 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..3....onlyif
25140 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
25150 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
25160 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
25170 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
25180 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 34  owsort label-834
25190 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
251a0 41 53 54 28 20 2d 20 28 20 2b 20 53 55 4d 28 20  AST( - ( + SUM( 
251b0 41 4c 4c 20 63 6f 6c 31 20 29 20 29 20 41 53 20  ALL col1 ) ) AS 
251c0 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61  SIGNED ) FROM ta
251d0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
251e0 0d 0a 2d 36 36 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-66....skipif 
251f0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
25200 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
25210 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
25220 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
25230 43 41 53 54 20 28 20 2d 20 28 20 2b 20 53 55 4d  CAST ( - ( + SUM
25240 20 28 20 41 4c 4c 20 63 6f 6c 31 20 29 20 29 20   ( ALL col1 ) ) 
25250 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
25260 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
25270 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 71 75 65  ----..-66....que
25280 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
25290 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2a  ELECT - + col2 *
252a0 20 2b 20 33 36 2c 20 37 36 20 41 53 20 63 6f 6c   + 36, 76 AS col
252b0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
252c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 32 34  or0..----..-2124
252d0 0d 0a 37 36 0d 0a 2d 32 34 34 38 0d 0a 37 36 0d  ..76..-2448..76.
252e0 0a 2d 33 34 35 36 0d 0a 37 36 0d 0a 0d 0a 71 75  .-3456..76....qu
252f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
25300 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2d  ELECT - col0 * -
25310 20 2d 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 31   - col0 - + col1
25320 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2d 20   - - col0 + - - 
25330 39 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  93 AS col2 FROM 
25340 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
25350 0a 2d 31 39 38 0d 0a 2d 37 34 31 30 0d 0a 2d 39  .-198..-7410..-9
25360 32 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  220....query I r
25370 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
25380 20 36 30 20 2a 20 2d 20 33 20 41 53 20 63 6f 6c   60 * - 3 AS col
25390 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  2 FROM tab1 cor0
253a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 30 0d 0a 2d 31  ..----..-180..-1
253b0 38 30 0d 0a 2d 31 38 30 0d 0a 0d 0a 6f 6e 6c 79  80..-180....only
253c0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
253d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
253e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
253f0 61 62 65 6c 2d 38 33 38 0d 0a 53 45 4c 45 43 54  abel-838..SELECT
25400 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   - COUNT( * ) * 
25410 2b 20 4d 41 58 28 20 63 6f 6c 30 20 29 20 41 53  + MAX( col0 ) AS
25420 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
25430 0a 2d 2d 2d 2d 0d 0a 2d 32 37 33 0d 0a 0d 0a 73  .----..-273....s
25440 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
25450 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
25460 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25470 62 65 6c 2d 38 33 38 0d 0a 53 45 4c 45 43 54 20  bel-838..SELECT 
25480 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
25490 2b 20 4d 41 58 20 28 20 63 6f 6c 30 20 29 20 41  + MAX ( col0 ) A
254a0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
254b0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 33 0d 0a 0d 0a  ..----..-273....
254c0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
254d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
254e0 20 36 32 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20   62 * + col0 AS 
254f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
25500 2d 2d 2d 2d 0d 0a 33 31 36 32 0d 0a 35 32 37 30  ----..3162..5270
25510 0d 0a 35 36 34 32 0d 0a 0d 0a 71 75 65 72 79 20  ..5642....query 
25520 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25530 54 20 41 4c 4c 20 31 31 20 2a 20 2b 20 2d 20 63  T ALL 11 * + - c
25540 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
25550 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30   tab1..----..-10
25560 30 31 0d 0a 2d 35 36 31 0d 0a 2d 39 33 35 0d 0a  01..-561..-935..
25570 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
25580 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
25590 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
255a0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 31 0d 0a  sort label-841..
255b0 53 45 4c 45 43 54 20 2d 20 35 30 20 2a 20 2b 20  SELECT - 50 * + 
255c0 2d 20 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c 32 20  - MIN( ALL col2 
255d0 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
255e0 2d 0d 0a 31 31 35 30 0d 0a 0d 0a 73 6b 69 70 69  -..1150....skipi
255f0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
25600 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
25610 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
25620 38 34 31 0d 0a 53 45 4c 45 43 54 20 2d 20 35 30  841..SELECT - 50
25630 20 2a 20 2b 20 2d 20 4d 49 4e 20 28 20 41 4c 4c   * + - MIN ( ALL
25640 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
25650 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 30 0d 0a 0d  2..----..1150...
25660 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
25670 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
25680 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c  CT col0 AS col2,
25690 20 2d 20 37 33 20 41 53 20 63 6f 6c 31 20 46 52   - 73 AS col1 FR
256a0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
256b0 54 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 63 6f  T NULL IN ( - co
256c0 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l0 )..----....on
256d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
256e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
256f0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
25700 74 20 6c 61 62 65 6c 2d 38 34 33 0d 0a 53 45 4c  t label-843..SEL
25710 45 43 54 20 33 36 2c 20 33 35 20 2b 20 2b 20 43  ECT 36, 35 + + C
25720 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
25730 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
25740 2d 0d 0a 33 36 0d 0a 33 38 0d 0a 0d 0a 73 6b 69  -..36..38....ski
25750 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
25760 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
25770 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
25780 65 6c 2d 38 34 33 0d 0a 53 45 4c 45 43 54 20 33  el-843..SELECT 3
25790 36 2c 20 33 35 20 2b 20 2b 20 43 4f 55 4e 54 20  6, 35 + + COUNT 
257a0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
257b0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
257c0 36 0d 0a 33 38 0d 0a 0d 0a 71 75 65 72 79 20 49  6..38....query I
257d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
257e0 54 20 2b 20 63 6f 6c 32 2c 20 2b 20 34 35 20 46  T + col2, + 45 F
257f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
25800 31 30 0d 0a 34 35 0d 0a 34 37 0d 0a 34 35 0d 0a  10..45..47..45..
25810 39 39 0d 0a 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66  99..45....onlyif
25820 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
25830 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
25840 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
25850 62 65 6c 2d 38 34 35 0d 0a 53 45 4c 45 43 54 20  bel-845..SELECT 
25860 41 4c 4c 20 2d 20 37 37 20 41 53 20 63 6f 6c 31  ALL - 77 AS col1
25870 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a  , - COUNT( * ) *
25880 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20   + COUNT( ALL + 
25890 34 39 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20  49 ) * + COUNT( 
258a0 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * ) col2 FROM ta
258b0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 2d  b0..----..-77..-
258c0 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  27....skipif mys
258d0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
258e0 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
258f0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
25900 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
25910 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
25920 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
25930 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
25940 61 62 65 6c 2d 38 34 35 0d 0a 53 45 4c 45 43 54  abel-845..SELECT
25950 20 41 4c 4c 20 2d 20 37 37 20 41 53 20 63 6f 6c   ALL - 77 AS col
25960 31 2c 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  1, - COUNT ( * )
25970 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c   * + COUNT ( ALL
25980 20 2b 20 34 39 20 29 20 2a 20 2b 20 43 4f 55 4e   + 49 ) * + COUN
25990 54 20 28 20 2a 20 29 20 63 6f 6c 32 20 46 52 4f  T ( * ) col2 FRO
259a0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  M tab0..----..-7
259b0 37 0d 0a 2d 32 37 0d 0a 0d 0a 71 75 65 72 79 20  7..-27....query 
259c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
259d0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
259e0 6c 31 20 2b 20 31 37 2c 20 2d 20 28 20 2d 20 32  l1 + 17, - ( - 2
259f0 33 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  3 ) AS col1 FROM
25a00 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d   tab1..----..22.
25a10 0a 32 33 0d 0a 33 31 0d 0a 32 33 0d 0a 36 34 0d  .23..31..23..64.
25a20 0a 32 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .23....onlyif my
25a30 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
25a40 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
25a50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25a60 74 20 6c 61 62 65 6c 2d 38 34 37 0d 0a 53 45 4c  t label-847..SEL
25a70 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
25a80 54 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47  T( - col0 AS SIG
25a90 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52  NED ) AS col0 FR
25aa0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
25ab0 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a  51..-85..-91....
25ac0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
25ad0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
25ae0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
25af0 61 62 65 6c 2d 38 34 37 0d 0a 53 45 4c 45 43 54  abel-847..SELECT
25b00 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20 28   DISTINCT CAST (
25b10 20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47   - col0 AS INTEG
25b20 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ER ) AS col0 FRO
25b30 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab1..----..-5
25b40 31 0d 0a 2d 38 35 0d 0a 2d 39 31 0d 0a 0d 0a 6f  1..-85..-91....o
25b50 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
25b60 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
25b70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25b80 74 20 6c 61 62 65 6c 2d 38 34 38 0d 0a 53 45 4c  t label-848..SEL
25b90 45 43 54 20 32 20 2a 20 2d 20 43 4f 55 4e 54 28  ECT 2 * - COUNT(
25ba0 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
25bb0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab2..----..-6
25bc0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
25bd0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
25be0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
25bf0 72 74 20 6c 61 62 65 6c 2d 38 34 38 0d 0a 53 45  rt label-848..SE
25c00 4c 45 43 54 20 32 20 2a 20 2d 20 43 4f 55 4e 54  LECT 2 * - COUNT
25c10 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
25c20 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
25c30 2d 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  -6....onlyif mys
25c40 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
25c50 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20  : DECIMAL type: 
25c60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25c70 74 20 6c 61 62 65 6c 2d 38 34 39 0d 0a 53 45 4c  t label-849..SEL
25c80 45 43 54 20 2d 20 2d 20 33 30 20 41 53 20 63 6f  ECT - - 30 AS co
25c90 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
25ca0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
25cb0 74 61 62 30 20 63 6f 72 31 20 57 48 45 52 45 20  tab0 cor1 WHERE 
25cc0 4e 4f 54 20 28 20 4e 4f 54 20 4e 55 4c 4c 20 3c  NOT ( NOT NULL <
25cd0 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
25ce0 20 44 45 43 49 4d 41 4c 20 29 20 29 0d 0a 2d 2d   DECIMAL ) )..--
25cf0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
25d00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
25d10 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
25d20 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 39 0d 0a  sort label-849..
25d30 53 45 4c 45 43 54 20 2d 20 2d 20 33 30 20 41 53  SELECT - - 30 AS
25d40 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
25d50 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
25d60 49 4e 20 74 61 62 30 20 63 6f 72 31 20 57 48 45  IN tab0 cor1 WHE
25d70 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 4e 55 4c  RE NOT ( NOT NUL
25d80 4c 20 3c 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  L < - CAST ( NUL
25d90 4c 20 41 53 20 52 45 41 4c 20 29 20 29 0d 0a 2d  L AS REAL ) )..-
25da0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
25db0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
25dc0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
25dd0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25de0 74 20 6c 61 62 65 6c 2d 38 35 30 0d 0a 53 45 4c  t label-850..SEL
25df0 45 43 54 20 41 4c 4c 20 2b 20 2b 20 28 20 2d 20  ECT ALL + + ( - 
25e00 43 41 53 54 28 20 34 31 20 41 53 20 53 49 47 4e  CAST( 41 AS SIGN
25e10 45 44 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  ED ) ) FROM tab0
25e20 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31   cor0..----..-41
25e30 0d 0a 2d 34 31 0d 0a 2d 34 31 0d 0a 0d 0a 73 6b  ..-41..-41....sk
25e40 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
25e50 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
25e60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
25e70 65 6c 2d 38 35 30 0d 0a 53 45 4c 45 43 54 20 41  el-850..SELECT A
25e80 4c 4c 20 2b 20 2b 20 28 20 2d 20 43 41 53 54 20  LL + + ( - CAST 
25e90 28 20 34 31 20 41 53 20 49 4e 54 45 47 45 52 20  ( 41 AS INTEGER 
25ea0 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ) ) FROM tab0 co
25eb0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 31 0d 0a 2d  r0..----..-41..-
25ec0 34 31 0d 0a 2d 34 31 0d 0a 0d 0a 71 75 65 72 79  41..-41....query
25ed0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
25ee0 43 54 20 2b 20 28 20 2d 20 2b 20 63 6f 6c 30 20  CT + ( - + col0 
25ef0 29 20 2a 20 2d 20 37 34 20 2a 20 2d 20 35 36 20  ) * - 74 * - 56 
25f00 2a 20 33 31 20 2d 20 37 35 20 2a 20 2b 20 2d 20  * 31 - 75 * + - 
25f10 63 6f 6c 32 20 2a 20 2d 20 2d 20 32 34 20 41 53  col2 * - - 24 AS
25f20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
25f30 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
25f40 31 30 38 31 33 32 34 30 0d 0a 2d 31 31 35 36 37  10813240..-11567
25f50 38 32 34 0d 0a 2d 36 33 37 38 38 36 34 0d 0a 0d  824..-6378864...
25f60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
25f70 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
25f80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
25f90 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63  r0 WHERE NOT - c
25fa0 6f 6c 32 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 63  ol2 * col1 * - c
25fb0 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
25fc0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
25fd0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25fe0 20 2d 20 2d 20 28 20 63 6f 6c 32 20 29 20 2d 20   - - ( col2 ) - 
25ff0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
26000 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
26010 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
26020 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
26030 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
26040 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
26050 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
26060 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26070 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28 20  t..SELECT + - ( 
26080 2d 20 2b 20 39 33 20 29 20 2d 20 63 6f 6c 31 20  - + 93 ) - col1 
26090 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
260a0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  S cor0..----..16
260b0 0d 0a 32 36 0d 0a 34 32 0d 0a 0d 0a 73 6b 69 70  ..26..42....skip
260c0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
260d0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
260e0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
260f0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
26100 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
26110 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
26120 54 49 4e 43 54 20 2d 20 38 38 20 2a 20 63 6f 6c  TINCT - 88 * col
26130 32 20 2b 20 2b 20 63 6f 6c 32 20 63 6f 6c 32 20  2 + + col2 col2 
26140 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
26150 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 38 39 0d 0a  0..----..-4089..
26160 2d 38 36 31 33 0d 0a 2d 38 37 30 0d 0a 0d 0a 6f  -8613..-870....o
26170 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
26180 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
26190 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
261a0 74 20 6c 61 62 65 6c 2d 38 35 36 0d 0a 53 45 4c  t label-856..SEL
261b0 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  ECT + COUNT( * )
261c0 20 2b 20 2b 20 2b 20 39 37 20 2a 20 2d 20 2d 20   + + + 97 * - - 
261d0 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 32 20  COUNT( * ) col2 
261e0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
261f0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 34 0d 0a 0d 0a  0..----..294....
26200 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
26210 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
26220 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
26230 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
26240 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
26250 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
26260 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
26270 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
26280 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  6..SELECT + COUN
26290 54 20 28 20 2a 20 29 20 2b 20 2b 20 2b 20 39 37  T ( * ) + + + 97
262a0 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a   * - - COUNT ( *
262b0 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
262c0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
262d0 0a 32 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .294....query I 
262e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
262f0 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2d 20  col0 + - col2 - 
26300 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46  - col1 AS col0 F
26310 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
26320 2d 33 31 0d 0a 33 31 0d 0a 37 30 0d 0a 0d 0a 6f  -31..31..70....o
26330 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
26340 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
26350 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
26360 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
26370 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26380 6c 2d 38 35 38 0d 0a 53 45 4c 45 43 54 20 44 49  l-858..SELECT DI
26390 53 54 49 4e 43 54 20 32 20 2b 20 2b 20 43 4f 55  STINCT 2 + + COU
263a0 4e 54 28 20 2a 20 29 20 2b 20 2b 20 43 41 53 54  NT( * ) + + CAST
263b0 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
263c0 20 29 20 2a 20 32 33 20 46 52 4f 4d 20 74 61 62   ) * 23 FROM tab
263d0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
263e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
263f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
26400 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26410 6c 61 62 65 6c 2d 38 35 38 0d 0a 53 45 4c 45 43  label-858..SELEC
26420 54 20 44 49 53 54 49 4e 43 54 20 32 20 2b 20 2b  T DISTINCT 2 + +
26430 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
26440 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
26450 49 4e 54 45 47 45 52 20 29 20 2a 20 32 33 20 46  INTEGER ) * 23 F
26460 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
26470 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
26480 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
26490 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
264a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
264b0 2d 38 35 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -859..SELECT DIS
264c0 54 49 4e 43 54 20 4d 49 4e 28 20 41 4c 4c 20 34  TINCT MIN( ALL 4
264d0 39 20 29 20 2d 20 31 20 2b 20 2d 20 31 20 63 6f  9 ) - 1 + - 1 co
264e0 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
264f0 2d 2d 0d 0a 34 37 0d 0a 0d 0a 73 6b 69 70 69 66  --..47....skipif
26500 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26510 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
26520 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
26530 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
26540 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
26550 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
26560 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26570 74 20 6c 61 62 65 6c 2d 38 35 39 0d 0a 53 45 4c  t label-859..SEL
26580 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e  ECT DISTINCT MIN
26590 20 28 20 41 4c 4c 20 34 39 20 29 20 2d 20 31 20   ( ALL 49 ) - 1 
265a0 2b 20 2d 20 31 20 63 6f 6c 32 20 46 52 4f 4d 20  + - 1 col2 FROM 
265b0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a  tab2..----..47..
265c0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
265d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
265e0 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20  OM tab1 WHERE ( 
265f0 2d 20 63 6f 6c 32 20 29 20 2a 20 2d 20 2b 20 63  - col2 ) * - + c
26600 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2f  ol1 * + + col2 /
26610 20 39 31 20 49 4e 20 28 20 31 31 20 29 0d 0a 2d   91 IN ( 11 )..-
26620 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
26630 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
26640 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32   - col0 * + col2
26650 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   + - + col0 FROM
26660 20 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 30   tab2 WHERE col0
26670 20 2f 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 38 36   / + col0 + - 86
26680 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
26690 2d 2d 0d 0a 31 30 31 32 0d 0a 32 34 39 36 0d 0a  --..1012..2496..
266a0 34 32 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4275....query I 
266b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
266c0 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20  DISTINCT col0 + 
266d0 2b 20 35 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f  + 5 * - col1 FRO
266e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
266f0 38 0d 0a 2d 33 39 30 0d 0a 39 32 0d 0a 0d 0a 71  8..-390..92....q
26700 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26710 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
26720 32 20 2b 20 2d 20 2d 20 34 34 20 41 53 20 63 6f  2 + - - 44 AS co
26730 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
26740 2d 2d 0d 0a 2d 31 34 0d 0a 32 31 0d 0a 34 0d 0a  --..-14..21..4..
26750 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26760 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
26770 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
26780 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 34 0d 0a  sort label-864..
26790 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43  SELECT ALL - + C
267a0 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 53 55  OUNT( * ) * + SU
267b0 4d 28 20 2b 20 2d 20 36 35 20 29 20 2b 20 2b 20  M( + - 65 ) + + 
267c0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
267d0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
267e0 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38 38 0d 0a 0d 0a  0..----..588....
267f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
26800 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
26810 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26820 61 62 65 6c 2d 38 36 34 0d 0a 53 45 4c 45 43 54  abel-864..SELECT
26830 20 41 4c 4c 20 2d 20 2b 20 43 4f 55 4e 54 20 28   ALL - + COUNT (
26840 20 2a 20 29 20 2a 20 2b 20 53 55 4d 20 28 20 2b   * ) * + SUM ( +
26850 20 2d 20 36 35 20 29 20 2b 20 2b 20 43 4f 55 4e   - 65 ) + + COUN
26860 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
26870 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
26880 2d 2d 2d 2d 0d 0a 35 38 38 0d 0a 0d 0a 6f 6e 6c  ----..588....onl
26890 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
268a0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
268b0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
268c0 20 6c 61 62 65 6c 2d 38 36 35 0d 0a 53 45 4c 45   label-865..SELE
268d0 43 54 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 31  CT + MAX( - col1
268e0 20 29 20 2a 20 2d 20 32 33 2c 20 2b 20 32 37 20   ) * - 23, + 27 
268f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
26900 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31  S cor0..----..11
26910 37 33 0d 0a 32 37 0d 0a 0d 0a 73 6b 69 70 69 66  73..27....skipif
26920 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26930 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20  patible..skipif 
26940 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
26950 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
26960 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
26970 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
26980 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
26990 72 74 20 6c 61 62 65 6c 2d 38 36 35 0d 0a 53 45  rt label-865..SE
269a0 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 2d 20 63  LECT + MAX ( - c
269b0 6f 6c 31 20 29 20 2a 20 2d 20 32 33 2c 20 2b 20  ol1 ) * - 23, + 
269c0 32 37 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  27 col2 FROM tab
269d0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
269e0 0a 31 31 37 33 0d 0a 32 37 0d 0a 0d 0a 6f 6e 6c  .1173..27....onl
269f0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
26a00 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
26a10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26a20 6c 61 62 65 6c 2d 38 36 36 0d 0a 53 45 4c 45 43  label-866..SELEC
26a30 54 20 2d 20 2b 20 43 4f 55 4e 54 28 20 39 35 20  T - + COUNT( 95 
26a40 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
26a50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d  or0..----..-3...
26a60 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
26a70 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
26a80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26a90 6c 61 62 65 6c 2d 38 36 36 0d 0a 53 45 4c 45 43  label-866..SELEC
26aa0 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 39 35  T - + COUNT ( 95
26ab0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
26ac0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
26ad0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
26ae0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
26af0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
26b00 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
26b10 65 6c 2d 38 36 37 0d 0a 53 45 4c 45 43 54 20 28  el-867..SELECT (
26b20 20 63 6f 6c 30 20 29 20 2a 20 2d 20 43 41 53 54   col0 ) * - CAST
26b30 28 20 2d 20 63 6f 6c 30 20 41 53 20 53 49 47 4e  ( - col0 AS SIGN
26b40 45 44 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  ED ) * + + col1 
26b50 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
26b60 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  2 cor0..----..10
26b70 37 39 31 36 0d 0a 33 31 35 33 39 32 0d 0a 33 37  7916..315392..37
26b80 36 38 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  6875....skipif m
26b90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26ba0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
26bb0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 37  owsort label-867
26bc0 0d 0a 53 45 4c 45 43 54 20 28 20 63 6f 6c 30 20  ..SELECT ( col0 
26bd0 29 20 2a 20 2d 20 43 41 53 54 20 28 20 2d 20 63  ) * - CAST ( - c
26be0 6f 6c 30 20 41 53 20 49 4e 54 45 47 45 52 20 29  ol0 AS INTEGER )
26bf0 20 2a 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63   * + + col1 AS c
26c00 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol2 FROM tab2 co
26c10 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 39 31 36  r0..----..107916
26c20 0d 0a 33 31 35 33 39 32 0d 0a 33 37 36 38 37 35  ..315392..376875
26c30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
26c40 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
26c50 49 4e 43 54 20 28 20 2b 20 2b 20 39 36 20 29 20  INCT ( + + 96 ) 
26c60 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
26c70 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .96....query I r
26c80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
26c90 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
26ca0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
26cb0 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55  T NULL IS NOT NU
26cc0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34  LL..----..46..64
26cd0 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..75....query I 
26ce0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
26cf0 41 4c 4c 20 28 20 2d 20 2b 20 63 6f 6c 31 20 29  ALL ( - + col1 )
26d00 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
26d10 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32  b0..----..-1..-2
26d20 31 0d 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20  1..-81....query 
26d30 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
26d40 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
26d50 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
26d60 45 20 2b 20 35 38 20 49 53 20 4e 55 4c 4c 0d 0a  E + 58 IS NULL..
26d70 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
26d80 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
26d90 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
26da0 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  * - - col2 AS co
26db0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
26dc0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 38  cor0..----..-348
26dd0 31 0d 0a 2d 34 36 32 34 0d 0a 2d 39 32 31 36 0d  1..-4624..-9216.
26de0 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
26df0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
26e00 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2d 20 28 20  l0 AS col2, - ( 
26e10 2b 20 2d 20 37 35 20 29 20 46 52 4f 4d 20 74 61  + - 75 ) FROM ta
26e20 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
26e30 0d 0a 2d 31 35 0d 0a 37 35 0d 0a 2d 38 37 0d 0a  ..-15..75..-87..
26e40 37 35 0d 0a 2d 39 37 0d 0a 37 35 0d 0a 0d 0a 6f  75..-97..75....o
26e50 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
26e60 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
26e70 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
26e80 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
26e90 2d 38 37 34 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -874..SELECT + c
26ea0 6f 6c 30 2c 20 2d 20 63 6f 6c 31 20 44 49 56 20  ol0, - col1 DIV 
26eb0 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  - col2 FROM tab2
26ec0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
26ed0 34 36 0d 0a 32 0d 0a 36 34 0d 0a 31 0d 0a 37 35  46..2..64..1..75
26ee0 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
26ef0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
26f00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
26f10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 34  owsort label-874
26f20 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 2c  ..SELECT + col0,
26f30 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 32   - col1 / - col2
26f40 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
26f50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 32 0d  r0..----..46..2.
26f60 0a 36 34 0d 0a 31 0d 0a 37 35 0d 0a 31 0d 0a 0d  .64..1..75..1...
26f70 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
26f80 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
26f90 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
26fa0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
26fb0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
26fc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
26fd0 54 20 41 4c 4c 20 2d 20 37 30 20 63 6f 6c 31 20  T ALL - 70 col1 
26fe0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
26ff0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 0d 0a 2d 37  0..----..-70..-7
27000 30 0d 0a 2d 37 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..-70....onlyif
27010 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
27020 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
27030 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
27040 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 36 0d 0a  sort label-876..
27050 53 45 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 28  SELECT + + CAST(
27060 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
27070 29 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d  ) * + - col0 * -
27080 20 32 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53   23 FROM tab0 AS
27090 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
270a0 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
270b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
270c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
270d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
270e0 6c 61 62 65 6c 2d 38 37 36 0d 0a 53 45 4c 45 43  label-876..SELEC
270f0 54 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  T + + CAST ( NUL
27100 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
27110 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 32 33   + - col0 * - 23
27120 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
27130 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
27140 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
27150 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
27160 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
27170 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
27180 52 45 20 2d 20 2d 20 34 36 20 2a 20 2d 20 2d 20  RE - - 46 * - - 
27190 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col2 IS NOT NULL
271a0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
271b0 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
271c0 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
271d0 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
271e0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
271f0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
27200 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
27210 72 74 20 6c 61 62 65 6c 2d 38 37 38 0d 0a 53 45  rt label-878..SE
27220 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
27230 2d 20 53 55 4d 28 20 2b 20 2b 20 63 6f 6c 30 20  - SUM( + + col0 
27240 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  ) FROM tab1 WHER
27250 45 20 4e 4f 54 20 28 20 4e 4f 54 20 32 31 20 3c  E NOT ( NOT 21 <
27260 3d 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  = NULL )..----..
27270 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
27280 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27290 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
272a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 38  owsort label-878
272b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
272c0 54 20 2b 20 2d 20 53 55 4d 20 28 20 2b 20 2b 20  T + - SUM ( + + 
272d0 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
272e0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 4f 54   WHERE NOT ( NOT
272f0 20 32 31 20 3c 3d 20 4e 55 4c 4c 20 29 0d 0a 2d   21 <= NULL )..-
27300 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
27310 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
27320 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
27330 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
27340 4e 4f 54 20 28 20 2b 20 63 6f 6c 32 20 2b 20 2d  NOT ( + col2 + -
27350 20 37 34 20 29 20 3c 20 2d 20 38 37 0d 0a 2d 2d   74 ) < - 87..--
27360 2d 2d 0d 0a 2d 32 33 0d 0a 2d 34 30 0d 0a 2d 35  --..-23..-40..-5
27370 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
27380 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
27390 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
273a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
273b0 6c 61 62 65 6c 2d 38 38 30 0d 0a 53 45 4c 45 43  label-880..SELEC
273c0 54 20 38 37 20 44 49 56 20 33 20 46 52 4f 4d 20  T 87 DIV 3 FROM 
273d0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a  tab0..----..29..
273e0 32 39 0d 0a 32 39 0d 0a 0d 0a 73 6b 69 70 69 66  29..29....skipif
273f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
27400 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
27410 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
27420 38 30 0d 0a 53 45 4c 45 43 54 20 38 37 20 2f 20  80..SELECT 87 / 
27430 33 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  3 FROM tab0..---
27440 2d 0d 0a 32 39 0d 0a 32 39 0d 0a 32 39 0d 0a 0d  -..29..29..29...
27450 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
27460 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
27470 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
27480 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 31 0d 0a  sort label-881..
27490 53 45 4c 45 43 54 20 53 55 4d 28 20 44 49 53 54  SELECT SUM( DIST
274a0 49 4e 43 54 20 2d 20 37 37 20 29 20 41 53 20 63  INCT - 77 ) AS c
274b0 6f 6c 32 2c 20 35 39 20 41 53 20 63 6f 6c 31 20  ol2, 59 AS col1 
274c0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
274d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 35 39  0..----..-77..59
274e0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
274f0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
27500 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
27510 6f 72 74 20 6c 61 62 65 6c 2d 38 38 31 0d 0a 53  ort label-881..S
27520 45 4c 45 43 54 20 53 55 4d 20 28 20 44 49 53 54  ELECT SUM ( DIST
27530 49 4e 43 54 20 2d 20 37 37 20 29 20 41 53 20 63  INCT - 77 ) AS c
27540 6f 6c 32 2c 20 35 39 20 41 53 20 63 6f 6c 31 20  ol2, 59 AS col1 
27550 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
27560 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 35 39  0..----..-77..59
27570 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
27580 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
27590 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
275a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38 32  owsort label-882
275b0 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
275c0 2a 20 29 20 2a 20 4d 49 4e 28 20 2d 20 63 6f 6c  * ) * MIN( - col
275d0 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  1 ) FROM tab2 co
275e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 31 0d 0a  r0..----..-231..
275f0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
27600 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
27610 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27620 20 6c 61 62 65 6c 2d 38 38 32 0d 0a 53 45 4c 45   label-882..SELE
27630 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a  CT COUNT ( * ) *
27640 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 31 20 29 20   MIN ( - col1 ) 
27650 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
27660 2d 2d 2d 2d 0d 0a 2d 32 33 31 0d 0a 0d 0a 71 75  ----..-231....qu
27670 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27680 45 4c 45 43 54 20 2d 20 33 33 20 2b 20 2d 20 2d  ELECT - 33 + - -
27690 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2b   col1 + + col0 +
276a0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
276b0 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a 31 37 32 0d  .----..110..172.
276c0 0a 31 38 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .184....onlyif m
276d0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
276e0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
276f0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
27700 6f 72 74 20 6c 61 62 65 6c 2d 38 38 34 0d 0a 53  ort label-884..S
27710 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 2d 20 2d  ELECT col2 * - -
27720 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
27730 49 47 4e 45 44 20 29 20 2b 20 2d 20 2b 20 37 31  IGNED ) + - + 71
27740 20 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 41   AS col1, col1 A
27750 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
27760 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 31  ..----..NULL..51
27770 0d 0a 4e 55 4c 4c 0d 0a 36 37 0d 0a 4e 55 4c 4c  ..NULL..67..NULL
27780 0d 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..77....skipif m
27790 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
277a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
277b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
277c0 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a  4..SELECT col2 *
277d0 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   - - CAST ( NULL
277e0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
277f0 2d 20 2b 20 37 31 20 41 53 20 63 6f 6c 31 2c 20  - + 71 AS col1, 
27800 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
27810 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab2..----..NU
27820 4c 4c 0d 0a 35 31 0d 0a 4e 55 4c 4c 0d 0a 36 37  LL..51..NULL..67
27830 0d 0a 4e 55 4c 4c 0d 0a 37 37 0d 0a 0d 0a 6f 6e  ..NULL..77....on
27840 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
27850 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
27860 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
27870 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
27880 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27890 2d 38 38 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -885..SELECT DIS
278a0 54 49 4e 43 54 20 43 41 53 54 28 20 2b 20 4d 41  TINCT CAST( + MA
278b0 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29 20  X( ALL - col1 ) 
278c0 41 53 20 53 49 47 4e 45 44 20 29 20 2d 20 2b 20  AS SIGNED ) - + 
278d0 2b 20 38 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 80 FROM tab2..
278e0 2d 2d 2d 2d 0d 0a 2d 31 33 31 0d 0a 0d 0a 73 6b  ----..-131....sk
278f0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
27900 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
27910 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
27920 65 6c 2d 38 38 35 0d 0a 53 45 4c 45 43 54 20 44  el-885..SELECT D
27930 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 2b  ISTINCT CAST ( +
27940 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c   MAX ( ALL - col
27950 31 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  1 ) AS INTEGER )
27960 20 2d 20 2b 20 2b 20 38 30 20 46 52 4f 4d 20 74   - + + 80 FROM t
27970 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 31 0d  ab2..----..-131.
27980 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
27990 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
279a0 6c 31 20 2b 20 2b 20 36 38 20 2a 20 2d 20 2d 20  l1 + + 68 * - - 
279b0 39 32 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 31  92 AS col0, col1
279c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
279d0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 31 37 39 0d 0a  b2..----..6179..
279e0 37 37 0d 0a 36 31 38 39 0d 0a 36 37 0d 0a 36 32  77..6189..67..62
279f0 30 35 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20  05..51....query 
27a00 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
27a10 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20  CT - col2 + + - 
27a20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2b  ( - - col1 ) + +
27a30 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c   - col0 AS col0,
27a40 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   + col1 FROM tab
27a50 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  1 cor0..----..-1
27a60 34 39 0d 0a 35 0d 0a 2d 31 36 31 0d 0a 31 34 0d  49..5..-161..14.
27a70 0a 2d 32 30 36 0d 0a 34 37 0d 0a 0d 0a 71 75 65  .-206..47....que
27a80 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
27a90 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
27aa0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
27ab0 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c  HERE NOT ( + col
27ac0 31 20 2b 20 2d 20 35 32 20 49 53 20 4e 55 4c 4c  1 + - 52 IS NULL
27ad0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75   )..----..9 valu
27ae0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
27af0 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
27b00 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
27b10 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
27b20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
27b30 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
27b40 57 48 45 52 45 20 38 30 20 2f 20 2b 20 63 6f 6c  WHERE 80 / + col
27b50 30 20 3e 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d  0 >= + col1..---
27b60 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
27b70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
27b80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
27b90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
27ba0 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 53 55  0..SELECT + - SU
27bb0 4d 28 20 44 49 53 54 49 4e 43 54 20 2b 20 34 32  M( DISTINCT + 42
27bc0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
27bd0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d  cor0..----..-42.
27be0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
27bf0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
27c00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27c10 74 20 6c 61 62 65 6c 2d 38 39 30 0d 0a 53 45 4c  t label-890..SEL
27c20 45 43 54 20 2b 20 2d 20 53 55 4d 20 28 20 44 49  ECT + - SUM ( DI
27c30 53 54 49 4e 43 54 20 2b 20 34 32 20 29 20 46 52  STINCT + 42 ) FR
27c40 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
27c50 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d 0a 0d 0a 71 75  .----..-42....qu
27c60 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
27c70 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
27c80 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
27c90 45 20 2d 20 63 6f 6c 30 20 42 45 54 57 45 45 4e  E - col0 BETWEEN
27ca0 20 4e 55 4c 4c 20 41 4e 44 20 33 34 20 2b 20 28   NULL AND 34 + (
27cb0 20 2d 20 2d 20 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a   - - 0 )..----..
27cc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
27cd0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
27ce0 63 6f 6c 31 20 2a 20 2d 20 2d 20 36 30 20 46 52  col1 * - - 60 FR
27cf0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
27d00 0a 2d 2d 2d 2d 0d 0a 2d 33 30 36 30 0d 0a 2d 34  .----..-3060..-4
27d10 30 32 30 0d 0a 2d 34 36 32 30 0d 0a 0d 0a 71 75  020..-4620....qu
27d20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27d30 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
27d40 20 34 39 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2a   49 * + + col2 *
27d50 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 2d 20   + + col2 + + - 
27d60 33 34 20 2b 20 2d 20 34 38 20 41 53 20 63 6f 6c  34 + - 48 AS col
27d70 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
27d80 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 30 36  or0..----..-1706
27d90 35 31 0d 0a 2d 32 32 36 36 35 38 0d 0a 2d 34 35  51..-226658..-45
27da0 31 36 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1666....onlyif m
27db0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
27dc0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
27dd0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
27de0 72 74 20 6c 61 62 65 6c 2d 38 39 34 0d 0a 53 45  rt label-894..SE
27df0 4c 45 43 54 20 41 4c 4c 20 2b 20 36 33 20 2b 20  LECT ALL + 63 + 
27e00 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  + - CAST( NULL A
27e10 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f  S SIGNED ) AS co
27e20 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
27e30 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
27e40 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
27e50 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27e60 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
27e70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 34  owsort label-894
27e80 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36  ..SELECT ALL + 6
27e90 33 20 2b 20 2b 20 2d 20 43 41 53 54 20 28 20 4e  3 + + - CAST ( N
27ea0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
27eb0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
27ec0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b0..----..NULL..
27ed0 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
27ee0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27ef0 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d 20 63  ELECT col1 * - c
27f00 6f 6c 31 20 2d 20 2b 20 2d 20 63 6f 6c 31 20 46  ol1 - + - col1 F
27f10 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
27f20 2d 31 38 32 0d 0a 2d 32 30 0d 0a 2d 32 31 36 32  -182..-20..-2162
27f30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
27f40 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
27f50 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
27f60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
27f70 61 62 65 6c 2d 38 39 36 0d 0a 53 45 4c 45 43 54  abel-896..SELECT
27f80 20 41 4c 4c 20 63 6f 6c 30 20 44 49 56 20 2d 20   ALL col0 DIV - 
27f90 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 46 52  - col2 + col1 FR
27fa0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
27fb0 33 0d 0a 36 38 0d 0a 37 38 0d 0a 0d 0a 73 6b 69  3..68..78....ski
27fc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
27fd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
27fe0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
27ff0 6c 2d 38 39 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-896..SELECT AL
28000 4c 20 63 6f 6c 30 20 2f 20 2d 20 2d 20 63 6f 6c  L col0 / - - col
28010 32 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  2 + col1 FROM ta
28020 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 33 0d 0a 36 38  b2..----..53..68
28030 0d 0a 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..78....query I 
28040 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
28050 41 4c 4c 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ALL + col0 AS co
28060 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
28070 52 45 20 2b 20 33 34 20 3c 3e 20 2d 20 28 20 63  RE + 34 <> - ( c
28080 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d  ol2 )..----..51.
28090 0a 38 35 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69  .85..91....onlyi
280a0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
280b0 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
280c0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
280d0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
280e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39  rowsort label-89
280f0 38 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2d 20  8..SELECT - ( - 
28100 34 30 20 29 20 2a 20 2b 20 43 41 53 54 28 20 4e  40 ) * + CAST( N
28110 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
28120 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  + - COUNT( * ) A
28130 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
28140 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20 2f 20   WHERE - col0 / 
28150 2b 20 2b 20 36 35 20 49 53 20 4e 55 4c 4c 0d 0a  + + 65 IS NULL..
28160 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
28170 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
28180 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
28190 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
281a0 65 6c 2d 38 39 38 0d 0a 53 45 4c 45 43 54 20 2d  el-898..SELECT -
281b0 20 28 20 2d 20 34 30 20 29 20 2a 20 2b 20 43 41   ( - 40 ) * + CA
281c0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
281d0 45 47 45 52 20 29 20 2b 20 2d 20 43 4f 55 4e 54  EGER ) + - COUNT
281e0 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46   ( * ) AS col1 F
281f0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
28200 20 63 6f 6c 30 20 2f 20 2b 20 2b 20 36 35 20 49   col0 / + + 65 I
28210 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S NULL..----..NU
28220 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  LL....query II r
28230 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
28240 49 53 54 49 4e 43 54 20 2d 20 39 35 20 2b 20 2d  ISTINCT - 95 + -
28250 20 2b 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20   + col1, - col0 
28260 2a 20 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * 8 AS col2 FROM
28270 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   tab2..----..-14
28280 36 0d 0a 2d 33 36 38 0d 0a 2d 31 36 32 0d 0a 2d  6..-368..-162..-
28290 36 30 30 0d 0a 2d 31 37 32 0d 0a 2d 35 31 32 0d  600..-172..-512.
282a0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
282b0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
282c0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
282d0 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
282e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
282f0 20 6c 61 62 65 6c 2d 39 30 30 0d 0a 53 45 4c 45   label-900..SELE
28300 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 39  CT DISTINCT - 89
28310 20 2d 20 2d 20 2d 20 28 20 4d 41 58 28 20 41 4c   - - - ( MAX( AL
28320 4c 20 2d 20 63 6f 6c 31 20 29 20 29 20 2a 20 2d  L - col1 ) ) * -
28330 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
28340 45 43 49 4d 41 4c 20 29 20 2a 20 2b 20 2d 20 30  ECIMAL ) * + - 0
28350 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
28360 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .----..NULL....s
28370 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
28380 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
28390 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
283a0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
283b0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
283c0 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
283d0 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
283e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 30  owsort label-900
283f0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28400 54 20 2d 20 38 39 20 2d 20 2d 20 2d 20 28 20 4d  T - 89 - - - ( M
28410 41 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20  AX ( ALL - col1 
28420 29 20 29 20 2a 20 2d 20 43 41 53 54 20 28 20 4e  ) ) * - CAST ( N
28430 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2a 20  ULL AS REAL ) * 
28440 2b 20 2d 20 30 20 63 6f 6c 32 20 46 52 4f 4d 20  + - 0 col2 FROM 
28450 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
28460 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
28470 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
28480 20 2d 20 35 36 20 2d 20 39 20 41 53 20 63 6f 6c   - 56 - 9 AS col
28490 32 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  2, col0 FROM tab
284a0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35 0d 0a 31 35  0..----..-65..15
284b0 0d 0a 2d 36 35 0d 0a 38 37 0d 0a 2d 36 35 0d 0a  ..-65..87..-65..
284c0 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  97....query I ro
284d0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
284e0 28 20 2d 20 2b 20 28 20 2d 20 2b 20 36 38 20 29  ( - + ( - + 68 )
284f0 20 29 20 2d 20 2b 20 34 32 20 2a 20 31 35 20 41   ) - + 42 * 15 A
28500 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
28510 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36 32 0d 0a 2d 35  ..----..-562..-5
28520 36 32 0d 0a 2d 35 36 32 0d 0a 0d 0a 71 75 65 72  62..-562....quer
28530 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
28540 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 63  ECT - col0 * + c
28550 6f 6c 32 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f  ol2 - - col0 FRO
28560 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
28570 30 31 32 0d 0a 2d 32 34 39 36 0d 0a 2d 34 32 37  012..-2496..-427
28580 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  5....query III r
28590 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
285a0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
285b0 61 62 30 20 57 48 45 52 45 20 2d 20 37 33 20 3e  ab0 WHERE - 73 >
285c0 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  = NULL..----....
285d0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
285e0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
285f0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
28600 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
28610 20 63 6f 6c 30 20 2f 20 33 36 20 2b 20 2b 20 63   col0 / 36 + + c
28620 6f 6c 31 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b  ol1 + + col2 * +
28630 20 2d 20 32 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d   - 21 IS NULL..-
28640 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
28650 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
28660 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
28670 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69  b962d0a49....ski
28680 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
28690 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
286a0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
286b0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
286c0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
286d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
286e0 49 53 54 49 4e 43 54 20 2d 20 2b 20 31 36 20 2a  ISTINCT - + 16 *
286f0 20 2d 20 63 6f 6c 32 2c 20 2d 20 33 33 20 63 6f   - col2, - 33 co
28700 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
28710 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 38 34  cor0..----..1584
28720 0d 0a 2d 33 33 0d 0a 31 36 30 0d 0a 2d 33 33 0d  ..-33..160..-33.
28730 0a 37 35 32 0d 0a 2d 33 33 0d 0a 0d 0a 6f 6e 6c  .752..-33....onl
28740 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
28750 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
28760 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28770 6c 61 62 65 6c 2d 39 30 37 0d 0a 53 45 4c 45 43  label-907..SELEC
28780 54 20 2b 20 53 55 4d 28 20 44 49 53 54 49 4e 43  T + SUM( DISTINC
28790 54 20 37 37 20 29 20 41 53 20 63 6f 6c 32 20 46  T 77 ) AS col2 F
287a0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
287b0 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  77....skipif mys
287c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
287d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
287e0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 37 0d 0a  sort label-907..
287f0 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20 44  SELECT + SUM ( D
28800 49 53 54 49 4e 43 54 20 37 37 20 29 20 41 53 20  ISTINCT 77 ) AS 
28810 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
28820 2d 2d 2d 2d 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72  ----..77....quer
28830 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
28840 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 35 39 20  LECT ALL - + 59 
28850 41 53 20 63 6f 6c 31 2c 20 37 37 20 41 53 20 63  AS col1, 77 AS c
28860 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
28870 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   cor0..----..-59
28880 0d 0a 37 37 0d 0a 2d 35 39 0d 0a 37 37 0d 0a 2d  ..77..-59..77..-
28890 35 39 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20  59..77....query 
288a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
288b0 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 63 6f 6c  T ALL col2 * col
288c0 31 20 2a 20 2b 20 38 36 20 46 52 4f 4d 20 74 61  1 * + 86 FROM ta
288d0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
288e0 0d 0a 31 30 30 38 37 38 0d 0a 32 36 34 38 38 30  ..100878..264880
288f0 0d 0a 33 33 34 31 39 36 0d 0a 0d 0a 71 75 65 72  ..334196....quer
28900 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
28910 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
28920 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
28930 4e 4f 54 20 36 34 20 2b 20 2d 20 2b 20 63 6f 6c  NOT 64 + - + col
28940 30 20 2a 20 2b 20 63 6f 6c 32 20 3c 20 4e 55 4c  0 * + col2 < NUL
28950 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
28960 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
28970 43 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c  CT + col1 AS col
28980 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
28990 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 37 30  or0 WHERE NOT 70
289a0 20 2f 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20   / col0 BETWEEN 
289b0 28 20 28 20 2d 20 31 36 20 29 20 29 20 2b 20 2d  ( ( - 16 ) ) + -
289c0 20 2b 20 31 36 20 41 4e 44 20 4e 55 4c 4c 0d 0a   + 16 AND NULL..
289d0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
289e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
289f0 41 4c 4c 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  ALL + col0 FROM 
28a00 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
28a10 52 45 20 2b 20 39 32 20 49 53 20 4e 55 4c 4c 0d  RE + 92 IS NULL.
28a20 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
28a30 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
28a40 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
28a50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28a60 6c 2d 39 31 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-913..SELECT DI
28a70 53 54 49 4e 43 54 20 4d 49 4e 28 20 2b 20 2b 20  STINCT MIN( + + 
28a80 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  5 ) AS col0 FROM
28a90 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
28aa0 2d 2d 2d 0d 0a 35 0d 0a 0d 0a 73 6b 69 70 69 66  ---..5....skipif
28ab0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
28ac0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
28ad0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
28ae0 31 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  13..SELECT DISTI
28af0 4e 43 54 20 4d 49 4e 20 28 20 2b 20 2b 20 35 20  NCT MIN ( + + 5 
28b00 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
28b10 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
28b20 2d 0d 0a 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..5....onlyif m
28b30 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
28b40 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
28b50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
28b60 2d 39 31 34 0d 0a 53 45 4c 45 43 54 20 2b 20 4d  -914..SELECT + M
28b70 41 58 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29  AX( ALL + col0 )
28b80 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
28b90 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39  b0 cor0..----..9
28ba0 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  7....skipif mysq
28bb0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
28bc0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
28bd0 6f 72 74 20 6c 61 62 65 6c 2d 39 31 34 0d 0a 53  ort label-914..S
28be0 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 41 4c  ELECT + MAX ( AL
28bf0 4c 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  L + col0 ) AS co
28c00 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l0 FROM tab0 cor
28c10 30 0d 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 0d 0a 71  0..----..97....q
28c20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
28c30 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2d 20  SELECT + col1 - 
28c40 2d 20 2d 20 36 36 20 41 53 20 63 6f 6c 32 20 46  - - 66 AS col2 F
28c50 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
28c60 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 37 33 20   WHERE NOT + 73 
28c70 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
28c80 34 35 0d 0a 2d 36 35 0d 0a 31 35 0d 0a 0d 0a 6f  45..-65..15....o
28c90 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
28ca0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
28cb0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
28cc0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28cd0 39 31 36 0d 0a 53 45 4c 45 43 54 20 34 31 20 2b  916..SELECT 41 +
28ce0 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2b 20   - + col0 * - + 
28cf0 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col0 col0 FROM t
28d00 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
28d10 63 6f 6c 30 20 2f 20 2b 20 2b 20 28 20 2b 20 43  col0 / + + ( + C
28d20 41 53 54 28 20 2b 20 2d 20 63 6f 6c 32 20 41 53  AST( + - col2 AS
28d30 20 53 49 47 4e 45 44 20 29 20 29 20 2b 20 63 6f   SIGNED ) ) + co
28d40 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l2 IS NOT NULL..
28d50 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
28d60 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
28d70 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
28d80 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
28d90 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
28da0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
28db0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
28dc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
28dd0 6c 61 62 65 6c 2d 39 31 36 0d 0a 53 45 4c 45 43  label-916..SELEC
28de0 54 20 34 31 20 2b 20 2d 20 2b 20 63 6f 6c 30 20  T 41 + - + col0 
28df0 2a 20 2d 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 20  * - + col0 col0 
28e00 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
28e10 4e 4f 54 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 2b  NOT + col0 / + +
28e20 20 28 20 2b 20 43 41 53 54 20 28 20 2b 20 2d 20   ( + CAST ( + - 
28e30 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
28e40 29 20 29 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f  ) ) + col2 IS NO
28e50 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
28e60 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
28e70 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
28e80 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
28e90 2b 20 2b 20 34 37 20 49 53 20 4e 4f 54 20 4e 55  + + 47 IS NOT NU
28ea0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  LL..----....only
28eb0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
28ec0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
28ed0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28ee0 61 62 65 6c 2d 39 31 38 0d 0a 53 45 4c 45 43 54  abel-918..SELECT
28ef0 20 2b 20 4d 49 4e 28 20 2d 20 2b 20 63 6f 6c 30   + MIN( - + col0
28f00 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
28f10 2d 2d 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69  --..-97....skipi
28f20 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
28f30 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
28f40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
28f50 39 31 38 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 49  918..SELECT + MI
28f60 4e 20 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 46  N ( - + col0 ) F
28f70 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
28f80 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  -97....query II 
28f90 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
28fa0 63 6f 6c 32 20 2a 20 2b 20 31 38 2c 20 32 30 20  col2 * + 18, 20 
28fb0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
28fc0 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 34 0d 0a 32  2..----..1044..2
28fd0 30 0d 0a 34 31 34 0d 0a 32 30 0d 0a 37 32 30 0d  0..414..20..720.
28fe0 0a 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .20....query I r
28ff0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
29000 6f 6c 31 20 2b 20 2d 20 28 20 2d 20 36 34 20 29  ol1 + - ( - 64 )
29010 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
29020 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 0d 0a 36  b1..----..111..6
29030 39 0d 0a 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  9..78....skipif 
29040 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
29050 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
29060 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
29070 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
29080 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
29090 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
290a0 49 4e 43 54 20 2d 20 63 6f 6c 32 20 63 6f 6c 31  INCT - col2 col1
290b0 2c 20 63 6f 6c 30 2c 20 2d 20 2b 20 63 6f 6c 30  , col0, - + col0
290c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
290d0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
290e0 68 61 73 68 69 6e 67 20 74 6f 20 33 36 38 36 61  hashing to 3686a
290f0 62 37 66 35 35 33 65 65 38 62 30 61 32 32 62 38  b7f553ee8b0a22b8
29100 35 31 38 30 39 33 37 30 35 33 66 0d 0a 0d 0a 71  5180937053f....q
29110 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
29120 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
29130 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
29140 4f 54 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  OT - + col0 * - 
29150 63 6f 6c 32 20 2a 20 2d 20 2b 20 28 20 2b 20 2d  col2 * - + ( + -
29160 20 38 31 20 29 20 3d 20 2b 20 2d 20 32 0d 0a 2d   81 ) = + - 2..-
29170 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
29180 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
29190 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
291a0 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c  b962d0a49....onl
291b0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
291c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
291d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
291e0 6c 61 62 65 6c 2d 39 32 33 0d 0a 53 45 4c 45 43  label-923..SELEC
291f0 54 20 41 4c 4c 20 2d 20 4d 49 4e 28 20 63 6f 6c  T ALL - MIN( col
29200 30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  0 ) AS col0 FROM
29210 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
29220 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 73 6b 69 70  ---..-15....skip
29230 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29240 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
29250 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29260 2d 39 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -923..SELECT ALL
29270 20 2d 20 4d 49 4e 20 28 20 63 6f 6c 30 20 29 20   - MIN ( col0 ) 
29280 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
29290 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
292a0 0a 2d 31 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-15....query I 
292b0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
292c0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
292d0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
292e0 32 20 2b 20 2b 20 38 38 20 49 53 20 4e 4f 54 20  2 + + 88 IS NOT 
292f0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  NULL..----..23..
29300 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20  40..58....query 
29310 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
29320 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20  CT DISTINCT + - 
29330 37 33 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2b 20  73 * + + col2 + 
29340 2b 20 32 34 20 41 53 20 63 6f 6c 30 2c 20 63 6f  + 24 AS col0, co
29350 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
29360 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 38  cor0..----..-428
29370 33 0d 0a 35 0d 0a 2d 34 39 34 30 0d 0a 34 37 0d  3..5..-4940..47.
29380 0a 2d 36 39 38 34 0d 0a 31 34 0d 0a 0d 0a 6f 6e  .-6984..14....on
29390 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
293a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
293b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
293c0 20 6c 61 62 65 6c 2d 39 32 36 0d 0a 53 45 4c 45   label-926..SELE
293d0 43 54 20 2b 20 32 20 2d 20 53 55 4d 28 20 41 4c  CT + 2 - SUM( AL
293e0 4c 20 31 30 20 29 20 2d 20 43 4f 55 4e 54 28 20  L 10 ) - COUNT( 
293f0 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  * ) FROM tab0 AS
29400 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31   cor0..----..-31
29410 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
29420 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
29430 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
29440 72 74 20 6c 61 62 65 6c 2d 39 32 36 0d 0a 53 45  rt label-926..SE
29450 4c 45 43 54 20 2b 20 32 20 2d 20 53 55 4d 20 28  LECT + 2 - SUM (
29460 20 41 4c 4c 20 31 30 20 29 20 2d 20 43 4f 55 4e   ALL 10 ) - COUN
29470 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
29480 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
29490 0a 2d 33 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-31....onlyif m
294a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
294b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
294c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
294d0 2d 39 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 37  -927..SELECT + 7
294e0 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20   + + + COUNT( * 
294f0 29 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 28 20 44  ) * + - COUNT( D
29500 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31  ISTINCT - - col1
29510 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
29520 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
29530 0a 2d 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-2....skipif my
29540 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29550 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
29560 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 32 37 0d  wsort label-927.
29570 0a 53 45 4c 45 43 54 20 2b 20 37 20 2b 20 2b 20  .SELECT + 7 + + 
29580 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
29590 2b 20 2d 20 43 4f 55 4e 54 20 28 20 44 49 53 54  + - COUNT ( DIST
295a0 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 29 20  INCT - - col1 ) 
295b0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
295c0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  2 cor0..----..-2
295d0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
295e0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
295f0 49 4e 43 54 20 2b 20 28 20 2b 20 2d 20 63 6f 6c  INCT + ( + - col
29600 32 20 29 20 2a 20 2d 20 2d 20 28 20 63 6f 6c 31  2 ) * - - ( col1
29610 20 29 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20   ) + + col1 * + 
29620 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
29630 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  S cor0..----..-9
29640 38 0d 0a 32 33 31 0d 0a 32 37 35 34 0d 0a 0d 0a  8..231..2754....
29650 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
29660 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
29670 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
29680 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
29690 2d 39 32 39 0d 0a 53 45 4c 45 43 54 20 43 41 53  -929..SELECT CAS
296a0 54 28 20 2d 20 2b 20 39 38 20 41 53 20 53 49 47  T( - + 98 AS SIG
296b0 4e 45 44 20 29 20 2b 20 2d 20 63 6f 6c 31 20 2a  NED ) + - col1 *
296c0 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   - col2 FROM tab
296d0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
296e0 0a 31 30 37 35 0d 0a 32 39 38 32 0d 0a 33 37 38  .1075..2982..378
296f0 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
29700 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
29710 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
29720 6f 72 74 20 6c 61 62 65 6c 2d 39 32 39 0d 0a 53  ort label-929..S
29730 45 4c 45 43 54 20 43 41 53 54 20 28 20 2d 20 2b  ELECT CAST ( - +
29740 20 39 38 20 41 53 20 49 4e 54 45 47 45 52 20 29   98 AS INTEGER )
29750 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f   + - col1 * - co
29760 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
29770 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 35  cor0..----..1075
29780 0d 0a 32 39 38 32 0d 0a 33 37 38 38 0d 0a 0d 0a  ..2982..3788....
29790 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
297a0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
297b0 2b 20 2b 20 63 6f 6c 32 2c 20 63 6f 6c 31 20 46  + + col2, col1 F
297c0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
297d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 32 31 0d  ..----..-11..21.
297e0 0a 2d 33 34 0d 0a 38 31 0d 0a 39 38 0d 0a 31 0d  .-34..81..98..1.
297f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
29800 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
29810 6f 6c 30 20 2a 20 63 6f 6c 31 20 2b 20 63 6f 6c  ol0 * col1 + col
29820 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
29830 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
29840 2d 0d 0a 32 33 36 39 0d 0a 34 39 36 38 0d 0a 35  -..2369..4968..5
29850 30 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  083....query I r
29860 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
29870 20 28 20 2b 20 34 31 20 29 20 46 52 4f 4d 20 74   ( + 41 ) FROM t
29880 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
29890 45 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 49  E + ( + col0 ) I
298a0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
298b0 0d 0a 34 31 0d 0a 34 31 0d 0a 34 31 0d 0a 0d 0a  ..41..41..41....
298c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
298d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
298e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
298f0 72 74 20 6c 61 62 65 6c 2d 39 33 33 0d 0a 53 45  rt label-933..SE
29900 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
29910 2a 20 34 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  * 40 FROM tab1..
29920 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 0d 0a 73 6b 69  ----..120....ski
29930 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
29940 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
29950 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
29960 6c 2d 39 33 33 0d 0a 53 45 4c 45 43 54 20 43 4f  l-933..SELECT CO
29970 55 4e 54 20 28 20 2a 20 29 20 2a 20 34 30 20 46  UNT ( * ) * 40 F
29980 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
29990 31 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  120....skipif po
299a0 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
299b0 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
299c0 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
299d0 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
299e0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
299f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
29a00 6f 6c 32 20 63 6f 6c 31 2c 20 2d 20 36 37 20 41  ol2 col1, - 67 A
29a10 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
29a20 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 2d 36 37 0d  ..----..23..-67.
29a30 0a 34 30 0d 0a 2d 36 37 0d 0a 35 38 0d 0a 2d 36  .40..-67..58..-6
29a40 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
29a50 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
29a60 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
29a70 61 62 31 20 57 48 45 52 45 20 2b 20 28 20 34 36  ab1 WHERE + ( 46
29a80 20 29 20 42 45 54 57 45 45 4e 20 63 6f 6c 31 20   ) BETWEEN col1 
29a90 41 4e 44 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  AND - col2..----
29aa0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
29ab0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
29ac0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
29ad0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 36  owsort label-936
29ae0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
29af0 54 20 28 20 2d 20 2b 20 28 20 43 4f 55 4e 54 28  T ( - + ( COUNT(
29b00 20 2a 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61   * ) ) ) FROM ta
29b10 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  b2..----..-3....
29b20 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
29b30 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
29b40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29b50 61 62 65 6c 2d 39 33 36 0d 0a 53 45 4c 45 43 54  abel-936..SELECT
29b60 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20 2b 20   DISTINCT ( - + 
29b70 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20  ( COUNT ( * ) ) 
29b80 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
29b90 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -..-3....query I
29ba0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
29bb0 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31   DISTINCT - col1
29bc0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
29bd0 72 30 20 57 48 45 52 45 20 28 20 34 31 20 49 53  r0 WHERE ( 41 IS
29be0 20 4e 4f 54 20 4e 55 4c 4c 20 29 20 4f 52 20 4e   NOT NULL ) OR N
29bf0 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  ULL BETWEEN NULL
29c00 20 41 4e 44 20 2b 20 63 6f 6c 32 20 2a 20 31 37   AND + col2 * 17
29c10 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d  ..----..-1..-21.
29c20 0a 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-81....query I 
29c30 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
29c40 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2d 20 2b  DISTINCT - ( - +
29c50 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
29c60 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
29c70 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 31 0d 0a  0..----..1..21..
29c80 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  81....onlyif mys
29c90 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
29ca0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
29cb0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29cc0 33 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53  39..SELECT ALL S
29cd0 55 4d 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d  UM( - col0 ) + -
29ce0 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 39 35   COUNT( ALL + 95
29cf0 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20   + + ( col1 ) ) 
29d00 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
29d10 0a 2d 31 38 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .-188....skipif 
29d20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
29d30 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
29d40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
29d50 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55  9..SELECT ALL SU
29d60 4d 20 28 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d  M ( - col0 ) + -
29d70 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 2b 20 39   COUNT ( ALL + 9
29d80 35 20 2b 20 2b 20 28 20 63 6f 6c 31 20 29 20 29  5 + + ( col1 ) )
29d90 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
29da0 0d 0a 2d 31 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..-188....onlyif
29db0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
29dc0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
29dd0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
29de0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 30  owsort label-940
29df0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
29e00 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c  tab2 WHERE ( NUL
29e10 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20 43 41 53  L ) NOT IN ( CAS
29e20 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45  T( col0 AS SIGNE
29e30 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  D ) )..----....s
29e40 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
29e50 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
29e60 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
29e70 6c 61 62 65 6c 2d 39 34 30 0d 0a 53 45 4c 45 43  label-940..SELEC
29e80 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
29e90 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  ERE ( NULL ) NOT
29ea0 20 49 4e 20 28 20 43 41 53 54 20 28 20 63 6f 6c   IN ( CAST ( col
29eb0 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  0 AS INTEGER ) )
29ec0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
29ed0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
29ee0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
29ef0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
29f00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 31  owsort label-941
29f10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
29f20 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63  ROM tab2 WHERE c
29f30 6f 6c 30 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  ol0 - CAST( NULL
29f40 20 41 53 20 53 49 47 4e 45 44 20 29 20 42 45 54   AS SIGNED ) BET
29f50 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55  WEEN NULL AND NU
29f60 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
29f70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
29f80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
29f90 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
29fa0 65 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20 41  el-941..SELECT A
29fb0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
29fc0 48 45 52 45 20 63 6f 6c 30 20 2d 20 43 41 53 54  HERE col0 - CAST
29fd0 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
29fe0 45 52 20 29 20 42 45 54 57 45 45 4e 20 4e 55 4c  ER ) BETWEEN NUL
29ff0 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
2a000 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2a010 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
2a020 6c 31 20 2d 20 31 30 20 41 53 20 63 6f 6c 31 20  l1 - 10 AS col1 
2a030 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2a040 0a 2d 36 31 0d 0a 2d 37 37 0d 0a 2d 38 37 0d 0a  .-61..-77..-87..
2a050 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2a060 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2a070 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2a080 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 33 0d 0a  sort label-943..
2a090 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 49 4e  SELECT ALL - MIN
2a0a0 28 20 44 49 53 54 49 4e 43 54 20 2b 20 37 34 20  ( DISTINCT + 74 
2a0b0 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  ) col0 FROM tab1
2a0c0 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 73  ..----..-74....s
2a0d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2a0e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
2a0f0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
2a100 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
2a110 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
2a120 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
2a130 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
2a140 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 33  owsort label-943
2a150 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d  ..SELECT ALL - M
2a160 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  IN ( DISTINCT + 
2a170 37 34 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74  74 ) col0 FROM t
2a180 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a  ab1..----..-74..
2a190 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
2a1a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2a1b0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
2a1c0 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c   WHERE NOT - col
2a1d0 30 20 2a 20 2b 20 36 39 20 3d 20 4e 55 4c 4c 0d  0 * + 69 = NULL.
2a1e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2a1f0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a200 20 36 35 20 2b 20 33 32 20 41 53 20 63 6f 6c 32   65 + 32 AS col2
2a210 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2a220 0d 0a 39 37 0d 0a 39 37 0d 0a 39 37 0d 0a 0d 0a  ..97..97..97....
2a230 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2a240 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2a250 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2a260 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a270 2d 39 34 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -946..SELECT ALL
2a280 20 43 41 53 54 28 20 2d 20 34 32 20 41 53 20 53   CAST( - 42 AS S
2a290 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20  IGNED ) AS col1 
2a2a0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2a2b0 0a 2d 34 32 0d 0a 2d 34 32 0d 0a 2d 34 32 0d 0a  .-42..-42..-42..
2a2c0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2a2d0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2a2e0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a2f0 20 6c 61 62 65 6c 2d 39 34 36 0d 0a 53 45 4c 45   label-946..SELE
2a300 43 54 20 41 4c 4c 20 43 41 53 54 20 28 20 2d 20  CT ALL CAST ( - 
2a310 34 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  42 AS INTEGER ) 
2a320 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2a330 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d 0a 2d 34  0..----..-42..-4
2a340 32 0d 0a 2d 34 32 0d 0a 0d 0a 71 75 65 72 79 20  2..-42....query 
2a350 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2a360 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
2a370 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c  WHERE NOT ( NULL
2a380 20 29 20 42 45 54 57 45 45 4e 20 38 34 20 2b 20   ) BETWEEN 84 + 
2a390 34 30 20 41 4e 44 20 28 20 2b 20 31 38 20 2a 20  40 AND ( + 18 * 
2a3a0 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
2a3b0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2a3c0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2a3d0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2a3e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a3f0 65 6c 2d 39 34 38 0d 0a 53 45 4c 45 43 54 20 44  el-948..SELECT D
2a400 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 44 49 56  ISTINCT col1 DIV
2a410 20 2d 20 63 6f 6c 31 20 2b 20 37 36 20 41 53 20   - col1 + 76 AS 
2a420 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2a430 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a 73 6b 69 70  ----..75....skip
2a440 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2a450 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2a460 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a470 2d 39 34 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -948..SELECT DIS
2a480 54 49 4e 43 54 20 63 6f 6c 31 20 2f 20 2d 20 63  TINCT col1 / - c
2a490 6f 6c 31 20 2b 20 37 36 20 41 53 20 63 6f 6c 30  ol1 + 76 AS col0
2a4a0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2a4b0 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..75....onlyif m
2a4c0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2a4d0 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
2a4e0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2a4f0 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2a500 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 39 0d 0a  sort label-949..
2a510 53 45 4c 45 43 54 20 2b 20 4d 49 4e 28 20 41 4c  SELECT + MIN( AL
2a520 4c 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2d 20 43  L + col0 ) * - C
2a530 41 53 54 28 20 43 4f 55 4e 54 28 20 2a 20 29 20  AST( COUNT( * ) 
2a540 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
2a550 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab2..----..-13
2a560 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
2a570 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2a580 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2a590 6f 72 74 20 6c 61 62 65 6c 2d 39 34 39 0d 0a 53  ort label-949..S
2a5a0 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c  ELECT + MIN ( AL
2a5b0 4c 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2d 20 43  L + col0 ) * - C
2a5c0 41 53 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20  AST ( COUNT ( * 
2a5d0 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  ) AS INTEGER ) F
2a5e0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2a5f0 2d 31 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -138....onlyif m
2a600 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2a610 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2a620 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a630 2d 39 35 30 0d 0a 53 45 4c 45 43 54 20 2b 20 28  -950..SELECT + (
2a640 20 2d 20 38 39 20 29 20 2a 20 43 4f 55 4e 54 28   - 89 ) * COUNT(
2a650 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a   * ) FROM tab0..
2a660 2d 2d 2d 2d 0d 0a 2d 32 36 37 0d 0a 0d 0a 73 6b  ----..-267....sk
2a670 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2a680 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2a690 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a6a0 65 6c 2d 39 35 30 0d 0a 53 45 4c 45 43 54 20 2b  el-950..SELECT +
2a6b0 20 28 20 2d 20 38 39 20 29 20 2a 20 43 4f 55 4e   ( - 89 ) * COUN
2a6c0 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
2a6d0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 37 0d 0a 0d  0..----..-267...
2a6e0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
2a6f0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
2a700 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
2a710 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
2a720 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
2a730 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2a740 54 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 32 20  T - col0 * col2 
2a750 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2a760 2d 2d 2d 2d 0d 0a 2d 37 30 35 0d 0a 2d 38 37 30  ----..-705..-870
2a770 0d 0a 2d 39 36 30 33 0d 0a 0d 0a 71 75 65 72 79  ..-9603....query
2a780 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2a790 43 54 20 41 4c 4c 20 2b 20 38 20 2a 20 2d 20 63  CT ALL + 8 * - c
2a7a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
2a7b0 2d 2d 2d 0d 0a 2d 34 30 38 0d 0a 2d 36 38 30 0d  ---..-408..-680.
2a7c0 0a 2d 37 32 38 0d 0a 0d 0a 71 75 65 72 79 20 49  .-728....query I
2a7d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2a7e0 20 2b 20 32 39 20 2a 20 2b 20 28 20 2d 20 63 6f   + 29 * + ( - co
2a7f0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  l2 ) FROM tab1..
2a800 2d 2d 2d 2d 0d 0a 2d 31 37 31 31 0d 0a 2d 31 39  ----..-1711..-19
2a810 37 32 0d 0a 2d 32 37 38 34 0d 0a 0d 0a 6f 6e 6c  72..-2784....onl
2a820 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2a830 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
2a840 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2a850 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2a860 2d 39 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -954..SELECT ALL
2a870 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
2a880 52 45 20 28 20 43 41 53 54 28 20 2d 20 38 30 20  RE ( CAST( - 80 
2a890 41 53 20 44 45 43 49 4d 41 4c 20 29 20 29 20 49  AS DECIMAL ) ) I
2a8a0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2a8b0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
2a8c0 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
2a8d0 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
2a8e0 32 64 30 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66  2d0a49....skipif
2a8f0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2a900 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2a910 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2a920 2d 39 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -954..SELECT ALL
2a930 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
2a940 52 45 20 28 20 43 41 53 54 20 28 20 2d 20 38 30  RE ( CAST ( - 80
2a950 20 41 53 20 52 45 41 4c 20 29 20 29 20 49 53 20   AS REAL ) ) IS 
2a960 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2a970 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
2a980 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
2a990 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
2a9a0 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
2a9b0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
2a9c0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2a9d0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
2a9e0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 35 0d 0a  sort label-955..
2a9f0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2aa00 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 36  b0 WHERE NOT - 6
2aa10 34 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  4 + CAST( NULL A
2aa20 53 20 53 49 47 4e 45 44 20 29 20 4e 4f 54 20 42  S SIGNED ) NOT B
2aa30 45 54 57 45 45 4e 20 28 20 63 6f 6c 31 20 29 20  ETWEEN ( col1 ) 
2aa40 41 4e 44 20 34 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  AND 49..----....
2aa50 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2aa60 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2aa70 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2aa80 20 6c 61 62 65 6c 2d 39 35 35 0d 0a 53 45 4c 45   label-955..SELE
2aa90 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57  CT * FROM tab0 W
2aaa0 48 45 52 45 20 4e 4f 54 20 2d 20 36 34 20 2b 20  HERE NOT - 64 + 
2aab0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2aac0 4e 54 45 47 45 52 20 29 20 4e 4f 54 20 42 45 54  NTEGER ) NOT BET
2aad0 57 45 45 4e 20 28 20 63 6f 6c 31 20 29 20 41 4e  WEEN ( col1 ) AN
2aae0 44 20 34 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  D 49..----....on
2aaf0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2ab00 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2ab10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ab20 20 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45   label-956..SELE
2ab30 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
2ab40 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 33 39 20  UNT( * ) + + 39 
2ab50 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2ab60 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a 73  1..----..42....s
2ab70 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2ab80 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2ab90 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2aba0 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45 43 54 20  bel-956..SELECT 
2abb0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
2abc0 20 28 20 2a 20 29 20 2b 20 2b 20 33 39 20 41 53   ( * ) + + 39 AS
2abd0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
2abe0 0a 2d 2d 2d 2d 0d 0a 34 32 0d 0a 0d 0a 6f 6e 6c  .----..42....onl
2abf0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
2ac00 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
2ac10 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
2ac20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35  rowsort label-95
2ac30 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  7..SELECT + col0
2ac40 20 2b 20 2d 20 28 20 39 20 2b 20 2b 20 63 6f 6c   + - ( 9 + + col
2ac50 30 20 44 49 56 20 2b 20 63 6f 6c 32 20 29 20 63  0 DIV + col2 ) c
2ac60 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
2ac70 2d 2d 2d 0d 0a 33 35 0d 0a 35 34 0d 0a 36 35 0d  ---..35..54..65.
2ac80 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2ac90 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2aca0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2acb0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2acc0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2acd0 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2ace0 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2acf0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ad00 2d 39 35 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -957..SELECT + c
2ad10 6f 6c 30 20 2b 20 2d 20 28 20 39 20 2b 20 2b 20  ol0 + - ( 9 + + 
2ad20 63 6f 6c 30 20 2f 20 2b 20 63 6f 6c 32 20 29 20  col0 / + col2 ) 
2ad30 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2ad40 2d 2d 2d 2d 0d 0a 33 35 0d 0a 35 34 0d 0a 36 35  ----..35..54..65
2ad50 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2ad60 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2ad70 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2ad80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 38  owsort label-958
2ad90 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
2ada0 28 20 2b 20 38 35 20 29 20 2b 20 43 4f 55 4e 54  ( + 85 ) + COUNT
2adb0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ( * ) FROM tab0.
2adc0 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
2add0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2ade0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2adf0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ae00 2d 39 35 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -958..SELECT - C
2ae10 4f 55 4e 54 20 28 20 2b 20 38 35 20 29 20 2b 20  OUNT ( + 85 ) + 
2ae20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d  COUNT ( * ) FROM
2ae30 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
2ae40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ae50 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 34  t..SELECT ALL 74
2ae60 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   * col2 AS col0 
2ae70 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2ae80 0a 33 34 37 38 0d 0a 37 33 32 36 0d 0a 37 34 30  .3478..7326..740
2ae90 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2aea0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2aeb0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2aec0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 30  owsort label-960
2aed0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
2aee0 4e 54 28 20 2a 20 29 20 2a 20 43 4f 55 4e 54 28  NT( * ) * COUNT(
2aef0 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
2af00 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 0d  M tab2..----..9.
2af10 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2af20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2af30 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2af40 74 20 6c 61 62 65 6c 2d 39 36 30 0d 0a 53 45 4c  t label-960..SEL
2af50 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
2af60 2a 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a 20  * ) * COUNT ( * 
2af70 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2af80 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  ab2..----..9....
2af90 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2afa0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2afb0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2afc0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2afd0 2d 39 36 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -961..SELECT DIS
2afe0 54 49 4e 43 54 20 63 6f 6c 31 20 2b 20 2d 20 63  TINCT col1 + - c
2aff0 6f 6c 32 20 44 49 56 20 2b 20 63 6f 6c 30 20 41  ol2 DIV + col0 A
2b000 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2b010 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 36 37 0d 0a  ..----..51..67..
2b020 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  77....skipif mys
2b030 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2b040 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2b050 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 31 0d 0a  sort label-961..
2b060 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2b070 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 2f 20  col1 + - col2 / 
2b080 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46  + col0 AS col1 F
2b090 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2b0a0 35 31 0d 0a 36 37 0d 0a 37 37 0d 0a 0d 0a 6f 6e  51..67..77....on
2b0b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b0c0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b0d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b0e0 20 6c 61 62 65 6c 2d 39 36 32 0d 0a 53 45 4c 45   label-962..SELE
2b0f0 43 54 20 4d 49 4e 28 20 41 4c 4c 20 2d 20 34 20  CT MIN( ALL - 4 
2b100 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
2b110 2d 0d 0a 2d 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-4....skipif 
2b120 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2b130 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2b140 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36  rowsort label-96
2b150 32 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20  2..SELECT MIN ( 
2b160 41 4c 4c 20 2d 20 34 20 29 20 46 52 4f 4d 20 74  ALL - 4 ) FROM t
2b170 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 0d  ab0..----..-4...
2b180 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b190 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
2b1a0 63 6f 6c 31 20 2d 20 34 34 20 2a 20 39 39 20 41  col1 - 44 * 99 A
2b1b0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2b1c0 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
2b1d0 49 4e 20 28 20 39 33 20 2b 20 2b 20 38 33 20 29  IN ( 93 + + 83 )
2b1e0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2b1f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b200 54 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  T + col2 * - col
2b210 32 20 2b 20 35 31 20 46 52 4f 4d 20 74 61 62 32  2 + 51 FROM tab2
2b220 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 34 39 0d 0a 2d  ..----..-1549..-
2b230 33 33 31 33 0d 0a 2d 34 37 38 0d 0a 0d 0a 6f 6e  3313..-478....on
2b240 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
2b250 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
2b260 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2b270 20 6c 61 62 65 6c 2d 39 36 35 0d 0a 53 45 4c 45   label-965..SELE
2b280 43 54 20 44 49 53 54 49 4e 43 54 20 38 38 20 2a  CT DISTINCT 88 *
2b290 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
2b2a0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 32  OM tab0..----..2
2b2b0 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  64....skipif mys
2b2c0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2b2d0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2b2e0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 35 0d 0a  sort label-965..
2b2f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2b300 38 38 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a  88 * + COUNT ( *
2b310 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
2b320 2d 2d 0d 0a 32 36 34 0d 0a 0d 0a 6f 6e 6c 79 69  --..264....onlyi
2b330 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2b340 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2b350 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2b360 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 36 0d  wsort label-966.
2b370 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 44  .SELECT + col1 D
2b380 49 56 20 31 37 20 63 6f 6c 30 20 46 52 4f 4d 20  IV 17 col0 FROM 
2b390 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
2b3a0 0a 30 0d 0a 31 0d 0a 34 0d 0a 0d 0a 73 6b 69 70  .0..1..4....skip
2b3b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b3c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
2b3d0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
2b3e0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
2b3f0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
2b400 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2b410 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
2b420 6f 72 74 20 6c 61 62 65 6c 2d 39 36 36 0d 0a 53  ort label-966..S
2b430 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 2f 20 31  ELECT + col1 / 1
2b440 37 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  7 col0 FROM tab0
2b450 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
2b460 31 0d 0a 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  1..4....query I 
2b470 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2b480 2d 20 31 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f  - 1 + - col2 FRO
2b490 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2b4a0 48 45 52 45 20 2d 20 63 6f 6c 31 20 49 53 20 4e  HERE - col1 IS N
2b4b0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
2b4c0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2b4d0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
2b4e0 74 65 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  te syntax: DECIM
2b4f0 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
2b500 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b510 2d 39 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -968..SELECT ALL
2b520 20 2d 20 33 20 2a 20 43 41 53 54 28 20 4e 55 4c   - 3 * CAST( NUL
2b530 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2b  L AS DECIMAL ) +
2b540 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d 20   - COUNT( ALL - 
2b550 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 31  col2 ) FROM tab1
2b560 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2b570 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2b580 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2b590 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2b5a0 61 62 65 6c 2d 39 36 38 0d 0a 53 45 4c 45 43 54  abel-968..SELECT
2b5b0 20 41 4c 4c 20 2d 20 33 20 2a 20 43 41 53 54 20   ALL - 3 * CAST 
2b5c0 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
2b5d0 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c   + - COUNT ( ALL
2b5e0 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   - col2 ) FROM t
2b5f0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ab1..----..NULL.
2b600 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2b610 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
2b620 20 63 6f 6c 30 20 2a 20 2b 20 28 20 63 6f 6c 31   col0 * + ( col1
2b630 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2b640 74 61 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c  tab2 WHERE ( NUL
2b650 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
2b660 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
2b670 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2b680 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
2b690 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
2b6a0 20 63 6f 6c 30 20 2a 20 2d 20 32 39 20 49 4e 20   col0 * - 29 IN 
2b6b0 28 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a  ( col2 )..----..
2b6c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b6d0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
2b6e0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
2b6f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2b700 65 6c 2d 39 37 31 0d 0a 53 45 4c 45 43 54 20 44  el-971..SELECT D
2b710 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20 2d  ISTINCT + col2 -
2b720 20 2b 20 31 37 20 44 49 56 20 63 6f 6c 32 20 46   + 17 DIV col2 F
2b730 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2b740 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a  ..----..59..68..
2b750 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  96....skipif mys
2b760 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2b770 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2b780 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 31 0d 0a  sort label-971..
2b790 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2b7a0 2b 20 63 6f 6c 32 20 2d 20 2b 20 31 37 20 2f 20  + col2 - + 17 / 
2b7b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
2b7c0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39  S cor0..----..59
2b7d0 0d 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72  ..68..96....quer
2b7e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2b7f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32  ECT DISTINCT - 2
2b800 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2b810 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2b820 0d 0a 2d 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..-2....onlyif m
2b830 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2b840 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2b850 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b860 2d 39 37 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -973..SELECT + +
2b870 20 4d 41 58 28 20 2b 20 36 34 20 29 20 46 52 4f   MAX( + 64 ) FRO
2b880 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2b890 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 73 6b 69 70  ----..64....skip
2b8a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b8b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b8c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2b8d0 2d 39 37 33 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -973..SELECT + +
2b8e0 20 4d 41 58 20 28 20 2b 20 36 34 20 29 20 46 52   MAX ( + 64 ) FR
2b8f0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2b900 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 71 75 65  .----..64....que
2b910 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b920 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 39 39  LECT DISTINCT 99
2b930 20 2a 20 39 34 20 41 53 20 63 6f 6c 30 20 46 52   * 94 AS col0 FR
2b940 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
2b950 0a 2d 2d 2d 2d 0d 0a 39 33 30 36 0d 0a 0d 0a 71  .----..9306....q
2b960 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2b970 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
2b980 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2b990 52 45 20 28 20 2b 20 28 20 2b 20 63 6f 6c 32 20  RE ( + ( + col2 
2b9a0 29 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ) ) NOT BETWEEN 
2b9b0 28 20 2b 20 33 31 20 2f 20 63 6f 6c 30 20 2b 20  ( + 31 / col0 + 
2b9c0 2b 20 33 39 20 2a 20 2d 20 38 39 20 29 20 41 4e  + 39 * - 89 ) AN
2b9d0 44 20 35 39 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  D 59..----..51..
2b9e0 31 34 0d 0a 39 36 0d 0a 39 31 0d 0a 34 37 0d 0a  14..96..91..47..
2b9f0 36 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  68....query I ro
2ba00 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2ba10 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20  STINCT - col2 * 
2ba20 2b 20 63 6f 6c 31 20 2d 20 34 30 20 46 52 4f 4d  + col1 - 40 FROM
2ba30 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2ba40 2d 2d 2d 0d 0a 2d 31 32 31 33 0d 0a 2d 33 31 32  ---..-1213..-312
2ba50 30 0d 0a 2d 33 39 32 36 0d 0a 0d 0a 71 75 65 72  0..-3926....quer
2ba60 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2ba70 45 43 54 20 41 4c 4c 20 2d 20 2b 20 35 20 2a 20  ECT ALL - + 5 * 
2ba80 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  - col0 AS col2 F
2ba90 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
2baa0 2d 2d 2d 0d 0a 32 35 35 0d 0a 34 32 35 0d 0a 34  ---..255..425..4
2bab0 35 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  55....skipif pos
2bac0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2bad0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2bae0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2baf0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2bb00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2bb10 53 45 4c 45 43 54 20 35 36 20 63 6f 6c 32 20 46  SELECT 56 col2 F
2bb20 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2bb30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
2bb40 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
2bb50 2d 0d 0a 35 36 0d 0a 35 36 0d 0a 35 36 0d 0a 0d  -..56..56..56...
2bb60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2bb70 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2bb80 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2bb90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2bba0 6c 2d 39 37 39 0d 0a 53 45 4c 45 43 54 20 2b 20  l-979..SELECT + 
2bbb0 63 6f 6c 32 20 44 49 56 20 2d 20 37 35 20 46 52  col2 DIV - 75 FR
2bbc0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2bbd0 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d  .----..-1..0..0.
2bbe0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2bbf0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2bc00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2bc10 74 20 6c 61 62 65 6c 2d 39 37 39 0d 0a 53 45 4c  t label-979..SEL
2bc20 45 43 54 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 37  ECT + col2 / - 7
2bc30 35 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  5 FROM tab0 AS c
2bc40 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30  or0..----..-1..0
2bc50 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
2bc60 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2bc70 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
2bc80 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20   WHERE NOT col2 
2bc90 2f 20 2b 20 34 38 20 4e 4f 54 20 49 4e 20 28 20  / + 48 NOT IN ( 
2bca0 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col1 )..----....
2bcb0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2bcc0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2bcd0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
2bce0 2d 20 31 38 20 3d 20 28 20 4e 55 4c 4c 20 29 0d  - 18 = ( NULL ).
2bcf0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2bd00 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
2bd10 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
2bd20 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2bd30 6c 2d 39 38 32 0d 0a 53 45 4c 45 43 54 20 4d 41  l-982..SELECT MA
2bd40 58 28 20 2b 20 39 30 20 29 20 41 53 20 63 6f 6c  X( + 90 ) AS col
2bd50 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
2bd60 2d 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..90....skipif 
2bd70 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2bd80 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2bd90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38  rowsort label-98
2bda0 32 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20  2..SELECT MAX ( 
2bdb0 2b 20 39 30 20 29 20 41 53 20 63 6f 6c 30 20 46  + 90 ) AS col0 F
2bdc0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2bdd0 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  90....onlyif mys
2bde0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2bdf0 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
2be00 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
2be10 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2be20 72 74 20 6c 61 62 65 6c 2d 39 38 33 0d 0a 53 45  rt label-983..SE
2be30 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28 20 2d 20  LECT ALL MIN( - 
2be40 63 6f 6c 32 20 29 20 2a 20 43 41 53 54 28 20 4e  col2 ) * CAST( N
2be50 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2be60 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2be70 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55  1 WHERE NOT ( NU
2be80 4c 4c 20 29 20 3c 3d 20 63 6f 6c 30 0d 0a 2d 2d  LL ) <= col0..--
2be90 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
2bea0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2beb0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2bec0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2bed0 2d 39 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -983..SELECT ALL
2bee0 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 32 20 29 20   MIN ( - col2 ) 
2bef0 2a 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  * CAST ( NULL AS
2bf00 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
2bf10 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l1 FROM tab1 WHE
2bf20 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20  RE NOT ( NULL ) 
2bf30 3c 3d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  <= col0..----..N
2bf40 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ULL....onlyif my
2bf50 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2bf60 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2bf70 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2bf80 39 38 34 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  984..SELECT COUN
2bf90 54 28 20 41 4c 4c 20 2d 20 32 33 20 29 20 46 52  T( ALL - 23 ) FR
2bfa0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
2bfb0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2bfc0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2bfd0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2bfe0 72 74 20 6c 61 62 65 6c 2d 39 38 34 0d 0a 53 45  rt label-984..SE
2bff0 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41 4c 4c  LECT COUNT ( ALL
2c000 20 2d 20 32 33 20 29 20 46 52 4f 4d 20 74 61 62   - 23 ) FROM tab
2c010 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75  1..----..3....qu
2c020 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2c030 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2c040 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
2c050 38 39 20 3c 3d 20 2d 20 35 37 20 2d 20 63 6f 6c  89 <= - 57 - col
2c060 32 20 2a 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  2 * col1..----..
2c070 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
2c080 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
2c090 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
2c0a0 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49  4cad....query II
2c0b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2c0c0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48  T * FROM tab0 WH
2c0d0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c 20 2b  ERE NOT NULL < +
2c0e0 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 0d 0a 2d 2d   col1 + col1..--
2c0f0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
2c100 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2c110 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2c120 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c130 20 6c 61 62 65 6c 2d 39 38 37 0d 0a 53 45 4c 45   label-987..SELE
2c140 43 54 20 2d 20 35 38 20 2a 20 2b 20 2d 20 28 20  CT - 58 * + - ( 
2c150 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
2c160 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 31  GNED ) ) AS col1
2c170 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2c180 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
2c190 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
2c1a0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2c1b0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2c1c0 73 6f 72 74 20 6c 61 62 65 6c 2d 39 38 37 0d 0a  sort label-987..
2c1d0 53 45 4c 45 43 54 20 2d 20 35 38 20 2a 20 2b 20  SELECT - 58 * + 
2c1e0 2d 20 28 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - ( CAST ( NULL 
2c1f0 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20 41  AS INTEGER ) ) A
2c200 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2c210 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2c220 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
2c230 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2c240 45 43 54 20 41 4c 4c 20 28 20 35 20 29 20 46 52  ECT ALL ( 5 ) FR
2c250 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2c260 0a 2d 2d 2d 2d 0d 0a 35 0d 0a 35 0d 0a 35 0d 0a  .----..5..5..5..
2c270 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2c280 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2c290 43 54 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c 32  CT - col1 / col2
2c2a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2c2b0 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20  r0 WHERE + col2 
2c2c0 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29  BETWEEN ( NULL )
2c2d0 20 41 4e 44 20 28 20 2b 20 63 6f 6c 30 20 2a 20   AND ( + col0 * 
2c2e0 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col0 )..----....
2c2f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2c300 0a 53 45 4c 45 43 54 20 2d 20 32 38 20 2a 20 36  .SELECT - 28 * 6
2c310 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
2c320 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
2c330 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 32 20 29  E NOT ( + col2 )
2c340 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
2c350 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
2c360 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2c370 53 54 49 4e 43 54 20 2b 20 2d 20 33 33 20 46 52  STINCT + - 33 FR
2c380 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
2c390 2d 2d 0d 0a 2d 33 33 0d 0a 0d 0a 71 75 65 72 79  --..-33....query
2c3a0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c3b0 43 54 20 38 31 20 46 52 4f 4d 20 74 61 62 32 20  CT 81 FROM tab2 
2c3c0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
2c3d0 54 20 4e 55 4c 4c 20 3c 3e 20 63 6f 6c 32 20 2b  T NULL <> col2 +
2c3e0 20 63 6f 6c 30 20 2f 20 2d 20 39 30 0d 0a 2d 2d   col0 / - 90..--
2c3f0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
2c400 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
2c410 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 2c 20 37   col2 AS col1, 7
2c420 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
2c430 2d 0d 0a 2d 31 30 0d 0a 37 30 0d 0a 2d 34 37 0d  -..-10..70..-47.
2c440 0a 37 30 0d 0a 2d 39 39 0d 0a 37 30 0d 0a 0d 0a  .70..-99..70....
2c450 71 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77  query IIIIII row
2c460 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
2c470 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c480 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
2c490 20 41 53 20 63 6f 72 31 20 57 48 45 52 45 20 2b   AS cor1 WHERE +
2c4a0 20 34 35 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d   45 > NULL..----
2c4b0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2c4c0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2c4d0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2c4e0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2c4f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c500 20 6c 61 62 65 6c 2d 39 39 35 0d 0a 53 45 4c 45   label-995..SELE
2c510 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT - CAST( NULL 
2c520 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b 20  AS SIGNED ) * + 
2c530 4d 41 58 28 20 2b 20 43 41 53 54 28 20 2b 20 34  MAX( + CAST( + 4
2c540 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 46   AS SIGNED ) ) F
2c550 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2c560 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2c570 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2c580 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2c590 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c5a0 61 62 65 6c 2d 39 39 35 0d 0a 53 45 4c 45 43 54  abel-995..SELECT
2c5b0 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
2c5c0 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20  S INTEGER ) * + 
2c5d0 4d 41 58 20 28 20 2b 20 43 41 53 54 20 28 20 2b  MAX ( + CAST ( +
2c5e0 20 34 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   4 AS INTEGER ) 
2c5f0 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  ) FROM tab0 AS c
2c600 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2c610 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2c620 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2c630 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2c640 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2c650 61 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45 43 54  abel-996..SELECT
2c660 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 41   DISTINCT col2 A
2c670 53 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 44  S col1, - col2 D
2c680 49 56 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  IV + - col0 FROM
2c690 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2c6a0 2d 2d 2d 0d 0a 32 33 0d 0a 30 0d 0a 34 30 0d 0a  ---..23..0..40..
2c6b0 30 0d 0a 35 38 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  0..58..0....skip
2c6c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c6d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2c6e0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2c6f0 6c 2d 39 39 36 0d 0a 53 45 4c 45 43 54 20 44 49  l-996..SELECT DI
2c700 53 54 49 4e 43 54 20 63 6f 6c 32 20 41 53 20 63  STINCT col2 AS c
2c710 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 2f 20 2b 20  ol1, - col2 / + 
2c720 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  - col0 FROM tab2
2c730 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2c740 32 33 0d 0a 30 0d 0a 34 30 0d 0a 30 0d 0a 35 38  23..0..40..0..58
2c750 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..0....onlyif my
2c760 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2c770 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2c780 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2c790 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2c7a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c7b0 6c 2d 39 39 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-997..SELECT DI
2c7c0 53 54 49 4e 43 54 20 63 6f 6c 32 20 44 49 56 20  STINCT col2 DIV 
2c7d0 2b 20 28 20 37 31 20 29 20 2b 20 2d 20 43 41 53  + ( 71 ) + - CAS
2c7e0 54 28 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 31  T( + col1 + col1
2c7f0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 38   AS SIGNED ) * 8
2c800 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  1 col0 FROM tab2
2c810 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2c820 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ULL IS NULL..---
2c830 2d 0d 0a 2d 31 30 38 35 34 0d 0a 2d 31 32 34 37  -..-10854..-1247
2c840 34 0d 0a 2d 38 32 36 32 0d 0a 0d 0a 73 6b 69 70  4..-8262....skip
2c850 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2c860 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
2c870 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
2c880 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
2c890 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
2c8a0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2c8b0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
2c8c0 6f 72 74 20 6c 61 62 65 6c 2d 39 39 37 0d 0a 53  ort label-997..S
2c8d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2c8e0 6f 6c 32 20 2f 20 2b 20 28 20 37 31 20 29 20 2b  ol2 / + ( 71 ) +
2c8f0 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 31   - CAST ( + col1
2c900 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   + col1 AS INTEG
2c910 45 52 20 29 20 2a 20 38 31 20 63 6f 6c 30 20 46  ER ) * 81 col0 F
2c920 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2c930 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
2c940 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 38 35  ULL..----..-1085
2c950 34 0d 0a 2d 31 32 34 37 34 0d 0a 2d 38 32 36 32  4..-12474..-8262
2c960 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
2c970 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2c980 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2c990 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2c9a0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2c9b0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2c9c0 4c 45 43 54 20 32 36 20 63 6f 6c 32 20 46 52 4f  LECT 26 col2 FRO
2c9d0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
2c9e0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
2c9f0 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2ca00 0a 32 36 0d 0a 32 36 0d 0a 32 36 0d 0a 0d 0a 6f  .26..26..26....o
2ca10 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
2ca20 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2ca30 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2ca40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2ca50 39 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  999..SELECT DIST
2ca60 49 4e 43 54 20 39 39 20 44 49 56 20 63 6f 6c 32  INCT 99 DIV col2
2ca70 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2ca80 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
2ca90 0d 0a 32 0d 0a 34 0d 0a 0d 0a 73 6b 69 70 69 66  ..2..4....skipif
2caa0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2cab0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2cac0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
2cad0 39 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  99..SELECT DISTI
2cae0 4e 43 54 20 39 39 20 2f 20 63 6f 6c 32 20 41 53  NCT 99 / col2 AS
2caf0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2cb00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32  cor0..----..1..2
2cb10 0d 0a 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..4....query I r
2cb20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2cb30 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f  LL + col0 * - co
2cb40 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l2 AS col0 FROM 
2cb50 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
2cb60 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
2cb70 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2cb80 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2cb90 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2cba0 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2cbb0 20 39 20 2b 20 2d 20 2b 20 39 31 20 4e 4f 54 20   9 + - + 91 NOT 
2cbc0 49 4e 20 28 20 2b 20 63 6f 6c 32 20 2a 20 63 6f  IN ( + col2 * co
2cbd0 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  l0 )..----..9 va
2cbe0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
2cbf0 37 35 63 39 39 38 61 61 35 33 61 63 38 33 32 31  75c998aa53ac8321
2cc00 38 63 62 66 32 66 65 62 39 36 32 64 30 61 34 39  8cbf2feb962d0a49
2cc10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2cc20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2cc30 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20 2b 20  col0 * + col0 + 
2cc40 32 39 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  29 FROM tab2 AS 
2cc50 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 34 35  cor0..----..2145
2cc60 0d 0a 34 31 32 35 0d 0a 35 36 35 34 0d 0a 0d 0a  ..4125..5654....
2cc70 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2cc80 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2cc90 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2cca0 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
2ccb0 65 6c 2d 31 30 30 33 0d 0a 53 45 4c 45 43 54 20  el-1003..SELECT 
2ccc0 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
2ccd0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
2cce0 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 2b 20  RE NOT - col2 + 
2ccf0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
2cd00 53 49 47 4e 45 44 20 29 20 49 53 20 4e 4f 54 20  SIGNED ) IS NOT 
2cd10 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
2cd20 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
2cd30 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
2cd40 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
2cd50 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2cd60 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2cd70 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
2cd80 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 33 0d  sort label-1003.
2cd90 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2cda0 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2cdb0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
2cdc0 20 63 6f 6c 32 20 2b 20 2d 20 43 41 53 54 20 28   col2 + - CAST (
2cdd0 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
2cde0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
2cdf0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
2ce00 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37  ashing to c4b427
2ce10 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30  65dff94eaaa46040
2ce20 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e  e537fb43b7....on
2ce30 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2ce40 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
2ce50 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
2ce60 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2ce70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ce80 2d 31 30 30 34 0d 0a 53 45 4c 45 43 54 20 44 49  -1004..SELECT DI
2ce90 53 54 49 4e 43 54 20 28 20 28 20 2d 20 43 4f 55  STINCT ( ( - COU
2cea0 4e 54 28 20 2a 20 29 20 29 20 29 20 2b 20 2d 20  NT( * ) ) ) + - 
2ceb0 28 20 43 41 53 54 28 20 43 4f 55 4e 54 28 20 2a  ( CAST( COUNT( *
2cec0 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 29   ) AS SIGNED ) )
2ced0 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
2cee0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2cef0 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-9....skipif my
2cf00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2cf10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2cf20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 34  wsort label-1004
2cf30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2cf40 54 20 28 20 28 20 2d 20 43 4f 55 4e 54 20 28 20  T ( ( - COUNT ( 
2cf50 2a 20 29 20 29 20 29 20 2b 20 2d 20 28 20 43 41  * ) ) ) + - ( CA
2cf60 53 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29  ST ( COUNT ( * )
2cf70 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
2cf80 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
2cf90 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2cfa0 0a 2d 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .-9....query I r
2cfb0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2cfc0 20 31 30 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20   10 + + col0 AS 
2cfd0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
2cfe0 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a 32 35 0d 0a 39  ----..107..25..9
2cff0 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
2d000 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2d010 20 35 30 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 2b   50 + + + col0 +
2d020 20 2d 20 2b 20 33 31 20 41 53 20 63 6f 6c 32 20   - + 31 AS col2 
2d030 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2d040 0a 31 30 34 0d 0a 31 31 30 0d 0a 37 30 0d 0a 0d  .104..110..70...
2d050 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2d060 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
2d070 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
2d080 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2d090 6c 2d 31 30 30 37 0d 0a 53 45 4c 45 43 54 20 35  l-1007..SELECT 5
2d0a0 32 20 2b 20 35 20 44 49 56 20 2b 20 63 6f 6c 31  2 + 5 DIV + col1
2d0b0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
2d0c0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 32 0d 0a 35 32  b0..----..52..52
2d0d0 0d 0a 35 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..57....skipif m
2d0e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2d0f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2d100 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30  owsort label-100
2d110 37 0d 0a 53 45 4c 45 43 54 20 35 32 20 2b 20 35  7..SELECT 52 + 5
2d120 20 2f 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c   / + col1 AS col
2d130 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
2d140 2d 0d 0a 35 32 0d 0a 35 32 0d 0a 35 37 0d 0a 0d  -..52..52..57...
2d150 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d160 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 39  ..SELECT - ( + 9
2d170 35 20 29 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d  5 ) + - col2 + -
2d180 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d   col2 FROM tab1.
2d190 0a 2d 2d 2d 2d 0d 0a 2d 32 31 33 0d 0a 2d 32 33  .----..-213..-23
2d1a0 31 0d 0a 2d 32 38 37 0d 0a 0d 0a 71 75 65 72 79  1..-287....query
2d1b0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2d1c0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2b 20  CT ALL + col1 + 
2d1d0 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  - col1 + - col2 
2d1e0 2a 20 31 34 20 2a 20 2d 20 39 32 20 2a 20 2d 20  * 14 * - 92 * - 
2d1f0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col0 FROM tab1..
2d200 2d 2d 2d 2d 0d 0a 2d 36 33 30 36 30 34 38 0d 0a  ----..-6306048..
2d210 2d 36 34 35 39 33 32 30 0d 0a 2d 37 39 37 30 31  -6459320..-79701
2d220 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  44....query III 
2d230 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2d240 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
2d250 45 20 28 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c  E ( + col0 * col
2d260 31 20 29 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  1 ) = NULL..----
2d270 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2d280 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2d290 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2d2a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2d2b0 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2d2c0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20  CT COUNT( * ) + 
2d2d0 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 37 36  MAX( DISTINCT 76
2d2e0 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
2d2f0 2d 2d 0d 0a 37 39 0d 0a 0d 0a 73 6b 69 70 69 66  --..79....skipif
2d300 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2d310 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2d320 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2d330 30 31 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  011..SELECT DIST
2d340 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
2d350 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   + MAX ( DISTINC
2d360 54 20 37 36 20 29 20 46 52 4f 4d 20 74 61 62 30  T 76 ) FROM tab0
2d370 0d 0a 2d 2d 2d 2d 0d 0a 37 39 0d 0a 0d 0a 71 75  ..----..79....qu
2d380 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2d390 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
2d3a0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
2d3b0 4c 4c 20 3e 3d 20 28 20 35 36 20 2d 20 2d 20 63  LL >= ( 56 - - c
2d3c0 6f 6c 31 20 2d 20 63 6f 6c 31 20 29 20 41 4e 44  ol1 - col1 ) AND
2d3d0 20 4e 4f 54 20 2d 20 35 33 20 4e 4f 54 20 49 4e   NOT - 53 NOT IN
2d3e0 20 28 20 28 20 63 6f 6c 31 20 29 20 29 0d 0a 2d   ( ( col1 ) )..-
2d3f0 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ---....onlyif my
2d400 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2d410 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2d420 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d430 31 30 31 33 0d 0a 53 45 4c 45 43 54 20 2b 20 43  1013..SELECT + C
2d440 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2d 20  OUNT( * ) + + - 
2d450 28 20 2d 20 2d 20 4d 41 58 28 20 2d 20 2b 20 63  ( - - MAX( - + c
2d460 6f 6c 32 20 29 20 29 20 2d 20 2b 20 43 4f 55 4e  ol2 ) ) - + COUN
2d470 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
2d480 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2d490 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  59....skipif mys
2d4a0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2d4b0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2d4c0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 33 0d  sort label-1013.
2d4d0 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
2d4e0 28 20 2a 20 29 20 2b 20 2b 20 2d 20 28 20 2d 20  ( * ) + + - ( - 
2d4f0 2d 20 4d 41 58 20 28 20 2d 20 2b 20 63 6f 6c 32  - MAX ( - + col2
2d500 20 29 20 29 20 2d 20 2b 20 43 4f 55 4e 54 20 28   ) ) - + COUNT (
2d510 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
2d520 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 39  M tab1..----..59
2d530 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2d540 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2d550 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2d560 2d 20 36 31 20 2a 20 2d 20 2b 20 63 6f 6c 30 20  - 61 * - + col0 
2d570 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
2d580 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2d590 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
2d5a0 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20 4e  M tab0 WHERE ( N
2d5b0 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 2b 20  ULL ) BETWEEN + 
2d5c0 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2a 20 63 6f  col2 * col1 * co
2d5d0 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l1 AND NULL..---
2d5e0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2d5f0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2d600 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2d610 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2d620 6c 61 62 65 6c 2d 31 30 31 36 0d 0a 53 45 4c 45  label-1016..SELE
2d630 43 54 20 41 4c 4c 20 28 20 63 6f 6c 32 20 29 20  CT ALL ( col2 ) 
2d640 44 49 56 20 2b 20 33 20 46 52 4f 4d 20 74 61 62  DIV + 3 FROM tab
2d650 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2d660 0a 31 35 0d 0a 33 0d 0a 33 33 0d 0a 0d 0a 73 6b  .15..3..33....sk
2d670 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2d680 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2d690 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2d6a0 65 6c 2d 31 30 31 36 0d 0a 53 45 4c 45 43 54 20  el-1016..SELECT 
2d6b0 41 4c 4c 20 28 20 63 6f 6c 32 20 29 20 2f 20 2b  ALL ( col2 ) / +
2d6c0 20 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   3 FROM tab0 AS 
2d6d0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a  cor0..----..15..
2d6e0 33 0d 0a 33 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  3..33....onlyif 
2d6f0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2d700 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2d710 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
2d720 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2d730 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2d740 61 62 65 6c 2d 31 30 31 37 0d 0a 53 45 4c 45 43  abel-1017..SELEC
2d750 54 20 2d 20 32 32 20 44 49 56 20 2d 20 32 36 2c  T - 22 DIV - 26,
2d760 20 2d 20 43 41 53 54 28 20 31 37 20 41 53 20 53   - CAST( 17 AS S
2d770 49 47 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f  IGNED ) col1 FRO
2d780 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2d790 2d 2d 2d 2d 0d 0a 30 0d 0a 2d 31 37 0d 0a 30 0d  ----..0..-17..0.
2d7a0 0a 2d 31 37 0d 0a 30 0d 0a 2d 31 37 0d 0a 0d 0a  .-17..0..-17....
2d7b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2d7c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2d7d0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2d7e0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2d7f0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2d800 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2d810 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
2d820 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2d830 30 31 37 0d 0a 53 45 4c 45 43 54 20 2d 20 32 32  017..SELECT - 22
2d840 20 2f 20 2d 20 32 36 2c 20 2d 20 43 41 53 54 20   / - 26, - CAST 
2d850 28 20 31 37 20 41 53 20 49 4e 54 45 47 45 52 20  ( 17 AS INTEGER 
2d860 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
2d870 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2d880 30 0d 0a 2d 31 37 0d 0a 30 0d 0a 2d 31 37 0d 0a  0..-17..0..-17..
2d890 30 0d 0a 2d 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  0..-17....onlyif
2d8a0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2d8b0 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
2d8c0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2d8d0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2d8e0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31  owsort label-101
2d8f0 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  8..SELECT + CAST
2d900 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
2d910 20 29 20 2f 20 2d 20 2b 20 31 35 20 2f 20 4d 49   ) / - + 15 / MI
2d920 4e 28 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d  N( - col1 ) FROM
2d930 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
2d940 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
2d950 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2d960 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2d970 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 38 0d 0a  ort label-1018..
2d980 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28 20  SELECT + CAST ( 
2d990 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
2d9a0 29 20 2f 20 2d 20 2b 20 31 35 20 2f 20 4d 49 4e  ) / - + 15 / MIN
2d9b0 20 28 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d   ( - col1 ) FROM
2d9c0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
2d9d0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  L....skipif post
2d9e0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
2d9f0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
2da00 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
2da10 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
2da20 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2da30 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2da40 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 31 20 63  ol1 + + + col1 c
2da50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
2da60 2d 2d 2d 0d 0a 31 30 0d 0a 32 38 0d 0a 39 34 0d  ---..10..28..94.
2da70 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2da80 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
2da90 2d 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  - + + col2 AS co
2daa0 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
2dab0 2d 2d 0d 0a 2d 34 35 0d 0a 32 33 0d 0a 32 36 0d  --..-45..23..26.
2dac0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2dad0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35  rt..SELECT ALL 5
2dae0 30 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  0 + col0 AS col1
2daf0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
2db00 0d 0a 31 33 37 0d 0a 31 34 37 0d 0a 36 35 0d 0a  ..137..147..65..
2db10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2db20 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
2db30 63 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 30 20  col0 - - + col0 
2db40 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2db50 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2db60 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79  .0..0..0....only
2db70 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2db80 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2db90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2dba0 61 62 65 6c 2d 31 30 32 33 0d 0a 53 45 4c 45 43  abel-1023..SELEC
2dbb0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 43  T DISTINCT - - C
2dbc0 4f 55 4e 54 28 20 2b 20 2b 20 63 6f 6c 31 20 29  OUNT( + + col1 )
2dbd0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2dbe0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
2dbf0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2dc00 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2dc10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2dc20 62 65 6c 2d 31 30 32 33 0d 0a 53 45 4c 45 43 54  bel-1023..SELECT
2dc30 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 43 4f   DISTINCT - - CO
2dc40 55 4e 54 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29  UNT ( + + col1 )
2dc50 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2dc60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f  r0..----..3....o
2dc70 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2dc80 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
2dc90 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2dca0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2dcb0 31 30 32 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1024..SELECT ALL
2dcc0 20 2d 20 43 41 53 54 28 20 38 33 20 41 53 20 53   - CAST( 83 AS S
2dcd0 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
2dce0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2dcf0 0a 2d 38 33 0d 0a 2d 38 33 0d 0a 2d 38 33 0d 0a  .-83..-83..-83..
2dd00 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2dd10 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2dd20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2dd30 20 6c 61 62 65 6c 2d 31 30 32 34 0d 0a 53 45 4c   label-1024..SEL
2dd40 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28  ECT ALL - CAST (
2dd50 20 38 33 20 41 53 20 49 4e 54 45 47 45 52 20 29   83 AS INTEGER )
2dd60 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2dd70 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a 2d  r0..----..-83..-
2dd80 38 33 0d 0a 2d 38 33 0d 0a 0d 0a 71 75 65 72 79  83..-83....query
2dd90 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2dda0 45 43 54 20 41 4c 4c 20 2d 20 2b 20 38 31 2c 20  ECT ALL - + 81, 
2ddb0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2ddc0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38  S cor0..----..-8
2ddd0 31 0d 0a 35 31 0d 0a 2d 38 31 0d 0a 38 35 0d 0a  1..51..-81..85..
2dde0 2d 38 31 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72 79  -81..91....query
2ddf0 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
2de00 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38  ECT DISTINCT + 8
2de10 2c 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46  , col1 AS col1 F
2de20 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2de30 0d 0a 2d 2d 2d 2d 0d 0a 38 0d 0a 35 31 0d 0a 38  ..----..8..51..8
2de40 0d 0a 36 37 0d 0a 38 0d 0a 37 37 0d 0a 0d 0a 6f  ..67..8..77....o
2de50 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2de60 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
2de70 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
2de80 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
2de90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2dea0 6c 2d 31 30 32 37 0d 0a 53 45 4c 45 43 54 20 2d  l-1027..SELECT -
2deb0 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
2dec0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
2ded0 45 52 45 20 4e 4f 54 20 2b 20 39 39 20 3e 3d 20  ERE NOT + 99 >= 
2dee0 28 20 2d 20 28 20 2d 20 43 41 53 54 28 20 4e 55  ( - ( - CAST( NU
2def0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29  LL AS SIGNED ) )
2df00 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73   )..----..0....s
2df10 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2df20 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2df30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2df40 62 65 6c 2d 31 30 32 37 0d 0a 53 45 4c 45 43 54  bel-1027..SELECT
2df50 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
2df60 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2df70 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 39 39 20   WHERE NOT + 99 
2df80 3e 3d 20 28 20 2d 20 28 20 2d 20 43 41 53 54 20  >= ( - ( - CAST 
2df90 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2dfa0 52 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30  R ) ) )..----..0
2dfb0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2dfc0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2dfd0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2dfe0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32  owsort label-102
2dff0 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49  8..SELECT ALL MI
2e000 4e 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 63  N( + col2 ) AS c
2e010 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol2 FROM tab1 co
2e020 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a  r0..----..59....
2e030 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2e040 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2e050 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2e060 61 62 65 6c 2d 31 30 32 38 0d 0a 53 45 4c 45 43  abel-1028..SELEC
2e070 54 20 41 4c 4c 20 4d 49 4e 20 28 20 2b 20 63 6f  T ALL MIN ( + co
2e080 6c 32 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l2 ) AS col2 FRO
2e090 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
2e0a0 2d 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72 79 20 49  -..59....query I
2e0b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2e0c0 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
2e0d0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2e0e0 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
2e0f0 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d   = NULL..----...
2e100 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2e110 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20  t..SELECT col1, 
2e120 2d 20 35 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 53 AS col1 FRO
2e130 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2e140 2d 2d 2d 2d 0d 0a 31 0d 0a 2d 35 33 0d 0a 32 31  ----..1..-53..21
2e150 0d 0a 2d 35 33 0d 0a 38 31 0d 0a 2d 35 33 0d 0a  ..-53..81..-53..
2e160 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e170 74 0d 0a 53 45 4c 45 43 54 20 32 35 20 46 52 4f  t..SELECT 25 FRO
2e180 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
2e190 20 2d 20 63 6f 6c 30 20 2b 20 34 38 20 2b 20 63   - col0 + 48 + c
2e1a0 6f 6c 30 20 2a 20 2b 20 2b 20 38 35 20 4e 4f 54  ol0 * + + 85 NOT
2e1b0 20 49 4e 20 28 20 63 6f 6c 31 20 2b 20 2d 20 63   IN ( col1 + - c
2e1c0 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71  ol2 )..----....q
2e1d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2e1e0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
2e1f0 2d 20 2d 20 2b 20 63 6f 6c 31 20 2f 20 2b 20 63  - - + col1 / + c
2e200 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
2e210 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
2e220 4e 55 4c 4c 20 3c 3e 20 28 20 2d 20 2b 20 63 6f  NULL <> ( - + co
2e230 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l1 )..----....on
2e240 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
2e250 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
2e260 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
2e270 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e280 31 30 33 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63  1033..SELECT - c
2e290 6f 6c 31 20 63 6f 6c 32 2c 20 2b 20 43 41 53 54  ol1 col2, + CAST
2e2a0 28 20 31 38 20 41 53 20 53 49 47 4e 45 44 20 29  ( 18 AS SIGNED )
2e2b0 20 2a 20 2b 20 37 34 20 2a 20 2b 20 2b 20 63 6f   * + 74 * + + co
2e2c0 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
2e2d0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d  tab1..----..-14.
2e2e0 0a 36 37 39 33 32 0d 0a 2d 34 37 0d 0a 31 32 31  .67932..-47..121
2e2f0 32 31 32 0d 0a 2d 35 0d 0a 31 31 33 32 32 30 0d  212..-5..113220.
2e300 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2e310 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2e320 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2e330 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2e340 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2e350 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2e360 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2e370 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2e380 6c 2d 31 30 33 33 0d 0a 53 45 4c 45 43 54 20 2d  l-1033..SELECT -
2e390 20 63 6f 6c 31 20 63 6f 6c 32 2c 20 2b 20 43 41   col1 col2, + CA
2e3a0 53 54 20 28 20 31 38 20 41 53 20 49 4e 54 45 47  ST ( 18 AS INTEG
2e3b0 45 52 20 29 20 2a 20 2b 20 37 34 20 2a 20 2b 20  ER ) * + 74 * + 
2e3c0 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  + col0 AS col0 F
2e3d0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2e3e0 2d 31 34 0d 0a 36 37 39 33 32 0d 0a 2d 34 37 0d  -14..67932..-47.
2e3f0 0a 31 32 31 32 31 32 0d 0a 2d 35 0d 0a 31 31 33  .121212..-5..113
2e400 32 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  220....onlyif my
2e410 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2e420 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2e430 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e440 31 30 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1034..SELECT ALL
2e450 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
2e460 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2e470 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
2e480 4c 4c 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c  LL BETWEEN ( NUL
2e490 4c 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  L ) AND NULL..--
2e4a0 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
2e4b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2e4c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2e4d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2e4e0 33 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  34..SELECT ALL -
2e4f0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
2e500 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
2e510 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
2e520 4c 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c  L BETWEEN ( NULL
2e530 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d   ) AND NULL..---
2e540 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  -..0....skipif p
2e550 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2e560 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2e570 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2e580 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2e590 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2e5a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
2e5b0 34 35 2c 20 31 30 20 63 6f 6c 30 20 46 52 4f 4d  45, 10 col0 FROM
2e5c0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
2e5d0 2d 2d 2d 0d 0a 34 35 0d 0a 31 30 0d 0a 34 35 0d  ---..45..10..45.
2e5e0 0a 31 30 0d 0a 34 35 0d 0a 31 30 0d 0a 0d 0a 6f  .10..45..10....o
2e5f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
2e600 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2e610 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2e620 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e630 31 30 33 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2b  1036..SELECT - +
2e640 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20 44   col0 * - col1 D
2e650 49 56 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  IV col1 FROM tab
2e660 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36  2 cor0..----..46
2e670 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 73 6b 69 70  ..64..75....skip
2e680 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2e690 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2e6a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2e6b0 2d 31 30 33 36 0d 0a 53 45 4c 45 43 54 20 2d 20  -1036..SELECT - 
2e6c0 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  + col0 * - col1 
2e6d0 2f 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  / col1 FROM tab2
2e6e0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   cor0..----..46.
2e6f0 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69  .64..75....onlyi
2e700 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2e710 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65  yntax: aggregate
2e720 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2e730 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
2e740 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2e750 30 33 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  037..SELECT - + 
2e760 43 4f 55 4e 54 28 20 2a 20 29 2c 20 2b 20 43 41  COUNT( * ), + CA
2e770 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2e780 45 44 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  ED ) AS col0 FRO
2e790 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
2e7a0 2d 0d 0a 2d 33 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  -..-3..NULL....s
2e7b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e7c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e7d0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
2e7e0 61 62 65 6c 2d 31 30 33 37 0d 0a 53 45 4c 45 43  abel-1037..SELEC
2e7f0 54 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  T - + COUNT ( * 
2e800 29 2c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  ), + CAST ( NULL
2e810 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
2e820 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
2e830 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
2e840 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  NULL....skipif p
2e850 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2e860 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2e870 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2e880 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2e890 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2e8a0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
2e8b0 63 6f 6c 32 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  col2 col2, col1 
2e8c0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2e8d0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2e8e0 0a 2d 35 39 0d 0a 35 0d 0a 2d 36 38 0d 0a 34 37  .-59..5..-68..47
2e8f0 0d 0a 2d 39 36 0d 0a 31 34 0d 0a 0d 0a 71 75 65  ..-96..14....que
2e900 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2e910 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2e920 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  - col1 + - col2 
2e930 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2e940 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2e950 0a 2d 32 31 0d 0a 2d 35 34 0d 0a 2d 38 32 0d 0a  .-21..-54..-82..
2e960 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2e970 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2e980 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2e990 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
2e9a0 61 62 65 6c 2d 31 30 34 30 0d 0a 53 45 4c 45 43  abel-1040..SELEC
2e9b0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
2e9c0 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 43  M tab2 WHERE ( C
2e9d0 41 53 54 28 20 2d 20 33 20 41 53 20 53 49 47 4e  AST( - 3 AS SIGN
2e9e0 45 44 20 29 20 29 20 4e 4f 54 20 42 45 54 57 45  ED ) ) NOT BETWE
2e9f0 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c  EN NULL AND NULL
2ea00 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
2ea10 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2ea20 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2ea30 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
2ea40 2d 31 30 34 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1040..SELECT DI
2ea50 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
2ea60 62 32 20 57 48 45 52 45 20 28 20 43 41 53 54 20  b2 WHERE ( CAST 
2ea70 28 20 2d 20 33 20 41 53 20 49 4e 54 45 47 45 52  ( - 3 AS INTEGER
2ea80 20 29 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e   ) ) NOT BETWEEN
2ea90 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a   NULL AND NULL..
2eaa0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2eab0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2eac0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2ead0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2eae0 2d 31 30 34 31 0d 0a 53 45 4c 45 43 54 20 44 49  -1041..SELECT DI
2eaf0 53 54 49 4e 43 54 20 38 37 20 2b 20 2b 20 43 4f  STINCT 87 + + CO
2eb00 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  UNT( * ) AS col1
2eb10 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2eb20 0d 0a 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..90....skipif m
2eb30 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2eb40 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2eb50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2eb60 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
2eb70 43 54 20 38 37 20 2b 20 2b 20 43 4f 55 4e 54 20  CT 87 + + COUNT 
2eb80 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
2eb90 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab1..----..9
2eba0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
2ebb0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2ebc0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2ebd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2ebe0 34 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  42..SELECT DISTI
2ebf0 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 46  NCT COUNT( * ) F
2ec00 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
2ec10 4f 54 20 2d 20 2d 20 34 33 20 2a 20 34 38 20 2a  OT - - 43 * 48 *
2ec20 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f   + col1 * - - co
2ec30 6c 32 20 2b 20 2b 20 63 6f 6c 32 20 49 4e 20 28  l2 + + col2 IN (
2ec40 20 2d 20 38 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33   - 85 )..----..3
2ec50 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2ec60 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2ec70 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2ec80 72 74 20 6c 61 62 65 6c 2d 31 30 34 32 0d 0a 53  rt label-1042..S
2ec90 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
2eca0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
2ecb0 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab0 WHERE NOT -
2ecc0 20 2d 20 34 33 20 2a 20 34 38 20 2a 20 2b 20 63   - 43 * 48 * + c
2ecd0 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2b  ol1 * - - col2 +
2ece0 20 2b 20 63 6f 6c 32 20 49 4e 20 28 20 2d 20 38   + col2 IN ( - 8
2ecf0 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  5 )..----..3....
2ed00 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2ed10 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
2ed20 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
2ed30 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2ed40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2ed50 65 6c 2d 31 30 34 33 0d 0a 53 45 4c 45 43 54 20  el-1043..SELECT 
2ed60 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20 43  DISTINCT CAST( C
2ed70 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47  OUNT( * ) AS SIG
2ed80 4e 45 44 20 29 20 2b 20 2b 20 35 32 20 46 52 4f  NED ) + + 52 FRO
2ed90 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 35 35  M tab0..----..55
2eda0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2edb0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2edc0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2edd0 72 74 20 6c 61 62 65 6c 2d 31 30 34 33 0d 0a 53  rt label-1043..S
2ede0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
2edf0 41 53 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20  AST ( COUNT ( * 
2ee00 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  ) AS INTEGER ) +
2ee10 20 2b 20 35 32 20 46 52 4f 4d 20 74 61 62 30 0d   + 52 FROM tab0.
2ee20 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 0d 0a 71 75 65  .----..55....que
2ee30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2ee40 4c 45 43 54 20 2d 20 2b 20 32 37 20 2b 20 2b 20  LECT - + 27 + + 
2ee50 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
2ee60 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2ee70 2d 2d 2d 2d 0d 0a 32 34 0d 0a 35 38 0d 0a 36 34  ----..24..58..64
2ee80 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2ee90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
2eea0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2eeb0 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 4e  0 WHERE ( NULL N
2eec0 4f 54 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c  OT BETWEEN ( NUL
2eed0 4c 20 29 20 41 4e 44 20 2b 20 63 6f 6c 32 20 29  L ) AND + col2 )
2eee0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
2eef0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2ef00 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
2ef10 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
2ef20 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 36 0d  sort label-1046.
2ef30 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 4e 55  .SELECT CAST( NU
2ef40 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
2ef50 20 2b 20 2d 20 32 36 20 2f 20 63 6f 6c 31 20 46   + - 26 / col1 F
2ef60 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2ef70 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2ef80 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
2ef90 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2efa0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2efb0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2efc0 2d 31 30 34 36 0d 0a 53 45 4c 45 43 54 20 43 41  -1046..SELECT CA
2efd0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2efe0 45 47 45 52 20 29 20 2b 20 2b 20 2d 20 32 36 20  EGER ) + + - 26 
2eff0 2f 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  / col1 FROM tab1
2f000 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2f010 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
2f020 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2f030 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2f040 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2f050 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2f060 61 62 65 6c 2d 31 30 34 37 0d 0a 53 45 4c 45 43  abel-1047..SELEC
2f070 54 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b  T - + col1 + - +
2f080 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2f090 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c 30 20 46  IGNED ) + col0 F
2f0a0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2f0b0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
2f0c0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
2f0d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2f0e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2f0f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2f100 2d 31 30 34 37 0d 0a 53 45 4c 45 43 54 20 2d 20  -1047..SELECT - 
2f110 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 43 41 53  + col1 + - + CAS
2f120 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
2f130 47 45 52 20 29 20 2b 20 63 6f 6c 30 20 46 52 4f  GER ) + col0 FRO
2f140 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2f150 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
2f160 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
2f170 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
2f180 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20  ntax: aggregate 
2f190 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2f1a0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2f1b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2f1c0 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
2f1d0 43 54 20 2d 20 2b 20 43 41 53 54 28 20 2b 20 43  CT - + CAST( + C
2f1e0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 53 49 47  OUNT( * ) AS SIG
2f1f0 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20  NED ) FROM tab2 
2f200 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2f210 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
2f220 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2f230 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2f240 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 38 0d 0a  ort label-1048..
2f250 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2f260 2d 20 2b 20 43 41 53 54 20 28 20 2b 20 43 4f 55  - + CAST ( + COU
2f270 4e 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45  NT ( * ) AS INTE
2f280 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20  GER ) FROM tab2 
2f290 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2f2a0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
2f2b0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2f2c0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2f2d0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2f2e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f2f0 74 20 6c 61 62 65 6c 2d 31 30 34 39 0d 0a 53 45  t label-1049..SE
2f300 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20  LECT ALL + MIN( 
2f310 2d 20 63 6f 6c 32 20 29 20 2a 20 43 41 53 54 28  - col2 ) * CAST(
2f320 20 2b 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20   + - CAST( NULL 
2f330 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20 53  AS SIGNED ) AS S
2f340 49 47 4e 45 44 20 29 20 2b 20 2b 20 2b 20 36 36  IGNED ) + + + 66
2f350 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2f360 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
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 39 0d 0a 53 45 4c   label-1049..SEL
2f3b0 45 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 20 28 20  ECT ALL + MIN ( 
2f3c0 2d 20 63 6f 6c 32 20 29 20 2a 20 43 41 53 54 20  - col2 ) * CAST 
2f3d0 28 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c  ( + - CAST ( NUL
2f3e0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  L AS INTEGER ) A
2f3f0 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20  S INTEGER ) + + 
2f400 2b 20 36 36 20 46 52 4f 4d 20 74 61 62 32 20 41  + 66 FROM tab2 A
2f410 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
2f420 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
2f430 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2f440 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2f450 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f460 31 30 35 30 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  1050..SELECT - -
2f470 20 43 4f 55 4e 54 28 20 2a 20 29 2c 20 43 4f 55   COUNT( * ), COU
2f480 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
2f490 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2f4a0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
2f4b0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ..----..0..0....
2f4c0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2f4d0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2f4e0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2f4f0 6c 61 62 65 6c 2d 31 30 35 30 0d 0a 53 45 4c 45  label-1050..SELE
2f500 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a  CT - - COUNT ( *
2f510 20 29 2c 20 43 4f 55 4e 54 20 28 20 2a 20 29 20   ), COUNT ( * ) 
2f520 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2f530 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
2f540 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2f550 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0..0....onlyif m
2f560 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2f570 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2f580 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2f590 2d 31 30 35 31 0d 0a 53 45 4c 45 43 54 20 44 49  -1051..SELECT DI
2f5a0 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20  STINCT + COUNT( 
2f5b0 2a 20 29 20 2b 20 2b 20 2d 20 31 30 20 46 52 4f  * ) + + - 10 FRO
2f5c0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  M tab1..----..-7
2f5d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
2f5e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
2f5f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
2f600 72 74 20 6c 61 62 65 6c 2d 31 30 35 31 0d 0a 53  rt label-1051..S
2f610 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
2f620 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
2f630 20 2d 20 31 30 20 46 52 4f 4d 20 74 61 62 31 0d   - 10 FROM tab1.
2f640 0a 2d 2d 2d 2d 0d 0a 2d 37 0d 0a 0d 0a 6f 6e 6c  .----..-7....onl
2f650 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2f660 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2f670 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
2f680 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2f690 31 30 35 32 0d 0a 53 45 4c 45 43 54 20 2a 20 46  1052..SELECT * F
2f6a0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d  ROM tab2 WHERE -
2f6b0 20 2b 20 63 6f 6c 30 20 49 4e 20 28 20 63 6f 6c   + col0 IN ( col
2f6c0 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2b  0 * - - col0 + +
2f6d0 20 32 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 43 41   2 - col1 * - CA
2f6e0 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49  ST( + col2 AS SI
2f6f0 47 4e 45 44 20 29 20 2f 20 63 6f 6c 30 20 2d 20  GNED ) / col0 - 
2f700 33 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  39 )..----....sk
2f710 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2f720 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2f730 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
2f740 61 62 65 6c 2d 31 30 35 32 0d 0a 53 45 4c 45 43  abel-1052..SELEC
2f750 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
2f760 45 52 45 20 2d 20 2b 20 63 6f 6c 30 20 49 4e 20  ERE - + col0 IN 
2f770 28 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c  ( col0 * - - col
2f780 30 20 2b 20 2b 20 32 20 2d 20 63 6f 6c 31 20 2a  0 + + 2 - col1 *
2f790 20 2d 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 32   - CAST ( + col2
2f7a0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
2f7b0 63 6f 6c 30 20 2d 20 33 39 20 29 0d 0a 2d 2d 2d  col0 - 39 )..---
2f7c0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  -....query III r
2f7d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
2f7e0 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
2f7f0 48 45 52 45 20 4e 4f 54 20 2d 20 36 37 20 49 53  HERE NOT - 67 IS
2f800 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
2f810 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2f820 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 35 20 41  ort..SELECT 75 A
2f830 53 20 63 6f 6c 30 2c 20 41 56 47 20 28 20 44 49  S col0, AVG ( DI
2f840 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 29 20  STINCT - col0 ) 
2f850 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
2f860 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20  ( NULL ) IS NOT 
2f870 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a  NULL..----..75..
2f880 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
2f890 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2f8a0 20 44 49 53 54 49 4e 43 54 20 2d 20 33 20 41 53   DISTINCT - 3 AS
2f8b0 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31 20 2b 20   col2, + col1 + 
2f8c0 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  + col2 AS col0 F
2f8d0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
2f8e0 2d 33 0d 0a 31 31 37 0d 0a 2d 33 0d 0a 31 32 35  -3..117..-3..125
2f8f0 0d 0a 2d 33 0d 0a 37 34 0d 0a 0d 0a 6f 6e 6c 79  ..-3..74....only
2f900 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2f910 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2f920 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2f930 6c 61 62 65 6c 2d 31 30 35 36 0d 0a 53 45 4c 45  label-1056..SELE
2f940 43 54 20 2b 20 38 32 2c 20 43 4f 55 4e 54 28 20  CT + 82, COUNT( 
2f950 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
2f960 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 32 0d   tab0..----..82.
2f970 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
2f980 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2f990 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
2f9a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 36  wsort label-1056
2f9b0 0d 0a 53 45 4c 45 43 54 20 2b 20 38 32 2c 20 43  ..SELECT + 82, C
2f9c0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
2f9d0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
2f9e0 2d 2d 0d 0a 38 32 0d 0a 33 0d 0a 0d 0a 71 75 65  --..82..3....que
2f9f0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2fa00 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
2fa10 37 38 20 2d 20 2b 20 38 31 20 46 52 4f 4d 20 74  78 - + 81 FROM t
2fa20 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2fa30 2d 0d 0a 2d 31 35 39 0d 0a 0d 0a 6f 6e 6c 79 69  -..-159....onlyi
2fa40 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2fa50 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2fa60 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2fa70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 38  wsort label-1058
2fa80 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20  ..SELECT + col0 
2fa90 2b 20 2d 20 2b 20 63 6f 6c 32 20 44 49 56 20 36  + - + col2 DIV 6
2faa0 33 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  3 FROM tab2 cor0
2fab0 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a  ..----..46..64..
2fac0 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  75....skipif mys
2fad0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2fae0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2faf0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 38 0d  sort label-1058.
2fb00 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b  .SELECT + col0 +
2fb10 20 2d 20 2b 20 63 6f 6c 32 20 2f 20 36 33 20 46   - + col2 / 63 F
2fb20 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d  ROM tab2 cor0..-
2fb30 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d  ---..46..64..75.
2fb40 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2fb50 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2fb60 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2fb70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 39  wsort label-1059
2fb80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2fb90 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e 43  T - SUM( DISTINC
2fba0 54 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  T - col1 ) FROM 
2fbb0 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
2fbc0 0a 31 39 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .195....skipif m
2fbd0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2fbe0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2fbf0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35  owsort label-105
2fc00 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
2fc10 43 54 20 2d 20 53 55 4d 20 28 20 44 49 53 54 49  CT - SUM ( DISTI
2fc20 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  NCT - col1 ) FRO
2fc30 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
2fc40 2d 0d 0a 31 39 35 0d 0a 0d 0a 71 75 65 72 79 20  -..195....query 
2fc50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2fc60 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
2fc70 30 20 2a 20 35 34 20 46 52 4f 4d 20 74 61 62 31  0 * 54 FROM tab1
2fc80 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2fc90 2d 32 37 35 34 0d 0a 2d 34 35 39 30 0d 0a 2d 34  -2754..-4590..-4
2fca0 39 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  914....query I r
2fcb0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2fcc0 20 35 37 20 2d 20 36 33 20 2b 20 2d 20 2d 20 37   57 - 63 + - - 7
2fcd0 32 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 36  2 + col2 + - - 6
2fce0 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
2fcf0 45 20 28 20 2b 20 2d 20 38 37 20 29 20 49 53 20  E ( + - 87 ) IS 
2fd00 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
2fd10 31 33 36 0d 0a 31 37 33 0d 0a 32 32 35 0d 0a 0d  136..173..225...
2fd20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2fd30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2fd40 54 20 33 32 20 2d 20 32 35 20 2a 20 63 6f 6c 30  T 32 - 25 * col0
2fd50 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2fd60 0d 0a 2d 31 32 34 33 0d 0a 2d 32 30 39 33 0d 0a  ..-1243..-2093..
2fd70 2d 32 32 34 33 0d 0a 0d 0a 71 75 65 72 79 20 49  -2243....query I
2fd80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2fd90 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 41   DISTINCT col1 A
2fda0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2fdb0 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
2fdc0 4c 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  L IS NULL )..---
2fdd0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  -....query II ro
2fde0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2fdf0 28 20 63 6f 6c 31 20 29 2c 20 31 39 20 2b 20 2b  ( col1 ), 19 + +
2fe00 20 2b 20 32 37 20 41 53 20 63 6f 6c 32 20 46 52   + 27 AS col2 FR
2fe10 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2fe20 31 0d 0a 34 36 0d 0a 2d 32 31 0d 0a 34 36 0d 0a  1..46..-21..46..
2fe30 2d 38 31 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79  -81..46....query
2fe40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2fe50 43 54 20 44 49 53 54 49 4e 43 54 20 37 35 20 46  CT DISTINCT 75 F
2fe60 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
2fe70 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
2fe80 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
2fe90 37 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  75....onlyif mys
2fea0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2feb0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2fec0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2fed0 30 36 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  066..SELECT ALL 
2fee0 28 20 2b 20 4d 49 4e 28 20 41 4c 4c 20 63 6f 6c  ( + MIN( ALL col
2fef0 31 20 29 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28  1 ) ) * - COUNT(
2ff00 20 2a 20 29 20 2d 20 2b 20 36 39 20 46 52 4f 4d   * ) - + 69 FROM
2ff10 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2ff20 2d 2d 2d 0d 0a 2d 32 32 32 0d 0a 0d 0a 73 6b 69  ---..-222....ski
2ff30 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ff40 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2ff50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2ff60 6c 2d 31 30 36 36 0d 0a 53 45 4c 45 43 54 20 41  l-1066..SELECT A
2ff70 4c 4c 20 28 20 2b 20 4d 49 4e 20 28 20 41 4c 4c  LL ( + MIN ( ALL
2ff80 20 63 6f 6c 31 20 29 20 29 20 2a 20 2d 20 43 4f   col1 ) ) * - CO
2ff90 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b 20 36 39  UNT ( * ) - + 69
2ffa0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2ffb0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 32 0d 0a  r0..----..-222..
2ffc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2ffd0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2ffe0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2fff0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 37 0d  sort label-1067.
30000 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 4d 41  .SELECT ALL - MA
30010 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  X( DISTINCT + co
30020 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  l1 ) AS col2 FRO
30030 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
30040 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
30050 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
30060 0a 2d 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-47....skipif m
30070 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30080 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
30090 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
300a0 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  7..SELECT ALL - 
300b0 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MAX ( DISTINCT +
300c0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20   col1 ) AS col2 
300d0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
300e0 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
300f0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
30100 2d 2d 0d 0a 2d 34 37 0d 0a 0d 0a 6f 6e 6c 79 69  --..-47....onlyi
30110 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
30120 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
30130 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30140 62 65 6c 2d 31 30 36 38 0d 0a 53 45 4c 45 43 54  bel-1068..SELECT
30150 20 41 4c 4c 20 53 55 4d 28 20 2b 20 2b 20 28 20   ALL SUM( + + ( 
30160 2b 20 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20  + col2 ) ) FROM 
30170 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
30180 0a 32 32 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .223....skipif m
30190 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
301a0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
301b0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
301c0 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55  8..SELECT ALL SU
301d0 4d 20 28 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 32  M ( + + ( + col2
301e0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63   ) ) FROM tab1 c
301f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a  or0..----..223..
30200 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30210 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 37 20 2b  t..SELECT + 87 +
30220 20 2b 20 28 20 63 6f 6c 30 20 29 20 2b 20 2d 20   + ( col0 ) + - 
30230 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
30240 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
30250 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
30260 29 20 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  ) > NULL..----..
30270 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30280 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f  t..SELECT - + co
30290 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 46 52  l1 + + + col0 FR
302a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
302b0 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2b  WHERE NOT col0 +
302c0 20 2d 20 63 6f 6c 32 20 3e 20 2b 20 2b 20 39 30   - col2 > + + 90
302d0 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 36 36 0d  ..----..-66..66.
302e0 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .96....query I r
302f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
30300 4c 4c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  LL col0 FROM tab
30310 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
30320 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
30330 2d 2d 0d 0a 31 35 0d 0a 38 37 0d 0a 39 37 0d 0a  --..15..87..97..
30340 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
30350 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
30360 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
30370 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e  WHERE NOT NULL >
30380 3d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  = - col1..----..
30390 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
303a0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
303b0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
303c0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 33 0d  sort label-1073.
303d0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
303e0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
303f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
30400 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49  WHERE NOT NULL I
30410 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
30420 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..3....skipif my
30430 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
30440 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
30450 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 33  wsort label-1073
30460 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
30470 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T + COUNT ( * ) 
30480 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
30490 31 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  1 WHERE NOT NULL
304a0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
304b0 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
304c0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
304d0 20 41 4c 4c 20 2d 20 28 20 2d 20 32 34 20 29 20   ALL - ( - 24 ) 
304e0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
304f0 0a 32 34 0d 0a 32 34 0d 0a 32 34 0d 0a 0d 0a 71  .24..24..24....q
30500 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
30510 53 45 4c 45 43 54 20 41 4c 4c 20 35 31 20 2a 20  SELECT ALL 51 * 
30520 2b 20 34 39 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 49 AS col0 FRO
30530 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 34  M tab1..----..24
30540 39 39 0d 0a 32 34 39 39 0d 0a 32 34 39 39 0d 0a  99..2499..2499..
30550 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30560 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
30570 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
30580 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
30590 65 6c 2d 31 30 37 36 0d 0a 53 45 4c 45 43 54 20  el-1076..SELECT 
305a0 2b 20 30 20 44 49 56 20 63 6f 6c 31 20 46 52 4f  + 0 DIV col1 FRO
305b0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
305c0 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
305d0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
305e0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
305f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
30600 37 36 0d 0a 53 45 4c 45 43 54 20 2b 20 30 20 2f  76..SELECT + 0 /
30610 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
30620 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
30630 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30640 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
30650 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
30660 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 37 0d  sort label-1077.
30670 0a 53 45 4c 45 43 54 20 37 39 20 2d 20 2d 20 4d  .SELECT 79 - - M
30680 49 4e 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29  IN( ALL + col2 )
30690 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
306a0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
306b0 4c 20 3e 3d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20  L >= col2 + - + 
306c0 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  col0..----..NULL
306d0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
306e0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
306f0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
30700 72 74 20 6c 61 62 65 6c 2d 31 30 37 37 0d 0a 53  rt label-1077..S
30710 45 4c 45 43 54 20 37 39 20 2d 20 2d 20 4d 49 4e  ELECT 79 - - MIN
30720 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20   ( ALL + col2 ) 
30730 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
30740 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
30750 20 3e 3d 20 63 6f 6c 32 20 2b 20 2d 20 2b 20 63   >= col2 + - + c
30760 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ol0..----..NULL.
30770 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
30780 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 35 20  rt..SELECT - 95 
30790 2b 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c  + - col2 - - col
307a0 32 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20  2 * - col2 FROM 
307b0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
307c0 2d 2d 0d 0a 2d 32 30 35 0d 0a 2d 32 33 35 31 0d  --..-205..-2351.
307d0 0a 2d 39 39 39 35 0d 0a 0d 0a 71 75 65 72 79 20  .-9995....query 
307e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
307f0 54 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63  T + col1 + - + c
30800 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol1 AS col1 FROM
30810 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
30820 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
30830 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
30840 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
30850 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
30860 72 74 20 6c 61 62 65 6c 2d 31 30 38 30 0d 0a 53  rt label-1080..S
30870 45 4c 45 43 54 20 31 39 20 2b 20 2b 20 43 4f 55  ELECT 19 + + COU
30880 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
30890 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
308a0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 0d 0a 0d 0a 73  0..----..22....s
308b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
308c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
308d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
308e0 62 65 6c 2d 31 30 38 30 0d 0a 53 45 4c 45 43 54  bel-1080..SELECT
308f0 20 31 39 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20   19 + + COUNT ( 
30900 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
30910 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
30920 2d 2d 2d 0d 0a 32 32 0d 0a 0d 0a 6f 6e 6c 79 69  ---..22....onlyi
30930 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
30940 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
30950 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30960 62 65 6c 2d 31 30 38 31 0d 0a 53 45 4c 45 43 54  bel-1081..SELECT
30970 20 2b 20 28 20 43 4f 55 4e 54 28 20 2a 20 29 20   + ( COUNT( * ) 
30980 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
30990 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab0..----..3....
309a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
309b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..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 38 31 0d 0a 53 45 4c 45 43  abel-1081..SELEC
309e0 54 20 2b 20 28 20 43 4f 55 4e 54 20 28 20 2a 20  T + ( COUNT ( * 
309f0 29 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ) ) AS col0 FROM
30a00 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   tab0..----..3..
30a10 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
30a20 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
30a30 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
30a40 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 32  wsort label-1082
30a50 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20  ..SELECT COUNT( 
30a60 2a 20 29 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20  * ), + COUNT( * 
30a70 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
30a80 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d  ab0..----..3..3.
30a90 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
30aa0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
30ab0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
30ac0 72 74 20 6c 61 62 65 6c 2d 31 30 38 32 0d 0a 53  rt label-1082..S
30ad0 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  ELECT COUNT ( * 
30ae0 29 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  ), + COUNT ( * )
30af0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
30b00 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a  b0..----..3..3..
30b10 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
30b20 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
30b30 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
30b40 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
30b50 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
30b60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
30b70 43 54 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 32  CT + col0 * col2
30b80 20 2a 20 2b 20 63 6f 6c 30 20 63 6f 6c 30 20 46   * + col0 col0 F
30b90 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
30ba0 32 34 39 36 39 36 0d 0a 34 32 36 32 37 35 0d 0a  249696..426275..
30bb0 35 36 33 31 30 38 0d 0a 0d 0a 71 75 65 72 79 20  563108....query 
30bc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30bd0 54 20 44 49 53 54 49 4e 43 54 20 39 32 20 41 53  T DISTINCT 92 AS
30be0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
30bf0 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
30c00 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d  IN tab1 AS cor1.
30c10 0a 2d 2d 2d 2d 0d 0a 39 32 0d 0a 0d 0a 6f 6e 6c  .----..92....onl
30c20 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
30c30 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
30c40 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30c50 6c 61 62 65 6c 2d 31 30 38 35 0d 0a 53 45 4c 45  label-1085..SELE
30c60 43 54 20 2b 20 2b 20 53 55 4d 28 20 35 35 20 29  CT + + SUM( 55 )
30c70 20 2a 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20   * + + COUNT( * 
30c80 29 20 2a 20 2b 20 2b 20 4d 41 58 28 20 2d 20 2b  ) * + + MAX( - +
30c90 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
30ca0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
30cb0 0a 2d 31 31 33 38 35 0d 0a 0d 0a 73 6b 69 70 69  .-11385....skipi
30cc0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
30cd0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
30ce0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30cf0 31 30 38 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  1085..SELECT + +
30d00 20 53 55 4d 20 28 20 35 35 20 29 20 2a 20 2b 20   SUM ( 55 ) * + 
30d10 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
30d20 2b 20 2b 20 4d 41 58 20 28 20 2d 20 2b 20 63 6f  + + MAX ( - + co
30d30 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  l2 ) FROM tab2 A
30d40 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
30d50 31 33 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  1385....query I 
30d60 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
30d70 2d 20 63 6f 6c 32 20 2d 20 2b 20 63 6f 6c 32 20  - col2 - + col2 
30d80 2a 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c  * col1 + - - col
30d90 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
30da0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 35 30  or0..----..-1150
30db0 0d 0a 2d 33 30 35 36 0d 0a 2d 33 38 36 39 0d 0a  ..-3056..-3869..
30dc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30dd0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 30  t..SELECT ALL 20
30de0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
30df0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  b2 cor0..----..2
30e00 30 0d 0a 32 30 0d 0a 32 30 0d 0a 0d 0a 73 6b 69  0..20..20....ski
30e10 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
30e20 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
30e30 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
30e40 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
30e50 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
30e60 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
30e70 4c 20 2d 20 34 32 20 2b 20 2b 20 63 6f 6c 32 20  L - 42 + + col2 
30e80 2b 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63  + - col2 * + - c
30e90 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 63  ol2 * - + col2 c
30ea0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
30eb0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30   cor0..----..-20
30ec0 35 33 36 32 0d 0a 2d 33 31 34 34 30 36 0d 0a 2d  5362..-314406..-
30ed0 38 38 34 36 38 32 0d 0a 0d 0a 71 75 65 72 79 20  884682....query 
30ee0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30ef0 54 20 44 49 53 54 49 4e 43 54 20 37 32 20 2b 20  T DISTINCT 72 + 
30f00 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  + col2 FROM tab0
30f10 0d 0a 2d 2d 2d 2d 0d 0a 31 31 39 0d 0a 31 37 31  ..----..119..171
30f20 0d 0a 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..82....onlyif m
30f30 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
30f40 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
30f50 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
30f60 6f 72 74 20 6c 61 62 65 6c 2d 31 30 39 30 0d 0a  ort label-1090..
30f70 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
30f80 30 20 44 49 56 20 63 6f 6c 30 20 2b 20 2d 20 2b  0 DIV col0 + - +
30f90 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 2b   col1 + - col2 +
30fa0 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c   - col1 AS col2,
30fb0 20 39 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   9 FROM tab1..--
30fc0 2d 2d 0d 0a 2d 31 32 35 0d 0a 39 0d 0a 2d 31 36  --..-125..9..-16
30fd0 33 0d 0a 39 0d 0a 2d 37 30 0d 0a 39 0d 0a 0d 0a  3..9..-70..9....
30fe0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
30ff0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
31000 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
31010 6c 61 62 65 6c 2d 31 30 39 30 0d 0a 53 45 4c 45  label-1090..SELE
31020 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2f 20  CT ALL - col0 / 
31030 63 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 31 20  col0 + - + col1 
31040 2b 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  + - col2 + - col
31050 31 20 41 53 20 63 6f 6c 32 2c 20 39 20 46 52 4f  1 AS col2, 9 FRO
31060 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
31070 32 35 0d 0a 39 0d 0a 2d 31 36 33 0d 0a 39 0d 0a  25..9..-163..9..
31080 2d 37 30 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79 20  -70..9....query 
31090 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
310a0 54 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2d 20 34  T ALL col0 + - 4
310b0 35 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  5 FROM tab1..---
310c0 2d 0d 0a 34 30 0d 0a 34 36 0d 0a 36 0d 0a 0d 0a  -..40..46..6....
310d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
310e0 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30  .SELECT + + col0
310f0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
31100 62 31 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20  b1 WHERE + col1 
31110 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
31120 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a 0d  -..51..85..91...
31130 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
31140 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
31150 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 38  M tab2 WHERE ( 8
31160 31 20 2f 20 63 6f 6c 30 20 2d 20 2d 20 36 20 29  1 / col0 - - 6 )
31170 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
31180 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
31190 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
311a0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
311b0 20 57 48 45 52 45 20 38 34 20 49 53 20 4e 4f 54   WHERE 84 IS NOT
311c0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
311d0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
311e0 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
311f0 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
31200 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
31210 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
31220 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2a  ol0 + + + col2 *
31230 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 46 52   + ( + col1 ) FR
31240 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
31250 39 36 0d 0a 32 39 37 0d 0a 33 38 32 32 0d 0a 0d  96..297..3822...
31260 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31270 0d 0a 53 45 4c 45 43 54 20 28 20 63 6f 6c 32 20  ..SELECT ( col2 
31280 29 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  ) + - col0 AS co
31290 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l2 FROM tab2..--
312a0 2d 2d 0d 0a 2d 31 37 0d 0a 2d 32 33 0d 0a 2d 32  --..-17..-23..-2
312b0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
312c0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
312d0 20 63 6f 6c 30 20 2a 20 38 30 20 2a 20 2d 20 63   col0 * 80 * - c
312e0 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2d  ol1 - - col1 + -
312f0 20 32 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   22 AS col0 FROM
31300 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34   tab1..----..-34
31310 30 31 37 0d 0a 2d 33 34 32 31 33 35 0d 0a 2d 35  017..-342135..-5
31320 37 31 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  7128....onlyif m
31330 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
31340 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
31350 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31360 2d 31 30 39 38 0d 0a 53 45 4c 45 43 54 20 44 49  -1098..SELECT DI
31370 53 54 49 4e 43 54 20 32 35 20 2a 20 2b 20 43 4f  STINCT 25 * + CO
31380 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20  UNT( DISTINCT + 
31390 2b 20 35 32 20 29 20 2a 20 32 36 20 41 53 20 63  + 52 ) * 26 AS c
313a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 2c 20 74  ol2 FROM tab1, t
313b0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
313c0 2d 0d 0a 36 35 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..650....skipif
313d0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
313e0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
313f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31400 30 39 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  098..SELECT DIST
31410 49 4e 43 54 20 32 35 20 2a 20 2b 20 43 4f 55 4e  INCT 25 * + COUN
31420 54 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b  T ( DISTINCT + +
31430 20 35 32 20 29 20 2a 20 32 36 20 41 53 20 63 6f   52 ) * 26 AS co
31440 6c 32 20 46 52 4f 4d 20 74 61 62 31 2c 20 74 61  l2 FROM tab1, ta
31450 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
31460 0d 0a 36 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49  ..650....query I
31470 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
31480 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
31490 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
314a0 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32  WHERE NOT - col2
314b0 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
314c0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
314d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
314e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
314f0 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
31500 45 4e 20 2d 20 36 37 20 41 4e 44 20 2d 20 63 6f  EN - 67 AND - co
31510 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
31520 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
31530 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
31540 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31550 61 62 65 6c 2d 31 31 30 31 0d 0a 53 45 4c 45 43  abel-1101..SELEC
31560 54 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  T - - COUNT( * )
31570 20 2a 20 36 38 20 2b 20 2d 20 2b 20 37 35 20 2a   * 68 + - + 75 *
31580 20 39 34 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   94 AS col1 FROM
31590 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
315a0 0d 0a 2d 36 38 34 36 0d 0a 0d 0a 73 6b 69 70 69  ..-6846....skipi
315b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
315c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
315d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
315e0 31 31 30 31 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  1101..SELECT - -
315f0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 36   COUNT ( * ) * 6
31600 38 20 2b 20 2d 20 2b 20 37 35 20 2a 20 39 34 20  8 + - + 75 * 94 
31610 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
31620 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  2 cor0..----..-6
31630 38 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  846....query II 
31640 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
31650 2b 20 2d 20 63 6f 6c 31 20 2d 20 63 6f 6c 32 20  + - col1 - col2 
31660 41 53 20 63 6f 6c 32 2c 20 38 20 46 52 4f 4d 20  AS col2, 8 FROM 
31670 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
31680 2d 2d 0d 0a 2d 31 30 30 0d 0a 38 0d 0a 2d 31 32  --..-100..8..-12
31690 38 0d 0a 38 0d 0a 2d 33 31 0d 0a 38 0d 0a 0d 0a  8..8..-31..8....
316a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
316b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 34 37  .SELECT ALL - 47
316c0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 28 20   AS col0 FROM ( 
316d0 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
316e0 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20  SS JOIN tab2 AS 
316f0 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  cor1 )..----..9 
31700 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
31710 6f 20 36 39 34 32 61 30 64 39 35 35 38 32 37 37  o 6942a0d9558277
31720 61 66 64 30 64 30 30 34 30 38 64 36 35 63 66 35  afd0d00408d65cf5
31730 61 61 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  aa....onlyif mys
31740 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
31750 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
31760 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31770 20 6c 61 62 65 6c 2d 31 31 30 34 0d 0a 53 45 4c   label-1104..SEL
31780 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
31790 30 20 44 49 56 20 32 39 20 41 53 20 63 6f 6c 30  0 DIV 29 AS col0
317a0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
317b0 0d 0a 31 0d 0a 32 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..1..2..3....ski
317c0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
317d0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
317e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
317f0 6c 2d 31 31 30 34 0d 0a 53 45 4c 45 43 54 20 44  l-1104..SELECT D
31800 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2f 20 32  ISTINCT col0 / 2
31810 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
31820 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 32 0d  ab1..----..1..2.
31830 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  .3....query II r
31840 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
31850 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 41  ISTINCT - col1 A
31860 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 2a  S col0, - col2 *
31870 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31   + col2 + + col1
31880 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
31890 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 39  b0..----..-1..-9
318a0 38 30 30 0d 0a 2d 32 31 0d 0a 2d 37 39 0d 0a 2d  800..-21..-79..-
318b0 38 31 0d 0a 2d 32 31 32 38 0d 0a 0d 0a 71 75 65  81..-2128....que
318c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
318d0 4c 45 43 54 20 2d 20 63 6f 6c 31 20 41 53 20 63  LECT - col1 AS c
318e0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
318f0 45 52 45 20 4e 4f 54 20 28 20 36 39 20 29 20 49  ERE NOT ( 69 ) I
31900 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S NULL..----..-5
31910 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 71  1..-67..-77....q
31920 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
31930 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
31940 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab2 WHERE NULL 
31950 3d 20 38 38 20 2a 20 2b 20 33 31 20 41 4e 44 20  = 88 * + 31 AND 
31960 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  NULL = NULL..---
31970 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
31980 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
31990 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
319a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
319b0 30 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  08..SELECT DISTI
319c0 4e 43 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43  NCT SUM( DISTINC
319d0 54 20 32 31 20 29 20 41 53 20 63 6f 6c 31 20 46  T 21 ) AS col1 F
319e0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
319f0 32 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  21....skipif mys
31a00 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31a10 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
31a20 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 38 0d  sort label-1108.
31a30 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
31a40 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
31a50 32 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  21 ) AS col1 FRO
31a60 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31  M tab1..----..21
31a70 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
31a80 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
31a90 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
31aa0 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73  uery IIIIII rows
31ab0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 39 0d 0a  ort label-1109..
31ac0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
31ad0 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
31ae0 20 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f   JOIN tab1 AS co
31af0 72 31 20 57 48 45 52 45 20 2d 20 43 41 53 54 28  r1 WHERE - CAST(
31b00 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
31b10 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  ) IS NOT NULL..-
31b20 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
31b30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
31b40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 49  ible..query IIII
31b50 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
31b60 2d 31 31 30 39 0d 0a 53 45 4c 45 43 54 20 2a 20  -1109..SELECT * 
31b70 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
31b80 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
31b90 31 20 41 53 20 63 6f 72 31 20 57 48 45 52 45 20  1 AS cor1 WHERE 
31ba0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
31bb0 20 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e 4f   INTEGER ) IS NO
31bc0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
31bd0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
31be0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
31bf0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
31c00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31c10 2d 31 31 31 30 0d 0a 53 45 4c 45 43 54 20 44 49  -1110..SELECT DI
31c20 53 54 49 4e 43 54 20 2d 20 2d 20 43 41 53 54 28  STINCT - - CAST(
31c30 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
31c40 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  ) FROM tab1 cor0
31c50 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a  ..----..51..85..
31c60 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  91....skipif mys
31c70 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
31c80 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
31c90 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 30 0d  sort label-1110.
31ca0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
31cb0 20 2d 20 2d 20 43 41 53 54 20 28 20 63 6f 6c 30   - - CAST ( col0
31cc0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52   AS INTEGER ) FR
31cd0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
31ce0 2d 2d 0d 0a 35 31 0d 0a 38 35 0d 0a 39 31 0d 0a  --..51..85..91..
31cf0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
31d00 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
31d10 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
31d20 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
31d30 62 65 6c 2d 31 31 31 31 0d 0a 53 45 4c 45 43 54  bel-1111..SELECT
31d40 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c   - col2 AS col0,
31d50 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
31d60 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 30 20  IGNED ) AS col0 
31d70 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
31d80 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 4e 55  0..----..-59..NU
31d90 4c 4c 0d 0a 2d 36 38 0d 0a 4e 55 4c 4c 0d 0a 2d  LL..-68..NULL..-
31da0 39 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  96..NULL....skip
31db0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31dc0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
31dd0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
31de0 6c 2d 31 31 31 31 0d 0a 53 45 4c 45 43 54 20 2d  l-1111..SELECT -
31df0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 43   col2 AS col0, C
31e00 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
31e10 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20  TEGER ) AS col0 
31e20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
31e30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 4e 55  0..----..-59..NU
31e40 4c 4c 0d 0a 2d 36 38 0d 0a 4e 55 4c 4c 0d 0a 2d  LL..-68..NULL..-
31e50 39 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  96..NULL....quer
31e60 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
31e70 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
31e80 34 37 20 2a 20 2d 20 39 39 20 2a 20 2d 20 63 6f  47 * - 99 * - co
31e90 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20 34 31  l1 AS col2, - 41
31ea0 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20   * + - col0 * + 
31eb0 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  col2 + col1 + + 
31ec0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
31ed0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
31ee0 37 36 38 39 33 0d 0a 32 39 30 36 37 0d 0a 2d 34  76893..29067..-4
31ef0 36 35 33 0d 0a 33 39 33 37 32 35 0d 0a 2d 39 37  653..393725..-97
31f00 37 31 33 0d 0a 33 35 37 31 32 0d 0a 0d 0a 6f 6e  713..35712....on
31f10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
31f20 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
31f30 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
31f40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31f50 31 31 31 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2d  1113..SELECT - -
31f60 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
31f70 49 47 4e 45 44 20 29 2c 20 63 6f 6c 30 20 2d 20  IGNED ), col0 - 
31f80 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  - + col2 AS col1
31f90 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
31fa0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
31fb0 31 30 34 0d 0a 4e 55 4c 4c 0d 0a 31 33 33 0d 0a  104..NULL..133..
31fc0 4e 55 4c 4c 0d 0a 36 39 0d 0a 0d 0a 73 6b 69 70  NULL..69....skip
31fd0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31fe0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
31ff0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
32000 6c 2d 31 31 31 33 0d 0a 53 45 4c 45 43 54 20 2d  l-1113..SELECT -
32010 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   - CAST ( NULL A
32020 53 20 49 4e 54 45 47 45 52 20 29 2c 20 63 6f 6c  S INTEGER ), col
32030 30 20 2d 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20  0 - - + col2 AS 
32040 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
32050 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
32060 4c 4c 0d 0a 31 30 34 0d 0a 4e 55 4c 4c 0d 0a 31  LL..104..NULL..1
32070 33 33 0d 0a 4e 55 4c 4c 0d 0a 36 39 0d 0a 0d 0a  33..NULL..69....
32080 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
32090 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
320a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
320b0 45 52 45 20 4e 4f 54 20 2d 20 34 31 20 2d 20 2b  ERE NOT - 41 - +
320c0 20 2b 20 63 6f 6c 30 20 3c 20 4e 55 4c 4c 0d 0a   + col0 < NULL..
320d0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
320e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
320f0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
32100 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
32110 4e 4f 54 20 2d 20 34 33 20 42 45 54 57 45 45 4e  NOT - 43 BETWEEN
32120 20 2b 20 63 6f 6c 31 20 41 4e 44 20 2b 20 2b 20   + col1 AND + + 
32130 28 20 2d 20 31 39 20 29 20 2a 20 2d 20 34 37 20  ( - 19 ) * - 47 
32140 2b 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  + + col0..----..
32150 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
32160 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
32170 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
32180 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  0a49....onlyif m
32190 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
321a0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
321b0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
321c0 72 74 20 6c 61 62 65 6c 2d 31 31 31 36 0d 0a 53  rt label-1116..S
321d0 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20 46 52 4f  ELECT + col1 FRO
321e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
321f0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32 20 4e 4f  HERE NOT col2 NO
32200 54 20 42 45 54 57 45 45 4e 20 63 6f 6c 32 20 41  T BETWEEN col2 A
32210 4e 44 20 28 20 2b 20 28 20 2d 20 2d 20 34 20 29  ND ( + ( - - 4 )
32220 20 2b 20 2d 20 2b 20 43 41 53 54 28 20 32 33 20   + - + CAST( 23 
32230 41 53 20 53 49 47 4e 45 44 20 29 20 29 0d 0a 2d  AS SIGNED ) )..-
32240 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
32250 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32260 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
32270 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 36  wsort label-1116
32280 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
32290 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
322a0 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32  0 WHERE NOT col2
322b0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 63 6f 6c   NOT BETWEEN col
322c0 32 20 41 4e 44 20 28 20 2b 20 28 20 2d 20 2d 20  2 AND ( + ( - - 
322d0 34 20 29 20 2b 20 2d 20 2b 20 43 41 53 54 20 28  4 ) + - + CAST (
322e0 20 32 33 20 41 53 20 49 4e 54 45 47 45 52 20 29   23 AS INTEGER )
322f0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
32300 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
32310 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a  ECT ALL + col1 *
32320 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20 41   col1 * + col0 A
32330 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
32340 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
32350 31 31 39 36 34 36 0d 0a 33 33 36 36 37 35 0d 0a  119646..336675..
32360 33 37 39 34 35 36 0d 0a 0d 0a 71 75 65 72 79 20  379456....query 
32370 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
32380 43 54 20 2b 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c  CT + col0, - col
32390 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
323a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 2d  or0..----..46..-
323b0 34 36 0d 0a 36 34 0d 0a 2d 36 34 0d 0a 37 35 0d  46..64..-64..75.
323c0 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-75....query I 
323d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
323e0 32 30 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74  20 * col0 FROM t
323f0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
32400 2d 0d 0a 31 30 32 30 0d 0a 31 37 30 30 0d 0a 31  -..1020..1700..1
32410 38 32 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  820....onlyif my
32420 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
32430 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
32440 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32450 74 20 6c 61 62 65 6c 2d 31 31 32 30 0d 0a 53 45  t label-1120..SE
32460 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c  LECT - CAST( NUL
32470 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
32480 2d 20 41 56 47 20 28 20 44 49 53 54 49 4e 43 54  - AVG ( DISTINCT
32490 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74   - col1 ) FROM t
324a0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
324b0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
324c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
324d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
324e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
324f0 31 31 32 30 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1120..SELECT - C
32500 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
32510 54 45 47 45 52 20 29 20 2a 20 2d 20 41 56 47 20  TEGER ) * - AVG 
32520 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  ( DISTINCT - col
32530 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  1 ) FROM tab2 AS
32540 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
32550 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  L....query II ro
32560 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
32570 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 41 53  STINCT + col1 AS
32580 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20 41 53   col2, - col1 AS
32590 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
325a0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
325b0 34 0d 0a 2d 31 34 0d 0a 34 37 0d 0a 2d 34 37 0d  4..-14..47..-47.
325c0 0a 35 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20  .5..-5....query 
325d0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
325e0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
325f0 6c 31 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  l1, + col2 AS co
32600 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
32610 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 39  cor0..----..1..9
32620 39 0d 0a 32 31 0d 0a 31 30 0d 0a 38 31 0d 0a 34  9..21..10..81..4
32630 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
32640 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
32650 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
32660 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32670 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  23..SELECT ALL +
32680 20 4d 49 4e 28 20 2d 20 63 6f 6c 31 20 29 20 41   MIN( - col1 ) A
32690 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
326a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
326b0 2d 34 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -47....skipif my
326c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
326d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
326e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 33  wsort label-1123
326f0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d  ..SELECT ALL + M
32700 49 4e 20 28 20 2d 20 63 6f 6c 31 20 29 20 41 53  IN ( - col1 ) AS
32710 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
32720 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
32730 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  47....query I ro
32740 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
32750 4c 20 2b 20 38 32 20 41 53 20 63 6f 6c 32 20 46  L + 82 AS col2 F
32760 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
32770 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e  OT NULL IS NOT N
32780 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 38 32 0d 0a 38  ULL..----..82..8
32790 32 0d 0a 38 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  2..82....onlyif 
327a0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
327b0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
327c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
327d0 6c 2d 31 31 32 35 0d 0a 53 45 4c 45 43 54 20 2b  l-1125..SELECT +
327e0 20 28 20 2d 20 2b 20 4d 41 58 28 20 44 49 53 54   ( - + MAX( DIST
327f0 49 4e 43 54 20 2d 20 28 20 39 38 20 29 20 29 20  INCT - ( 98 ) ) 
32800 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  ) FROM tab1..---
32810 2d 0d 0a 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..98....skipif 
32820 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
32830 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
32840 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32850 32 35 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d  25..SELECT + ( -
32860 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   + MAX ( DISTINC
32870 54 20 2d 20 28 20 39 38 20 29 20 29 20 29 20 46  T - ( 98 ) ) ) F
32880 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
32890 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  98....skipif pos
328a0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
328b0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
328c0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
328d0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
328e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
328f0 53 45 4c 45 43 54 20 2d 20 37 34 20 63 6f 6c 30  SELECT - 74 col0
32900 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
32910 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54   NOT NULL IS NOT
32920 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34   NULL..----..-74
32930 0d 0a 2d 37 34 0d 0a 2d 37 34 0d 0a 0d 0a 6f 6e  ..-74..-74....on
32940 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
32950 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
32960 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
32970 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32980 31 32 37 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  127..SELECT CAST
32990 28 20 2b 20 32 31 20 41 53 20 53 49 47 4e 45 44  ( + 21 AS SIGNED
329a0 20 29 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74   ) * col1 FROM t
329b0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 31 0d  ab2..----..1071.
329c0 0a 31 34 30 37 0d 0a 31 36 31 37 0d 0a 0d 0a 73  .1407..1617....s
329d0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
329e0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
329f0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
32a00 62 65 6c 2d 31 31 32 37 0d 0a 53 45 4c 45 43 54  bel-1127..SELECT
32a10 20 43 41 53 54 20 28 20 2b 20 32 31 20 41 53 20   CAST ( + 21 AS 
32a20 49 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 31  INTEGER ) * col1
32a30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
32a40 0d 0a 31 30 37 31 0d 0a 31 34 30 37 0d 0a 31 36  ..1071..1407..16
32a50 31 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  17....onlyif mys
32a60 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
32a70 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
32a80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32a90 31 32 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  128..SELECT COUN
32aa0 54 28 20 41 4c 4c 20 2d 20 31 36 20 29 20 46 52  T( ALL - 16 ) FR
32ab0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
32ac0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
32ad0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
32ae0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
32af0 72 74 20 6c 61 62 65 6c 2d 31 31 32 38 0d 0a 53  rt label-1128..S
32b00 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 41 4c  ELECT COUNT ( AL
32b10 4c 20 2d 20 31 36 20 29 20 46 52 4f 4d 20 74 61  L - 16 ) FROM ta
32b20 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f  b1..----..3....o
32b30 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
32b40 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
32b50 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
32b60 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
32b70 2d 31 31 32 39 0d 0a 53 45 4c 45 43 54 20 41 4c  -1129..SELECT AL
32b80 4c 20 2b 20 39 33 20 2b 20 63 6f 6c 32 20 2d 20  L + 93 + col2 - 
32b90 2d 20 2d 20 63 6f 6c 30 20 44 49 56 20 2d 20 2b  - - col0 DIV - +
32ba0 20 63 6f 6c 31 20 63 6f 6c 31 2c 20 2d 20 63 6f   col1 col1, - co
32bb0 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63  l0 - + col2 AS c
32bc0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
32bd0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37   cor0..----..107
32be0 0d 0a 2d 39 37 0d 0a 31 34 30 0d 0a 2d 36 32 0d  ..-97..140..-62.
32bf0 0a 32 38 39 0d 0a 2d 31 39 36 0d 0a 0d 0a 73 6b  .289..-196....sk
32c00 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
32c10 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
32c20 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
32c30 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
32c40 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
32c50 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
32c60 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
32c70 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32  owsort label-112
32c80 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  9..SELECT ALL + 
32c90 39 33 20 2b 20 63 6f 6c 32 20 2d 20 2d 20 2d 20  93 + col2 - - - 
32ca0 63 6f 6c 30 20 2f 20 2d 20 2b 20 63 6f 6c 31 20  col0 / - + col1 
32cb0 63 6f 6c 31 2c 20 2d 20 63 6f 6c 30 20 2d 20 2b  col1, - col0 - +
32cc0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52   col2 AS col2 FR
32cd0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
32ce0 0a 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a 2d 39 37 0d  .----..107..-97.
32cf0 0a 31 34 30 0d 0a 2d 36 32 0d 0a 32 38 39 0d 0a  .140..-62..289..
32d00 2d 31 39 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -196....onlyif m
32d10 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
32d20 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
32d30 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
32d40 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
32d50 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d  sort label-1130.
32d60 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28 20 41  .SELECT + SUM( A
32d70 4c 4c 20 63 6f 6c 31 20 29 20 44 49 56 20 43 4f  LL col1 ) DIV CO
32d80 55 4e 54 28 20 2a 20 29 20 63 6f 6c 31 20 46 52  UNT( * ) col1 FR
32d90 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
32da0 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 73 6b 69  .----..34....ski
32db0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
32dc0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70  compatible..skip
32dd0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
32de0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
32df0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
32e00 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
32e10 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
32e20 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 30 0d  sort label-1130.
32e30 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20  .SELECT + SUM ( 
32e40 41 4c 4c 20 63 6f 6c 31 20 29 20 2f 20 43 4f 55  ALL col1 ) / COU
32e50 4e 54 20 28 20 2a 20 29 20 63 6f 6c 31 20 46 52  NT ( * ) col1 FR
32e60 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
32e70 0a 2d 2d 2d 2d 0d 0a 33 34 0d 0a 0d 0a 6f 6e 6c  .----..34....onl
32e80 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
32e90 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
32ea0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
32eb0 6c 61 62 65 6c 2d 31 31 33 31 0d 0a 53 45 4c 45  label-1131..SELE
32ec0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
32ed0 2b 20 36 32 20 29 20 2a 20 4d 49 4e 28 20 44 49  + 62 ) * MIN( DI
32ee0 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20  STINCT - col1 ) 
32ef0 2d 20 2d 20 33 35 20 2b 20 2d 20 2d 20 43 4f 55  - - 35 + - - COU
32f00 4e 54 28 20 2a 20 29 20 2b 20 2b 20 31 20 41 53  NT( * ) + + 1 AS
32f10 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
32f20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
32f30 39 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  953....skipif my
32f40 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32f50 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
32f60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 31  wsort label-1131
32f70 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
32f80 54 20 2d 20 28 20 2b 20 36 32 20 29 20 2a 20 4d  T - ( + 62 ) * M
32f90 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20  IN ( DISTINCT - 
32fa0 63 6f 6c 31 20 29 20 2d 20 2d 20 33 35 20 2b 20  col1 ) - - 35 + 
32fb0 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  - - COUNT ( * ) 
32fc0 2b 20 2b 20 31 20 41 53 20 63 6f 6c 31 20 46 52  + + 1 AS col1 FR
32fd0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
32fe0 0a 2d 2d 2d 2d 0d 0a 32 39 35 33 0d 0a 0d 0a 6f  .----..2953....o
32ff0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
33000 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
33010 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33020 74 20 6c 61 62 65 6c 2d 31 31 33 32 0d 0a 53 45  t label-1132..SE
33030 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20  LECT ALL COUNT( 
33040 44 49 53 54 49 4e 43 54 20 39 31 20 29 20 41 53  DISTINCT 91 ) AS
33050 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
33060 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
33070 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
33080 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
33090 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
330a0 72 74 20 6c 61 62 65 6c 2d 31 31 33 32 0d 0a 53  rt label-1132..S
330b0 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20  ELECT ALL COUNT 
330c0 28 20 44 49 53 54 49 4e 43 54 20 39 31 20 29 20  ( DISTINCT 91 ) 
330d0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
330e0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
330f0 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  .1....query III 
33100 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33110 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
33120 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  or0 WHERE NULL N
33130 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20 63  OT BETWEEN ( + c
33140 6f 6c 32 20 29 20 41 4e 44 20 4e 55 4c 4c 0d 0a  ol2 ) AND NULL..
33150 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
33160 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33170 2b 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 2b  + + ( + col1 ) +
33180 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20 46 52   - ( + col0 ) FR
33190 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
331a0 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a 31 33 0d 0a 35  .----..-8..13..5
331b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
331c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
331d0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
331e0 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b1 cor0 WHERE NO
331f0 54 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20  T col0 * + col0 
33200 49 4e 20 28 20 2b 20 2b 20 35 38 2c 20 2b 20 63  IN ( + + 58, + c
33210 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 2c 20 2b 20  ol0 + - col0, + 
33220 31 39 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  19 )..----..9 va
33230 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
33240 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
33250 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
33260 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
33270 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
33280 32 39 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74  29 * col2 FROM t
33290 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
332a0 2d 0d 0a 31 33 36 33 0d 0a 32 38 37 31 0d 0a 32  -..1363..2871..2
332b0 39 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  90....onlyif mys
332c0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
332d0 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
332e0 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
332f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
33300 72 74 20 6c 61 62 65 6c 2d 31 31 33 37 0d 0a 53  rt label-1137..S
33310 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
33320 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
33330 4e 45 44 20 29 20 2a 20 2d 20 43 4f 55 4e 54 28  NED ) * - COUNT(
33340 20 2a 20 29 20 2a 20 2d 20 33 30 20 2b 20 43 4f   * ) * - 30 + CO
33350 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
33360 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
33370 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
33380 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
33390 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
333a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
333b0 31 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  137..SELECT DIST
333c0 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  INCT CAST ( NULL
333d0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
333e0 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
333f0 2d 20 33 30 20 2b 20 43 4f 55 4e 54 20 28 20 2a  - 30 + COUNT ( *
33400 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
33410 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
33420 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
33430 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
33440 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
33450 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33  owsort label-113
33460 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  8..SELECT DISTIN
33470 43 54 20 43 4f 55 4e 54 28 20 2b 20 2b 20 33 38  CT COUNT( + + 38
33480 20 29 20 2d 20 2d 20 2d 20 43 4f 55 4e 54 28 20   ) - - - COUNT( 
33490 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  * ) FROM tab0..-
334a0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
334b0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
334c0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
334d0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
334e0 31 33 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  138..SELECT DIST
334f0 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2b 20 2b  INCT COUNT ( + +
33500 20 33 38 20 29 20 2d 20 2d 20 2d 20 43 4f 55 4e   38 ) - - - COUN
33510 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  T ( * ) FROM tab
33520 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75  0..----..0....qu
33530 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
33540 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31  ELECT ALL - col1
33550 20 2b 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20   + + + col0 * + 
33560 2d 20 35 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 51 AS col1 FRO
33570 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab1..----..-2
33580 36 31 35 0d 0a 2d 34 33 34 30 0d 0a 2d 34 36 38  615..-4340..-468
33590 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
335a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35 31 20  sort..SELECT 51 
335b0 2d 20 2d 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  - - + col2 FROM 
335c0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d  tab1..----..110.
335d0 0a 31 31 39 0d 0a 31 34 37 0d 0a 0d 0a 6f 6e 6c  .119..147....onl
335e0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
335f0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
33600 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33610 6c 61 62 65 6c 2d 31 31 34 31 0d 0a 53 45 4c 45  label-1141..SELE
33620 43 54 20 44 49 53 54 49 4e 43 54 20 38 31 20 2a  CT DISTINCT 81 *
33630 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d 20 36 35   + MAX( ALL - 65
33640 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
33650 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 36 35 0d 0a  1..----..-5265..
33660 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
33670 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
33680 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
33690 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
336a0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
336b0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
336c0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
336d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
336e0 31 31 34 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  1141..SELECT DIS
336f0 54 49 4e 43 54 20 38 31 20 2a 20 2b 20 4d 41 58  TINCT 81 * + MAX
33700 20 28 20 41 4c 4c 20 2d 20 36 35 20 29 20 63 6f   ( ALL - 65 ) co
33710 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
33720 2d 2d 0d 0a 2d 35 32 36 35 0d 0a 0d 0a 71 75 65  --..-5265....que
33730 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
33740 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2d 20 2d 20  LECT - col2 - - 
33750 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63  col0 FROM tab0 c
33760 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d 0a 2d  or0..----..-2..-
33770 33 32 0d 0a 37 37 0d 0a 0d 0a 71 75 65 72 79 20  32..77....query 
33780 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
33790 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
337a0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
337b0 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2b 20 2b   WHERE ( NOT + +
337c0 20 63 6f 6c 30 20 3e 3d 20 4e 55 4c 4c 20 29 0d   col0 >= NULL ).
337d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
337e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
337f0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a   DISTINCT col2 *
33800 20 2b 20 63 6f 6c 32 20 2a 20 35 35 20 46 52 4f   + col2 * 55 FRO
33810 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
33820 2d 0d 0a 31 38 35 30 32 30 0d 0a 32 39 30 39 35  -..185020..29095
33830 0d 0a 38 38 30 30 30 0d 0a 0d 0a 71 75 65 72 79  ..88000....query
33840 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
33850 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
33860 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
33870 52 45 20 4e 4f 54 20 28 20 28 20 2b 20 2d 20 63  RE NOT ( ( + - c
33880 6f 6c 30 20 2f 20 63 6f 6c 32 20 29 20 49 53 20  ol0 / col2 ) IS 
33890 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  NULL )..----..9 
338a0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
338b0 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
338c0 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
338d0 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  ad....onlyif mys
338e0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
338f0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
33900 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33910 31 34 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  146..SELECT - - 
33920 53 55 4d 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20  SUM( - - col2 ) 
33930 2d 20 2b 20 34 33 20 46 52 4f 4d 20 74 61 62 30  - + 43 FROM tab0
33940 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
33950 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e  OT ( NULL ) IS N
33960 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
33970 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
33980 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
33990 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
339a0 74 20 6c 61 62 65 6c 2d 31 31 34 36 0d 0a 53 45  t label-1146..SE
339b0 4c 45 43 54 20 2d 20 2d 20 53 55 4d 20 28 20 2d  LECT - - SUM ( -
339c0 20 2d 20 63 6f 6c 32 20 29 20 2d 20 2b 20 34 33   - col2 ) - + 43
339d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
339e0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  r0 WHERE NOT ( N
339f0 55 4c 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ULL ) IS NULL..-
33a00 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
33a10 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
33a20 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
33a30 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
33a40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
33a50 31 34 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2b 20  147..SELECT - + 
33a60 32 31 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 4e  21 * + - CAST( N
33a70 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
33a80 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
33a90 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
33aa0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
33ab0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
33ac0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
33ad0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
33ae0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 37 0d  sort label-1147.
33af0 0a 53 45 4c 45 43 54 20 2d 20 2b 20 32 31 20 2a  .SELECT - + 21 *
33b00 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   + - CAST ( NULL
33b10 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f   AS REAL ) AS co
33b20 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
33b30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
33b40 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
33b50 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
33b60 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
33b70 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
33b80 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32 38  0 WHERE NOT - 28
33b90 20 2b 20 34 34 20 49 53 20 4e 4f 54 20 4e 55 4c   + 44 IS NOT NUL
33ba0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
33bb0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
33bc0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
33bd0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
33be0 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
33bf0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
33c00 2d 0d 0a 32 33 0d 0a 34 30 0d 0a 35 38 0d 0a 0d  -..23..40..58...
33c10 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
33c20 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
33c30 2d 20 63 6f 6c 31 20 2a 20 2b 20 35 36 2c 20 63  - col1 * + 56, c
33c40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
33c50 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 35   cor0..----..285
33c60 36 0d 0a 32 33 0d 0a 33 37 35 32 0d 0a 35 38 0d  6..23..3752..58.
33c70 0a 34 33 31 32 0d 0a 34 30 0d 0a 0d 0a 71 75 65  .4312..40....que
33c80 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
33c90 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 34 34 20  LECT ALL + + 44 
33ca0 2a 20 33 30 20 2a 20 2d 20 2d 20 32 34 20 41 53  * 30 * - - 24 AS
33cb0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
33cc0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33  AS cor0..----..3
33cd0 31 36 38 30 0d 0a 33 31 36 38 30 0d 0a 33 31 36  1680..31680..316
33ce0 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  80....onlyif mys
33cf0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
33d00 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44  : SIGNED type: D
33d10 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
33d20 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
33d30 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33d40 2d 31 31 35 32 0d 0a 53 45 4c 45 43 54 20 44 49  -1152..SELECT DI
33d50 53 54 49 4e 43 54 20 2d 20 37 30 20 44 49 56 20  STINCT - 70 DIV 
33d60 63 6f 6c 31 20 2a 20 2d 20 43 41 53 54 28 20 2d  col1 * - CAST( -
33d70 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
33d80 29 20 2a 20 39 39 20 41 53 20 63 6f 6c 31 20 46  ) * 99 AS col1 F
33d90 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
33da0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 33 39 0d 0a  ..----..-25839..
33db0 2d 36 37 32 32 31 30 0d 0a 30 0d 0a 0d 0a 73 6b  -672210..0....sk
33dc0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33dd0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33de0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33df0 65 6c 2d 31 31 35 32 0d 0a 53 45 4c 45 43 54 20  el-1152..SELECT 
33e00 44 49 53 54 49 4e 43 54 20 2d 20 37 30 20 2f 20  DISTINCT - 70 / 
33e10 63 6f 6c 31 20 2a 20 2d 20 43 41 53 54 20 28 20  col1 * - CAST ( 
33e20 2d 20 63 6f 6c 30 20 41 53 20 49 4e 54 45 47 45  - col0 AS INTEGE
33e30 52 20 29 20 2a 20 39 39 20 41 53 20 63 6f 6c 31  R ) * 99 AS col1
33e40 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
33e50 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 33 39  r0..----..-25839
33e60 0d 0a 2d 36 37 32 32 31 30 0d 0a 30 0d 0a 0d 0a  ..-672210..0....
33e70 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
33e80 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f  .SELECT ALL - co
33e90 6c 30 20 2a 20 28 20 2d 20 63 6f 6c 31 20 29 20  l0 * ( - col1 ) 
33ea0 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
33eb0 2d 2d 2d 2d 0d 0a 34 32 35 0d 0a 34 32 37 37 0d  ----..425..4277.
33ec0 0a 37 31 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .714....query I 
33ed0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
33ee0 41 4c 4c 20 2d 20 2d 20 38 31 20 41 53 20 63 6f  ALL - - 81 AS co
33ef0 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
33f00 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 38 31 0d  0..----..81..81.
33f10 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .81....onlyif my
33f20 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
33f30 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
33f40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33f50 31 31 35 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43  1155..SELECT - C
33f60 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 43 4f  OUNT( * ) * + CO
33f70 55 4e 54 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20  UNT( ALL col2 ) 
33f80 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
33f90 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73  1..----..-9....s
33fa0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
33fb0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
33fc0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
33fd0 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45 43 54  bel-1155..SELECT
33fe0 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a   - COUNT ( * ) *
33ff0 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 63   + COUNT ( ALL c
34000 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
34010 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
34020 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
34030 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
34040 20 37 33 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f   73 + col0 AS co
34050 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
34060 2d 2d 0d 0a 31 36 30 0d 0a 31 37 30 0d 0a 38 38  --..160..170..88
34070 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
34080 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
34090 6f 6c 30 2c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20  ol0, - col1 * + 
340a0 38 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  84 FROM tab0..--
340b0 2d 2d 0d 0a 31 35 0d 0a 2d 36 38 30 34 0d 0a 38  --..15..-6804..8
340c0 37 0d 0a 2d 31 37 36 34 0d 0a 39 37 0d 0a 2d 38  7..-1764..97..-8
340d0 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  4....onlyif mysq
340e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
340f0 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
34100 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
34110 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34120 74 20 6c 61 62 65 6c 2d 31 31 35 38 0d 0a 53 45  t label-1158..SE
34130 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
34140 44 49 56 20 2b 20 38 31 20 41 53 20 63 6f 6c 30  DIV + 81 AS col0
34150 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
34160 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
34170 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
34180 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
34190 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 38  wsort label-1158
341a0 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28  ..SELECT COUNT (
341b0 20 2a 20 29 20 2f 20 2b 20 38 31 20 41 53 20 63   * ) / + 81 AS c
341c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
341d0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
341e0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
341f0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
34200 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
34210 65 6c 2d 31 31 35 39 0d 0a 53 45 4c 45 43 54 20  el-1159..SELECT 
34220 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20 2d 20  DISTINCT SUM( - 
34230 2d 20 63 6f 6c 32 20 29 20 2b 20 2d 20 31 35 20  - col2 ) + - 15 
34240 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
34250 0a 31 34 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .141....skipif m
34260 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
34270 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
34280 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
34290 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
342a0 43 54 20 53 55 4d 20 28 20 2d 20 2d 20 63 6f 6c  CT SUM ( - - col
342b0 32 20 29 20 2b 20 2d 20 31 35 20 46 52 4f 4d 20  2 ) + - 15 FROM 
342c0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 0d  tab0..----..141.
342d0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
342e0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
342f0 4e 43 54 20 2b 20 34 37 20 2a 20 2d 20 32 38 20  NCT + 47 * - 28 
34300 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
34310 0a 2d 31 33 31 36 0d 0a 0d 0a 71 75 65 72 79 20  .-1316....query 
34320 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34330 54 20 41 4c 4c 20 2d 20 33 36 20 2a 20 2b 20 63  T ALL - 36 * + c
34340 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
34350 2d 2d 2d 0d 0a 2d 31 34 34 30 0d 0a 2d 32 30 38  ---..-1440..-208
34360 38 0d 0a 2d 38 32 38 0d 0a 0d 0a 71 75 65 72 79  8..-828....query
34370 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
34380 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 28 20  CT DISTINCT + ( 
34390 32 35 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  25 ) FROM tab1..
343a0 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d 0a 6f 6e 6c 79  ----..25....only
343b0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
343c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
343d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
343e0 61 62 65 6c 2d 31 31 36 33 0d 0a 53 45 4c 45 43  abel-1163..SELEC
343f0 54 20 39 31 20 2b 20 2d 20 43 4f 55 4e 54 28 20  T 91 + - COUNT( 
34400 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  * ) FROM tab2..-
34410 2d 2d 2d 0d 0a 38 38 0d 0a 0d 0a 73 6b 69 70 69  ---..88....skipi
34420 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
34430 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
34440 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34450 31 31 36 33 0d 0a 53 45 4c 45 43 54 20 39 31 20  1163..SELECT 91 
34460 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  + - COUNT ( * ) 
34470 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
34480 0a 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .88....query I r
34490 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
344a0 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31  ISTINCT - - col1
344b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
344c0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 37  r0 WHERE NOT + 7
344d0 35 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  5 IS NOT NULL..-
344e0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
344f0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
34500 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 63 6f   + col0 * - - co
34510 6c 31 20 2b 20 38 34 20 2a 20 2b 20 2d 20 63 6f  l1 + 84 * + - co
34520 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l0 FROM tab2 cor
34530 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 37 35 0d 0a  0..----..-1275..
34540 2d 31 35 31 38 0d 0a 2d 34 34 38 0d 0a 0d 0a 71  -1518..-448....q
34550 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
34560 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
34570 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
34580 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
34590 20 3c 3d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d   <= - col1..----
345a0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
345b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
345c0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 63   col1 AS col0, c
345d0 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
345e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
345f0 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 32 31 0d 0a 32  ---..1..1..21..2
34600 31 0d 0a 38 31 0d 0a 38 31 0d 0a 0d 0a 71 75 65  1..81..81....que
34610 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
34620 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
34630 2b 20 34 38 20 2a 20 63 6f 6c 31 20 2b 20 2d 20  + 48 * col1 + - 
34640 37 34 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2b 20  74 + + - col1 + 
34650 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
34660 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
34670 33 30 39 0d 0a 2d 32 36 30 0d 0a 2d 36 36 34 0d  309..-260..-664.
34680 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
34690 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 31 20  rt..SELECT - 91 
346a0 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 43  FROM tab0 cor0 C
346b0 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
346c0 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor1..----..9 
346d0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
346e0 6f 20 37 34 35 64 31 63 33 61 30 39 64 39 33 35  o 745d1c3a09d935
346f0 34 36 35 63 61 64 35 35 32 33 32 35 63 35 63 39  465cad552325c5c9
34700 34 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  45....onlyif mys
34710 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
34720 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
34730 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
34740 31 37 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  170..SELECT + CO
34750 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 37 35 20  UNT( * ) * + 75 
34760 2a 20 36 34 20 2a 20 2d 20 4d 49 4e 28 20 2d 20  * 64 * - MIN( - 
34770 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
34780 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
34790 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 2d 20   WHERE + col2 - 
347a0 28 20 2d 20 2d 20 28 20 63 6f 6c 30 20 29 20 29  ( - - ( col0 ) )
347b0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
347c0 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  D NULL..----..NU
347d0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
347e0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
347f0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
34800 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 30 0d  sort label-1170.
34810 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
34820 28 20 2a 20 29 20 2a 20 2b 20 37 35 20 2a 20 36  ( * ) * + 75 * 6
34830 34 20 2a 20 2d 20 4d 49 4e 20 28 20 2d 20 63 6f  4 * - MIN ( - co
34840 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l1 ) AS col0 FRO
34850 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
34860 48 45 52 45 20 2b 20 63 6f 6c 32 20 2d 20 28 20  HERE + col2 - ( 
34870 2d 20 2d 20 28 20 63 6f 6c 30 20 29 20 29 20 42  - - ( col0 ) ) B
34880 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
34890 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
348a0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
348b0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
348c0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
348d0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
348e0 54 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c  T - col1 IS NULL
348f0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
34900 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34   hashing to c4b4
34910 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30  2765dff94eaaa460
34920 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a  40e537fb43b7....
34930 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
34940 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
34950 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
34960 45 52 45 20 28 20 2b 20 2d 20 63 6f 6c 31 20 49  ERE ( + - col1 I
34970 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a  S NULL )..----..
34980 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
34990 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
349a0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
349b0 57 48 45 52 45 20 63 6f 6c 30 20 2a 20 63 6f 6c  WHERE col0 * col
349c0 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
349d0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
349e0 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
349f0 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
34a00 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
34a10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
34a20 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  LECT + col0 + + 
34a30 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f 6c 32 20  col2 * - + col2 
34a40 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
34a50 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 33 39 36 0d 0a  0..----..-3396..
34a60 2d 34 35 33 33 0d 0a 2d 39 31 36 35 0d 0a 0d 0a  -4533..-9165....
34a70 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
34a80 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
34a90 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
34aa0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
34ab0 6c 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54 20 41  l-1175..SELECT A
34ac0 4c 4c 20 2b 20 63 6f 6c 32 20 44 49 56 20 2d 20  LL + col2 DIV - 
34ad0 2b 20 33 20 2b 20 2b 20 63 6f 6c 30 20 2d 20 2d  + 3 + + col0 - -
34ae0 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 41 53 20 63   col0, col0 AS c
34af0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
34b00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 0d 0a 36  r0..----..115..6
34b10 34 0d 0a 31 33 31 0d 0a 37 35 0d 0a 38 35 0d 0a  4..131..75..85..
34b20 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  46....skipif mys
34b30 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
34b40 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
34b50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 35  wsort label-1175
34b60 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
34b70 6f 6c 32 20 2f 20 2d 20 2b 20 33 20 2b 20 2b 20  ol2 / - + 3 + + 
34b80 63 6f 6c 30 20 2d 20 2d 20 63 6f 6c 30 2c 20 63  col0 - - col0, c
34b90 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ol0 AS col1 FROM
34ba0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
34bb0 0d 0a 31 31 35 0d 0a 36 34 0d 0a 31 33 31 0d 0a  ..115..64..131..
34bc0 37 35 0d 0a 38 35 0d 0a 34 36 0d 0a 0d 0a 71 75  75..85..46....qu
34bd0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
34be0 45 4c 45 43 54 20 2b 20 28 20 2d 20 63 6f 6c 31  ELECT + ( - col1
34bf0 20 29 20 2b 20 2b 20 39 32 20 46 52 4f 4d 20 74   ) + + 92 FROM t
34c00 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
34c10 2d 0d 0a 31 35 0d 0a 32 35 0d 0a 34 31 0d 0a 0d  -..15..25..41...
34c20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
34c30 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
34c40 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
34c50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
34c60 6c 2d 31 31 37 37 0d 0a 53 45 4c 45 43 54 20 63  l-1177..SELECT c
34c70 6f 6c 30 20 2a 20 2b 20 63 6f 6c 32 20 44 49 56  ol0 * + col2 DIV
34c80 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 28 20   + + col2 + + ( 
34c90 32 39 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  29 ) AS col2 FRO
34ca0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
34cb0 2d 2d 2d 2d 0d 0a 31 30 34 0d 0a 37 35 0d 0a 39  ----..104..75..9
34cc0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....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 37 37 0d 0a  ort label-1177..
34d00 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2b 20  SELECT col0 * + 
34d10 63 6f 6c 32 20 2f 20 2b 20 2b 20 63 6f 6c 32 20  col2 / + + col2 
34d20 2b 20 2b 20 28 20 32 39 20 29 20 41 53 20 63 6f  + + ( 29 ) AS co
34d30 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
34d40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d  cor0..----..104.
34d50 0a 37 35 0d 0a 39 33 0d 0a 0d 0a 71 75 65 72 79  .75..93....query
34d60 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
34d70 43 54 20 2b 20 2b 20 39 38 20 2b 20 2b 20 34 30  CT + + 98 + + 40
34d80 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
34d90 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 31  r0..----..138..1
34da0 33 38 0d 0a 31 33 38 0d 0a 0d 0a 71 75 65 72 79  38..138....query
34db0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
34dc0 43 54 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 63 6f  CT - col2 + - co
34dd0 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 30 20 46 52  l2 + + - col0 FR
34de0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
34df0 31 34 34 0d 0a 2d 31 39 31 0d 0a 2d 39 32 0d 0a  144..-191..-92..
34e00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
34e10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
34e20 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
34e30 20 57 48 45 52 45 20 32 38 20 2a 20 63 6f 6c 32   WHERE 28 * col2
34e40 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
34e50 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
34e60 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
34e70 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
34e80 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f 6e 6c 79  37fb43b7....only
34e90 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
34ea0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
34eb0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34ec0 61 62 65 6c 2d 31 31 38 31 0d 0a 53 45 4c 45 43  abel-1181..SELEC
34ed0 54 20 41 4c 4c 20 2b 20 31 34 20 2d 20 2b 20 43  T ALL + 14 - + C
34ee0 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c  OUNT( * ) AS col
34ef0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
34f00 2d 0d 0a 31 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..11....skipif 
34f10 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
34f20 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
34f30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
34f40 38 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  81..SELECT ALL +
34f50 20 31 34 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20   14 - + COUNT ( 
34f60 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
34f70 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 0d   tab0..----..11.
34f80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
34f90 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
34fa0 4e 43 54 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  NCT col0 FROM ta
34fb0 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b1 AS cor0 WHERE
34fc0 20 4e 55 4c 4c 20 3c 20 36 36 0d 0a 2d 2d 2d 2d   NULL < 66..----
34fd0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
34fe0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 30 20  ort..SELECT + 0 
34ff0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
35000 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
35010 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  NOT NULL IS NOT 
35020 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  NULL..----..0..0
35030 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
35040 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
35050 49 53 54 49 4e 43 54 20 2b 20 2b 20 33 31 20 41  ISTINCT + + 31 A
35060 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
35070 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
35080 33 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  31....query I ro
35090 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
350a0 31 31 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d  11 * + col0 FROM
350b0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
350c0 0d 0a 2d 35 30 36 0d 0a 2d 37 30 34 0d 0a 2d 38  ..-506..-704..-8
350d0 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  25....onlyif mys
350e0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
350f0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
35100 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35110 20 6c 61 62 65 6c 2d 31 31 38 36 0d 0a 53 45 4c   label-1186..SEL
35120 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63  ECT + col1 * + c
35130 6f 6c 31 20 2a 20 43 41 53 54 28 20 4e 55 4c 4c  ol1 * CAST( NULL
35140 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53 20   AS SIGNED ) AS 
35150 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
35160 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
35170 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
35180 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
35190 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
351a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
351b0 31 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  186..SELECT + co
351c0 6c 31 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 43 41  l1 * + col1 * CA
351d0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
351e0 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46  EGER ) AS col1 F
351f0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
35200 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
35210 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
35220 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 31  ort..SELECT - 81
35230 20 2b 20 2d 20 34 34 20 46 52 4f 4d 20 74 61 62   + - 44 FROM tab
35240 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
35250 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
35260 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
35270 73 20 68 61 73 68 69 6e 67 20 74 6f 20 32 33 37  s hashing to 237
35280 32 36 62 33 61 63 63 38 31 64 30 64 61 37 37 38  26b3acc81d0da778
35290 61 63 39 36 36 32 62 63 39 32 63 32 62 0d 0a 0d  ac9662bc92c2b...
352a0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
352b0 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 2c 20  t..SELECT col2, 
352c0 63 6f 6c 31 20 2a 20 2d 20 2d 20 34 30 20 46 52  col1 * - - 40 FR
352d0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
352e0 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 32 30 30 0d 0a  .----..59..200..
352f0 36 38 0d 0a 31 38 38 30 0d 0a 39 36 0d 0a 35 36  68..1880..96..56
35300 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  0....query II ro
35310 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
35320 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2b 20  col0 AS col2, + 
35330 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 41 53  col2 + + col1 AS
35340 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
35350 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
35360 35 0d 0a 31 32 38 0d 0a 38 37 0d 0a 33 31 0d 0a  5..128..87..31..
35370 39 37 0d 0a 31 30 30 0d 0a 0d 0a 71 75 65 72 79  97..100....query
35380 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
35390 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
353a0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
353b0 4f 54 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 49  OT col1 + col2 I
353c0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
353d0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
353e0 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
353f0 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
35400 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
35410 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
35420 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
35430 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35440 20 6c 61 62 65 6c 2d 31 31 39 31 0d 0a 53 45 4c   label-1191..SEL
35450 45 43 54 20 43 41 53 54 28 20 2d 20 63 6f 6c 30  ECT CAST( - col0
35460 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63   AS SIGNED ) * c
35470 6f 6c 32 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f  ol2 + col0 AS co
35480 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
35490 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 32  cor0 WHERE NOT 2
354a0 36 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 49 53 20  6 * - + col1 IS 
354b0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39 30  NULL..----..-690
354c0 0d 0a 2d 37 38 33 0d 0a 2d 39 35 30 36 0d 0a 0d  ..-783..-9506...
354d0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
354e0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
354f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35500 6c 61 62 65 6c 2d 31 31 39 31 0d 0a 53 45 4c 45  label-1191..SELE
35510 43 54 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30  CT CAST ( - col0
35520 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
35530 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 41 53 20 63  col2 + col0 AS c
35540 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
35550 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
35560 32 36 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 49 53  26 * - + col1 IS
35570 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 39   NULL..----..-69
35580 30 0d 0a 2d 37 38 33 0d 0a 2d 39 35 30 36 0d 0a  0..-783..-9506..
35590 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
355a0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
355b0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
355c0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39 32 0d  sort label-1192.
355d0 0a 53 45 4c 45 43 54 20 2b 20 2b 20 31 38 20 2b  .SELECT + + 18 +
355e0 20 2d 20 28 20 2d 20 2d 20 4d 41 58 28 20 2b 20   - ( - - MAX( + 
355f0 63 6f 6c 31 20 29 20 29 20 2b 20 43 4f 55 4e 54  col1 ) ) + COUNT
35600 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
35610 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
35620 0a 2d 2d 2d 2d 0d 0a 2d 32 36 0d 0a 0d 0a 73 6b  .----..-26....sk
35630 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
35640 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
35650 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
35660 65 6c 2d 31 31 39 32 0d 0a 53 45 4c 45 43 54 20  el-1192..SELECT 
35670 2b 20 2b 20 31 38 20 2b 20 2d 20 28 20 2d 20 2d  + + 18 + - ( - -
35680 20 4d 41 58 20 28 20 2b 20 63 6f 6c 31 20 29 20   MAX ( + col1 ) 
35690 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) + COUNT ( * ) 
356a0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
356b0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
356c0 0a 2d 32 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-26....onlyif m
356d0 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
356e0 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
356f0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
35700 72 74 20 6c 61 62 65 6c 2d 31 31 39 33 0d 0a 53  rt label-1193..S
35710 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b  ELECT - col0 * +
35720 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 44   col0 + - col1 D
35730 49 56 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63  IV + - col2 AS c
35740 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
35750 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36   cor0..----..-26
35760 30 31 0d 0a 2d 37 32 32 35 0d 0a 2d 38 32 38 31  01..-7225..-8281
35770 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35780 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35790 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
357a0 72 74 20 6c 61 62 65 6c 2d 31 31 39 33 0d 0a 53  rt label-1193..S
357b0 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b  ELECT - col0 * +
357c0 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 2f   col0 + - col1 /
357d0 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + - col2 AS col
357e0 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
357f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 30 31  or0..----..-2601
35800 0d 0a 2d 37 32 32 35 0d 0a 2d 38 32 38 31 0d 0a  ..-7225..-8281..
35810 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35820 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
35830 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 63 6f   + col0 + - - co
35840 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
35850 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 38 0d  cor0..----..118.
35860 0a 31 34 33 0d 0a 31 39 37 0d 0a 0d 0a 71 75 65  .143..197....que
35870 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35880 4c 45 43 54 20 35 31 20 2b 20 2d 20 63 6f 6c 30  LECT 51 + - col0
35890 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
358a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34 0d 0a 2d  r0..----..-34..-
358b0 34 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  40..0....query I
358c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
358d0 54 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  T + col1 AS col1
358e0 2c 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  , - col0 FROM ta
358f0 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
35900 0d 0a 31 0d 0a 2d 39 37 0d 0a 32 31 0d 0a 2d 38  ..1..-97..21..-8
35910 37 0d 0a 38 31 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e  7..81..-15....on
35920 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
35930 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
35940 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
35950 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35960 31 39 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  197..SELECT DIST
35970 49 4e 43 54 20 43 41 53 54 28 20 2d 20 63 6f 6c  INCT CAST( - col
35980 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  2 AS SIGNED ) * 
35990 2d 20 2b 20 36 36 20 46 52 4f 4d 20 74 61 62 31  - + 66 FROM tab1
359a0 0d 0a 2d 2d 2d 2d 0d 0a 33 38 39 34 0d 0a 34 34  ..----..3894..44
359b0 38 38 0d 0a 36 33 33 36 0d 0a 0d 0a 73 6b 69 70  88..6336....skip
359c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
359d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
359e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
359f0 2d 31 31 39 37 0d 0a 53 45 4c 45 43 54 20 44 49  -1197..SELECT DI
35a00 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 2d 20  STINCT CAST ( - 
35a10 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
35a20 29 20 2a 20 2d 20 2b 20 36 36 20 46 52 4f 4d 20  ) * - + 66 FROM 
35a30 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 38 39 34  tab1..----..3894
35a40 0d 0a 34 34 38 38 0d 0a 36 33 33 36 0d 0a 0d 0a  ..4488..6336....
35a50 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
35a60 0a 53 45 4c 45 43 54 20 41 4c 4c 20 38 32 20 2a  .SELECT ALL 82 *
35a70 20 38 30 20 2a 20 37 35 20 46 52 4f 4d 20 74 61   80 * 75 FROM ta
35a80 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 39 32 30 30 30  b1..----..492000
35a90 0d 0a 34 39 32 30 30 30 0d 0a 34 39 32 30 30 30  ..492000..492000
35aa0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
35ab0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
35ac0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
35ad0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39  owsort label-119
35ae0 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
35af0 43 54 20 32 32 20 2b 20 2b 20 43 4f 55 4e 54 28  CT 22 + + COUNT(
35b00 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
35b10 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab1..----..25
35b20 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
35b30 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
35b40 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
35b50 72 74 20 6c 61 62 65 6c 2d 31 31 39 39 0d 0a 53  rt label-1199..S
35b60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32  ELECT DISTINCT 2
35b70 32 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  2 + + COUNT ( * 
35b80 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
35b90 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d  ab1..----..25...
35ba0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
35bb0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43  CAST syntax: DEC
35bc0 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65  IMAL type: ..que
35bd0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
35be0 61 62 65 6c 2d 31 32 30 30 0d 0a 53 45 4c 45 43  abel-1200..SELEC
35bf0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
35c00 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20  0 WHERE NOT - - 
35c10 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
35c20 43 49 4d 41 4c 20 29 20 2d 20 2b 20 63 6f 6c 31  CIMAL ) - + col1
35c30 20 3d 20 2d 20 2b 20 39 31 0d 0a 2d 2d 2d 2d 0d   = - + 91..----.
35c40 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
35c50 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
35c60 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
35c70 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 30 0d 0a  ort label-1200..
35c80 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
35c90 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
35ca0 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c   - - CAST ( NULL
35cb0 20 41 53 20 52 45 41 4c 20 29 20 2d 20 2b 20 63   AS REAL ) - + c
35cc0 6f 6c 31 20 3d 20 2d 20 2b 20 39 31 0d 0a 2d 2d  ol1 = - + 91..--
35cd0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
35ce0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
35cf0 4c 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 39  L - col2 + + - 9
35d00 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  4 FROM tab0..---
35d10 2d 0d 0a 2d 31 30 34 0d 0a 2d 31 34 31 0d 0a 2d  -..-104..-141..-
35d20 31 39 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  193....query I r
35d30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
35d40 49 53 54 49 4e 43 54 20 28 20 2b 20 2d 20 63 6f  ISTINCT ( + - co
35d50 6c 32 20 29 20 2a 20 2b 20 31 39 20 41 53 20 63  l2 ) * + 19 AS c
35d60 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
35d70 2d 2d 2d 0d 0a 2d 31 31 30 32 0d 0a 2d 34 33 37  ---..-1102..-437
35d80 0d 0a 2d 37 36 30 0d 0a 0d 0a 71 75 65 72 79 20  ..-760....query 
35d90 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
35da0 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
35db0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab1 WHERE NOT co
35dc0 6c 30 20 42 45 54 57 45 45 4e 20 2b 20 33 35 20  l0 BETWEEN + 35 
35dd0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
35de0 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
35df0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 35  rt..SELECT ALL 5
35e00 36 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  6 * - col0 AS co
35e10 6c 32 2c 20 2b 20 35 38 20 46 52 4f 4d 20 74 61  l2, + 58 FROM ta
35e20 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 37 36 0d  b2..----..-2576.
35e30 0a 35 38 0d 0a 2d 33 35 38 34 0d 0a 35 38 0d 0a  .58..-3584..58..
35e40 2d 34 32 30 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65  -4200..58....que
35e50 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
35e60 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2a 20  LECT - + col1 * 
35e70 2b 20 63 6f 6c 30 20 2a 20 2d 20 2d 20 33 38 20  + col0 * - - 38 
35e80 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
35e90 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
35ea0 0a 2d 33 36 38 36 0d 0a 2d 34 36 31 37 30 0d 0a  .-3686..-46170..
35eb0 2d 36 39 34 32 36 0d 0a 0d 0a 71 75 65 72 79 20  -69426....query 
35ec0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
35ed0 54 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20  T col2 * - col2 
35ee0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
35ef0 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
35f00 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
35f10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
35f20 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
35f30 43 54 20 2b 20 2d 20 28 20 2b 20 2b 20 63 6f 6c  CT + - ( + + col
35f40 30 20 29 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  0 ) + - col2 AS 
35f50 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
35f60 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
35f70 30 34 0d 0a 2d 31 33 33 0d 0a 2d 36 39 0d 0a 0d  04..-133..-69...
35f80 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
35f90 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
35fa0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
35fb0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 38 0d 0a  ort label-1208..
35fc0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
35fd0 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
35fe0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
35ff0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
36000 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
36010 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
36020 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
36030 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
36040 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 38 0d  sort label-1208.
36050 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
36060 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   + COUNT ( * ) F
36070 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
36080 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
36090 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
360a0 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..3....onlyif m
360b0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
360c0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
360d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
360e0 2d 31 32 30 39 0d 0a 53 45 4c 45 43 54 20 2d 20  -1209..SELECT - 
360f0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  - COUNT( * ) AS 
36100 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63  col1 FROM tab1 c
36110 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
36120 61 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d  ab1 AS cor1..---
36130 2d 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..9....skipif m
36140 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
36150 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
36160 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30  owsort label-120
36170 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f  9..SELECT - - CO
36180 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
36190 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
361a0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31   CROSS JOIN tab1
361b0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
361c0 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
361d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 32 20  sort..SELECT 42 
361e0 2b 20 2d 20 39 39 20 2a 20 63 6f 6c 32 20 46 52  + - 99 * col2 FR
361f0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
36200 34 36 31 31 0d 0a 2d 39 34 38 0d 0a 2d 39 37 35  4611..-948..-975
36210 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  9....onlyif mysq
36220 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
36230 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
36240 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36250 6c 61 62 65 6c 2d 31 32 31 31 0d 0a 53 45 4c 45  label-1211..SELE
36260 43 54 20 41 4c 4c 20 37 34 20 2d 20 36 32 20 44  CT ALL 74 - 62 D
36270 49 56 20 37 35 20 2a 20 63 6f 6c 31 20 41 53 20  IV 75 * col1 AS 
36280 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
36290 2d 2d 2d 2d 0d 0a 37 34 0d 0a 37 34 0d 0a 37 34  ----..74..74..74
362a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
362b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
362c0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
362d0 72 74 20 6c 61 62 65 6c 2d 31 32 31 31 0d 0a 53  rt label-1211..S
362e0 45 4c 45 43 54 20 41 4c 4c 20 37 34 20 2d 20 36  ELECT ALL 74 - 6
362f0 32 20 2f 20 37 35 20 2a 20 63 6f 6c 31 20 41 53  2 / 75 * col1 AS
36300 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
36310 0a 2d 2d 2d 2d 0d 0a 37 34 0d 0a 37 34 0d 0a 37  .----..74..74..7
36320 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
36330 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
36340 30 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b  0 + - col0 + - +
36350 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
36360 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 32 31 0d 0a  .----..-1..-21..
36370 2d 38 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -81....query I r
36380 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
36390 20 39 20 2a 20 32 32 20 2b 20 2b 20 35 31 20 2b   9 * 22 + + 51 +
363a0 20 33 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   37 AS col1 FROM
363b0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 38 36   tab2..----..286
363c0 0d 0a 32 38 36 0d 0a 32 38 36 0d 0a 0d 0a 6f 6e  ..286..286....on
363d0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
363e0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
363f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36400 20 6c 61 62 65 6c 2d 31 32 31 34 0d 0a 53 45 4c   label-1214..SEL
36410 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  ECT COUNT( * ) +
36420 20 2d 20 53 55 4d 28 20 41 4c 4c 20 2d 20 2b 20   - SUM( ALL - + 
36430 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31  col1 ) FROM tab1
36440 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 73 6b  ..----..69....sk
36450 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
36460 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
36470 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
36480 65 6c 2d 31 32 31 34 0d 0a 53 45 4c 45 43 54 20  el-1214..SELECT 
36490 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20  COUNT ( * ) + - 
364a0 53 55 4d 20 28 20 41 4c 4c 20 2d 20 2b 20 63 6f  SUM ( ALL - + co
364b0 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  l1 ) FROM tab1..
364c0 2d 2d 2d 2d 0d 0a 36 39 0d 0a 0d 0a 71 75 65 72  ----..69....quer
364d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
364e0 45 43 54 20 2d 20 39 32 20 2a 20 2b 20 34 38 20  ECT - 92 * + 48 
364f0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
36500 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
36510 0a 2d 34 34 31 36 0d 0a 2d 34 34 31 36 0d 0a 2d  .-4416..-4416..-
36520 34 34 31 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  4416....query I 
36530 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
36540 44 49 53 54 49 4e 43 54 20 2d 20 28 20 28 20 28  DISTINCT - ( ( (
36550 20 37 32 20 29 20 29 20 29 20 2d 20 63 6f 6c 30   72 ) ) ) - col0
36560 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
36570 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 38 0d 0a  r0..----..-118..
36580 2d 31 33 36 0d 0a 2d 31 34 37 0d 0a 0d 0a 71 75  -136..-147....qu
36590 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
365a0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
365b0 20 2b 20 36 34 20 41 53 20 63 6f 6c 30 20 46 52   + 64 AS col0 FR
365c0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
365d0 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 71 75 65  .----..64....que
365e0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
365f0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
36600 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  * FROM tab0 cor0
36610 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
36620 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
36630 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
36640 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36650 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31   ALL * FROM tab1
36660 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
36670 32 20 3c 3d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d  2 <= + col1..---
36680 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68  -..9 values hash
36690 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31  ing to c6c0a4111
366a0 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65  b36d04dbc811a11e
366b0 34 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79  4d54cad....query
366c0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
366d0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
366e0 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
366f0 4e 4f 54 20 2d 20 2b 20 33 36 20 2a 20 2b 20 63  NOT - + 36 * + c
36700 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 49  ol2 + + - col2 I
36710 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
36720 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
36730 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
36740 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
36750 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36760 61 62 65 6c 2d 31 32 32 31 0d 0a 53 45 4c 45 43  abel-1221..SELEC
36770 54 20 2b 20 63 6f 6c 30 20 44 49 56 20 2d 20 2d  T + col0 DIV - -
36780 20 35 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   59 AS col0 FROM
36790 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab0..----..0..
367a0 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1..1....skipif m
367b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
367c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
367d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32  owsort label-122
367e0 31 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  1..SELECT + col0
367f0 20 2f 20 2d 20 2d 20 35 39 20 41 53 20 63 6f 6c   / - - 59 AS col
36800 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
36810 2d 0d 0a 30 0d 0a 31 0d 0a 31 0d 0a 0d 0a 71 75  -..0..1..1....qu
36820 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
36830 45 4c 45 43 54 20 28 20 2b 20 2b 20 63 6f 6c 31  ELECT ( + + col1
36840 20 29 20 2a 20 2d 20 36 34 20 2b 20 63 6f 6c 32   ) * - 64 + col2
36850 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   + + - col1 * + 
36860 39 34 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  94 FROM tab1..--
36870 2d 2d 0d 0a 2d 32 31 31 36 0d 0a 2d 37 33 31 0d  --..-2116..-731.
36880 0a 2d 37 33 35 38 0d 0a 0d 0a 71 75 65 72 79 20  .-7358....query 
36890 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
368a0 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2b  T ALL - col1 + +
368b0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
368c0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 39 38  AS cor0 WHERE 98
368d0 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
368e0 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
368f0 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
36900 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
36910 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
36920 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
36930 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
36940 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36950 20 44 49 53 54 49 4e 43 54 20 2d 20 36 31 20 63   DISTINCT - 61 c
36960 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
36970 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 31   cor0..----..-61
36980 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
36990 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
369a0 2d 20 2b 20 39 30 20 41 53 20 63 6f 6c 32 20 46  - + 90 AS col2 F
369b0 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d  ROM tab1 cor0..-
369c0 2d 2d 2d 0d 0a 2d 39 30 0d 0a 2d 39 30 0d 0a 2d  ---..-90..-90..-
369d0 39 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  90....skipif pos
369e0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
369f0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
36a00 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
36a10 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
36a20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
36a30 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 2b 20 36  SELECT + ( + + 6
36a40 39 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  9 ) col0 FROM ta
36a50 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  b0 WHERE NOT NUL
36a60 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  L IS NOT NULL..-
36a70 2d 2d 2d 0d 0a 36 39 0d 0a 36 39 0d 0a 36 39 0d  ---..69..69..69.
36a80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
36a90 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 28  rt..SELECT + - (
36aa0 20 31 38 20 29 20 46 52 4f 4d 20 74 61 62 30 20   18 ) FROM tab0 
36ab0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 0d  cor0..----..-18.
36ac0 0a 2d 31 38 0d 0a 2d 31 38 0d 0a 0d 0a 71 75 65  .-18..-18....que
36ad0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36ae0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
36af0 35 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  52 AS col2 FROM 
36b00 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
36b10 0a 35 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .52....query I r
36b20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
36b30 20 28 20 2d 20 36 33 20 29 20 41 53 20 63 6f 6c   ( - 63 ) AS col
36b40 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
36b50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d 0a 36  or0..----..63..6
36b60 33 0d 0a 36 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  3..63....onlyif 
36b70 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
36b80 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
36b90 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
36ba0 65 6c 2d 31 32 33 30 0d 0a 53 45 4c 45 43 54 20  el-1230..SELECT 
36bb0 28 20 2b 20 4d 49 4e 28 20 2d 20 35 35 20 29 20  ( + MIN( - 55 ) 
36bc0 29 20 41 53 20 63 6f 6c 31 2c 20 2b 20 43 4f 55  ) AS col1, + COU
36bd0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
36be0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
36bf0 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a 33 0d  0..----..-55..3.
36c00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36c10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36c20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
36c30 72 74 20 6c 61 62 65 6c 2d 31 32 33 30 0d 0a 53  rt label-1230..S
36c40 45 4c 45 43 54 20 28 20 2b 20 4d 49 4e 20 28 20  ELECT ( + MIN ( 
36c50 2d 20 35 35 20 29 20 29 20 41 53 20 63 6f 6c 31  - 55 ) ) AS col1
36c60 2c 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  , + COUNT ( * ) 
36c70 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
36c80 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
36c90 0a 2d 35 35 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  .-55..3....query
36ca0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
36cb0 43 54 20 41 4c 4c 20 2d 20 34 32 20 2b 20 2b 20  CT ALL - 42 + + 
36cc0 2d 20 63 6f 6c 31 20 2a 20 2d 20 35 31 20 41 53  - col1 * - 51 AS
36cd0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
36ce0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
36cf0 31 33 0d 0a 32 33 35 35 0d 0a 36 37 32 0d 0a 0d  13..2355..672...
36d00 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
36d10 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
36d20 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
36d30 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33 32 0d  sort label-1232.
36d40 0a 53 45 4c 45 43 54 20 4d 41 58 28 20 2b 20 63  .SELECT MAX( + c
36d50 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30 2c 20 2b  ol0 ) AS col0, +
36d60 20 38 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   81 AS col0 FROM
36d70 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d   tab2..----..75.
36d80 0a 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .81....skipif my
36d90 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
36da0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
36db0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33  owsort label-123
36dc0 32 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20  2..SELECT MAX ( 
36dd0 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  + col0 ) AS col0
36de0 2c 20 2b 20 38 31 20 41 53 20 63 6f 6c 30 20 46  , + 81 AS col0 F
36df0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
36e00 37 35 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20  75..81....query 
36e10 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
36e20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
36e30 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b  ROM tab0 WHERE +
36e40 20 2b 20 39 31 20 49 53 20 4e 4f 54 20 4e 55 4c   + 91 IS NOT NUL
36e50 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
36e60 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
36e70 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
36e80 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
36e90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
36ea0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
36eb0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
36ec0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36ed0 6c 2d 31 32 33 34 0d 0a 53 45 4c 45 43 54 20 44  l-1234..SELECT D
36ee0 49 53 54 49 4e 43 54 20 31 39 20 2f 20 2b 20 2d  ISTINCT 19 / + -
36ef0 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2a 20 2b   col1 + col1 * +
36f00 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
36f10 20 53 49 47 4e 45 44 20 29 20 2d 20 63 6f 6c 30   SIGNED ) - col0
36f20 20 2b 20 2d 20 34 36 20 41 53 20 63 6f 6c 30 20   + - 46 AS col0 
36f30 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
36f40 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
36f50 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
36f60 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
36f70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36f80 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  34..SELECT DISTI
36f90 4e 43 54 20 31 39 20 2f 20 2b 20 2d 20 63 6f 6c  NCT 19 / + - col
36fa0 31 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 43  1 + col1 * + - C
36fb0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
36fc0 54 45 47 45 52 20 29 20 2d 20 63 6f 6c 30 20 2b  TEGER ) - col0 +
36fd0 20 2d 20 34 36 20 41 53 20 63 6f 6c 30 20 46 52   - 46 AS col0 FR
36fe0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
36ff0 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ULL....query I r
37000 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
37010 6f 6c 30 20 2b 20 2b 20 31 35 20 46 52 4f 4d 20  ol0 + + 15 FROM 
37020 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d  tab1..----..100.
37030 0a 31 30 36 0d 0a 36 36 0d 0a 0d 0a 71 75 65 72  .106..66....quer
37040 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
37050 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b  ECT + col0 + + +
37060 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
37070 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
37080 34 31 0d 0a 31 34 32 0d 0a 39 37 0d 0a 0d 0a 71  41..142..97....q
37090 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
370a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
370b0 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
370c0 4f 54 20 4e 55 4c 4c 20 49 4e 20 28 20 2d 20 35  OT NULL IN ( - 5
370d0 34 20 2a 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c  4 * col0 - + col
370e0 31 20 2a 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29  1 * - ( - col1 )
370f0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
37100 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
37110 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
37120 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
37130 61 62 65 6c 2d 31 32 33 38 0d 0a 53 45 4c 45 43  abel-1238..SELEC
37140 54 20 2d 20 2d 20 28 20 2b 20 2b 20 28 20 2d 20  T - - ( + + ( - 
37150 31 38 20 29 20 29 20 2b 20 43 4f 55 4e 54 28 20  18 ) ) + COUNT( 
37160 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
37170 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  ERE NULL IS NULL
37180 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 73  ..----..-15....s
37190 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
371a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
371b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
371c0 62 65 6c 2d 31 32 33 38 0d 0a 53 45 4c 45 43 54  bel-1238..SELECT
371d0 20 2d 20 2d 20 28 20 2b 20 2b 20 28 20 2d 20 31   - - ( + + ( - 1
371e0 38 20 29 20 29 20 2b 20 43 4f 55 4e 54 20 28 20  8 ) ) + COUNT ( 
371f0 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48  * ) FROM tab1 WH
37200 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c  ERE NULL IS NULL
37210 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 6f  ..----..-15....o
37220 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
37230 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
37240 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
37250 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
37260 2d 31 32 33 39 0d 0a 53 45 4c 45 43 54 20 44 49  -1239..SELECT DI
37270 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31 20  STINCT + - col1 
37280 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 44 49  AS col2, col0 DI
37290 56 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  V + col2 FROM ta
372a0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
372b0 0d 0a 2d 35 31 0d 0a 32 0d 0a 2d 36 37 0d 0a 31  ..-51..2..-67..1
372c0 0d 0a 2d 37 37 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  ..-77..1....skip
372d0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
372e0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
372f0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
37300 6c 2d 31 32 33 39 0d 0a 53 45 4c 45 43 54 20 44  l-1239..SELECT D
37310 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c 31  ISTINCT + - col1
37320 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 2f   AS col2, col0 /
37330 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
37340 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
37350 0a 2d 35 31 0d 0a 32 0d 0a 2d 36 37 0d 0a 31 0d  .-51..2..-67..1.
37360 0a 2d 37 37 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79  .-77..1....query
37370 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
37380 45 43 54 20 41 4c 4c 20 2d 20 2b 20 38 36 2c 20  ECT ALL - + 86, 
37390 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
373a0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
373b0 2d 0d 0a 2d 38 36 0d 0a 35 39 0d 0a 2d 38 36 0d  -..-86..59..-86.
373c0 0a 36 38 0d 0a 2d 38 36 0d 0a 39 36 0d 0a 0d 0a  .68..-86..96....
373d0 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
373e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
373f0 54 20 2d 20 35 36 20 41 53 20 63 6f 6c 31 2c 20  T - 56 AS col1, 
37400 2d 20 35 36 20 2a 20 2d 20 28 20 2b 20 63 6f 6c  - 56 * - ( + col
37410 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  1 ) FROM tab1 AS
37420 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 36   cor0..----..-56
37430 0d 0a 32 36 33 32 0d 0a 2d 35 36 0d 0a 32 38 30  ..2632..-56..280
37440 0d 0a 2d 35 36 0d 0a 37 38 34 0d 0a 0d 0a 73 6b  ..-56..784....sk
37450 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
37460 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
37470 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
37480 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
37490 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20  lumns..query II 
374a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
374b0 2d 20 63 6f 6c 31 20 63 6f 6c 30 2c 20 2d 20 35  - col1 col0, - 5
374c0 36 20 2b 20 2b 20 38 35 20 46 52 4f 4d 20 74 61  6 + + 85 FROM ta
374d0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
374e0 35 31 0d 0a 32 39 0d 0a 2d 36 37 0d 0a 32 39 0d  51..29..-67..29.
374f0 0a 2d 37 37 0d 0a 32 39 0d 0a 0d 0a 71 75 65 72  .-77..29....quer
37500 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
37510 45 43 54 20 44 49 53 54 49 4e 43 54 20 31 33 20  ECT DISTINCT 13 
37520 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
37530 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
37540 4a 4f 49 4e 20 74 61 62 32 20 63 6f 72 31 0d 0a  JOIN tab2 cor1..
37550 2d 2d 2d 2d 0d 0a 31 33 0d 0a 0d 0a 71 75 65 72  ----..13....quer
37560 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
37570 45 43 54 20 36 36 20 41 53 20 63 6f 6c 30 20 46  ECT 66 AS col0 F
37580 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
37590 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
375a0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
375b0 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
375c0 20 74 6f 20 32 39 37 39 34 39 31 35 62 35 38 35   to 29794915b585
375d0 65 65 61 38 34 38 61 64 36 37 30 30 37 35 34 35  eea848ad67007545
375e0 32 63 38 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  2c88....query II
375f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37600 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
37610 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
37620 48 45 52 45 20 34 33 20 3e 20 4e 55 4c 4c 0d 0a  HERE 43 > NULL..
37630 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
37640 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
37650 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
37660 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
37670 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
37680 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 36 0d  sort label-1246.
37690 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
376a0 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   - - COUNT( * ) 
376b0 2d 20 2d 20 4d 49 4e 28 20 63 6f 6c 31 20 29 20  - - MIN( col1 ) 
376c0 44 49 56 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  DIV + + COUNT( *
376d0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
376e0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
376f0 2d 2d 0d 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66  --..20....skipif
37700 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
37710 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
37720 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37730 32 34 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  246..SELECT DIST
37740 49 4e 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28  INCT - - COUNT (
37750 20 2a 20 29 20 2d 20 2d 20 4d 49 4e 20 28 20 63   * ) - - MIN ( c
37760 6f 6c 31 20 29 20 2f 20 2b 20 2b 20 43 4f 55 4e  ol1 ) / + + COUN
37770 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
37780 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
37790 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 0d 0a 71  0..----..20....q
377a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
377b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
377c0 20 34 31 20 2a 20 2d 20 35 33 2c 20 38 32 20 41   41 * - 53, 82 A
377d0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
377e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
377f0 2d 32 31 37 33 0d 0a 38 32 0d 0a 0d 0a 6f 6e 6c  -2173..82....onl
37800 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
37810 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
37820 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
37830 6c 61 62 65 6c 2d 31 32 34 38 0d 0a 53 45 4c 45  label-1248..SELE
37840 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
37850 2b 20 2d 20 2d 20 36 39 20 41 53 20 63 6f 6c 31  + - - 69 AS col1
37860 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
37870 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a  r0..----..66....
37880 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37890 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
378a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
378b0 61 62 65 6c 2d 31 32 34 38 0d 0a 53 45 4c 45 43  abel-1248..SELEC
378c0 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T - COUNT ( * ) 
378d0 2b 20 2d 20 2d 20 36 39 20 41 53 20 63 6f 6c 31  + - - 69 AS col1
378e0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
378f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a  r0..----..66....
37900 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
37910 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
37920 54 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 32 20  T col0 / - col2 
37930 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30 20 46 52  AS col2, col0 FR
37940 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
37950 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42  WHERE NOT NULL B
37960 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
37970 34 35 20 2b 20 2b 20 2b 20 31 0d 0a 2d 2d 2d 2d  45 + + + 1..----
37980 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
37990 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
379a0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
379b0 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
379c0 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 37 34 20   NOT BETWEEN 74 
379d0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
379e0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
379f0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
37a00 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
37a10 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 31 0d  sort label-1251.
37a20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
37a30 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
37a40 2b 20 36 39 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 69 AS col1 FRO
37a50 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
37a60 2d 2d 2d 2d 0d 0a 32 30 37 0d 0a 0d 0a 73 6b 69  ----..207....ski
37a70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37a80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37a90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37aa0 6c 2d 31 32 35 31 0d 0a 53 45 4c 45 43 54 20 44  l-1251..SELECT D
37ab0 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
37ac0 28 20 2a 20 29 20 2a 20 2b 20 36 39 20 41 53 20  ( * ) * + 69 AS 
37ad0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
37ae0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 30  S cor0..----..20
37af0 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  7....skipif post
37b00 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
37b10 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
37b20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
37b30 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
37b40 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
37b50 45 4c 45 43 54 20 2b 20 35 31 20 2a 20 2d 20 35  ELECT + 51 * - 5
37b60 36 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  6 col1 FROM tab1
37b70 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
37b80 2d 32 38 35 36 0d 0a 2d 32 38 35 36 0d 0a 2d 32  -2856..-2856..-2
37b90 38 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  856....query II 
37ba0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37bb0 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 32 2c  col2 * + + col2,
37bc0 20 32 32 20 2b 20 2b 20 36 35 20 2f 20 28 20 2b   22 + + 65 / ( +
37bd0 20 36 34 20 29 20 2a 20 2d 20 36 20 46 52 4f 4d   64 ) * - 6 FROM
37be0 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
37bf0 20 4e 4f 54 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   NOT col1 * + co
37c00 6c 30 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  l0 < NULL..----.
37c10 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
37c20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
37c30 49 47 4e 45 44 20 74 79 70 65 3a 20 44 49 56 20  IGNED type: DIV 
37c40 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
37c50 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
37c60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37c70 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  54..SELECT DISTI
37c80 4e 43 54 20 2b 20 43 41 53 54 28 20 2d 20 63 6f  NCT + CAST( - co
37c90 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 44  l1 AS SIGNED ) D
37ca0 49 56 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c  IV + col0 AS col
37cb0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
37cc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 30  or0..----..-5..0
37cd0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37ce0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37cf0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37d00 72 74 20 6c 61 62 65 6c 2d 31 32 35 34 0d 0a 53  rt label-1254..S
37d10 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
37d20 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 31 20 41   CAST ( - col1 A
37d30 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20  S INTEGER ) / + 
37d40 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
37d50 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
37d60 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 30 0d 0a 0d 0a 6f  ----..-5..0....o
37d70 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
37d80 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
37d90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
37da0 74 20 6c 61 62 65 6c 2d 31 32 35 35 0d 0a 53 45  t label-1255..SE
37db0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 53 55  LECT DISTINCT SU
37dc0 4d 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74  M( col2 ) FROM t
37dd0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d 0a  ab0..----..156..
37de0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
37df0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
37e00 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37e10 20 6c 61 62 65 6c 2d 31 32 35 35 0d 0a 53 45 4c   label-1255..SEL
37e20 45 43 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d  ECT DISTINCT SUM
37e30 20 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   ( col2 ) FROM t
37e40 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 36 0d 0a  ab0..----..156..
37e50 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
37e60 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
37e70 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
37e80 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 36 0d  sort label-1256.
37e90 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
37ea0 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   + COUNT( * ) FR
37eb0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
37ec0 54 20 2d 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  T - col0 IS NULL
37ed0 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
37ee0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37ef0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37f00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37f10 6c 2d 31 32 35 36 0d 0a 53 45 4c 45 43 54 20 44  l-1256..SELECT D
37f20 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
37f30 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
37f40 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30  WHERE NOT - col0
37f50 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
37f60 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
37f70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
37f80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
37f90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37fa0 35 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  57..SELECT DISTI
37fb0 4e 43 54 20 28 20 2b 20 2d 20 43 4f 55 4e 54 28  NCT ( + - COUNT(
37fc0 20 2a 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46   * ) ) AS col1 F
37fd0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
37fe0 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -3....skipif mys
37ff0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
38000 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
38010 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 37 0d  sort label-1257.
38020 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
38030 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a   ( + - COUNT ( *
38040 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
38050 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  M tab1..----..-3
38060 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
38070 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
38080 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
38090 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20  NOT NULL NOT IN 
380a0 28 20 2b 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29  ( + + ( + col1 )
380b0 2c 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c  , + col1 * + col
380c0 32 20 2a 20 37 33 20 2f 20 2d 20 36 33 2c 20 2b  2 * 73 / - 63, +
380d0 20 63 6f 6c 32 20 2b 20 2d 20 28 20 2b 20 63 6f   col2 + - ( + co
380e0 6c 32 20 29 20 2d 20 2d 20 2b 20 28 20 2d 20 63  l2 ) - - + ( - c
380f0 6f 6c 32 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 31  ol2 ) * + + col1
38100 20 2a 20 2d 20 36 2c 20 63 6f 6c 31 20 29 0d 0a   * - 6, col1 )..
38110 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
38120 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
38130 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
38140 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
38150 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 39 0d  sort label-1259.
38160 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
38170 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
38180 2d 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 43 41 53  - col1 + - - CAS
38190 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
381a0 44 20 29 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 37  D ) - - col0 * 7
381b0 32 20 2a 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20  2 * col1 IS NOT 
381c0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
381d0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
381e0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
381f0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
38200 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
38210 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
38220 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
38230 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 39 0d  sort label-1259.
38240 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
38250 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
38260 2d 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 43 41 53  - col1 + - - CAS
38270 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
38280 47 45 52 20 29 20 2d 20 2d 20 63 6f 6c 30 20 2a  GER ) - - col0 *
38290 20 37 32 20 2a 20 63 6f 6c 31 20 49 53 20 4e 4f   72 * col1 IS NO
382a0 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
382b0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
382c0 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65  o c4b42765dff94e
382d0 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33  aaa46040e537fb43
382e0 62 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  b7....onlyif mys
382f0 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
38300 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
38310 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
38320 74 20 6c 61 62 65 6c 2d 31 32 36 30 0d 0a 53 45  t label-1260..SE
38330 4c 45 43 54 20 2d 20 63 6f 6c 30 20 41 53 20 63  LECT - col0 AS c
38340 6f 6c 30 2c 20 35 38 20 44 49 56 20 63 6f 6c 30  ol0, 58 DIV col0
38350 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
38360 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
38370 0d 0a 2d 31 35 0d 0a 33 0d 0a 2d 38 37 0d 0a 30  ..-15..3..-87..0
38380 0d 0a 2d 39 37 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  ..-97..0....skip
38390 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
383a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
383b0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
383c0 6c 2d 31 32 36 30 0d 0a 53 45 4c 45 43 54 20 2d  l-1260..SELECT -
383d0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 35   col0 AS col0, 5
383e0 38 20 2f 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  8 / col0 AS col2
383f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
38400 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 33  r0..----..-15..3
38410 0d 0a 2d 38 37 0d 0a 30 0d 0a 2d 39 37 0d 0a 30  ..-87..0..-97..0
38420 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
38430 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
38440 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
38450 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
38460 6c 61 62 65 6c 2d 31 32 36 31 0d 0a 53 45 4c 45  label-1261..SELE
38470 43 54 20 2b 20 33 32 20 63 6f 6c 30 2c 20 39 38  CT + 32 col0, 98
38480 20 44 49 56 20 2d 20 36 38 20 41 53 20 63 6f 6c   DIV - 68 AS col
38490 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
384a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a 2d  or0..----..32..-
384b0 31 0d 0a 33 32 0d 0a 2d 31 0d 0a 33 32 0d 0a 2d  1..32..-1..32..-
384c0 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
384d0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
384e0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
384f0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
38500 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
38510 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
38520 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
38530 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
38540 62 65 6c 2d 31 32 36 31 0d 0a 53 45 4c 45 43 54  bel-1261..SELECT
38550 20 2b 20 33 32 20 63 6f 6c 30 2c 20 39 38 20 2f   + 32 col0, 98 /
38560 20 2d 20 36 38 20 41 53 20 63 6f 6c 32 20 46 52   - 68 AS col2 FR
38570 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
38580 0a 2d 2d 2d 2d 0d 0a 33 32 0d 0a 2d 31 0d 0a 33  .----..32..-1..3
38590 32 0d 0a 2d 31 0d 0a 33 32 0d 0a 2d 31 0d 0a 0d  2..-1..32..-1...
385a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
385b0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
385c0 54 20 35 33 20 46 52 4f 4d 20 74 61 62 31 20 41  T 53 FROM tab1 A
385d0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c  S cor0 WHERE NUL
385e0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
385f0 0a 35 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .53....onlyif my
38600 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
38610 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
38620 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
38630 31 32 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  1263..SELECT DIS
38640 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 44 49 53  TINCT - MAX( DIS
38650 54 49 4e 43 54 20 2b 20 2b 20 36 35 20 29 20 63  TINCT + + 65 ) c
38660 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
38670 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 35   cor0..----..-65
38680 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
38690 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
386a0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
386b0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
386c0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
386d0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
386e0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
386f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
38700 6c 2d 31 32 36 33 0d 0a 53 45 4c 45 43 54 20 44  l-1263..SELECT D
38710 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20 28 20  ISTINCT - MAX ( 
38720 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 36 35 20  DISTINCT + + 65 
38730 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
38740 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
38750 2d 36 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -65....query I r
38760 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
38770 20 63 6f 6c 32 20 2b 20 39 33 20 2a 20 2d 20 39   col2 + 93 * - 9
38780 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 31 31 20 2a   + col0 + + 11 *
38790 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + + col2 AS col
387a0 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  1 FROM tab0 AS c
387b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 38 0d  or0..----..-258.
387c0 0a 2d 36 33 30 0d 0a 34 34 38 0d 0a 0d 0a 71 75  .-630..448....qu
387d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
387e0 45 4c 45 43 54 20 2b 20 2d 20 37 39 20 2b 20 2d  ELECT + - 79 + -
387f0 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
38800 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
38810 0a 2d 31 32 35 0d 0a 2d 31 34 33 0d 0a 2d 31 35  .-125..-143..-15
38820 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
38830 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28  sort..SELECT - (
38840 20 38 37 20 29 20 2b 20 2b 20 2b 20 35 37 20 2b   87 ) + + + 57 +
38850 20 2d 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f   - col2 + - - co
38860 6c 32 20 2a 20 2d 20 35 20 46 52 4f 4d 20 74 61  l2 * - 5 FROM ta
38870 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
38880 0d 0a 2d 33 38 34 0d 0a 2d 34 33 38 0d 0a 2d 36  ..-384..-438..-6
38890 30 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  06....query I ro
388a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
388b0 2b 20 63 6f 6c 30 20 2b 20 34 39 20 46 52 4f 4d  + col0 + 49 FROM
388c0 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab0 cor0..----
388d0 0d 0a 31 33 36 0d 0a 31 34 36 0d 0a 36 34 0d 0a  ..136..146..64..
388e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
388f0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 32 31  t..SELECT + - 21
38900 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   + - col0 * - co
38910 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
38920 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
38930 31 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 <> NULL..----.
38940 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
38950 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 31 38 20  rt..SELECT + 18 
38960 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  + + col1 AS col0
38970 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
38980 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 39 0d 0a 38 35  r0..----..69..85
38990 0d 0a 39 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..95....onlyif m
389a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
389b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
389c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
389d0 2d 31 32 37 30 0d 0a 53 45 4c 45 43 54 20 43 4f  -1270..SELECT CO
389e0 55 4e 54 28 20 41 4c 4c 20 2d 20 38 32 20 29 20  UNT( ALL - 82 ) 
389f0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
38a00 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
38a10 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
38a20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
38a30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
38a40 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 30 0d  sort label-1270.
38a50 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20  .SELECT COUNT ( 
38a60 41 4c 4c 20 2d 20 38 32 20 29 20 41 53 20 63 6f  ALL - 82 ) AS co
38a70 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
38a80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
38a90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
38aa0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
38ab0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
38ac0 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37 31 0d 0a  ort label-1271..
38ad0 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 2b 20  SELECT + MAX( + 
38ae0 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col1 ) col2 FROM
38af0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d   tab1..----..47.
38b00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
38b10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
38b20 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
38b30 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
38b40 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
38b50 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
38b60 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
38b70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
38b80 2d 31 32 37 31 0d 0a 53 45 4c 45 43 54 20 2b 20  -1271..SELECT + 
38b90 4d 41 58 20 28 20 2b 20 63 6f 6c 31 20 29 20 63  MAX ( + col1 ) c
38ba0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
38bb0 2d 2d 2d 0d 0a 34 37 0d 0a 0d 0a 71 75 65 72 79  ---..47....query
38bc0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
38bd0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
38be0 6c 32 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c  l2 * col2 AS col
38bf0 31 20 46 52 4f 4d