sqllogictest
Hex Artifact Content
Not logged in

Artifact a680a9907a08cfa152163ad6b6e9a47dce2a0fe0:


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 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
02e0: 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
02f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
0300: 61 62 65 6c 2d 30 0d 0a 53 45 4c 45 43 54 20 44  abel-0..SELECT D
0310: 49 53 54 49 4e 43 54 20 36 33 20 44 49 56 20 63  ISTINCT 63 DIV c
0320: 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
0330: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   tab2..----..0..
0340: 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
0350: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
0360: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
0370: 6f 72 74 20 6c 61 62 65 6c 2d 30 0d 0a 53 45 4c  ort label-0..SEL
0380: 45 43 54 20 44 49 53 54 49 4e 43 54 20 36 33 20  ECT DISTINCT 63 
0390: 2f 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  / col1 AS col2 F
03a0: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
03b0: 30 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  0..1....query II
03c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
03d0: 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
03e0: 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
03f0: 63 6f 6c 30 20 2d 20 2d 20 2d 20 63 6f 6c 32 20  col0 - - - col2 
0400: 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f 6c  - col0 * + - col
0410: 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
0420: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
0430: 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
0440: 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
0450: 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
0460: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
0470: 45 4c 45 43 54 20 32 33 20 41 53 20 63 6f 6c 31  ELECT 23 AS col1
0480: 2c 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  , + col0 AS col2
0490: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
04a0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 34 36  r0..----..23..46
04b0: 0d 0a 32 33 0d 0a 36 34 0d 0a 32 33 0d 0a 37 35  ..23..64..23..75
04c0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
04d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
04e0: 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 41 53 20  TINCT - col2 AS 
04f0: 63 6f 6c 31 2c 20 2b 20 28 20 2d 20 2b 20 32 35  col1, + ( - + 25
0500: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
0510: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  cor0..----..-10.
0520: 0a 2d 32 35 0d 0a 2d 34 37 0d 0a 2d 32 35 0d 0a  .-25..-47..-25..
0530: 2d 39 39 0d 0a 2d 32 35 0d 0a 0d 0a 6f 6e 6c 79  -99..-25....only
0540: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
0550: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
0560: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
0570: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
0580: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
0590: 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45 20  tab0 cor0 WHERE 
05a0: 2b 20 32 31 20 3e 3d 20 2d 20 2d 20 37 36 20 2a  + 21 >= - - 76 *
05b0: 20 2b 20 2b 20 43 41 53 54 28 20 2d 20 2b 20 43   + + CAST( - + C
05c0: 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
05d0: 4e 45 44 20 29 20 41 53 20 53 49 47 4e 45 44 20  NED ) AS SIGNED 
05e0: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
05f0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
0600: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
0610: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
0620: 6c 2d 34 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  l-4..SELECT * FR
0630: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
0640: 52 45 20 2b 20 32 31 20 3e 3d 20 2d 20 2d 20 37  RE + 21 >= - - 7
0650: 36 20 2a 20 2b 20 2b 20 43 41 53 54 20 28 20 2d  6 * + + CAST ( -
0660: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
0670: 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 49  S INTEGER ) AS I
0680: 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a  NTEGER )..----..
0690: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
06a0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 34  t..SELECT ALL 34
06b0: 20 2a 20 2b 20 2b 20 28 20 2d 20 37 35 20 29 20   * + + ( - 75 ) 
06c0: 2b 20 2d 20 32 33 20 41 53 20 63 6f 6c 32 20 46  + - 23 AS col2 F
06d0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
06e0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 37 33 0d 0a 2d  ..----..-2573..-
06f0: 32 35 37 33 0d 0a 2d 32 35 37 33 0d 0a 0d 0a 6f  2573..-2573....o
0700: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
0710: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
0720: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
0730: 74 20 6c 61 62 65 6c 2d 36 0d 0a 53 45 4c 45 43  t label-6..SELEC
0740: 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T - COUNT( * ) +
0750: 20 2b 20 28 20 53 55 4d 28 20 44 49 53 54 49 4e   + ( SUM( DISTIN
0760: 43 54 20 2d 20 63 6f 6c 31 20 29 20 29 20 41 53  CT - col1 ) ) AS
0770: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
0780: 0a 2d 2d 2d 2d 0d 0a 2d 36 39 0d 0a 0d 0a 73 6b  .----..-69....sk
0790: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
07a0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
07b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
07c0: 65 6c 2d 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43  el-6..SELECT - C
07d0: 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 28  OUNT ( * ) + + (
07e0: 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
07f0: 2d 20 63 6f 6c 31 20 29 20 29 20 41 53 20 63 6f  - col1 ) ) AS co
0800: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
0810: 2d 2d 0d 0a 2d 36 39 0d 0a 0d 0a 71 75 65 72 79  --..-69....query
0820: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
0830: 43 54 20 2d 20 63 6f 6c 32 20 2b 20 28 20 63 6f  CT - col2 + ( co
0840: 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  l1 ) AS col1 FRO
0850: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39  M tab0..----..-9
0860: 38 0d 0a 31 31 0d 0a 33 34 0d 0a 0d 0a 71 75 65  8..11..34....que
0870: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
0880: 4c 45 43 54 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  LECT + col0 + + 
0890: 28 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31  ( col0 ) AS col1
08a0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
08b0: 0d 0a 31 30 32 0d 0a 31 37 30 0d 0a 31 38 32 0d  ..102..170..182.
08c0: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
08d0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
08e0: 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   * FROM tab1 WHE
08f0: 52 45 20 4e 4f 54 20 2d 20 39 31 20 2a 20 2d 20  RE NOT - 91 * - 
0900: 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
0910: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
0920: 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31  hing to c6c0a411
0930: 31 62 33 36 64 30 34 64 62 63 38 31 31 61 31 31  1b36d04dbc811a11
0940: 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79  e4d54cad....only
0950: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
0960: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
0970: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
0980: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 0d  owsort label-10.
0990: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54  .SELECT ALL CAST
09a0: 28 20 2b 20 38 32 20 41 53 20 53 49 47 4e 45 44  ( + 82 AS SIGNED
09b0: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
09c0: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 32 0d 0a  tab0..----..82..
09d0: 38 32 0d 0a 38 32 0d 0a 0d 0a 73 6b 69 70 69 66  82..82....skipif
09e0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
09f0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
0a00: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
0a10: 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  0..SELECT ALL CA
0a20: 53 54 20 28 20 2b 20 38 32 20 41 53 20 49 4e 54  ST ( + 82 AS INT
0a30: 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46  EGER ) AS col0 F
0a40: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
0a50: 38 32 0d 0a 38 32 0d 0a 38 32 0d 0a 0d 0a 71 75  82..82..82....qu
0a60: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
0a70: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
0a80: 20 39 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2b 20   9 * + - col1 + 
0a90: 2b 20 33 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d  + 3 * - col1 * -
0aa0: 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 31   col2 * + - col1
0ab0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
0ac0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 34 37 30 0d  r0..----..-4470.
0ad0: 0a 2d 34 35 31 30 35 39 0d 0a 2d 35 36 35 37 34  .-451059..-56574
0ae0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
0af0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  ort..SELECT - ( 
0b00: 36 39 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  69 ) FROM tab2 A
0b10: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
0b20: 39 0d 0a 2d 36 39 0d 0a 2d 36 39 0d 0a 0d 0a 6f  9..-69..-69....o
0b30: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
0b40: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
0b50: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
0b60: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
0b70: 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  13..SELECT ALL -
0b80: 20 2b 20 28 20 2d 20 36 36 20 29 20 2a 20 2b 20   + ( - 66 ) * + 
0b90: 63 6f 6c 32 20 44 49 56 20 2b 20 63 6f 6c 32 20  col2 DIV + col2 
0ba0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
0bb0: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
0bc0: 0a 36 36 0d 0a 36 36 0d 0a 36 36 0d 0a 0d 0a 73  .66..66..66....s
0bd0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
0be0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
0bf0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
0c00: 62 65 6c 2d 31 33 0d 0a 53 45 4c 45 43 54 20 41  bel-13..SELECT A
0c10: 4c 4c 20 2d 20 2b 20 28 20 2d 20 36 36 20 29 20  LL - + ( - 66 ) 
0c20: 2a 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c  * + col2 / + col
0c30: 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
0c40: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
0c50: 2d 0d 0a 36 36 0d 0a 36 36 0d 0a 36 36 0d 0a 0d  -..66..66..66...
0c60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
0c70: 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20  ..SELECT col0 * 
0c80: 2d 20 33 33 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  - 33 + col2 FROM
0c90: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38   tab0..----..-28
0ca0: 36 31 0d 0a 2d 33 31 30 32 0d 0a 2d 34 34 38 0d  61..-3102..-448.
0cb0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
0cc0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
0cd0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
0ce0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 0d 0a  wsort label-15..
0cf0: 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2b 20  SELECT - MIN( + 
0d00: 2d 20 31 33 20 29 20 2b 20 2d 20 37 37 20 41 53  - 13 ) + - 77 AS
0d10: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
0d20: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
0d30: 36 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  64....skipif mys
0d40: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
0d50: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
0d60: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 35 0d 0a 53  sort label-15..S
0d70: 45 4c 45 43 54 20 2d 20 4d 49 4e 20 28 20 2b 20  ELECT - MIN ( + 
0d80: 2d 20 31 33 20 29 20 2b 20 2d 20 37 37 20 41 53  - 13 ) + - 77 AS
0d90: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
0da0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
0db0: 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  64....onlyif mys
0dc0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
0dd0: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
0de0: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
0df0: 74 20 6c 61 62 65 6c 2d 31 36 0d 0a 53 45 4c 45  t label-16..SELE
0e00: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
0e10: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
0e20: 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 2c 20  GNED ) AS col1, 
0e30: 63 6f 6c 30 20 2d 20 2b 20 35 38 20 46 52 4f 4d  col0 - + 58 FROM
0e40: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
0e50: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 2d 31 32 0d 0a  ---..NULL..-12..
0e60: 4e 55 4c 4c 0d 0a 31 37 0d 0a 4e 55 4c 4c 0d 0a  NULL..17..NULL..
0e70: 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
0e80: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
0e90: 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
0ea0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 0d 0a 53  sort label-16..S
0eb0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
0ec0: 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41   + CAST ( NULL A
0ed0: 53 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63  S INTEGER ) AS c
0ee0: 6f 6c 31 2c 20 63 6f 6c 30 20 2d 20 2b 20 35 38  ol1, col0 - + 58
0ef0: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
0f00: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
0f10: 2d 31 32 0d 0a 4e 55 4c 4c 0d 0a 31 37 0d 0a 4e  -12..NULL..17..N
0f20: 55 4c 4c 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20  ULL..6....query 
0f30: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
0f40: 54 20 2d 20 36 20 2a 20 2d 20 63 6f 6c 32 20 46  T - 6 * - col2 F
0f50: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
0f60: 0d 0a 2d 2d 2d 2d 0d 0a 32 38 32 0d 0a 35 39 34  ..----..282..594
0f70: 0d 0a 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..60....onlyif m
0f80: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
0f90: 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
0fa0: 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
0fb0: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 0d 0a 53  sort label-18..S
0fc0: 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2a  ELECT - - col2 *
0fd0: 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 34 30 2c 20   col0 + + - 40, 
0fe0: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44 45  CAST( NULL AS DE
0ff0: 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 30 20  CIMAL ) AS col0 
1000: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1010: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 38 0d 0a 4e  0..----..1018..N
1020: 55 4c 4c 0d 0a 32 35 32 30 0d 0a 4e 55 4c 4c 0d  ULL..2520..NULL.
1030: 0a 34 33 31 30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .4310..NULL....s
1040: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1050: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1060: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1070: 61 62 65 6c 2d 31 38 0d 0a 53 45 4c 45 43 54 20  abel-18..SELECT 
1080: 2d 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20  - - col2 * col0 
1090: 2b 20 2b 20 2d 20 34 30 2c 20 43 41 53 54 20 28  + + - 40, CAST (
10a0: 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
10b0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
10c0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
10d0: 0a 31 30 31 38 0d 0a 4e 55 4c 4c 0d 0a 32 35 32  .1018..NULL..252
10e0: 30 0d 0a 4e 55 4c 4c 0d 0a 34 33 31 30 0d 0a 4e  0..NULL..4310..N
10f0: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
1100: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1110: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
1120: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
1130: 55 4c 4c 20 3c 3e 20 2b 20 63 6f 6c 32 20 2a 20  ULL <> + col2 * 
1140: 2d 20 31 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  - 16..----....on
1150: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
1160: 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41  T syntax: DECIMA
1170: 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  L type: ..query 
1180: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1190: 2d 32 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  -20..SELECT + + 
11a0: 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 2f 20  col1 * - col0 / 
11b0: 2d 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 43 41 53  - col2 + - - CAS
11c0: 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
11d0: 41 4c 20 29 20 2b 20 2d 20 39 35 20 2a 20 2d 20  AL ) + - 95 * - 
11e0: 2d 20 39 38 20 63 6f 6c 30 2c 20 63 6f 6c 32 20  - 98 col0, col2 
11f0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
1200: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
1210: 4c 4c 0d 0a 35 39 0d 0a 4e 55 4c 4c 0d 0a 36 38  LL..59..NULL..68
1220: 0d 0a 4e 55 4c 4c 0d 0a 39 36 0d 0a 0d 0a 73 6b  ..NULL..96....sk
1230: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1240: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
1250: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1260: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1270: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1280: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1290: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
12a0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 0d  owsort label-20.
12b0: 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 31  .SELECT + + col1
12c0: 20 2a 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 63 6f   * - col0 / - co
12d0: 6c 32 20 2b 20 2d 20 2d 20 43 41 53 54 20 28 20  l2 + - - CAST ( 
12e0: 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 2b  NULL AS REAL ) +
12f0: 20 2d 20 39 35 20 2a 20 2d 20 2d 20 39 38 20 63   - 95 * - - 98 c
1300: 6f 6c 30 2c 20 63 6f 6c 32 20 63 6f 6c 32 20 46  ol0, col2 col2 F
1310: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1320: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 35 39  ..----..NULL..59
1330: 0d 0a 4e 55 4c 4c 0d 0a 36 38 0d 0a 4e 55 4c 4c  ..NULL..68..NULL
1340: 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..96....query II
1350: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1360: 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
1370: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1380: 2d 20 36 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  - 6 BETWEEN NULL
1390: 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   AND NULL..----.
13a0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
13b0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
13c0: 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 30   col1 + - - col0
13d0: 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
13e0: 20 2d 20 63 6f 6c 30 20 3d 20 4e 55 4c 4c 0d 0a   - col0 = NULL..
13f0: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
1400: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1410: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1420: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1430: 2d 32 33 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  -23..SELECT - ( 
1440: 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20  COUNT( * ) ) AS 
1450: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57  col1 FROM tab2 W
1460: 48 45 52 45 20 4e 4f 54 20 2d 20 2d 20 37 35 20  HERE NOT - - 75 
1470: 2b 20 2d 20 2b 20 39 32 20 49 53 20 4e 4f 54 20  + - + 92 IS NOT 
1480: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
1490: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
14a0: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
14b0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
14c0: 6c 61 62 65 6c 2d 32 33 0d 0a 53 45 4c 45 43 54  label-23..SELECT
14d0: 20 2d 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29   - ( COUNT ( * )
14e0: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
14f0: 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2d  tab2 WHERE NOT -
1500: 20 2d 20 37 35 20 2b 20 2d 20 2b 20 39 32 20 49   - 75 + - + 92 I
1510: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1520: 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
1530: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1540: 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20  LL + col1 * + + 
1550: 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
1560: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 36  M tab2..----..26
1570: 30 31 0d 0a 34 34 38 39 0d 0a 35 39 32 39 0d 0a  01..4489..5929..
1580: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1590: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
15a0: 43 54 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20  CT + ( + col2 ) 
15b0: 2a 20 2b 20 31 30 20 46 52 4f 4d 20 74 61 62 31  * + 10 FROM tab1
15c0: 0d 0a 2d 2d 2d 2d 0d 0a 35 39 30 0d 0a 36 38 30  ..----..590..680
15d0: 0d 0a 39 36 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..960....onlyif 
15e0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
15f0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1600: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
1610: 65 6c 2d 32 36 0d 0a 53 45 4c 45 43 54 20 2d 20  el-26..SELECT - 
1620: 35 35 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e  55 AS col0, COUN
1630: 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46  T( * ) AS col0 F
1640: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1650: 2d 35 35 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  -55..3....skipif
1660: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1670: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1680: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1690: 32 36 0d 0a 53 45 4c 45 43 54 20 2d 20 35 35 20  26..SELECT - 55 
16a0: 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20 28  AS col0, COUNT (
16b0: 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
16c0: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab0..----..-5
16d0: 35 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  5..3....onlyif m
16e0: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
16f0: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1700: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
1710: 6c 2d 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 37  l-27..SELECT + 7
1720: 33 20 41 53 20 63 6f 6c 32 2c 20 2b 20 53 55 4d  3 AS col2, + SUM
1730: 28 20 41 4c 4c 20 36 36 20 29 20 46 52 4f 4d 20  ( ALL 66 ) FROM 
1740: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a  tab1..----..73..
1750: 31 39 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  198....skipif my
1760: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1770: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
1780: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 0d  owsort label-27.
1790: 0a 53 45 4c 45 43 54 20 2b 20 37 33 20 41 53 20  .SELECT + 73 AS 
17a0: 63 6f 6c 32 2c 20 2b 20 53 55 4d 20 28 20 41 4c  col2, + SUM ( AL
17b0: 4c 20 36 36 20 29 20 46 52 4f 4d 20 74 61 62 31  L 66 ) FROM tab1
17c0: 0d 0a 2d 2d 2d 2d 0d 0a 37 33 0d 0a 31 39 38 0d  ..----..73..198.
17d0: 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
17e0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
17f0: 6c 30 2c 20 34 20 2a 20 38 33 20 41 53 20 63 6f  l0, 4 * 83 AS co
1800: 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l2 FROM tab0..--
1810: 2d 2d 0d 0a 2d 31 35 0d 0a 33 33 32 0d 0a 2d 38  --..-15..332..-8
1820: 37 0d 0a 33 33 32 0d 0a 2d 39 37 0d 0a 33 33 32  7..332..-97..332
1830: 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
1840: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1850: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1860: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1870: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1880: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1890: 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 35 38 20  LECT ALL + + 58 
18a0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
18b0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
18c0: 0d 0a 35 38 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79  ..58..58....only
18d0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
18e0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
18f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1900: 61 62 65 6c 2d 33 30 0d 0a 53 45 4c 45 43 54 20  abel-30..SELECT 
1910: 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
1920: 28 20 2a 20 29 20 2a 20 2d 20 33 39 20 2a 20 2b  ( * ) * - 39 * +
1930: 20 2b 20 39 35 20 41 53 20 63 6f 6c 31 20 46 52   + 95 AS col1 FR
1940: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
1950: 0a 2d 2d 2d 2d 0d 0a 31 31 31 31 35 0d 0a 0d 0a  .----..11115....
1960: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1970: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1980: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1990: 61 62 65 6c 2d 33 30 0d 0a 53 45 4c 45 43 54 20  abel-30..SELECT 
19a0: 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
19b0: 20 28 20 2a 20 29 20 2a 20 2d 20 33 39 20 2a 20   ( * ) * - 39 * 
19c0: 2b 20 2b 20 39 35 20 41 53 20 63 6f 6c 31 20 46  + + 95 AS col1 F
19d0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
19e0: 0d 0a 2d 2d 2d 2d 0d 0a 31 31 31 31 35 0d 0a 0d  ..----..11115...
19f0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a00: 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
1a10: 2b 20 37 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  + 7 AS col1 FROM
1a20: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1a30: 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
1a40: 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30 0d 0a 2d 37 0d  ..----..-40..-7.
1a50: 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  .2....onlyif mys
1a60: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1a70: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1a80: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
1a90: 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 36  2..SELECT ALL 76
1aa0: 20 2d 20 2d 20 28 20 2d 20 43 4f 55 4e 54 28 20   - - ( - COUNT( 
1ab0: 2a 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 2c  * ) ) FROM tab1,
1ac0: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
1ad0: 0d 0a 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..67....skipif m
1ae0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1af0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1b00: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 0d  owsort label-32.
1b10: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 36 20 2d  .SELECT ALL 76 -
1b20: 20 2d 20 28 20 2d 20 43 4f 55 4e 54 20 28 20 2a   - ( - COUNT ( *
1b30: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 2c 20   ) ) FROM tab1, 
1b40: 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
1b50: 0a 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .67....query III
1b60: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1b70: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
1b80: 52 45 20 4e 4f 54 20 2b 20 36 31 20 49 53 20 4e  RE NOT + 61 IS N
1b90: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
1ba0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1bb0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1bc0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1bd0: 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45  r0 WHERE NULL BE
1be0: 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 34  TWEEN NULL AND 4
1bf0: 39 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  9..----....onlyi
1c00: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1c10: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1c20: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
1c30: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 35 0d 0a  wsort label-35..
1c40: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 35 39 20  SELECT ALL + 59 
1c50: 2b 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 30  + + CAST( + col0
1c60: 20 41 53 20 53 49 47 4e 45 44 20 29 20 63 6f 6c   AS SIGNED ) col
1c70: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
1c80: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a  or0..----..110..
1c90: 31 34 34 0d 0a 31 35 30 0d 0a 0d 0a 73 6b 69 70  144..150....skip
1ca0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1cb0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1cc0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1cd0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1ce0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1cf0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1d00: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1d10: 6f 72 74 20 6c 61 62 65 6c 2d 33 35 0d 0a 53 45  ort label-35..SE
1d20: 4c 45 43 54 20 41 4c 4c 20 2b 20 35 39 20 2b 20  LECT ALL + 59 + 
1d30: 2b 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 30 20  + CAST ( + col0 
1d40: 41 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c  AS INTEGER ) col
1d50: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
1d60: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 30 0d 0a  or0..----..110..
1d70: 31 34 34 0d 0a 31 35 30 0d 0a 0d 0a 71 75 65 72  144..150....quer
1d80: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1d90: 45 43 54 20 2b 20 63 6f 6c 31 20 2b 20 36 33 20  ECT + col1 + 63 
1da0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1db0: 30 20 57 48 45 52 45 20 28 20 34 35 20 29 20 3e  0 WHERE ( 45 ) >
1dc0: 3d 20 28 20 2d 20 34 33 20 29 0d 0a 2d 2d 2d 2d  = ( - 43 )..----
1dd0: 0d 0a 31 31 34 0d 0a 31 33 30 0d 0a 31 34 30 0d  ..114..130..140.
1de0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1df0: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1e00: 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1e10: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
1e20: 61 62 65 6c 2d 33 37 0d 0a 53 45 4c 45 43 54 20  abel-37..SELECT 
1e30: 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c  DISTINCT + + col
1e40: 31 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  1 + - col0 AS co
1e50: 6c 31 2c 20 2d 20 43 41 53 54 28 20 2d 20 2b 20  l1, - CAST( - + 
1e60: 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
1e70: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1e80: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
1e90: 0d 0a 2d 38 0d 0a 37 35 0d 0a 31 33 0d 0a 36 34  ..-8..75..13..64
1ea0: 0d 0a 35 0d 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69  ..5..46....skipi
1eb0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
1ec0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
1ed0: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
1ee0: 2d 33 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -37..SELECT DIST
1ef0: 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 31 20 2b 20  INCT + + col1 + 
1f00: 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20  - col0 AS col1, 
1f10: 2d 20 43 41 53 54 20 28 20 2d 20 2b 20 63 6f 6c  - CAST ( - + col
1f20: 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  0 AS INTEGER ) A
1f30: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
1f40: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1f50: 2d 38 0d 0a 37 35 0d 0a 31 33 0d 0a 36 34 0d 0a  -8..75..13..64..
1f60: 35 0d 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49  5..46....query I
1f70: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f80: 20 38 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53   85 FROM tab1 AS
1f90: 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
1fa0: 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  l2 * + - col1 * 
1fb0: 2b 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c  + + col1 IS NULL
1fc0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
1fd0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1fe0: 43 54 20 41 4c 4c 20 63 6f 6c 32 2c 20 2b 20 63  CT ALL col2, + c
1ff0: 6f 6c 30 20 2a 20 2d 20 2d 20 32 35 20 41 53 20  ol0 * - - 25 AS 
2000: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2010: 2d 2d 2d 2d 0d 0a 31 30 0d 0a 32 31 37 35 0d 0a  ----..10..2175..
2020: 34 37 0d 0a 33 37 35 0d 0a 39 39 0d 0a 32 34 32  47..375..99..242
2030: 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  5....query II ro
2040: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2050: 31 31 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30  11 AS col2, col0
2060: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2070: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 35  b1..----..-11..5
2080: 31 0d 0a 2d 31 31 0d 0a 38 35 0d 0a 2d 31 31 0d  1..-11..85..-11.
2090: 0a 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .91....query I r
20a0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34  owsort..SELECT 4
20b0: 32 20 2a 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  2 * col0 FROM ta
20c0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 39 33 32 0d 0a  b2..----..1932..
20d0: 32 36 38 38 0d 0a 33 31 35 30 0d 0a 0d 0a 71 75  2688..3150....qu
20e0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
20f0: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2100: 33 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 30  30 AS col2, col0
2110: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2120: 0d 0a 33 30 0d 0a 35 31 0d 0a 33 30 0d 0a 38 35  ..30..51..30..85
2130: 0d 0a 33 30 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72  ..30..91....quer
2140: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2150: 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 41  ECT ALL - col2 A
2160: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
2170: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d   AS cor0 WHERE -
2180: 20 63 6f 6c 31 20 2a 20 2d 20 38 30 20 2a 20 2b   col1 * - 80 * +
2190: 20 30 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 32 39   0 * col1 * - 29
21a0: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
21b0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
21c0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
21d0: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
21e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 0d 0a 53  sort label-44..S
21f0: 45 4c 45 43 54 20 4d 49 4e 28 20 44 49 53 54 49  ELECT MIN( DISTI
2200: 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20 2b 20 2d  NCT + col1 ) + -
2210: 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d   COUNT( * ) FROM
2220: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2230: 2d 2d 2d 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66  ---..2....skipif
2240: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2250: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2260: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
2270: 34 0d 0a 53 45 4c 45 43 54 20 4d 49 4e 20 28 20  4..SELECT MIN ( 
2280: 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
2290: 29 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20  ) + - COUNT ( * 
22a0: 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
22b0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a 0d 0a  or0..----..2....
22c0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
22d0: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
22e0: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
22f0: 2d 20 37 32 20 2a 20 63 6f 6c 30 20 3c 3e 20 2d  - 72 * col0 <> -
2300: 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
2310: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2320: 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 63  SELECT ALL ( - c
2330: 6f 6c 30 20 29 20 2d 20 63 6f 6c 30 20 46 52 4f  ol0 ) - col0 FRO
2340: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
2350: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
2360: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
2370: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
2380: 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2390: 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
23a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
23b0: 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 36  47..SELECT + + 6
23c0: 30 20 44 49 56 20 2d 20 2d 20 63 6f 6c 31 20 41  0 DIV - - col1 A
23d0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
23e0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
23f0: 30 0d 0a 30 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69  0..0..1....skipi
2400: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2410: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2420: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2430: 34 37 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 36  47..SELECT + + 6
2440: 30 20 2f 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20  0 / - - col1 AS 
2450: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
2460: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2470: 0a 30 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  .0..1....query I
2480: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2490: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
24a0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
24b0: 20 31 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   11 IS NOT NULL.
24c0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
24d0: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
24e0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
24f0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2500: 6f 72 74 20 6c 61 62 65 6c 2d 34 39 0d 0a 53 45  ort label-49..SE
2510: 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20 2d 20  LECT col1 * + - 
2520: 34 36 20 2a 20 2b 20 43 41 53 54 28 20 2d 20 2b  46 * + CAST( - +
2530: 20 33 33 20 41 53 20 53 49 47 4e 45 44 20 29 20   33 AS SIGNED ) 
2540: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2550: 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 32 35 32 0d 0a  0..----..21252..
2560: 37 31 33 34 36 0d 0a 37 35 39 30 0d 0a 0d 0a 73  71346..7590....s
2570: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2580: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2590: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
25a0: 62 65 6c 2d 34 39 0d 0a 53 45 4c 45 43 54 20 63  bel-49..SELECT c
25b0: 6f 6c 31 20 2a 20 2b 20 2d 20 34 36 20 2a 20 2b  ol1 * + - 46 * +
25c0: 20 43 41 53 54 20 28 20 2d 20 2b 20 33 33 20 41   CAST ( - + 33 A
25d0: 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
25e0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
25f0: 2d 2d 2d 0d 0a 32 31 32 35 32 0d 0a 37 31 33 34  ---..21252..7134
2600: 36 0d 0a 37 35 39 30 0d 0a 0d 0a 71 75 65 72 79  6..7590....query
2610: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2620: 43 54 20 41 4c 4c 20 36 31 20 2a 20 2d 20 2d 20  CT ALL 61 * - - 
2630: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2640: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 31  S cor0..----..31
2650: 31 31 0d 0a 35 31 38 35 0d 0a 35 35 35 31 0d 0a  11..5185..5551..
2660: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2670: 74 0d 0a 53 45 4c 45 43 54 20 33 20 2a 20 2d 20  t..SELECT 3 * - 
2680: 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
2690: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
26a0: 2d 2d 2d 2d 0d 0a 2d 31 32 30 0d 0a 2d 31 37 34  ----..-120..-174
26b0: 0d 0a 2d 36 39 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-69....query I
26c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26d0: 20 2d 20 37 20 2a 20 2d 20 63 6f 6c 31 20 41 53   - 7 * - col1 AS
26e0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
26f0: 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f  WHERE NOT - + co
2700: 6c 31 20 2a 20 34 32 20 49 53 20 4e 4f 54 20 4e  l1 * 42 IS NOT N
2710: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
2720: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2730: 4c 45 43 54 20 41 56 47 20 28 20 2d 20 39 32 20  LECT AVG ( - 92 
2740: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
2750: 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  ab0 WHERE NOT NU
2760: 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  LL IS NULL..----
2770: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
2780: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
2790: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
27a0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  n: ..query II ro
27b0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 0d 0a  wsort label-54..
27c0: 53 45 4c 45 43 54 20 63 6f 6c 32 20 41 53 20 63  SELECT col2 AS c
27d0: 6f 6c 30 2c 20 2d 20 39 35 20 44 49 56 20 35 38  ol0, - 95 DIV 58
27e0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
27f0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2800: 0d 0a 31 30 0d 0a 2d 31 0d 0a 34 37 0d 0a 2d 31  ..10..-1..47..-1
2810: 0d 0a 39 39 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70  ..99..-1....skip
2820: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2830: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2840: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2850: 6c 2d 35 34 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  l-54..SELECT col
2860: 32 20 41 53 20 63 6f 6c 30 2c 20 2d 20 39 35 20  2 AS col0, - 95 
2870: 2f 20 35 38 20 41 53 20 63 6f 6c 30 20 46 52 4f  / 58 AS col0 FRO
2880: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2890: 2d 2d 2d 2d 0d 0a 31 30 0d 0a 2d 31 0d 0a 34 37  ----..10..-1..47
28a0: 0d 0a 2d 31 0d 0a 39 39 0d 0a 2d 31 0d 0a 0d 0a  ..-1..99..-1....
28b0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
28c0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
28d0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
28e0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
28f0: 2d 35 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  -55..SELECT DIST
2900: 49 4e 43 54 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  INCT - col0 FROM
2910: 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20   tab2 WHERE NOT 
2920: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
2930: 53 49 47 4e 45 44 20 29 20 49 53 20 4e 55 4c 4c  SIGNED ) IS NULL
2940: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
2950: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2960: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2970: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
2980: 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
2990: 43 54 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74  CT - col0 FROM t
29a0: 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
29b0: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
29c0: 4e 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c 4c  NTEGER ) IS NULL
29d0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
29e0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
29f0: 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2a00: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab1 WHERE NOT + 
2a10: 63 6f 6c 31 20 2a 20 2b 20 36 31 20 2a 20 2b 20  col1 * + 61 * + 
2a20: 63 6f 6c 31 20 3e 3d 20 2b 20 63 6f 6c 32 0d 0a  col1 >= + col2..
2a30: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
2a40: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
2a50: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
2a60: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2a70: 2d 35 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -57..SELECT ALL 
2a80: 2d 20 2d 20 4d 49 4e 28 20 63 6f 6c 32 20 29 20  - - MIN( col2 ) 
2a90: 2b 20 28 20 2d 20 34 36 20 29 20 41 53 20 63 6f  + ( - 46 ) AS co
2aa0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
2ab0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 36 0d  cor0..----..-36.
2ac0: 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2ad0: 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2ae0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2af0: 74 20 6c 61 62 65 6c 2d 35 37 0d 0a 53 45 4c 45  t label-57..SELE
2b00: 43 54 20 41 4c 4c 20 2d 20 2d 20 4d 49 4e 20 28  CT ALL - - MIN (
2b10: 20 63 6f 6c 32 20 29 20 2b 20 28 20 2d 20 34 36   col2 ) + ( - 46
2b20: 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2b30: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2b40: 2d 2d 0d 0a 2d 33 36 0d 0a 0d 0a 6f 6e 6c 79 69  --..-36....onlyi
2b50: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
2b60: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
2b70: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
2b80: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 0d 0a  wsort label-58..
2b90: 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 2d  SELECT + CAST( -
2ba0: 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
2bb0: 29 20 2b 20 2b 20 33 37 20 2b 20 2b 20 2b 20 63  ) + + 37 + + + c
2bc0: 6f 6c 32 20 2b 20 2b 20 32 38 20 46 52 4f 4d 20  ol2 + + 28 FROM 
2bd0: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2be0: 2d 2d 0d 0a 36 35 0d 0a 36 35 0d 0a 36 35 0d 0a  --..65..65..65..
2bf0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2c00: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2c10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2c20: 20 6c 61 62 65 6c 2d 35 38 0d 0a 53 45 4c 45 43   label-58..SELEC
2c30: 54 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c  T + CAST ( - col
2c40: 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  2 AS INTEGER ) +
2c50: 20 2b 20 33 37 20 2b 20 2b 20 2b 20 63 6f 6c 32   + 37 + + + col2
2c60: 20 2b 20 2b 20 32 38 20 46 52 4f 4d 20 74 61 62   + + 28 FROM tab
2c70: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
2c80: 0a 36 35 0d 0a 36 35 0d 0a 36 35 0d 0a 0d 0a 71  .65..65..65....q
2c90: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2ca0: 53 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20  SELECT col0 * - 
2cb0: 31 30 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2b 20  10 + - + col0 + 
2cc0: 63 6f 6c 30 20 2a 20 2d 20 2b 20 35 30 20 2b 20  col0 * - + 50 + 
2cd0: 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f 6c 30 20  + col0 * + col0 
2ce0: 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 30  + - col1 * + - 0
2cf0: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2d00: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2d10: 0d 0a 2d 35 31 30 0d 0a 32 30 34 30 0d 0a 32 37  ..-510..2040..27
2d20: 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  30....query I ro
2d30: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2d40: 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 31 20 2a 20  col1 + + col1 * 
2d50: 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
2d60: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
2d70: 0d 0a 34 32 30 0d 0a 34 32 33 30 0d 0a 37 30 30  ..420..4230..700
2d80: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2d90: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2da0: 2b 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  + + col2 + - col
2db0: 30 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  0 + + col2 AS co
2dc0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
2dd0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 0d  cor0..----..141.
2de0: 0a 33 33 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70 69  .33..45....skipi
2df0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
2e00: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
2e10: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
2e20: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
2e30: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
2e40: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
2e50: 2d 20 63 6f 6c 32 20 2b 20 37 37 20 63 6f 6c 30  - col2 + 77 col0
2e60: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2e70: 0d 0a 31 39 0d 0a 33 37 0d 0a 35 34 0d 0a 0d 0a  ..19..37..54....
2e80: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
2e90: 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
2ea0: 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
2eb0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ec0: 2d 36 33 0d 0a 53 45 4c 45 43 54 20 31 31 20 44  -63..SELECT 11 D
2ed0: 49 56 20 32 34 20 46 52 4f 4d 20 74 61 62 30 0d  IV 24 FROM tab0.
2ee0: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a  .----..0..0..0..
2ef0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2f00: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2f10: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2f20: 20 6c 61 62 65 6c 2d 36 33 0d 0a 53 45 4c 45 43   label-63..SELEC
2f30: 54 20 31 31 20 2f 20 32 34 20 46 52 4f 4d 20 74  T 11 / 24 FROM t
2f40: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d  ab0..----..0..0.
2f50: 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .0....query I ro
2f60: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2f70: 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20 31 34  STINCT col1 * 14
2f80: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2f90: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 38 0d 0a  b2..----..1078..
2fa0: 37 31 34 0d 0a 39 33 38 0d 0a 0d 0a 71 75 65 72  714..938....quer
2fb0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2fc0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2fd0: 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54  1 WHERE NULL NOT
2fe0: 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
2ff0: 44 20 28 20 39 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  D ( 91 )..----..
3000: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
3010: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 31 20 2d  t..SELECT + 21 -
3020: 20 2d 20 34 20 2d 20 2d 20 63 6f 6c 31 20 46 52   - 4 - - col1 FR
3030: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
3040: 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 37 36 0d 0a  .----..102..76..
3050: 39 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  92....onlyif mys
3060: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
3070: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
3080: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
3090: 37 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 2d 20  7..SELECT ( - - 
30a0: 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 2d 20 2b  COUNT( * ) ) - +
30b0: 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b   SUM( DISTINCT +
30c0: 20 37 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41   7 ) FROM tab2 A
30d0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
30e0: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
30f0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
3100: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
3110: 72 74 20 6c 61 62 65 6c 2d 36 37 0d 0a 53 45 4c  rt label-67..SEL
3120: 45 43 54 20 28 20 2d 20 2d 20 43 4f 55 4e 54 20  ECT ( - - COUNT 
3130: 28 20 2a 20 29 20 29 20 2d 20 2b 20 53 55 4d 20  ( * ) ) - + SUM 
3140: 28 20 44 49 53 54 49 4e 43 54 20 2b 20 37 20 29  ( DISTINCT + 7 )
3150: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
3160: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a 0d 0a  r0..----..-4....
3170: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
3180: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
3190: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
31a0: 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
31b0: 6c 2d 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  l-68..SELECT ALL
31c0: 20 2d 20 43 41 53 54 28 20 63 6f 6c 31 20 41 53   - CAST( col1 AS
31d0: 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20   SIGNED ) + - - 
31e0: 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 63 6f  col1 AS col1, co
31f0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
3200: 2d 2d 0d 0a 30 0d 0a 35 31 0d 0a 30 0d 0a 38 35  --..0..51..0..85
3210: 0d 0a 30 0d 0a 39 31 0d 0a 0d 0a 73 6b 69 70 69  ..0..91....skipi
3220: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
3230: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
3240: 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
3250: 2d 36 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  -68..SELECT ALL 
3260: 2d 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41 53  - CAST ( col1 AS
3270: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2d   INTEGER ) + - -
3280: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 63   col1 AS col1, c
3290: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
32a0: 2d 2d 2d 0d 0a 30 0d 0a 35 31 0d 0a 30 0d 0a 38  ---..0..51..0..8
32b0: 35 0d 0a 30 0d 0a 39 31 0d 0a 0d 0a 71 75 65 72  5..0..91....quer
32c0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
32d0: 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 41 53 20  ECT ALL col0 AS 
32e0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57  col2 FROM tab1 W
32f0: 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f  HERE NOT NULL NO
3300: 54 20 42 45 54 57 45 45 4e 20 2d 20 37 35 20 41  T BETWEEN - 75 A
3310: 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
3320: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
3330: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
3340: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
3350: 6f 72 74 20 6c 61 62 65 6c 2d 37 30 0d 0a 53 45  ort label-70..SE
3360: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49  LECT DISTINCT MI
3370: 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  N( DISTINCT + co
3380: 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57  l1 ) FROM tab0 W
3390: 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c  HERE NOT - + col
33a0: 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
33b0: 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .1....skipif mys
33c0: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
33d0: 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
33e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 0d 0a 53  sort label-70..S
33f0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d  ELECT DISTINCT M
3400: 49 4e 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  IN ( DISTINCT + 
3410: 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30  col1 ) FROM tab0
3420: 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 63   WHERE NOT - + c
3430: 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
3440: 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..1....query I 
3450: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3460: 2b 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20  + col1 * - col1 
3470: 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20  + col1 + - col2 
3480: 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  + col0 FROM tab1
3490: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
34a0: 2d 32 31 33 39 0d 0a 2d 32 32 37 0d 0a 36 0d 0a  -2139..-227..6..
34b0: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
34c0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
34d0: 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 2c   + col2 AS col2,
34e0: 20 2b 20 37 32 20 46 52 4f 4d 20 74 61 62 31 20   + 72 FROM tab1 
34f0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
3500: 39 0d 0a 37 32 0d 0a 36 38 0d 0a 37 32 0d 0a 39  9..72..68..72..9
3510: 36 0d 0a 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..72....onlyif 
3520: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
3530: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
3540: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
3550: 6f 72 74 20 6c 61 62 65 6c 2d 37 33 0d 0a 53 45  ort label-73..SE
3560: 4c 45 43 54 20 2b 20 63 6f 6c 30 20 44 49 56 20  LECT + col0 DIV 
3570: 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + + col0 FROM ta
3580: 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  b2 cor0..----..1
3590: 0d 0a 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66  ..1..1....skipif
35a0: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
35b0: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
35c0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
35d0: 33 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  3..SELECT + col0
35e0: 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 46 52 4f 4d   / + + col0 FROM
35f0: 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
3600: 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d 0a 6f 6e 6c  ..1..1..1....onl
3610: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
3620: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
3630: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
3640: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
3650: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
3660: 54 20 2b 20 43 41 53 54 28 20 2d 20 2b 20 28 20  T + CAST( - + ( 
3670: 2d 20 32 33 20 29 20 41 53 20 53 49 47 4e 45 44  - 23 ) AS SIGNED
3680: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
3690: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  tab1..----..23..
36a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
36b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
36c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
36d0: 20 6c 61 62 65 6c 2d 37 34 0d 0a 53 45 4c 45 43   label-74..SELEC
36e0: 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  T DISTINCT + CAS
36f0: 54 20 28 20 2d 20 2b 20 28 20 2d 20 32 33 20 29  T ( - + ( - 23 )
3700: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
3710: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
3720: 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 0d 0a 6f 6e 6c  .----..23....onl
3730: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
3740: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
3750: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
3760: 6c 61 62 65 6c 2d 37 35 0d 0a 53 45 4c 45 43 54  label-75..SELECT
3770: 20 53 55 4d 28 20 2b 20 28 20 32 32 20 29 20 29   SUM( + ( 22 ) )
3780: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
3790: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a  b2..----..66....
37a0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
37b0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
37c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
37d0: 61 62 65 6c 2d 37 35 0d 0a 53 45 4c 45 43 54 20  abel-75..SELECT 
37e0: 53 55 4d 20 28 20 2b 20 28 20 32 32 20 29 20 29  SUM ( + ( 22 ) )
37f0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
3800: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a  b2..----..66....
3810: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
3820: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20  .SELECT ALL - - 
3830: 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  col0 + + col0 + 
3840: 2d 20 2b 20 30 20 46 52 4f 4d 20 74 61 62 30 20  - + 0 FROM tab0 
3850: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
3860: 37 34 0d 0a 31 39 34 0d 0a 33 30 0d 0a 0d 0a 71  74..194..30....q
3870: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
3880: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
3890: 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  + col0 AS col2 F
38a0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
38b0: 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
38c0: 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
38d0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
38e0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 35 20  sort..SELECT 75 
38f0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
3900: 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  2 AS cor0 CROSS 
3910: 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72  JOIN tab2 AS cor
3920: 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
3930: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 32 32 30  s hashing to 220
3940: 34 32 62 66 64 34 64 37 38 37 34 31 35 34 35 37  42bfd4d787415457
3950: 61 34 32 62 62 39 33 64 34 38 65 65 61 0d 0a 0d  a42bb93d48eea...
3960: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
3970: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
3980: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
3990: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
39a0: 6c 2d 37 39 0d 0a 53 45 4c 45 43 54 20 2d 20 63  l-79..SELECT - c
39b0: 6f 6c 31 20 2b 20 63 6f 6c 31 20 44 49 56 20 2d  ol1 + col1 DIV -
39c0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
39d0: 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d 0a 2d 36 38 0d  .----..-52..-68.
39e0: 0a 2d 37 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-78....skipif m
39f0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
3a00: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
3a10: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 0d  owsort label-79.
3a20: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b  .SELECT - col1 +
3a30: 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 31 20 46   col1 / - col1 F
3a40: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
3a50: 2d 35 32 0d 0a 2d 36 38 0d 0a 2d 37 38 0d 0a 0d  -52..-68..-78...
3a60: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
3a70: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
3a80: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
3a90: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
3aa0: 6c 2d 38 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  l-80..SELECT col
3ab0: 31 20 2b 20 2b 20 2d 20 43 41 53 54 28 20 4e 55  1 + + - CAST( NU
3ac0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  LL AS SIGNED ) A
3ad0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
3ae0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
3af0: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  LL..NULL....skip
3b00: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
3b10: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
3b20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
3b30: 2d 38 30 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  -80..SELECT col1
3b40: 20 2b 20 2b 20 2d 20 43 41 53 54 20 28 20 4e 55   + + - CAST ( NU
3b50: 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
3b60: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
3b70: 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  1..----..NULL..N
3b80: 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ULL..NULL....ski
3b90: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
3ba0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
3bb0: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
3bc0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
3bd0: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
3be0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
3bf0: 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2d 20  LL - col1 * - - 
3c00: 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 2c 20 63  col1 * + col0, c
3c10: 6f 6c 31 20 2b 20 2b 20 28 20 2d 20 2d 20 32 33  ol1 + + ( - - 23
3c20: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
3c30: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  2 cor0..----..-1
3c40: 31 39 36 34 36 0d 0a 37 34 0d 0a 2d 33 33 36 36  19646..74..-3366
3c50: 37 35 0d 0a 39 30 0d 0a 2d 33 37 39 34 35 36 0d  75..90..-379456.
3c60: 0a 31 30 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .100....query I 
3c70: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
3c80: 41 4c 4c 20 33 33 20 2b 20 2d 20 2d 20 63 6f 6c  ALL 33 + - - col
3c90: 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
3ca0: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
3cb0: 2d 0d 0a 31 30 31 0d 0a 31 32 39 0d 0a 39 32 0d  -..101..129..92.
3cc0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
3cd0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
3ce0: 4e 43 54 20 2b 20 35 20 2b 20 2d 20 2d 20 63 6f  NCT + 5 + - - co
3cf0: 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
3d00: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 0d  cor0..----..104.
3d10: 0a 31 35 0d 0a 35 32 0d 0a 0d 0a 71 75 65 72 79  .15..52....query
3d20: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
3d30: 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2d 20 34 30  CT ALL col1 - 40
3d40: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
3d50: 0a 2d 2d 2d 2d 0d 0a 2d 32 36 0d 0a 2d 33 35 0d  .----..-26..-35.
3d60: 0a 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .7....query I ro
3d70: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
3d80: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 46 52  STINCT + col1 FR
3d90: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
3da0: 57 48 45 52 45 20 63 6f 6c 32 20 2a 20 2d 20 2b  WHERE col2 * - +
3db0: 20 39 38 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d   98 IS NULL..---
3dc0: 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
3dd0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
3de0: 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol0 AS col0 FROM
3df0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
3e00: 45 52 45 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  ERE + col2 IS NU
3e10: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
3e20: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
3e30: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
3e40: 31 20 57 48 45 52 45 20 63 6f 6c 32 20 3e 3d 20  1 WHERE col2 >= 
3e50: 63 6f 6c 31 20 2b 20 2b 20 32 38 20 2a 20 63 6f  col1 + + 28 * co
3e60: 6c 30 20 2d 20 2b 20 63 6f 6c 32 20 2d 20 63 6f  l0 - + col2 - co
3e70: 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l2..----....quer
3e80: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
3e90: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
3ea0: 6f 6c 30 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 46  ol0 + - + col0 F
3eb0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
3ec0: 2d 31 37 34 0d 0a 2d 31 39 34 0d 0a 2d 33 30 0d  -174..-194..-30.
3ed0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
3ee0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
3ef0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
3f00: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 39 0d 0a  wsort label-89..
3f10: 53 45 4c 45 43 54 20 41 4c 4c 20 36 38 20 2b 20  SELECT ALL 68 + 
3f20: 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  - - COUNT( * ) +
3f30: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
3f40: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab0..----..6
3f50: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
3f60: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
3f70: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
3f80: 6f 72 74 20 6c 61 62 65 6c 2d 38 39 0d 0a 53 45  ort label-89..SE
3f90: 4c 45 43 54 20 41 4c 4c 20 36 38 20 2b 20 2d 20  LECT ALL 68 + - 
3fa0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  - COUNT ( * ) + 
3fb0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  - COUNT ( * ) FR
3fc0: 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab0..----..6
3fd0: 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
3fe0: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
3ff0: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
4000: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
4010: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
4020: 74 20 6c 61 62 65 6c 2d 39 30 0d 0a 53 45 4c 45  t label-90..SELE
4030: 43 54 20 2d 20 28 20 43 4f 55 4e 54 28 20 2d 20  CT - ( COUNT( - 
4040: 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
4050: 53 49 47 4e 45 44 20 29 20 29 20 29 20 2b 20 43  SIGNED ) ) ) + C
4060: 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
4070: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ab0..----..3....
4080: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
4090: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
40a0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
40b0: 61 62 65 6c 2d 39 30 0d 0a 53 45 4c 45 43 54 20  abel-90..SELECT 
40c0: 2d 20 28 20 43 4f 55 4e 54 20 28 20 2d 20 2b 20  - ( COUNT ( - + 
40d0: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
40e0: 4e 54 45 47 45 52 20 29 20 29 20 29 20 2b 20 43  NTEGER ) ) ) + C
40f0: 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
4100: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  tab0..----..3...
4110: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
4120: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 37 20 2b  t..SELECT + 87 +
4130: 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 2d   col0 AS col2, -
4140: 20 34 36 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   46 FROM tab2..-
4150: 2d 2d 2d 0d 0a 31 33 33 0d 0a 2d 34 36 0d 0a 31  ---..133..-46..1
4160: 35 31 0d 0a 2d 34 36 0d 0a 31 36 32 0d 0a 2d 34  51..-46..162..-4
4170: 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
4180: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
4190: 30 20 2b 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 32  0 + + - ( + col2
41a0: 20 29 20 2a 20 2b 20 2d 20 63 6f 6c 31 20 2b 20   ) * + - col1 + 
41b0: 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  + - col0 AS col2
41c0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
41d0: 0d 0a 32 31 30 0d 0a 33 38 30 37 0d 0a 39 39 0d  ..210..3807..99.
41e0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
41f0: 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
4200: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
4210: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4220: 62 65 6c 2d 39 33 0d 0a 53 45 4c 45 43 54 20 41  bel-93..SELECT A
4230: 4c 4c 20 63 6f 6c 31 20 44 49 56 20 2d 20 2d 20  LL col1 DIV - - 
4240: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
4250: 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d  ----..1..1..1...
4260: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
4270: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
4280: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
4290: 6c 61 62 65 6c 2d 39 33 0d 0a 53 45 4c 45 43 54  label-93..SELECT
42a0: 20 41 4c 4c 20 63 6f 6c 31 20 2f 20 2d 20 2d 20   ALL col1 / - - 
42b0: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
42c0: 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 31 0d 0a 0d  ----..1..1..1...
42d0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
42e0: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
42f0: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
4300: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
4310: 54 20 63 6f 6c 30 20 2d 20 2b 20 63 6f 6c 30 20  T col0 - + col0 
4320: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
4330: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
4340: 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
4350: 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
4360: 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
4370: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
4380: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
4390: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
43a0: 74 20 6c 61 62 65 6c 2d 39 35 0d 0a 53 45 4c 45  t label-95..SELE
43b0: 43 54 20 2b 20 31 34 20 41 53 20 63 6f 6c 32 20  CT + 14 AS col2 
43c0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20 57  FROM tab1 cor0 W
43d0: 48 45 52 45 20 2b 20 43 41 53 54 28 20 2b 20 63  HERE + CAST( + c
43e0: 6f 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol1 AS SIGNED ) 
43f0: 2f 20 2b 20 38 37 20 2b 20 36 33 20 49 53 20 4e  / + 87 + 63 IS N
4400: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
4410: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
4420: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
4430: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
4440: 6c 2d 39 35 0d 0a 53 45 4c 45 43 54 20 2b 20 31  l-95..SELECT + 1
4450: 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
4460: 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 2b  ab1 cor0 WHERE +
4470: 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 31 20 41   CAST ( + col1 A
4480: 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20  S INTEGER ) / + 
4490: 38 37 20 2b 20 36 33 20 49 53 20 4e 55 4c 4c 0d  87 + 63 IS NULL.
44a0: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
44b0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
44c0: 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
44d0: 20 2b 20 32 32 20 2b 20 2d 20 63 6f 6c 32 20 46   + 22 + - col2 F
44e0: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
44f0: 0d 0a 2d 2d 2d 2d 0d 0a 31 33 36 38 0d 0a 31 35  ..----..1368..15
4500: 39 32 0d 0a 39 38 39 0d 0a 0d 0a 6f 6e 6c 79 69  92..989....onlyi
4510: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
4520: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
4530: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
4540: 62 65 6c 2d 39 37 0d 0a 53 45 4c 45 43 54 20 41  bel-97..SELECT A
4550: 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LL + + COUNT( * 
4560: 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
4570: 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e   WHERE NULL IS N
4580: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  ULL..----..3....
4590: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
45a0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
45b0: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
45c0: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
45d0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
45e0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
45f0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
4600: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37  rowsort label-97
4610: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
4620: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
4630: 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  0 FROM tab0 WHER
4640: 45 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a  E NULL IS NULL..
4650: 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  ----..3....query
4660: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
4670: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
4680: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
4690: 30 20 57 48 45 52 45 20 63 6f 6c 31 20 2a 20 2b  0 WHERE col1 * +
46a0: 20 36 35 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d   65 IS NOT NULL.
46b0: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
46c0: 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
46d0: 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
46e0: 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 73  0e537fb43b7....s
46f0: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
4700: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
4710: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
4720: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
4730: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
4740: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
4750: 2b 20 32 30 20 2a 20 2d 20 35 20 63 6f 6c 31 20  + 20 * - 5 col1 
4760: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
4770: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 30 0d 0a 2d  0..----..-100..-
4780: 31 30 30 0d 0a 2d 31 30 30 0d 0a 0d 0a 6f 6e 6c  100..-100....onl
4790: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
47a0: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
47b0: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
47c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
47d0: 30 0d 0a 53 45 4c 45 43 54 20 34 30 20 44 49 56  0..SELECT 40 DIV
47e0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
47f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31  cor0..----..0..1
4800: 0d 0a 34 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..40....skipif m
4810: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
4820: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
4830: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30  owsort label-100
4840: 0d 0a 53 45 4c 45 43 54 20 34 30 20 2f 20 63 6f  ..SELECT 40 / co
4850: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
4860: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d 0a 34  0..----..0..1..4
4870: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  0....query I row
4880: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
4890: 54 49 4e 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20  TINCT col2 FROM 
48a0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
48b0: 52 45 20 4e 4f 54 20 2b 20 35 34 20 49 53 20 4e  RE NOT + 54 IS N
48c0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
48d0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
48e0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
48f0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
4900: 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 38 31 20 2b   - col0 * - 81 +
4910: 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 37 20 3e 20   + col1 - + 7 > 
4920: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
4930: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4940: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32  ELECT DISTINCT 2
4950: 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  0 FROM tab2 WHER
4960: 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42  E NOT NULL NOT B
4970: 45 54 57 45 45 4e 20 2b 20 2b 20 37 39 20 41 4e  ETWEEN + + 79 AN
4980: 44 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  D + - col2..----
4990: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
49a0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 39 32  ort..SELECT - 92
49b0: 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20   + - ( + col0 ) 
49c0: 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46  * col0 AS col2 F
49d0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
49e0: 2d 33 31 37 0d 0a 2d 37 36 36 31 0d 0a 2d 39 35  -317..-7661..-95
49f0: 30 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  01....onlyif mys
4a00: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
4a10: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
4a20: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
4a30: 30 35 0d 0a 53 45 4c 45 43 54 20 33 32 20 2a 20  05..SELECT 32 * 
4a40: 2b 20 28 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  + ( + + COUNT( *
4a50: 20 29 20 29 20 2b 20 2d 20 43 4f 55 4e 54 28 20   ) ) + - COUNT( 
4a60: 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  * ) FROM tab2..-
4a70: 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 73 6b 69 70 69  ---..93....skipi
4a80: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
4a90: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
4aa0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4ab0: 31 30 35 0d 0a 53 45 4c 45 43 54 20 33 32 20 2a  105..SELECT 32 *
4ac0: 20 2b 20 28 20 2b 20 2b 20 43 4f 55 4e 54 20 28   + ( + + COUNT (
4ad0: 20 2a 20 29 20 29 20 2b 20 2d 20 43 4f 55 4e 54   * ) ) + - COUNT
4ae0: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32   ( * ) FROM tab2
4af0: 0d 0a 2d 2d 2d 2d 0d 0a 39 33 0d 0a 0d 0a 6f 6e  ..----..93....on
4b00: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
4b10: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
4b20: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
4b30: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
4b40: 31 30 36 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  106..SELECT - co
4b50: 6c 31 2c 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2b  l1, + col1 * - +
4b60: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
4b70: 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
4b80: 52 45 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  RE CAST( NULL AS
4b90: 20 53 49 47 4e 45 44 20 29 20 49 53 20 4e 4f 54   SIGNED ) IS NOT
4ba0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
4bb0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
4bc0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
4bd0: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
4be0: 61 62 65 6c 2d 31 30 36 0d 0a 53 45 4c 45 43 54  abel-106..SELECT
4bf0: 20 2d 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 31 20   - col1, + col1 
4c00: 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  * - + col1 AS co
4c10: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l1 FROM tab2 cor
4c20: 30 20 57 48 45 52 45 20 43 41 53 54 20 28 20 4e  0 WHERE CAST ( N
4c30: 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
4c40: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
4c50: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  --....skipif pos
4c60: 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
4c70: 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
4c80: 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
4c90: 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
4ca0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
4cb0: 0a 53 45 4c 45 43 54 20 2b 20 37 36 20 63 6f 6c  .SELECT + 76 col
4cc0: 30 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  0, col1 FROM tab
4cd0: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
4ce0: 0a 37 36 0d 0a 31 0d 0a 37 36 0d 0a 32 31 0d 0a  .76..1..76..21..
4cf0: 37 36 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69 66  76..81....onlyif
4d00: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
4d10: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
4d20: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
4d30: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 38 0d 0a  sort label-108..
4d40: 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53 54 28  SELECT ALL CAST(
4d50: 20 2b 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45   + col0 AS SIGNE
4d60: 44 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 30 20 2b  D ) + - + col0 +
4d70: 20 2b 20 38 20 46 52 4f 4d 20 74 61 62 31 20 41   + 8 FROM tab1 A
4d80: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 0d  S cor0..----..8.
4d90: 0a 38 0d 0a 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .8..8....skipif 
4da0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
4db0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
4dc0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
4dd0: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41  8..SELECT ALL CA
4de0: 53 54 20 28 20 2b 20 63 6f 6c 30 20 41 53 20 49  ST ( + col0 AS I
4df0: 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2b 20 63  NTEGER ) + - + c
4e00: 6f 6c 30 20 2b 20 2b 20 38 20 46 52 4f 4d 20 74  ol0 + + 8 FROM t
4e10: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
4e20: 2d 0d 0a 38 0d 0a 38 0d 0a 38 0d 0a 0d 0a 71 75  -..8..8..8....qu
4e30: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
4e40: 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 46 52 4f  ELECT - col0 FRO
4e50: 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c  M tab0 WHERE NUL
4e60: 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20  L NOT BETWEEN + 
4e70: 34 36 20 41 4e 44 20 2b 20 2b 20 63 6f 6c 31 0d  46 AND + + col1.
4e80: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
4e90: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
4ea0: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
4eb0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
4ec0: 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 0d 0a 53  ort label-110..S
4ed0: 45 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 28 20  ELECT + + CAST( 
4ee0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
4ef0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
4f00: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
4f10: 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a 2d 2d  IN tab0 cor1..--
4f20: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
4f30: 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39 30 31  hing to cd7a7901
4f40: 65 34 37 63 31 35 31 35 35 34 30 34 61 66 66 30  e47c15155404aff0
4f50: 64 32 31 36 66 65 30 62 0d 0a 0d 0a 73 6b 69 70  d216fe0b....skip
4f60: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
4f70: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
4f80: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
4f90: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
4fa0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
4fb0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
4fc0: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
4fd0: 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 0d 0a 53  ort label-110..S
4fe0: 45 4c 45 43 54 20 2b 20 2b 20 43 41 53 54 20 28  ELECT + + CAST (
4ff0: 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
5000: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
5010: 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  1 AS cor0 CROSS 
5020: 4a 4f 49 4e 20 74 61 62 30 20 63 6f 72 31 0d 0a  JOIN tab0 cor1..
5030: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
5040: 61 73 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39  ashing to cd7a79
5050: 30 31 65 34 37 63 31 35 31 35 35 34 30 34 61 66  01e47c15155404af
5060: 66 30 64 32 31 36 66 65 30 62 0d 0a 0d 0a 71 75  f0d216fe0b....qu
5070: 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f  ery IIIIII rowso
5080: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
5090: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
50a0: 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 63  ROSS JOIN tab0 c
50b0: 6f 72 31 20 57 48 45 52 45 20 2b 20 32 36 20 3c  or1 WHERE + 26 <
50c0: 20 28 20 2d 20 36 32 20 29 0d 0a 2d 2d 2d 2d 0d   ( - 62 )..----.
50d0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
50e0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
50f0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
5100: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 0d  wsort label-112.
5110: 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a  .SELECT COUNT( *
5120: 20 29 20 2b 20 2b 20 2d 20 31 38 20 41 53 20 63   ) + + - 18 AS c
5130: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
5140: 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e   cor0 CROSS JOIN
5150: 20 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d   tab0 AS cor1..-
5160: 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69  ---..-9....skipi
5170: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
5180: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
5190: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
51a0: 31 31 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  112..SELECT COUN
51b0: 54 20 28 20 2a 20 29 20 2b 20 2b 20 2d 20 31 38  T ( * ) + + - 18
51c0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
51d0: 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b2 AS cor0 CROSS
51e0: 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63 6f   JOIN tab0 AS co
51f0: 72 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 0d 0a  r1..----..-9....
5200: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
5210: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
5220: 20 2b 20 36 34 20 46 52 4f 4d 20 74 61 62 32 20   + 64 FROM tab2 
5230: 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f  AS cor0 CROSS JO
5240: 49 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d  IN tab2 AS cor1.
5250: 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 71 75 65  .----..64....que
5260: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
5270: 4c 45 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74  LECT col2 FROM t
5280: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
5290: 45 20 4e 4f 54 20 2b 20 32 37 20 49 53 20 4e 55  E NOT + 27 IS NU
52a0: 4c 4c 20 4f 52 20 2d 20 2d 20 63 6f 6c 30 20 42  LL OR - - col0 B
52b0: 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
52c0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  NULL..----..23..
52d0: 34 30 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79 20  40..58....query 
52e0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
52f0: 54 20 2d 20 2d 20 34 37 20 2b 20 2b 20 63 6f 6c  T - - 47 + + col
5300: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
5310: 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
5320: 2d 0d 0a 35 32 0d 0a 36 31 0d 0a 39 34 0d 0a 0d  -..52..61..94...
5330: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5340: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 36 20  ..SELECT + - 36 
5350: 2a 20 2d 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29  * - - ( - col1 )
5360: 20 2b 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63   + + - col2 AS c
5370: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
5380: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33   cor0..----..-63
5390: 0d 0a 32 38 36 39 0d 0a 37 34 36 0d 0a 0d 0a 71  ..2869..746....q
53a0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
53b0: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b  .SELECT - col1 +
53c0: 20 2b 20 2b 20 37 36 2c 20 63 6f 6c 30 20 46 52   + + 76, col0 FR
53d0: 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
53e0: 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 39 31 0d 0a 36  .----..29..91..6
53f0: 32 0d 0a 35 31 0d 0a 37 31 0d 0a 38 35 0d 0a 0d  2..51..71..85...
5400: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5410: 0d 0a 53 45 4c 45 43 54 20 34 30 20 2b 20 63 6f  ..SELECT 40 + co
5420: 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63  l1 * + col2 AS c
5430: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
5440: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 39   cor0..----..139
5450: 0d 0a 32 35 30 0d 0a 33 38 34 37 0d 0a 0d 0a 6f  ..250..3847....o
5460: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
5470: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
5480: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
5490: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
54a0: 31 31 39 0d 0a 53 45 4c 45 43 54 20 43 41 53 54  119..SELECT CAST
54b0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
54c0: 20 29 20 2a 20 2b 20 28 20 2d 20 63 6f 6c 30 20   ) * + ( - col0 
54d0: 29 20 2b 20 2d 20 37 33 20 2a 20 2d 20 63 6f 6c  ) + - 73 * - col
54e0: 30 20 2b 20 2d 20 33 34 20 41 53 20 63 6f 6c 32  0 + - 34 AS col2
54f0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
5500: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
5510: 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
5520: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
5530: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
5540: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5550: 65 6c 2d 31 31 39 0d 0a 53 45 4c 45 43 54 20 43  el-119..SELECT C
5560: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
5570: 54 45 47 45 52 20 29 20 2a 20 2b 20 28 20 2d 20  TEGER ) * + ( - 
5580: 63 6f 6c 30 20 29 20 2b 20 2d 20 37 33 20 2a 20  col0 ) + - 73 * 
5590: 2d 20 63 6f 6c 30 20 2b 20 2d 20 33 34 20 41 53  - col0 + - 34 AS
55a0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
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 20 72 6f 77 73 6f  ...query I rowso
55e0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
55f0: 6f 6c 31 20 2b 20 32 39 20 46 52 4f 4d 20 74 61  ol1 + 29 FROM ta
5600: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
5610: 0d 0a 31 30 36 0d 0a 38 30 0d 0a 39 36 0d 0a 0d  ..106..80..96...
5620: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
5630: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
5640: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
5650: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
5660: 65 6c 2d 31 32 31 0d 0a 53 45 4c 45 43 54 20 44  el-121..SELECT D
5670: 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20  ISTINCT + CAST( 
5680: 2d 20 2b 20 33 37 20 41 53 20 53 49 47 4e 45 44  - + 37 AS SIGNED
5690: 20 29 20 2a 20 2d 20 38 33 20 2b 20 2b 20 2b 20   ) * - 83 + + + 
56a0: 28 20 63 6f 6c 30 20 29 20 2b 20 63 6f 6c 32 2c  ( col0 ) + col2,
56b0: 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   + col2 AS col0 
56c0: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
56d0: 0a 33 31 33 33 0d 0a 34 37 0d 0a 33 31 36 38 0d  .3133..47..3168.
56e0: 0a 31 30 0d 0a 33 32 36 37 0d 0a 39 39 0d 0a 0d  .10..3267..99...
56f0: 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
5700: 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
5710: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
5720: 20 6c 61 62 65 6c 2d 31 32 31 0d 0a 53 45 4c 45   label-121..SELE
5730: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41  CT DISTINCT + CA
5740: 53 54 20 28 20 2d 20 2b 20 33 37 20 41 53 20 49  ST ( - + 37 AS I
5750: 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 38 33 20  NTEGER ) * - 83 
5760: 2b 20 2b 20 2b 20 28 20 63 6f 6c 30 20 29 20 2b  + + + ( col0 ) +
5770: 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20 41 53   col2, + col2 AS
5780: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
5790: 0a 2d 2d 2d 2d 0d 0a 33 31 33 33 0d 0a 34 37 0d  .----..3133..47.
57a0: 0a 33 31 36 38 0d 0a 31 30 0d 0a 33 32 36 37 0d  .3168..10..3267.
57b0: 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .99....query I r
57c0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
57d0: 4c 4c 20 63 6f 6c 31 20 2d 20 2d 20 36 32 20 46  LL col1 - - 62 F
57e0: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
57f0: 31 34 33 0d 0a 36 33 0d 0a 38 33 0d 0a 0d 0a 6f  143..63..83....o
5800: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
5810: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
5820: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
5830: 74 20 6c 61 62 65 6c 2d 31 32 33 0d 0a 53 45 4c  t label-123..SEL
5840: 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
5850: 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20  NT( * ) AS col1 
5860: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
5870: 2b 20 28 20 38 39 20 29 20 2b 20 2b 20 2b 20 63  + ( 89 ) + + + c
5880: 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ol2 IS NOT NULL.
5890: 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
58a0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
58b0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
58c0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
58d0: 2d 31 32 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  -123..SELECT DIS
58e0: 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
58f0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
5900: 61 62 30 20 57 48 45 52 45 20 2b 20 28 20 38 39  ab0 WHERE + ( 89
5910: 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 49 53   ) + + + col2 IS
5920: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
5930: 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  .3....query I ro
5940: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
5950: 53 54 49 4e 43 54 20 28 20 38 32 20 29 20 2d 20  STINCT ( 82 ) - 
5960: 2b 20 2b 20 32 33 20 46 52 4f 4d 20 74 61 62 30  + + 23 FROM tab0
5970: 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 0d 0a 71 75  ..----..59....qu
5980: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
5990: 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
59a0: 61 62 31 20 57 48 45 52 45 20 39 37 20 49 53 20  ab1 WHERE 97 IS 
59b0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
59c0: 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
59d0: 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33 36   to c6c0a4111b36
59e0: 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64 35  d04dbc811a11e4d5
59f0: 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  4cad....onlyif m
5a00: 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
5a10: 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
5a20: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5a30: 72 74 20 6c 61 62 65 6c 2d 31 32 36 0d 0a 53 45  rt label-126..SE
5a40: 4c 45 43 54 20 41 4c 4c 20 28 20 2d 20 63 6f 6c  LECT ALL ( - col
5a50: 32 20 29 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 2d  2 ) * + col2 + -
5a60: 20 63 6f 6c 32 20 2d 20 63 6f 6c 32 20 44 49 56   col2 - col2 DIV
5a70: 20 2d 20 2d 20 28 20 2d 20 63 6f 6c 31 20 29 20   - - ( - col1 ) 
5a80: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
5a90: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 34 30 0d 0a  2..----..-1640..
5aa0: 2d 33 34 32 32 0d 0a 2d 35 35 32 0d 0a 0d 0a 73  -3422..-552....s
5ab0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
5ac0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
5ad0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5ae0: 62 65 6c 2d 31 32 36 0d 0a 53 45 4c 45 43 54 20  bel-126..SELECT 
5af0: 41 4c 4c 20 28 20 2d 20 63 6f 6c 32 20 29 20 2a  ALL ( - col2 ) *
5b00: 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32   + col2 + - col2
5b10: 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 2d 20 28 20   - col2 / - - ( 
5b20: 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31  - col1 ) AS col1
5b30: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
5b40: 0d 0a 2d 31 36 34 30 0d 0a 2d 33 34 32 32 0d 0a  ..-1640..-3422..
5b50: 2d 35 35 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -552....onlyif m
5b60: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
5b70: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
5b80: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
5b90: 72 74 20 6c 61 62 65 6c 2d 31 32 37 0d 0a 53 45  rt label-127..SE
5ba0: 4c 45 43 54 20 2d 20 28 20 2d 20 35 31 20 29 20  LECT - ( - 51 ) 
5bb0: 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  * - CAST( NULL A
5bc0: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c  S SIGNED ) + col
5bd0: 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
5be0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
5bf0: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
5c00: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
5c10: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
5c20: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
5c30: 62 65 6c 2d 31 32 37 0d 0a 53 45 4c 45 43 54 20  bel-127..SELECT 
5c40: 2d 20 28 20 2d 20 35 31 20 29 20 2a 20 2d 20 43  - ( - 51 ) * - C
5c50: 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
5c60: 54 45 47 45 52 20 29 20 2b 20 63 6f 6c 30 20 46  TEGER ) + col0 F
5c70: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
5c80: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
5c90: 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
5ca0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
5cb0: 45 43 54 20 37 33 20 2a 20 2b 20 63 6f 6c 31 20  ECT 73 * + col1 
5cc0: 2b 20 2b 20 2d 20 63 6f 6c 32 20 2d 20 2d 20 63  + + - col2 - - c
5cd0: 6f 6c 32 20 2b 20 63 6f 6c 30 20 2d 20 2b 20 2b  ol2 + col0 - + +
5ce0: 20 31 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53   13 FROM tab0 AS
5cf0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 37   cor0..----..157
5d00: 0d 0a 31 36 30 37 0d 0a 35 39 31 35 0d 0a 0d 0a  ..1607..5915....
5d10: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
5d20: 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
5d30: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
5d40: 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
5d50: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
5d60: 65 6c 2d 31 32 39 0d 0a 53 45 4c 45 43 54 20 2d  el-129..SELECT -
5d70: 20 28 20 2b 20 43 4f 55 4e 54 28 20 44 49 53 54   ( + COUNT( DIST
5d80: 49 4e 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c  INCT - CAST( NUL
5d90: 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  L AS SIGNED ) ) 
5da0: 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
5db0: 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
5dc0: 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..0....skipif m
5dd0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
5de0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
5df0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 39  owsort label-129
5e00: 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 43  ..SELECT - ( + C
5e10: 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
5e20: 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
5e30: 20 49 4e 54 45 47 45 52 20 29 20 29 20 29 20 41   INTEGER ) ) ) A
5e40: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
5e50: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
5e60: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
5e70: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
5e80: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
5e90: 20 4e 4f 54 20 2d 20 2b 20 63 6f 6c 31 20 3c 3e   NOT - + col1 <>
5ea0: 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col0..----...
5eb0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
5ec0: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
5ed0: 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
5ee0: 20 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 2a   + col1 + col2 *
5ef0: 20 2b 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20   + col0 BETWEEN 
5f00: 2d 20 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d  - col0 AND NULL.
5f10: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
5f20: 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
5f30: 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
5f40: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
5f50: 6f 72 74 20 6c 61 62 65 6c 2d 31 33 32 0d 0a 53  ort label-132..S
5f60: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
5f70: 20 2d 20 43 41 53 54 28 20 2d 20 63 6f 6c 31 20   - CAST( - col1 
5f80: 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
5f90: 20 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 31   tab0 WHERE col1
5fa0: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
5fb0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
5fc0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
5fd0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
5fe0: 20 6c 61 62 65 6c 2d 31 33 32 0d 0a 53 45 4c 45   label-132..SELE
5ff0: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20  CT DISTINCT + - 
6000: 43 41 53 54 20 28 20 2d 20 63 6f 6c 31 20 41 53  CAST ( - col1 AS
6010: 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d 20   INTEGER ) FROM 
6020: 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 31 20  tab0 WHERE col1 
6030: 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
6040: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
6050: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
6060: 43 54 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  CT + col2 AS col
6070: 32 2c 20 2b 20 63 6f 6c 30 20 2b 20 63 6f 6c 31  2, + col0 + col1
6080: 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   * col1 FROM tab
6090: 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 32 36 34  2..----..23..264
60a0: 37 0d 0a 34 30 0d 0a 35 39 39 33 0d 0a 35 38 0d  7..40..5993..58.
60b0: 0a 34 35 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .4564....onlyif 
60c0: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
60d0: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
60e0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
60f0: 6c 2d 31 33 34 0d 0a 53 45 4c 45 43 54 20 2d 20  l-134..SELECT - 
6100: 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20  MIN( DISTINCT + 
6110: 63 6f 6c 31 20 29 20 63 6f 6c 32 20 46 52 4f 4d  col1 ) col2 FROM
6120: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
6130: 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-5....skipif m
6140: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
6150: 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f  tible..skipif po
6160: 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
6170: 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
6180: 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
6190: 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
61a0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
61b0: 6c 61 62 65 6c 2d 31 33 34 0d 0a 53 45 4c 45 43  label-134..SELEC
61c0: 54 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  T - MIN ( DISTIN
61d0: 43 54 20 2b 20 63 6f 6c 31 20 29 20 63 6f 6c 32  CT + col1 ) col2
61e0: 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
61f0: 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69  .----..-5....ski
6200: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
6210: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
6220: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
6230: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
6240: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
6250: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
6260: 20 2b 20 63 6f 6c 32 2c 20 2d 20 37 32 20 63 6f   + col2, - 72 co
6270: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72  l2 FROM tab2 cor
6280: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 37  0..----..-23..-7
6290: 32 0d 0a 2d 34 30 0d 0a 2d 37 32 0d 0a 2d 35 38  2..-40..-72..-58
62a0: 0d 0a 2d 37 32 0d 0a 0d 0a 71 75 65 72 79 20 49  ..-72....query I
62b0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
62c0: 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
62d0: 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
62e0: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d 20 28 20  RE NOT NULL = ( 
62f0: 2d 20 2b 20 63 6f 6c 30 20 29 20 2a 20 63 6f 6c  - + col0 ) * col
6300: 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  0..----....query
6310: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
6320: 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  ECT - col2 AS co
6330: 6c 32 2c 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 39  l2, col0 * + + 9
6340: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
6350: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 37  r0..----..-59..7
6360: 36 35 0d 0a 2d 36 38 0d 0a 38 31 39 0d 0a 2d 39  65..-68..819..-9
6370: 36 0d 0a 34 35 39 0d 0a 0d 0a 71 75 65 72 79 20  6..459....query 
6380: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
6390: 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 2d 20 28  T ALL col0 * - (
63a0: 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
63b0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
63c0: 2d 2d 2d 2d 0d 0a 2d 34 38 39 36 0d 0a 2d 35 30  ----..-4896..-50
63d0: 31 35 0d 0a 2d 36 31 38 38 0d 0a 0d 0a 6f 6e 6c  15..-6188....onl
63e0: 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
63f0: 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
6400: 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
6410: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 33  rowsort label-13
6420: 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
6430: 43 54 20 2b 20 36 31 20 44 49 56 20 63 6f 6c 31  CT + 61 DIV col1
6440: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
6450: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
6460: 0d 0a 30 0d 0a 32 0d 0a 36 31 0d 0a 0d 0a 73 6b  ..0..2..61....sk
6470: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
6480: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
6490: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
64a0: 65 6c 2d 31 33 39 0d 0a 53 45 4c 45 43 54 20 44  el-139..SELECT D
64b0: 49 53 54 49 4e 43 54 20 2b 20 36 31 20 2f 20 63  ISTINCT + 61 / c
64c0: 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
64d0: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
64e0: 2d 2d 2d 0d 0a 30 0d 0a 32 0d 0a 36 31 0d 0a 0d  ---..0..2..61...
64f0: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
6500: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
6510: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
6520: 20 4e 4f 54 20 4e 55 4c 4c 20 3c 3d 20 2b 20 2d   NOT NULL <= + -
6530: 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col2..----....q
6540: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
6550: 53 45 4c 45 43 54 20 2d 20 34 33 20 2a 20 2d 20  SELECT - 43 * - 
6560: 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
6570: 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 31  M tab2..----..21
6580: 39 33 0d 0a 32 38 38 31 0d 0a 33 33 31 31 0d 0a  93..2881..3311..
6590: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
65a0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
65b0: 6f 6c 31 20 2a 20 63 6f 6c 31 2c 20 2b 20 63 6f  ol1 * col1, + co
65c0: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l1 FROM tab0 WHE
65d0: 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57  RE NOT NULL BETW
65e0: 45 45 4e 20 2d 20 63 6f 6c 30 20 41 4e 44 20 4e  EEN - col0 AND N
65f0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
6600: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
6610: 4c 45 43 54 20 32 20 2a 20 2b 20 63 6f 6c 31 20  LECT 2 * + col1 
6620: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
6630: 0a 31 30 0d 0a 32 38 0d 0a 39 34 0d 0a 0d 0a 71  .10..28..94....q
6640: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
6650: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
6660: 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab0 WHERE NOT +
6670: 20 38 35 20 2b 20 2d 20 28 20 2d 20 2b 20 35 30   85 + - ( - + 50
6680: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
6690: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
66a0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
66b0: 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
66c0: 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
66d0: 6f 72 74 20 6c 61 62 65 6c 2d 31 34 35 0d 0a 53  ort label-145..S
66e0: 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 63 6f  ELECT - CAST( co
66f0: 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 41  l2 AS SIGNED ) A
6700: 53 20 63 6f 6c 32 2c 20 2d 20 63 6f 6c 31 20 63  S col2, - col1 c
6710: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
6720: 2d 2d 2d 0d 0a 2d 31 30 0d 0a 2d 32 31 0d 0a 2d  ---..-10..-21..-
6730: 34 37 0d 0a 2d 38 31 0d 0a 2d 39 39 0d 0a 2d 31  47..-81..-99..-1
6740: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
6750: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
6760: 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
6770: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
6780: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
6790: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
67a0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
67b0: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
67c0: 65 6c 2d 31 34 35 0d 0a 53 45 4c 45 43 54 20 2d  el-145..SELECT -
67d0: 20 43 41 53 54 20 28 20 63 6f 6c 32 20 41 53 20   CAST ( col2 AS 
67e0: 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
67f0: 32 2c 20 2d 20 63 6f 6c 31 20 63 6f 6c 30 20 46  2, - col1 col0 F
6800: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
6810: 2d 31 30 0d 0a 2d 32 31 0d 0a 2d 34 37 0d 0a 2d  -10..-21..-47..-
6820: 38 31 0d 0a 2d 39 39 0d 0a 2d 31 0d 0a 0d 0a 71  81..-99..-1....q
6830: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
6840: 53 45 4c 45 43 54 20 36 34 20 2a 20 35 30 20 46  SELECT 64 * 50 F
6850: 52 4f 4d 20 74 61 62 30 2c 20 74 61 62 30 20 41  ROM tab0, tab0 A
6860: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S cor0..----..9 
6870: 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
6880: 6f 20 66 38 65 64 39 31 31 62 35 37 33 33 31 63  o f8ed911b57331c
6890: 34 63 66 35 32 66 30 66 61 65 37 63 65 62 61 38  4cf52f0fae7ceba8
68a0: 37 63 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  7c....onlyif mys
68b0: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
68c0: 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  : aggregate synt
68d0: 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
68e0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
68f0: 6f 72 74 20 6c 61 62 65 6c 2d 31 34 37 0d 0a 53  ort label-147..S
6900: 45 4c 45 43 54 20 4d 41 58 28 20 41 4c 4c 20 2d  ELECT MAX( ALL -
6910: 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
6920: 20 44 45 43 49 4d 41 4c 20 29 20 29 20 2f 20 2b   DECIMAL ) ) / +
6930: 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
6940: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
6950: 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
6960: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
6970: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
6980: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
6990: 6c 2d 31 34 37 0d 0a 53 45 4c 45 43 54 20 4d 41  l-147..SELECT MA
69a0: 58 20 28 20 41 4c 4c 20 2d 20 2b 20 43 41 53 54  X ( ALL - + CAST
69b0: 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
69c0: 29 20 29 20 2f 20 2b 20 43 4f 55 4e 54 20 28 20  ) ) / + COUNT ( 
69d0: 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
69e0: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
69f0: 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
6a00: 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
6a10: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
6a20: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
6a30: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6a40: 74 20 6c 61 62 65 6c 2d 31 34 38 0d 0a 53 45 4c  t label-148..SEL
6a50: 45 43 54 20 2d 20 43 41 53 54 28 20 2b 20 43 4f  ECT - CAST( + CO
6a60: 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20  UNT( DISTINCT + 
6a70: 2d 20 63 6f 6c 32 20 29 20 41 53 20 53 49 47 4e  - col2 ) AS SIGN
6a80: 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  ED ) FROM tab1..
6a90: 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70  ----..-3....skip
6aa0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
6ab0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
6ac0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
6ad0: 2d 31 34 38 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -148..SELECT - C
6ae0: 41 53 54 20 28 20 2b 20 43 4f 55 4e 54 20 28 20  AST ( + COUNT ( 
6af0: 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 63 6f 6c  DISTINCT + - col
6b00: 32 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  2 ) AS INTEGER )
6b10: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
6b20: 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-3....query I 
6b30: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
6b40: 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2b 20  DISTINCT col0 + 
6b50: 2d 20 36 35 20 2a 20 2b 20 63 6f 6c 32 20 46 52  - 65 * + col2 FR
6b60: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
6b70: 0a 2d 2d 2d 2d 0d 0a 2d 33 30 34 30 0d 0a 2d 35  .----..-3040..-5
6b80: 36 33 0d 0a 2d 36 33 33 38 0d 0a 0d 0a 71 75 65  63..-6338....que
6b90: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
6ba0: 4c 45 43 54 20 2d 20 28 20 2b 20 31 34 20 29 20  LECT - ( + 14 ) 
6bb0: 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
6bc0: 30 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53 20  0 AS cor0 CROSS 
6bd0: 4a 4f 49 4e 20 74 61 62 31 20 41 53 20 63 6f 72  JOIN tab1 AS cor
6be0: 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  1..----..9 value
6bf0: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 64 33 32  s hashing to d32
6c00: 31 34 36 31 39 39 34 62 61 34 39 63 33 61 37 30  1461994ba49c3a70
6c10: 66 61 36 33 37 33 30 33 32 66 63 39 34 0d 0a 0d  fa6373032fc94...
6c20: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
6c30: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
6c40: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
6c50: 6f 72 74 20 6c 61 62 65 6c 2d 31 35 31 0d 0a 53  ort label-151..S
6c60: 45 4c 45 43 54 20 2b 20 37 20 2b 20 4d 49 4e 28  ELECT + 7 + MIN(
6c70: 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 39 32   DISTINCT + + 92
6c80: 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
6c90: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a  tab1..----..99..
6ca0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
6cb0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
6cc0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
6cd0: 20 6c 61 62 65 6c 2d 31 35 31 0d 0a 53 45 4c 45   label-151..SELE
6ce0: 43 54 20 2b 20 37 20 2b 20 4d 49 4e 20 28 20 44  CT + 7 + MIN ( D
6cf0: 49 53 54 49 4e 43 54 20 2b 20 2b 20 39 32 20 29  ISTINCT + + 92 )
6d00: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
6d10: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a  b1..----..99....
6d20: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
6d30: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
6d40: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 57  col1 FROM tab1 W
6d50: 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 49 53  HERE NOT col1 IS
6d60: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   NULL..----..-14
6d70: 0d 0a 2d 34 37 0d 0a 2d 35 0d 0a 0d 0a 6f 6e 6c  ..-47..-5....onl
6d80: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
6d90: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
6da0: 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
6db0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
6dc0: 31 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  153..SELECT ALL 
6dd0: 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  * FROM tab0 cor0
6de0: 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53 54 28   WHERE NOT CAST(
6df0: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
6e00: 29 20 4e 4f 54 20 49 4e 20 28 20 36 38 20 2a 20  ) NOT IN ( 68 * 
6e10: 2d 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20  - col1 + + col0 
6e20: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
6e30: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
6e40: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
6e50: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
6e60: 6c 2d 31 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-153..SELECT AL
6e70: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  L * FROM tab0 co
6e80: 72 30 20 57 48 45 52 45 20 4e 4f 54 20 43 41 53  r0 WHERE NOT CAS
6e90: 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
6ea0: 47 45 52 20 29 20 4e 4f 54 20 49 4e 20 28 20 36  GER ) NOT IN ( 6
6eb0: 38 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63  8 * - col1 + + c
6ec0: 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f  ol0 )..----....o
6ed0: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
6ee0: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
6ef0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
6f00: 74 20 6c 61 62 65 6c 2d 31 35 34 0d 0a 53 45 4c  t label-154..SEL
6f10: 45 43 54 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  ECT + - COUNT( *
6f20: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
6f30: 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
6f40: 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
6f50: 20 28 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20   ( - ( + col0 ) 
6f60: 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  )..----..0....sk
6f70: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
6f80: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
6f90: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
6fa0: 65 6c 2d 31 35 34 0d 0a 53 45 4c 45 43 54 20 2b  el-154..SELECT +
6fb0: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46   - COUNT ( * ) F
6fc0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
6fd0: 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57   WHERE NULL BETW
6fe0: 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28 20 2d  EEN NULL AND ( -
6ff0: 20 28 20 2b 20 63 6f 6c 30 20 29 20 29 0d 0a 2d   ( + col0 ) )..-
7000: 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
7010: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
7020: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
7030: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
7040: 45 52 45 20 28 20 4e 4f 54 20 2b 20 2d 20 63 6f  ERE ( NOT + - co
7050: 6c 32 20 3c 3d 20 63 6f 6c 32 20 2b 20 63 6f 6c  l2 <= col2 + col
7060: 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  2 )..----....ski
7070: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
7080: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
7090: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
70a0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
70b0: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
70c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
70d0: 36 35 20 2d 20 2d 20 38 36 20 63 6f 6c 31 20 46  65 - - 86 col1 F
70e0: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
70f0: 0d 0a 2d 2d 2d 2d 0d 0a 31 35 31 0d 0a 31 35 31  ..----..151..151
7100: 0d 0a 31 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49  ..151....query I
7110: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
7120: 20 44 49 53 54 49 4e 43 54 20 2b 20 35 31 20 2b   DISTINCT + 51 +
7130: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d   col1 FROM tab0.
7140: 0a 2d 2d 2d 2d 0d 0a 31 33 32 0d 0a 35 32 0d 0a  .----..132..52..
7150: 37 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  72....onlyif mys
7160: 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
7170: 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
7180: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
7190: 72 74 20 6c 61 62 65 6c 2d 31 35 38 0d 0a 53 45  rt label-158..SE
71a0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
71b0: 20 57 48 45 52 45 20 28 20 2d 20 28 20 2d 20 33   WHERE ( - ( - 3
71c0: 38 20 29 20 29 20 49 4e 20 28 20 2b 20 2b 20 63  8 ) ) IN ( + + c
71d0: 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  ol1, + col0 + + 
71e0: 63 6f 6c 31 20 2b 20 2b 20 31 31 20 2a 20 2d 20  col1 + + 11 * - 
71f0: 38 34 2c 20 2d 20 28 20 63 6f 6c 32 20 29 2c 20  84, - ( col2 ), 
7200: 33 30 20 2b 20 63 6f 6c 30 20 2d 20 2d 20 43 41  30 + col0 - - CA
7210: 53 54 28 20 2d 20 63 6f 6c 32 20 41 53 20 53 49  ST( - col2 AS SI
7220: 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20 33 39 2c  GNED ) + - - 39,
7230: 20 2b 20 63 6f 6c 30 2c 20 2b 20 43 41 53 54 28   + col0, + CAST(
7240: 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
7250: 29 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63  ) + col1 * - - c
7260: 6f 6c 30 2c 20 2d 20 2b 20 63 6f 6c 30 20 29 0d  ol0, - + col0 ).
7270: 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
7280: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
7290: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
72a0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
72b0: 31 35 38 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  158..SELECT * FR
72c0: 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20  OM tab0 WHERE ( 
72d0: 2d 20 28 20 2d 20 33 38 20 29 20 29 20 49 4e 20  - ( - 38 ) ) IN 
72e0: 28 20 2b 20 2b 20 63 6f 6c 31 2c 20 2b 20 63 6f  ( + + col1, + co
72f0: 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20  l0 + + col1 + + 
7300: 31 31 20 2a 20 2d 20 38 34 2c 20 2d 20 28 20 63  11 * - 84, - ( c
7310: 6f 6c 32 20 29 2c 20 33 30 20 2b 20 63 6f 6c 30  ol2 ), 30 + col0
7320: 20 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 63 6f   - - CAST ( - co
7330: 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l2 AS INTEGER ) 
7340: 2b 20 2d 20 2d 20 33 39 2c 20 2b 20 63 6f 6c 30  + - - 39, + col0
7350: 2c 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  , + CAST ( NULL 
7360: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63  AS INTEGER ) + c
7370: 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 30 2c 20  ol1 * - - col0, 
7380: 2d 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d  - + col0 )..----
7390: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
73a0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20  ort..SELECT ( - 
73b0: 63 6f 6c 30 20 29 20 2a 20 2b 20 2d 20 33 32 20  col0 ) * + - 32 
73c0: 2a 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41  * ( - + col2 ) A
73d0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
73e0: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 39 32 30 30 0d  ..----..-139200.
73f0: 0a 2d 33 33 38 35 36 0d 0a 2d 38 31 39 32 30 0d  .-33856..-81920.
7400: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
7410: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
7420: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
7430: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
7440: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
7450: 6c 61 62 65 6c 2d 31 36 30 0d 0a 53 45 4c 45 43  label-160..SELEC
7460: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 32 35 20  T DISTINCT - 25 
7470: 2a 20 31 34 20 2a 20 2d 20 43 41 53 54 28 20 2b  * 14 * - CAST( +
7480: 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
7490: 20 53 49 47 4e 45 44 20 29 20 2a 20 28 20 2d 20   SIGNED ) * ( - 
74a0: 4d 49 4e 28 20 38 38 20 29 20 29 20 41 53 20 63  MIN( 88 ) ) AS c
74b0: 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
74c0: 2d 2d 2d 0d 0a 2d 39 32 34 30 30 0d 0a 0d 0a 73  ---..-92400....s
74d0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
74e0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
74f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
7500: 62 65 6c 2d 31 36 30 0d 0a 53 45 4c 45 43 54 20  bel-160..SELECT 
7510: 44 49 53 54 49 4e 43 54 20 2d 20 32 35 20 2a 20  DISTINCT - 25 * 
7520: 31 34 20 2a 20 2d 20 43 41 53 54 20 28 20 2b 20  14 * - CAST ( + 
7530: 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
7540: 20 49 4e 54 45 47 45 52 20 29 20 2a 20 28 20 2d   INTEGER ) * ( -
7550: 20 4d 49 4e 20 28 20 38 38 20 29 20 29 20 41 53   MIN ( 88 ) ) AS
7560: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
7570: 0a 2d 2d 2d 2d 0d 0a 2d 39 32 34 30 30 0d 0a 0d  .----..-92400...
7580: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
7590: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
75a0: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
75b0: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
75c0: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
75d0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
75e0: 54 20 63 6f 6c 30 20 2a 20 2b 20 28 20 63 6f 6c  T col0 * + ( col
75f0: 32 20 29 20 2b 20 28 20 63 6f 6c 30 20 29 20 63  2 ) + ( col0 ) c
7600: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
7610: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20  ERE NOT NULL IS 
7620: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
7630: 31 31 30 34 0d 0a 32 36 32 34 0d 0a 34 34 32 35  1104..2624..4425
7640: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
7650: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
7660: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  L * FROM tab2 AS
7670: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
7680: 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20   BETWEEN - col1 
7690: 41 4e 44 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b  AND - + col0 * +
76a0: 20 63 6f 6c 30 20 2f 20 2d 20 63 6f 6c 30 0d 0a   col0 / - col0..
76b0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
76c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
76d0: 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 38 37 20 41   - col0 * - 87 A
76e0: 53 20 63 6f 6c 31 2c 20 2b 20 36 37 20 46 52 4f  S col1, + 67 FRO
76f0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
7700: 2d 2d 2d 2d 0d 0a 31 33 30 35 0d 0a 36 37 0d 0a  ----..1305..67..
7710: 37 35 36 39 0d 0a 36 37 0d 0a 38 34 33 39 0d 0a  7569..67..8439..
7720: 36 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  67....onlyif mys
7730: 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
7740: 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
7750: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
7760: 20 6c 61 62 65 6c 2d 31 36 34 0d 0a 53 45 4c 45   label-164..SELE
7770: 43 54 20 2b 20 34 33 20 44 49 56 20 2d 20 63 6f  CT + 43 DIV - co
7780: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
7790: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
77a0: 2d 2d 0d 0a 2d 32 0d 0a 2d 34 33 0d 0a 30 0d 0a  --..-2..-43..0..
77b0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
77c0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
77d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
77e0: 20 6c 61 62 65 6c 2d 31 36 34 0d 0a 53 45 4c 45   label-164..SELE
77f0: 43 54 20 2b 20 34 33 20 2f 20 2d 20 63 6f 6c 31  CT + 43 / - col1
7800: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
7810: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
7820: 0d 0a 2d 32 0d 0a 2d 34 33 0d 0a 30 0d 0a 0d 0a  ..-2..-43..0....
7830: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
7840: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
7850: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
7860: 72 74 20 6c 61 62 65 6c 2d 31 36 35 0d 0a 53 45  rt label-165..SE
7870: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 28 20  LECT DISTINCT ( 
7880: 4d 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2d 20  MIN( DISTINCT - 
7890: 63 6f 6c 32 20 29 20 29 20 46 52 4f 4d 20 74 61  col2 ) ) FROM ta
78a0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
78b0: 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-99....skipif 
78c0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
78d0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
78e0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36  rowsort label-16
78f0: 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
7900: 43 54 20 28 20 4d 49 4e 20 28 20 44 49 53 54 49  CT ( MIN ( DISTI
7910: 4e 43 54 20 2d 20 63 6f 6c 32 20 29 20 29 20 46  NCT - col2 ) ) F
7920: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
7930: 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 6f  ..----..-99....o
7940: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
7950: 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
7960: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
7970: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
7980: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7990: 6c 2d 31 36 36 0d 0a 53 45 4c 45 43 54 20 2b 20  l-166..SELECT + 
79a0: 4d 49 4e 28 20 2b 20 2b 20 43 41 53 54 28 20 2b  MIN( + + CAST( +
79b0: 20 2b 20 31 20 41 53 20 53 49 47 4e 45 44 20 29   + 1 AS SIGNED )
79c0: 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   ) col1 FROM tab
79d0: 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b  1..----..1....sk
79e0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
79f0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
7a00: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
7a10: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
7a20: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
7a30: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
7a40: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
7a50: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 36 36 0d  wsort label-166.
7a60: 0a 53 45 4c 45 43 54 20 2b 20 4d 49 4e 20 28 20  .SELECT + MIN ( 
7a70: 2b 20 2b 20 43 41 53 54 20 28 20 2b 20 2b 20 31  + + CAST ( + + 1
7a80: 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
7a90: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
7aa0: 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79  ----..1....query
7ab0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
7ac0: 43 54 20 44 49 53 54 49 4e 43 54 20 36 34 20 41  CT DISTINCT 64 A
7ad0: 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
7ae0: 2c 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  , tab2 AS cor0..
7af0: 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 71 75 65 72  ----..64....quer
7b00: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
7b10: 45 43 54 20 2d 20 34 20 2b 20 2b 20 2d 20 32 38  ECT - 4 + + - 28
7b20: 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
7b30: 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
7b40: 62 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b1 AS cor1..----
7b50: 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
7b60: 6e 67 20 74 6f 20 65 66 38 66 39 33 31 31 39 39  ng to ef8f931199
7b70: 38 33 62 39 36 32 66 34 63 38 31 33 38 31 65 62  83b962f4c81381eb
7b80: 66 34 62 31 65 36 0d 0a 0d 0a 71 75 65 72 79 20  f4b1e6....query 
7b90: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
7ba0: 54 20 39 37 20 46 52 4f 4d 20 74 61 62 31 20 41  T 97 FROM tab1 A
7bb0: 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
7bc0: 4e 20 74 61 62 31 20 41 53 20 63 6f 72 31 0d 0a  N tab1 AS cor1..
7bd0: 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
7be0: 61 73 68 69 6e 67 20 74 6f 20 35 65 30 64 33 31  ashing to 5e0d31
7bf0: 61 63 34 31 39 38 31 62 63 64 66 36 61 36 36 35  ac41981bcdf6a665
7c00: 35 33 38 61 37 31 61 30 39 63 0d 0a 0d 0a 71 75  538a71a09c....qu
7c10: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
7c20: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
7c30: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
7c40: 57 48 45 52 45 20 2d 20 28 20 2b 20 39 30 20 29  WHERE - ( + 90 )
7c50: 20 3d 20 2b 20 39 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   = + 90..----...
7c60: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
7c70: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
7c80: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
7c90: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 31 0d 0a 53  ort label-171..S
7ca0: 45 4c 45 43 54 20 2b 20 2b 20 53 55 4d 28 20 41  ELECT + + SUM( A
7cb0: 4c 4c 20 2d 20 2d 20 38 31 20 29 20 2b 20 2b 20  LL - - 81 ) + + 
7cc0: 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  + COUNT( * ) FRO
7cd0: 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
7ce0: 2d 2d 2d 2d 0d 0a 32 34 36 0d 0a 0d 0a 73 6b 69  ----..246....ski
7cf0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
7d00: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
7d10: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
7d20: 6c 2d 31 37 31 0d 0a 53 45 4c 45 43 54 20 2b 20  l-171..SELECT + 
7d30: 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2d 20 2d 20  + SUM ( ALL - - 
7d40: 38 31 20 29 20 2b 20 2b 20 2b 20 43 4f 55 4e 54  81 ) + + + COUNT
7d50: 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31   ( * ) FROM tab1
7d60: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
7d70: 32 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  246....query I r
7d80: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
7d90: 20 2b 20 63 6f 6c 31 20 2a 20 34 34 20 2a 20 2d   + col1 * 44 * -
7da0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
7db0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
7dc0: 54 20 37 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  T 70 IS NOT NULL
7dd0: 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
7de0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
7df0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
7e00: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
7e10: 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37 33 0d 0a  sort label-173..
7e20: 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2b 20  SELECT col0 + + 
7e30: 37 30 20 2f 20 2d 20 28 20 2d 20 28 20 2d 20 2d  70 / - ( - ( - -
7e40: 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
7e50: 49 47 4e 45 44 20 29 20 29 20 29 20 2b 20 2d 20  IGNED ) ) ) + - 
7e60: 2b 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 31 20  + col2 / - col1 
7e70: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
7e80: 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
7e90: 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
7ea0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
7eb0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
7ec0: 6f 72 74 20 6c 61 62 65 6c 2d 31 37 33 0d 0a 53  ort label-173..S
7ed0: 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2b 20 37  ELECT col0 + + 7
7ee0: 30 20 2f 20 2d 20 28 20 2d 20 28 20 2d 20 2d 20  0 / - ( - ( - - 
7ef0: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
7f00: 4e 54 45 47 45 52 20 29 20 29 20 29 20 2b 20 2d  NTEGER ) ) ) + -
7f10: 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 63 6f 6c 31   + col2 / - col1
7f20: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
7f30: 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
7f40: 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  LL....query II r
7f50: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
7f60: 4c 4c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c  LL + col2 AS col
7f70: 31 2c 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1, + col2 FROM t
7f80: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31  ab0..----..10..1
7f90: 30 0d 0a 34 37 0d 0a 34 37 0d 0a 39 39 0d 0a 39  0..47..47..99..9
7fa0: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  9....skipif post
7fb0: 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
7fc0: 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
7fd0: 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
7fe0: 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
7ff0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
8000: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
8010: 20 38 36 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   86 col0 FROM ta
8020: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 38 36 0d 0a 0d 0a  b1..----..86....
8030: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
8040: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
8050: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
8060: 53 20 63 6f 72 30 20 57 48 45 52 45 20 38 36 20  S cor0 WHERE 86 
8070: 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 36 36  NOT BETWEEN + 66
8080: 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 41 4e 44 20   * - + col1 AND 
8090: 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 31 35  + col2..----..15
80a0: 0d 0a 38 31 0d 0a 34 37 0d 0a 38 37 0d 0a 32 31  ..81..47..87..21
80b0: 0d 0a 31 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..10....query II
80c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
80d0: 20 41 4c 4c 20 2d 20 2d 20 63 6f 6c 31 20 2b 20   ALL - - col1 + 
80e0: 35 34 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  54, col2 AS col1
80f0: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
8100: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 36  r0..----..101..6
8110: 38 0d 0a 35 39 0d 0a 35 39 0d 0a 36 38 0d 0a 39  8..59..59..68..9
8120: 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
8130: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
8140: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
8150: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 37  rowsort label-17
8160: 38 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 28  8..SELECT + MAX(
8170: 20 2b 20 34 37 20 29 20 46 52 4f 4d 20 74 61 62   + 47 ) FROM tab
8180: 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37  2 cor0..----..47
8190: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
81a0: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
81b0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
81c0: 72 74 20 6c 61 62 65 6c 2d 31 37 38 0d 0a 53 45  rt label-178..SE
81d0: 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 2b 20 34  LECT + MAX ( + 4
81e0: 37 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  7 ) FROM tab2 co
81f0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 0d 0a 0d 0a  r0..----..47....
8200: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
8210: 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
8220: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
8230: 48 45 52 45 20 2d 20 28 20 38 31 20 29 20 3e 20  HERE - ( 81 ) > 
8240: 32 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  24..----....quer
8250: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
8260: 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63  ECT - col0 + - c
8270: 6f 6c 31 20 2b 20 2d 20 35 31 20 41 53 20 63 6f  ol1 + - 51 AS co
8280: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
8290: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 36  cor0..----..-116
82a0: 0d 0a 2d 31 34 31 0d 0a 2d 31 38 39 0d 0a 0d 0a  ..-141..-189....
82b0: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
82c0: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
82d0: 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
82e0: 20 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45   col1 NOT BETWEE
82f0: 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c  N NULL AND + col
8300: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31 0d  0..----..15..81.
8310: 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .47....query I r
8320: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
8330: 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 28 20 2b 20   - col2 + + ( + 
8340: 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
8350: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
8360: 31 39 36 0d 0a 36 32 0d 0a 39 37 0d 0a 0d 0a 73  196..62..97....s
8370: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
8380: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
8390: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
83a0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
83b0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
83c0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
83d0: 20 2d 20 36 34 20 2b 20 2d 20 2d 20 63 6f 6c 30   - 64 + - - col0
83e0: 2c 20 2d 20 63 6f 6c 31 20 63 6f 6c 32 20 46 52  , - col1 col2 FR
83f0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
8400: 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 2d 38 31 0d  .----..-49..-81.
8410: 0a 32 33 0d 0a 2d 32 31 0d 0a 33 33 0d 0a 2d 31  .23..-21..33..-1
8420: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
8430: 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
8440: 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
8450: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 38 34  owsort label-184
8460: 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
8470: 28 20 2a 20 29 20 2b 20 35 32 20 41 53 20 63 6f  ( * ) + 52 AS co
8480: 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
8490: 30 0d 0a 2d 2d 2d 2d 0d 0a 34 39 0d 0a 0d 0a 73  0..----..49....s
84a0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
84b0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
84c0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
84d0: 62 65 6c 2d 31 38 34 0d 0a 53 45 4c 45 43 54 20  bel-184..SELECT 
84e0: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20  - COUNT ( * ) + 
84f0: 35 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  52 AS col1 FROM 
8500: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
8510: 0a 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .49....onlyif my
8520: 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
8530: 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
8540: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
8550: 72 74 20 6c 61 62 65 6c 2d 31 38 35 0d 0a 53 45  rt label-185..SE
8560: 4c 45 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  LECT + + col0 + 
8570: 43 41 53 54 28 20 2b 20 35 39 20 41 53 20 53 49  CAST( + 59 AS SI
8580: 47 4e 45 44 20 29 20 2b 20 2b 20 63 6f 6c 32 20  GNED ) + + col2 
8590: 2b 20 2b 20 35 35 2c 20 63 6f 6c 30 20 2a 20 2b  + + 55, col0 * +
85a0: 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   + col2 AS col1 
85b0: 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a  FROM tab1 cor0..
85c0: 2d 2d 2d 2d 0d 0a 32 35 38 0d 0a 35 30 31 35 0d  ----..258..5015.
85d0: 0a 32 36 31 0d 0a 34 38 39 36 0d 0a 32 37 33 0d  .261..4896..273.
85e0: 0a 36 31 38 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .6188....skipif 
85f0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
8600: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
8610: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
8620: 38 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63  85..SELECT + + c
8630: 6f 6c 30 20 2b 20 43 41 53 54 20 28 20 2b 20 35  ol0 + CAST ( + 5
8640: 39 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  9 AS INTEGER ) +
8650: 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 35 35 2c 20   + col2 + + 55, 
8660: 63 6f 6c 30 20 2a 20 2b 20 2b 20 63 6f 6c 32 20  col0 * + + col2 
8670: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
8680: 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35  1 cor0..----..25
8690: 38 0d 0a 35 30 31 35 0d 0a 32 36 31 0d 0a 34 38  8..5015..261..48
86a0: 39 36 0d 0a 32 37 33 0d 0a 36 31 38 38 0d 0a 0d  96..273..6188...
86b0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
86c0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
86d0: 54 20 2d 20 2b 20 63 6f 6c 30 20 2b 20 2d 20 63  T - + col0 + - c
86e0: 6f 6c 32 20 2a 20 2b 20 36 33 20 2a 20 31 36 20  ol2 * + 63 * 16 
86f0: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
8700: 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
8710: 0a 2d 31 30 31 36 37 0d 0a 2d 34 37 33 39 31 0d  .-10167..-47391.
8720: 0a 2d 39 39 38 38 39 0d 0a 0d 0a 71 75 65 72 79  .-99889....query
8730: 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c   II rowsort..SEL
8740: 45 43 54 20 2d 20 2b 20 28 20 2b 20 34 32 20 29  ECT - + ( + 42 )
8750: 2c 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  , - col1 AS col0
8760: 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
8770: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 0d 0a 2d  r0..----..-42..-
8780: 31 34 0d 0a 2d 34 32 0d 0a 2d 34 37 0d 0a 2d 34  14..-42..-47..-4
8790: 32 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49  2..-5....query I
87a0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
87b0: 20 41 4c 4c 20 28 20 63 6f 6c 30 20 29 20 2a 20   ALL ( col0 ) * 
87c0: 2b 20 2b 20 28 20 63 6f 6c 32 20 29 20 2d 20 2b  + + ( col2 ) - +
87d0: 20 2d 20 28 20 2d 20 63 6f 6c 32 20 29 20 41 53   - ( - col2 ) AS
87e0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
87f0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
8800: 30 33 35 0d 0a 32 35 32 30 0d 0a 34 32 39 32 0d  035..2520..4292.
8810: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
8820: 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
8830: 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  1 FROM tab2 WHER
8840: 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 2a 20 2d  E NOT - col1 * -
8850: 20 2b 20 33 34 20 49 53 20 4e 4f 54 20 4e 55 4c   + 34 IS NOT NUL
8860: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
8870: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
8880: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
8890: 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c   WHERE NOT + col
88a0: 31 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 49 53 20  1 + + - col1 IS 
88b0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
88c0: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
88d0: 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
88e0: 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
88f0: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
8900: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
8910: 20 63 6f 6c 30 2c 20 2d 20 36 35 20 2a 20 2d 20   col0, - 65 * - 
8920: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
8930: 2d 2d 2d 2d 0d 0a 34 36 0d 0a 33 33 31 35 0d 0a  ----..46..3315..
8940: 36 34 0d 0a 35 30 30 35 0d 0a 37 35 0d 0a 34 33  64..5005..75..43
8950: 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  55....query I ro
8960: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20  wsort..SELECT ( 
8970: 33 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  30 ) AS col2 FRO
8980: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 30  M tab1..----..30
8990: 0d 0a 33 30 0d 0a 33 30 0d 0a 0d 0a 71 75 65 72  ..30..30....quer
89a0: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
89b0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
89c0: 6c 32 20 41 53 20 63 6f 6c 30 2c 20 2b 20 39 34  l2 AS col0, + 94
89d0: 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
89e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 39 34  r0..----..10..94
89f0: 0d 0a 34 37 0d 0a 39 34 0d 0a 39 39 0d 0a 39 34  ..47..94..99..94
8a00: 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
8a10: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 39  sort..SELECT ( 9
8a20: 31 20 29 20 2a 20 2d 20 63 6f 6c 30 20 41 53 20  1 ) * - col0 AS 
8a30: 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32 20 41 53 20  col0, - col2 AS 
8a40: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
8a50: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
8a60: 31 38 36 0d 0a 2d 32 33 0d 0a 2d 35 38 32 34 0d  186..-23..-5824.
8a70: 0a 2d 34 30 0d 0a 2d 36 38 32 35 0d 0a 2d 35 38  .-40..-6825..-58
8a80: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
8a90: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
8aa0: 2d 20 32 39 20 2a 20 2d 20 63 6f 6c 32 20 41 53  - 29 * - col2 AS
8ab0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
8ac0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
8ad0: 31 36 30 0d 0a 31 36 38 32 0d 0a 36 36 37 0d 0a  160..1682..667..
8ae0: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
8af0: 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
8b00: 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
8b10: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
8b20: 65 6c 2d 31 39 36 0d 0a 53 45 4c 45 43 54 20 2d  el-196..SELECT -
8b30: 20 36 32 20 44 49 56 20 28 20 2b 20 35 32 20 2a   62 DIV ( + 52 *
8b40: 20 63 6f 6c 31 20 29 20 2b 20 33 30 20 2a 20 2d   col1 ) + 30 * -
8b50: 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52   col1 AS col2 FR
8b60: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
8b70: 31 34 31 30 0d 0a 2d 31 35 30 0d 0a 2d 34 32 30  1410..-150..-420
8b80: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
8b90: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
8ba0: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
8bb0: 72 74 20 6c 61 62 65 6c 2d 31 39 36 0d 0a 53 45  rt label-196..SE
8bc0: 4c 45 43 54 20 2d 20 36 32 20 2f 20 28 20 2b 20  LECT - 62 / ( + 
8bd0: 35 32 20 2a 20 63 6f 6c 31 20 29 20 2b 20 33 30  52 * col1 ) + 30
8be0: 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   * - col1 AS col
8bf0: 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
8c00: 2d 0d 0a 2d 31 34 31 30 0d 0a 2d 31 35 30 0d 0a  -..-1410..-150..
8c10: 2d 34 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -420....query I 
8c20: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
8c30: 41 4c 4c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ALL col1 FROM ta
8c40: 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63  b1 WHERE NOT + c
8c50: 6f 6c 30 20 2f 20 63 6f 6c 31 20 3d 20 63 6f 6c  ol0 / col1 = col
8c60: 30 20 2a 20 2d 20 39 35 0d 0a 2d 2d 2d 2d 0d 0a  0 * - 95..----..
8c70: 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e 6c  14..47..5....onl
8c80: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
8c90: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
8ca0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
8cb0: 6c 61 62 65 6c 2d 31 39 38 0d 0a 53 45 4c 45 43  label-198..SELEC
8cc0: 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  T + COUNT( * ) +
8cd0: 20 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 31 20 29   + COUNT( col1 )
8ce0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
8cf0: 0d 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..6....skipif my
8d00: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
8d10: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
8d20: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 38 0d  wsort label-198.
8d30: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20  .SELECT + COUNT 
8d40: 28 20 2a 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20  ( * ) + + COUNT 
8d50: 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  ( col1 ) FROM ta
8d60: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 6f  b1..----..6....o
8d70: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
8d80: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
8d90: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
8da0: 74 20 6c 61 62 65 6c 2d 31 39 39 0d 0a 53 45 4c  t label-199..SEL
8db0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43  ECT DISTINCT - C
8dc0: 4f 55 4e 54 28 20 41 4c 4c 20 2d 20 63 6f 6c 31  OUNT( ALL - col1
8dd0: 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
8de0: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  1..----..-3....s
8df0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
8e00: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
8e10: 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
8e20: 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
8e30: 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
8e40: 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
8e50: 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
8e60: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 39 39  owsort label-199
8e70: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
8e80: 54 20 2d 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20  T - COUNT ( ALL 
8e90: 2d 20 63 6f 6c 31 20 29 20 63 6f 6c 30 20 46 52  - col1 ) col0 FR
8ea0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
8eb0: 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
8ec0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
8ed0: 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
8ee0: 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
8ef0: 63 6f 6c 31 20 2a 20 2d 20 31 36 20 49 53 20 4e  col1 * - 16 IS N
8f00: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
8f10: 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
8f20: 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
8f30: 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
8f40: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
8f50: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
8f60: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
8f70: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54  0 WHERE NULL BET
8f80: 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e  WEEN ( NULL ) AN
8f90: 44 20 2d 20 35 34 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D - 54..----....
8fa0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
8fb0: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
8fc0: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
8fd0: 72 74 20 6c 61 62 65 6c 2d 32 30 32 0d 0a 53 45  rt label-202..SE
8fe0: 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
8ff0: 2b 20 34 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 44 FROM tab2..
9000: 2d 2d 2d 2d 0d 0a 34 37 0d 0a 0d 0a 73 6b 69 70  ----..47....skip
9010: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
9020: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
9030: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
9040: 2d 32 30 32 0d 0a 53 45 4c 45 43 54 20 43 4f 55  -202..SELECT COU
9050: 4e 54 20 28 20 2a 20 29 20 2b 20 34 34 20 46 52  NT ( * ) + 44 FR
9060: 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab2..----..4
9070: 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
9080: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
9090: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
90a0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30  rowsort label-20
90b0: 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  3..SELECT ALL + 
90c0: 39 34 20 2b 20 2d 20 53 55 4d 28 20 38 39 20 29  94 + - SUM( 89 )
90d0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
90e0: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 33 0d 0a  b1..----..-173..
90f0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9100: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9110: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9120: 20 6c 61 62 65 6c 2d 32 30 33 0d 0a 53 45 4c 45   label-203..SELE
9130: 43 54 20 41 4c 4c 20 2b 20 39 34 20 2b 20 2d 20  CT ALL + 94 + - 
9140: 53 55 4d 20 28 20 38 39 20 29 20 41 53 20 63 6f  SUM ( 89 ) AS co
9150: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
9160: 2d 2d 0d 0a 2d 31 37 33 0d 0a 0d 0a 6f 6e 6c 79  --..-173....only
9170: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
9180: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
9190: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
91a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
91b0: 30 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  04..SELECT DISTI
91c0: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
91d0: 57 48 45 52 45 20 2d 20 43 41 53 54 28 20 4e 55  WHERE - CAST( NU
91e0: 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  LL AS SIGNED ) +
91f0: 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 32 33 20 49   - col1 * + 23 I
9200: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
9210: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
9220: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
9230: 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
9240: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 30 34 0d 0a  sort label-204..
9250: 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
9260: 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
9270: 45 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  E - CAST ( NULL 
9280: 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d  AS INTEGER ) + -
9290: 20 63 6f 6c 31 20 2a 20 2b 20 32 33 20 49 53 20   col1 * + 23 IS 
92a0: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
92b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
92c0: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20  t..SELECT + ( - 
92d0: 33 32 20 29 20 2b 20 63 6f 6c 32 20 41 53 20 63  32 ) + col2 AS c
92e0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
92f0: 2d 2d 2d 0d 0a 2d 39 0d 0a 32 36 0d 0a 38 0d 0a  ---..-9..26..8..
9300: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
9310: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
9320: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
9330: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
9340: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
9350: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
9360: 43 54 20 34 36 20 2b 20 38 35 20 63 6f 6c 31 20  CT 46 + 85 col1 
9370: 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
9380: 0a 31 33 31 0d 0a 31 33 31 0d 0a 31 33 31 0d 0a  .131..131..131..
9390: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
93a0: 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
93b0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 57  col2 FROM tab2 W
93c0: 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20  HERE NOT - col0 
93d0: 2b 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 2d  + col0 BETWEEN -
93e0: 20 63 6f 6c 30 20 41 4e 44 20 28 20 2d 20 63 6f   col0 AND ( - co
93f0: 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a  l0 )..----..23..
9400: 34 30 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  40..58....onlyif
9410: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
9420: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
9430: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
9440: 65 6c 2d 32 30 38 0d 0a 53 45 4c 45 43 54 20 44  el-208..SELECT D
9450: 49 53 54 49 4e 43 54 20 4d 49 4e 28 20 33 38 20  ISTINCT MIN( 38 
9460: 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
9470: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
9480: 63 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e  col1 NOT BETWEEN
9490: 20 4e 55 4c 4c 20 41 4e 44 20 28 20 4e 55 4c 4c   NULL AND ( NULL
94a0: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a   )..----..NULL..
94b0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
94c0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
94d0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
94e0: 20 6c 61 62 65 6c 2d 32 30 38 0d 0a 53 45 4c 45   label-208..SELE
94f0: 43 54 20 44 49 53 54 49 4e 43 54 20 4d 49 4e 20  CT DISTINCT MIN 
9500: 28 20 33 38 20 29 20 41 53 20 63 6f 6c 32 20 46  ( 38 ) AS col2 F
9510: 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
9520: 4f 54 20 2d 20 63 6f 6c 31 20 4e 4f 54 20 42 45  OT - col1 NOT BE
9530: 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 28  TWEEN NULL AND (
9540: 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e   NULL )..----..N
9550: 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ULL....query III
9560: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
9570: 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45   * FROM tab2 WHE
9580: 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 28 20 63  RE NULL IN ( ( c
9590: 6f 6c 31 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  ol1 ) )..----...
95a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
95b0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
95c0: 54 20 2d 20 33 35 20 2a 20 2b 20 63 6f 6c 30 20  T - 35 * + col0 
95d0: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
95e0: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 38 35 0d 0a  1..----..-1785..
95f0: 2d 32 39 37 35 0d 0a 2d 33 31 38 35 0d 0a 0d 0a  -2975..-3185....
9600: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
9610: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
9620: 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
9630: 2d 20 39 32 20 49 4e 20 28 20 37 38 20 2a 20 2b  - 92 IN ( 78 * +
9640: 20 28 20 2d 20 63 6f 6c 32 20 29 20 2b 20 2d 20   ( - col2 ) + - 
9650: 37 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  78 )..----..9 va
9660: 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
9670: 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
9680: 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
9690: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
96a0: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
96b0: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
96c0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
96d0: 61 62 65 6c 2d 32 31 32 0d 0a 53 45 4c 45 43 54  abel-212..SELECT
96e0: 20 63 6f 6c 31 20 2a 20 2d 20 43 41 53 54 28 20   col1 * - CAST( 
96f0: 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  - col2 AS SIGNED
9700: 20 29 20 2d 20 38 31 20 46 52 4f 4d 20 74 61 62   ) - 81 FROM tab
9710: 32 0d 0a 2d 2d 2d 2d 0d 0a 31 30 39 32 0d 0a 32  2..----..1092..2
9720: 39 39 39 0d 0a 33 38 30 35 0d 0a 0d 0a 73 6b 69  999..3805....ski
9730: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
9740: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
9750: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
9760: 6c 2d 32 31 32 0d 0a 53 45 4c 45 43 54 20 63 6f  l-212..SELECT co
9770: 6c 31 20 2a 20 2d 20 43 41 53 54 20 28 20 2d 20  l1 * - CAST ( - 
9780: 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
9790: 29 20 2d 20 38 31 20 46 52 4f 4d 20 74 61 62 32  ) - 81 FROM tab2
97a0: 0d 0a 2d 2d 2d 2d 0d 0a 31 30 39 32 0d 0a 32 39  ..----..1092..29
97b0: 39 39 0d 0a 33 38 30 35 0d 0a 0d 0a 71 75 65 72  99..3805....quer
97c0: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
97d0: 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
97e0: 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f  2 WHERE NOT + co
97f0: 6c 32 20 49 4e 20 28 20 31 30 20 2a 20 38 31 20  l2 IN ( 10 * 81 
9800: 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
9810: 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
9820: 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
9830: 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
9840: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9850: 0d 0a 53 45 4c 45 43 54 20 37 36 20 2a 20 2d 20  ..SELECT 76 * - 
9860: 63 6f 6c 30 20 2d 20 63 6f 6c 31 20 46 52 4f 4d  col0 - col1 FROM
9870: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 38   tab1..----..-38
9880: 39 30 0d 0a 2d 36 34 36 35 0d 0a 2d 36 39 36 33  90..-6465..-6963
9890: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
98a0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 38 30  ort..SELECT - 80
98b0: 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 63 6f   + + col0 * + co
98c0: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l0 FROM tab0 WHE
98d0: 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 2a 20  RE NOT + col2 * 
98e0: 2d 20 39 39 20 2b 20 63 6f 6c 32 20 49 53 20 4e  - 99 + col2 IS N
98f0: 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
9900: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
9910: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
9920: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
9930: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
9940: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
9950: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
9960: 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 28  T DISTINCT - ( (
9970: 20 63 6f 6c 31 20 29 20 29 20 63 6f 6c 32 20 46   col1 ) ) col2 F
9980: 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
9990: 2d 35 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d  -51..-67..-77...
99a0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
99b0: 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20 2d 20 34  ..SELECT + ( - 4
99c0: 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
99d0: 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 30   tab2..----..-40
99e0: 0d 0a 2d 34 30 0d 0a 2d 34 30 0d 0a 0d 0a 71 75  ..-40..-40....qu
99f0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
9a00: 45 4c 45 43 54 20 2d 20 28 20 2d 20 34 37 20 29  ELECT - ( - 47 )
9a10: 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
9a20: 0d 0a 34 37 0d 0a 34 37 0d 0a 34 37 0d 0a 0d 0a  ..47..47..47....
9a30: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
9a40: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
9a50: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
9a60: 72 74 20 6c 61 62 65 6c 2d 32 31 39 0d 0a 53 45  rt label-219..SE
9a70: 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20  LECT COUNT( * ) 
9a80: 2a 20 2d 20 34 34 20 46 52 4f 4d 20 74 61 62 30  * - 44 FROM tab0
9a90: 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 32 0d 0a 0d 0a  ..----..-132....
9aa0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
9ab0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
9ac0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
9ad0: 61 62 65 6c 2d 32 31 39 0d 0a 53 45 4c 45 43 54  abel-219..SELECT
9ae0: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2d   COUNT ( * ) * -
9af0: 20 34 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d   44 FROM tab0..-
9b00: 2d 2d 2d 0d 0a 2d 31 33 32 0d 0a 0d 0a 71 75 65  ---..-132....que
9b10: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
9b20: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
9b30: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
9b40: 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49 4e  HERE ( NULL ) IN
9b50: 20 28 20 38 32 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   ( 82 )..----...
9b60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9b70: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
9b80: 54 20 34 38 20 2a 20 31 30 20 41 53 20 63 6f 6c  T 48 * 10 AS col
9b90: 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  2 FROM tab2 AS c
9ba0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 30 0d 0a  or0..----..480..
9bb0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
9bc0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
9bd0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  INCT * FROM tab1
9be0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 28   AS cor0 WHERE (
9bf0: 20 2d 20 63 6f 6c 32 20 2a 20 33 20 29 20 49 53   - col2 * 3 ) IS
9c00: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
9c10: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
9c20: 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62 33  g to c6c0a4111b3
9c30: 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34 64  6d04dbc811a11e4d
9c40: 35 34 63 61 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  54cad....onlyif 
9c50: 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
9c60: 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
9c70: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
9c80: 6c 2d 32 32 33 0d 0a 53 45 4c 45 43 54 20 43 4f  l-223..SELECT CO
9c90: 55 4e 54 28 20 2a 20 29 20 2b 20 31 33 20 63 6f  UNT( * ) + 13 co
9ca0: 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
9cb0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a  cor0..----..16..
9cc0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9cd0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9ce0: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
9cf0: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
9d00: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
9d10: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
9d20: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
9d30: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9d40: 32 32 33 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  223..SELECT COUN
9d50: 54 20 28 20 2a 20 29 20 2b 20 31 33 20 63 6f 6c  T ( * ) + 13 col
9d60: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
9d70: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d  or0..----..16...
9d80: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
9d90: 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
9da0: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
9db0: 48 45 52 45 20 28 20 37 39 20 29 20 3d 20 4e 55  HERE ( 79 ) = NU
9dc0: 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
9dd0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
9de0: 45 43 54 20 2b 20 33 30 20 46 52 4f 4d 20 74 61  ECT + 30 FROM ta
9df0: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
9e00: 20 28 20 63 6f 6c 30 20 29 20 3c 3d 20 2b 20 63   ( col0 ) <= + c
9e10: 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 33 30 0d 0a 0d  ol1..----..30...
9e20: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9e30: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36  ..SELECT ALL + 6
9e40: 33 20 2a 20 34 31 20 41 53 20 63 6f 6c 30 20 46  3 * 41 AS col0 F
9e50: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
9e60: 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 49 53   WHERE + col2 IS
9e70: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
9e80: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
9e90: 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
9ea0: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
9eb0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
9ec0: 32 32 37 0d 0a 53 45 4c 45 43 54 20 31 31 20 2a  227..SELECT 11 *
9ed0: 20 2b 20 63 6f 6c 30 20 2b 20 43 41 53 54 28 20   + col0 + CAST( 
9ee0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
9ef0: 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   * col2 AS col0 
9f00: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
9f10: 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20  0 WHERE NULL IS 
9f20: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
9f30: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
9f40: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
9f50: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
9f60: 20 6c 61 62 65 6c 2d 32 32 37 0d 0a 53 45 4c 45   label-227..SELE
9f70: 43 54 20 31 31 20 2a 20 2b 20 63 6f 6c 30 20 2b  CT 11 * + col0 +
9f80: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
9f90: 49 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 32  INTEGER ) * col2
9fa0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
9fb0: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
9fc0: 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
9fd0: 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
9fe0: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
9ff0: 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2a 20  CT ALL + col0 * 
a000: 2d 20 63 6f 6c 32 20 2d 20 63 6f 6c 31 20 41 53  - col2 - col1 AS
a010: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
a020: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
a030: 34 39 31 30 0d 0a 2d 35 30 32 30 0d 0a 2d 36 32  4910..-5020..-62
a040: 33 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  35....onlyif mys
a050: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
a060: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
a070: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
a080: 32 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  29..SELECT ALL C
a090: 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 35 30  OUNT( * ) + + 50
a0a0: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
a0b0: 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
a0c0: 0d 0a 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..53....skipif m
a0d0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
a0e0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
a0f0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 32 39  owsort label-229
a100: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55  ..SELECT ALL COU
a110: 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 35 30 20  NT ( * ) + + 50 
a120: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
a130: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
a140: 0a 35 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .53....query I r
a150: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
a160: 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 63  ISTINCT col2 * c
a170: 6f 6c 30 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  ol0 - col1 AS co
a180: 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
a190: 2d 2d 0d 0a 36 32 34 0d 0a 38 34 39 0d 0a 39 36  --..624..849..96
a1a0: 30 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  02....onlyif mys
a1b0: 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
a1c0: 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
a1d0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
a1e0: 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32  31..SELECT ALL 2
a1f0: 31 20 2d 20 2d 20 4d 49 4e 28 20 2b 20 63 6f 6c  1 - - MIN( + col
a200: 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  0 ) FROM tab0..-
a210: 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73 6b 69 70 69  ---..36....skipi
a220: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
a230: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
a240: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
a250: 32 33 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  231..SELECT ALL 
a260: 32 31 20 2d 20 2d 20 4d 49 4e 20 28 20 2b 20 63  21 - - MIN ( + c
a270: 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol0 ) FROM tab0.
a280: 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 71 75 65  .----..36....que
a290: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
a2a0: 4c 45 43 54 20 2b 20 31 20 2a 20 2b 20 34 35 20  LECT + 1 * + 45 
a2b0: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
a2c0: 0a 34 35 0d 0a 34 35 0d 0a 34 35 0d 0a 0d 0a 71  .45..45..45....q
a2d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
a2e0: 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 37 38 20  SELECT ALL - 78 
a2f0: 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * + col2 FROM ta
a300: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 30 32 0d  b1..----..-4602.
a310: 0a 2d 35 33 30 34 0d 0a 2d 37 34 38 38 0d 0a 0d  .-5304..-7488...
a320: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
a330: 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
a340: 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
a350: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
a360: 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-234..SELECT DI
a370: 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e  STINCT + CAST( N
a380: 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
a390: 2f 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  / col0 FROM tab0
a3a0: 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
a3b0: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a3c0: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a3d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a3e0: 61 62 65 6c 2d 32 33 34 0d 0a 53 45 4c 45 43 54  abel-234..SELECT
a3f0: 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54   DISTINCT + CAST
a400: 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
a410: 45 52 20 29 20 2f 20 63 6f 6c 30 20 46 52 4f 4d  ER ) / col0 FROM
a420: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab0..----..NUL
a430: 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
a440: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
a450: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
a460: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
a470: 6c 61 62 65 6c 2d 32 33 35 0d 0a 53 45 4c 45 43  label-235..SELEC
a480: 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20  T DISTINCT col1 
a490: 44 49 56 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  DIV - col1 FROM 
a4a0: 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
a4b0: 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-1....skipif my
a4c0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
a4d0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
a4e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 33 35 0d  wsort label-235.
a4f0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
a500: 20 63 6f 6c 31 20 2f 20 2d 20 63 6f 6c 31 20 46   col1 / - col1 F
a510: 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
a520: 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79  ---..-1....query
a530: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
a540: 43 54 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 32  CT - col2 * col2
a550: 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
a560: 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3c  WHERE NOT NULL <
a570: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
a580: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
a590: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
a5a0: 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
a5b0: 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 4e 4f  RE NOT - col1 NO
a5c0: 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 32  T BETWEEN + col2
a5d0: 20 2b 20 36 35 20 2a 20 63 6f 6c 30 20 41 4e 44   + 65 * col0 AND
a5e0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
a5f0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
a600: 53 45 4c 45 43 54 20 38 32 20 46 52 4f 4d 20 74  SELECT 82 FROM t
a610: 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
a620: 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 32 20 29  E NOT ( - col2 )
a630: 20 2f 20 2d 20 39 38 20 49 53 20 4e 4f 54 20 4e   / - 98 IS NOT N
a640: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
a650: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
a660: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
a670: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
a680: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
a690: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
a6a0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
a6b0: 4c 20 28 20 32 38 20 29 20 63 6f 6c 32 20 46 52  L ( 28 ) col2 FR
a6c0: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
a6d0: 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 32 38 0d 0a 32  .----..28..28..2
a6e0: 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
a6f0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
a700: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
a710: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34  rowsort label-24
a720: 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  0..SELECT + COUN
a730: 54 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  T( DISTINCT col1
a740: 20 29 20 2b 20 41 56 47 20 28 20 44 49 53 54 49   ) + AVG ( DISTI
a750: 4e 43 54 20 2b 20 36 33 20 29 20 2a 20 2d 20 31  NCT + 63 ) * - 1
a760: 37 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  7 col0 FROM tab2
a770: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
a780: 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 49 53  col0 + - col2 IS
a790: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
a7a0: 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
a7b0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
a7c0: 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
a7d0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
a7e0: 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
a7f0: 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
a800: 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
a810: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
a820: 20 6c 61 62 65 6c 2d 32 34 30 0d 0a 53 45 4c 45   label-240..SELE
a830: 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 44 49 53  CT + COUNT ( DIS
a840: 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 2b 20 41  TINCT col1 ) + A
a850: 56 47 20 28 20 44 49 53 54 49 4e 43 54 20 2b 20  VG ( DISTINCT + 
a860: 36 33 20 29 20 2a 20 2d 20 31 37 20 63 6f 6c 30  63 ) * - 17 col0
a870: 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20   FROM tab2 cor0 
a880: 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2b  WHERE NOT col0 +
a890: 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e   - col2 IS NOT N
a8a0: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
a8b0: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
a8c0: 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
a8d0: 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
a8e0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 31 0d  wsort label-241.
a8f0: 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
a900: 20 41 4c 4c 20 34 38 20 29 20 41 53 20 63 6f 6c   ALL 48 ) AS col
a910: 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
a920: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  or0..----..3....
a930: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
a940: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
a950: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
a960: 61 62 65 6c 2d 32 34 31 0d 0a 53 45 4c 45 43 54  abel-241..SELECT
a970: 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c 20 34   + COUNT ( ALL 4
a980: 38 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  8 ) AS col1 FROM
a990: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
a9a0: 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..3....onlyif
a9b0: 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
a9c0: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
a9d0: 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
a9e0: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 34 32 0d 0a  sort label-242..
a9f0: 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20  SELECT - col1 * 
aa00: 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  - col0 FROM tab0
aa10: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
aa20: 4f 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  OT + CAST( NULL 
aa30: 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f  AS SIGNED ) + co
aa40: 6c 30 20 4e 4f 54 20 49 4e 20 28 20 2d 20 28 20  l0 NOT IN ( - ( 
aa50: 2d 20 31 34 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  - 14 ) )..----..
aa60: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
aa70: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
aa80: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
aa90: 20 6c 61 62 65 6c 2d 32 34 32 0d 0a 53 45 4c 45   label-242..SELE
aaa0: 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  CT - col1 * - co
aab0: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
aac0: 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b  cor0 WHERE NOT +
aad0: 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
aae0: 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c 30  INTEGER ) + col0
aaf0: 20 4e 4f 54 20 49 4e 20 28 20 2d 20 28 20 2d 20   NOT IN ( - ( - 
ab00: 31 34 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  14 ) )..----....
ab10: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ab20: 0a 53 45 4c 45 43 54 20 2b 20 2d 20 33 34 20 41  .SELECT + - 34 A
ab30: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
ab40: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
ab50: 2d 33 34 0d 0a 2d 33 34 0d 0a 2d 33 34 0d 0a 0d  -34..-34..-34...
ab60: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
ab70: 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
ab80: 2a 20 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * 3 AS col2 FROM
ab90: 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
aba0: 2d 2d 2d 0d 0a 31 34 31 0d 0a 32 39 37 0d 0a 33  ---..141..297..3
abb0: 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
abc0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
abd0: 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
abe0: 48 45 52 45 20 63 6f 6c 32 20 3e 20 2d 20 34 37  HERE col2 > - 47
abf0: 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
ac00: 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
ac10: 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
ac20: 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
ac30: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
ac40: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
ac50: 20 33 37 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   37 AS col2 FROM
ac60: 20 74 61 62 30 20 57 48 45 52 45 20 63 6f 6c 30   tab0 WHERE col0
ac70: 20 3e 20 34 35 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d   > 45..----..37.
ac80: 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
ac90: 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
aca0: 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
acb0: 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
acc0: 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
acd0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
ace0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
acf0: 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  1 col2 FROM tab1
ad00: 20 57 48 45 52 45 20 63 6f 6c 30 20 2b 20 63 6f   WHERE col0 + co
ad10: 6c 32 20 2a 20 33 39 20 49 4e 20 28 20 2d 20 39  l2 * 39 IN ( - 9
ad20: 35 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  5 )..----....que
ad30: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
ad40: 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2d 20 2b 20  LECT col0 * - + 
ad50: 63 6f 6c 31 20 2a 20 28 20 63 6f 6c 31 20 29 20  col1 * ( col1 ) 
ad60: 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
ad70: 0a 2d 31 31 39 36 34 36 0d 0a 2d 33 33 36 36 37  .-119646..-33667
ad80: 35 0d 0a 2d 33 37 39 34 35 36 0d 0a 0d 0a 6f 6e  5..-379456....on
ad90: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
ada0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
adb0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
adc0: 20 6c 61 62 65 6c 2d 32 34 39 0d 0a 53 45 4c 45   label-249..SELE
add0: 43 54 20 2b 20 43 4f 55 4e 54 28 20 63 6f 6c 30  CT + COUNT( col0
ade0: 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45   ) FROM tab1 WHE
adf0: 52 45 20 28 20 4e 55 4c 4c 20 29 20 3d 20 63 6f  RE ( NULL ) = co
ae00: 6c 30 20 4f 52 20 63 6f 6c 30 20 2a 20 28 20 39  l0 OR col0 * ( 9
ae10: 36 20 2a 20 2b 20 63 6f 6c 31 20 29 20 49 53 20  6 * + col1 ) IS 
ae20: 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
ae30: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
ae40: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
ae50: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
ae60: 6f 72 74 20 6c 61 62 65 6c 2d 32 34 39 0d 0a 53  ort label-249..S
ae70: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
ae80: 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 31  col0 ) FROM tab1
ae90: 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20   WHERE ( NULL ) 
aea0: 3d 20 63 6f 6c 30 20 4f 52 20 63 6f 6c 30 20 2a  = col0 OR col0 *
aeb0: 20 28 20 39 36 20 2a 20 2b 20 63 6f 6c 31 20 29   ( 96 * + col1 )
aec0: 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
aed0: 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49  --..3....query I
aee0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
aef0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
af00: 48 45 52 45 20 4e 4f 54 20 28 20 2b 20 39 32 20  HERE NOT ( + 92 
af10: 2b 20 2b 20 63 6f 6c 30 20 29 20 42 45 54 57 45  + + col0 ) BETWE
af20: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 37 36  EN NULL AND + 76
af30: 20 2b 20 38 30 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d   + 80..----..75.
af40: 0a 36 37 0d 0a 35 38 0d 0a 0d 0a 71 75 65 72 79  .67..58....query
af50: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
af60: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
af70: 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
af80: 4e 4f 54 20 63 6f 6c 31 20 3d 20 28 20 2b 20 63  NOT col1 = ( + c
af90: 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  ol0 )..----..9 v
afa0: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
afb0: 20 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61   c4b42765dff94ea
afc0: 61 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62  aa46040e537fb43b
afd0: 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
afe0: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
aff0: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
b000: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35  rowsort label-25
b010: 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
b020: 43 54 20 2b 20 2b 20 4d 41 58 28 20 44 49 53 54  CT + + MAX( DIST
b030: 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 31 20 29 20  INCT - + col1 ) 
b040: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
b050: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a  0..----..-51....
b060: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
b070: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
b080: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b090: 61 62 65 6c 2d 32 35 32 0d 0a 53 45 4c 45 43 54  abel-252..SELECT
b0a0: 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20 4d 41   DISTINCT + + MA
b0b0: 58 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 2b  X ( DISTINCT - +
b0c0: 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
b0d0: 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
b0e0: 0a 2d 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-51....onlyif m
b0f0: 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
b100: 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
b110: 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
b120: 65 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  e: DECIMAL type:
b130: 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
b140: 72 74 20 6c 61 62 65 6c 2d 32 35 33 0d 0a 53 45  rt label-253..SE
b150: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
b160: 53 55 4d 28 20 41 4c 4c 20 63 6f 6c 32 20 29 20  SUM( ALL col2 ) 
b170: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
b180: 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
b190: 4e 4f 54 20 28 20 2b 20 33 35 20 29 20 4e 4f 54  NOT ( + 35 ) NOT
b1a0: 20 42 45 54 57 45 45 4e 20 43 41 53 54 28 20 36   BETWEEN CAST( 6
b1b0: 38 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 2f  8 AS DECIMAL ) /
b1c0: 20 31 33 20 41 4e 44 20 2b 20 43 41 53 54 28 20   13 AND + CAST( 
b1d0: 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29  col0 AS SIGNED )
b1e0: 0d 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 73  ..----..223....s
b1f0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
b200: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
b210: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
b220: 62 65 6c 2d 32 35 33 0d 0a 53 45 4c 45 43 54 20  bel-253..SELECT 
b230: 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 20 28  DISTINCT + SUM (
b240: 20 41 4c 4c 20 63 6f 6c 32 20 29 20 41 53 20 63   ALL col2 ) AS c
b250: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
b260: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
b270: 28 20 2b 20 33 35 20 29 20 4e 4f 54 20 42 45 54  ( + 35 ) NOT BET
b280: 57 45 45 4e 20 43 41 53 54 20 28 20 36 38 20 41  WEEN CAST ( 68 A
b290: 53 20 52 45 41 4c 20 29 20 2f 20 31 33 20 41 4e  S REAL ) / 13 AN
b2a0: 44 20 2b 20 43 41 53 54 20 28 20 63 6f 6c 30 20  D + CAST ( col0 
b2b0: 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d  AS INTEGER )..--
b2c0: 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a 71 75 65 72 79  --..223....query
b2d0: 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
b2e0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
b2f0: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
b300: 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2b 20  0 WHERE NOT ( + 
b310: 31 35 20 2f 20 2b 20 63 6f 6c 32 20 29 20 49 53  15 / + col2 ) IS
b320: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
b330: 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
b340: 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
b350: 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
b360: 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  d....onlyif mysq
b370: 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
b380: 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
b390: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
b3a0: 6c 61 62 65 6c 2d 32 35 35 0d 0a 53 45 4c 45 43  label-255..SELEC
b3b0: 54 20 63 6f 6c 32 20 44 49 56 20 2d 20 2b 20 63  T col2 DIV - + c
b3c0: 6f 6c 31 20 2b 20 63 6f 6c 32 20 44 49 56 20 63  ol1 + col2 DIV c
b3d0: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
b3e0: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
b3f0: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
b400: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
b410: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
b420: 6f 72 74 20 6c 61 62 65 6c 2d 32 35 35 0d 0a 53  ort label-255..S
b430: 45 4c 45 43 54 20 63 6f 6c 32 20 2f 20 2d 20 2b  ELECT col2 / - +
b440: 20 63 6f 6c 31 20 2b 20 63 6f 6c 32 20 2f 20 63   col1 + col2 / c
b450: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol1 FROM tab2 co
b460: 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a  r0..----..0..0..
b470: 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
b480: 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
b490: 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
b4a0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b4b0: 35 36 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 36  56..SELECT - - 6
b4c0: 31 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 28 20 2a  1 col2, COUNT( *
b4d0: 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   ) FROM tab0 AS 
b4e0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 31 0d 0a  cor0..----..61..
b4f0: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
b500: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
b510: 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
b520: 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
b530: 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
b540: 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
b550: 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
b560: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
b570: 62 65 6c 2d 32 35 36 0d 0a 53 45 4c 45 43 54 20  bel-256..SELECT 
b580: 2d 20 2d 20 36 31 20 63 6f 6c 32 2c 20 43 4f 55  - - 61 col2, COU
b590: 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
b5a0: 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
b5b0: 0d 0a 36 31 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  ..61..3....onlyi
b5c0: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
b5d0: 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74  yntax: DECIMAL t
b5e0: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
b5f0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
b600: 35 37 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  57..SELECT * FRO
b610: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
b620: 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e  HERE NULL NOT IN
b630: 20 28 20 43 41 53 54 28 20 2d 20 37 32 20 41 53   ( CAST( - 72 AS
b640: 20 44 45 43 49 4d 41 4c 20 29 20 29 0d 0a 2d 2d   DECIMAL ) )..--
b650: 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
b660: 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
b670: 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
b680: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 35 37  owsort label-257
b690: 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
b6a0: 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
b6b0: 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  RE NULL NOT IN (
b6c0: 20 43 41 53 54 20 28 20 2d 20 37 32 20 41 53 20   CAST ( - 72 AS 
b6d0: 52 45 41 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  REAL ) )..----..
b6e0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
b6f0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
b700: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
b710: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b   AS cor0 WHERE +
b720: 20 63 6f 6c 32 20 2a 20 2b 20 2b 20 63 6f 6c 31   col2 * + + col1
b730: 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 37 37   + + col0 * + 77
b740: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
b750: 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  L AND NULL..----
b760: 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
b770: 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
b780: 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
b790: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
b7a0: 61 62 65 6c 2d 32 35 39 0d 0a 53 45 4c 45 43 54  abel-259..SELECT
b7b0: 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54   DISTINCT + CAST
b7c0: 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
b7d0: 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 41 53   ) + - + col1 AS
b7e0: 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
b7f0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
b800: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
b810: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
b820: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
b830: 72 74 20 6c 61 62 65 6c 2d 32 35 39 0d 0a 53 45  rt label-259..SE
b840: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
b850: 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
b860: 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2b 20 63  NTEGER ) + - + c
b870: 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
b880: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
b890: 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..NULL....onlyif
b8a0: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
b8b0: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
b8c0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
b8d0: 62 65 6c 2d 32 36 30 0d 0a 53 45 4c 45 43 54 20  bel-260..SELECT 
b8e0: 44 49 53 54 49 4e 43 54 20 34 20 41 53 20 63 6f  DISTINCT 4 AS co
b8f0: 6c 30 2c 20 53 55 4d 28 20 2d 20 33 39 20 29 20  l0, SUM( - 39 ) 
b900: 2a 20 36 33 20 41 53 20 63 6f 6c 32 20 46 52 4f  * 63 AS col2 FRO
b910: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
b920: 2d 2d 2d 2d 0d 0a 34 0d 0a 2d 37 33 37 31 0d 0a  ----..4..-7371..
b930: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
b940: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
b950: 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
b960: 74 20 6c 61 62 65 6c 2d 32 36 30 0d 0a 53 45 4c  t label-260..SEL
b970: 45 43 54 20 44 49 53 54 49 4e 43 54 20 34 20 41  ECT DISTINCT 4 A
b980: 53 20 63 6f 6c 30 2c 20 53 55 4d 20 28 20 2d 20  S col0, SUM ( - 
b990: 33 39 20 29 20 2a 20 36 33 20 41 53 20 63 6f 6c  39 ) * 63 AS col
b9a0: 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
b9b0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 0d 0a 2d 37  or0..----..4..-7
b9c0: 33 37 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  371....onlyif my
b9d0: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
b9e0: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
b9f0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ba00: 32 36 31 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f  261..SELECT + CO
ba10: 55 4e 54 28 20 2a 20 29 20 2b 20 35 37 20 2a 20  UNT( * ) + 57 * 
ba20: 2d 20 2d 20 33 31 20 46 52 4f 4d 20 74 61 62 32  - - 31 FROM tab2
ba30: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
ba40: 31 37 37 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  1770....skipif m
ba50: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
ba60: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
ba70: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 31  owsort label-261
ba80: 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
ba90: 20 28 20 2a 20 29 20 2b 20 35 37 20 2a 20 2d 20   ( * ) + 57 * - 
baa0: 2d 20 33 31 20 46 52 4f 4d 20 74 61 62 32 20 41  - 31 FROM tab2 A
bab0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37  S cor0..----..17
bac0: 37 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  70....query I ro
bad0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
bae0: 63 6f 6c 31 20 2a 20 2b 20 2d 20 39 39 20 2b 20  col1 * + - 99 + 
baf0: 2d 20 2d 20 33 20 2a 20 2d 20 63 6f 6c 32 20 2b  - - 3 * - col2 +
bb00: 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
bb10: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
bb20: 0a 2d 31 37 32 35 0d 0a 2d 34 39 34 38 0d 0a 2d  .-1725..-4948..-
bb30: 37 35 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  757....query I r
bb40: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
bb50: 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20 2a 20 63   col0 * col1 * c
bb60: 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f  ol0 + - col1 FRO
bb70: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
bb80: 2d 2d 2d 2d 0d 0a 2d 31 35 38 39 37 30 0d 0a 2d  ----..-158970..-
bb90: 31 38 33 30 36 0d 0a 2d 39 34 31 30 0d 0a 0d 0a  18306..-9410....
bba0: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
bbb0: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
bbc0: 54 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  T - col0 AS col0
bbd0: 2c 20 2b 20 28 20 2d 20 34 34 20 29 20 41 53 20  , + ( - 44 ) AS 
bbe0: 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
bbf0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
bc00: 36 0d 0a 2d 34 34 0d 0a 2d 36 34 0d 0a 2d 34 34  6..-44..-64..-44
bc10: 0d 0a 2d 37 35 0d 0a 2d 34 34 0d 0a 0d 0a 6f 6e  ..-75..-44....on
bc20: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
bc30: 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
bc40: 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
bc50: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
bc60: 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  65..SELECT DISTI
bc70: 4e 43 54 20 2b 20 43 41 53 54 28 20 39 31 20 41  NCT + CAST( 91 A
bc80: 53 20 53 49 47 4e 45 44 20 29 20 2b 20 63 6f 6c  S SIGNED ) + col
bc90: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
bca0: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
bcb0: 45 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  E col0 IS NULL..
bcc0: 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
bcd0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
bce0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
bcf0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 36 35  owsort label-265
bd00: 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
bd10: 54 20 2b 20 43 41 53 54 20 28 20 39 31 20 41 53  T + CAST ( 91 AS
bd20: 20 49 4e 54 45 47 45 52 20 29 20 2b 20 63 6f 6c   INTEGER ) + col
bd30: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
bd40: 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab2 AS cor0 WHER
bd50: 45 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a  E col0 IS NULL..
bd60: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
bd70: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
bd80: 20 41 4c 4c 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c   ALL col0, + col
bd90: 31 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  1 * - col1 AS co
bda0: 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
bdb0: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  cor0..----..51..
bdc0: 2d 31 39 36 0d 0a 38 35 0d 0a 2d 32 35 0d 0a 39  -196..85..-25..9
bdd0: 31 0d 0a 2d 32 32 30 39 0d 0a 0d 0a 6f 6e 6c 79  1..-2209....only
bde0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
bdf0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
be00: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
be10: 61 62 65 6c 2d 32 36 37 0d 0a 53 45 4c 45 43 54  abel-267..SELECT
be20: 20 2b 20 33 31 20 2a 20 2b 20 4d 41 58 28 20 41   + 31 * + MAX( A
be30: 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 29 20 2b 20  LL + + col2 ) + 
be40: 2b 20 53 55 4d 28 20 41 4c 4c 20 2d 20 63 6f 6c  + SUM( ALL - col
be50: 30 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  0 ) AS col2 FROM
be60: 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 37 34   tab1..----..274
be70: 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
be80: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
be90: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
bea0: 6f 72 74 20 6c 61 62 65 6c 2d 32 36 37 0d 0a 53  ort label-267..S
beb0: 45 4c 45 43 54 20 2b 20 33 31 20 2a 20 2b 20 4d  ELECT + 31 * + M
bec0: 41 58 20 28 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c  AX ( ALL + + col
bed0: 32 20 29 20 2b 20 2b 20 53 55 4d 20 28 20 41 4c  2 ) + + SUM ( AL
bee0: 4c 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  L - col0 ) AS co
bef0: 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
bf00: 2d 2d 0d 0a 32 37 34 39 0d 0a 0d 0a 71 75 65 72  --..2749....quer
bf10: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
bf20: 45 43 54 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ECT col2 FROM ta
bf30: 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  b2 WHERE ( NULL 
bf40: 29 20 3c 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  ) <> NULL..----.
bf50: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
bf60: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
bf70: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
bf80: 52 45 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 30 20  RE NOT + + col0 
bf90: 2f 20 2d 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29  / - + ( + col2 )
bfa0: 20 49 4e 20 28 20 63 6f 6c 31 20 29 0d 0a 2d 2d   IN ( col1 )..--
bfb0: 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
bfc0: 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
bfd0: 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
bfe0: 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
bff0: 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
c000: 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
c010: 31 20 2b 20 2b 20 34 30 20 2d 20 2b 20 2b 20 33  1 + + 40 - + + 3
c020: 34 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  4 FROM tab0..---
c030: 2d 0d 0a 32 37 0d 0a 37 0d 0a 38 37 0d 0a 0d 0a  -..27..7..87....
c040: 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
c050: 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
c060: 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c   tab2 WHERE NULL
c070: 20 3c 3e 20 2d 20 38 31 20 2f 20 2b 20 28 20 2d   <> - 81 / + ( -
c080: 20 34 30 20 29 20 2a 20 2d 20 63 6f 6c 30 0d 0a   40 ) * - col0..
c090: 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....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 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -272..SELECT ALL
c0e0: 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20   - COUNT( * ) + 
c0f0: 2d 20 4d 49 4e 28 20 63 6f 6c 30 20 29 20 2d 20  - MIN( col0 ) - 
c100: 2d 20 2d 20 30 20 2b 20 38 36 20 2a 20 2d 20 35  - - 0 + 86 * - 5
c110: 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
c120: 2d 0d 0a 2d 34 34 34 30 0d 0a 0d 0a 73 6b 69 70  -..-4440....skip
c130: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
c140: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
c150: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
c160: 2d 32 37 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -272..SELECT ALL
c170: 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   - COUNT ( * ) +
c180: 20 2d 20 4d 49 4e 20 28 20 63 6f 6c 30 20 29 20   - MIN ( col0 ) 
c190: 2d 20 2d 20 2d 20 30 20 2b 20 38 36 20 2a 20 2d  - - - 0 + 86 * -
c1a0: 20 35 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   51 FROM tab1..-
c1b0: 2d 2d 2d 0d 0a 2d 34 34 34 30 0d 0a 0d 0a 6f 6e  ---..-4440....on
c1c0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
c1d0: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
c1e0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
c1f0: 20 6c 61 62 65 6c 2d 32 37 33 0d 0a 53 45 4c 45   label-273..SELE
c200: 43 54 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54  CT SUM( DISTINCT
c210: 20 2d 20 36 32 20 29 20 46 52 4f 4d 20 74 61 62   - 62 ) FROM tab
c220: 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d 0a  2..----..-62....
c230: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
c240: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
c250: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
c260: 61 62 65 6c 2d 32 37 33 0d 0a 53 45 4c 45 43 54  abel-273..SELECT
c270: 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
c280: 2d 20 36 32 20 29 20 46 52 4f 4d 20 74 61 62 32  - 62 ) FROM tab2
c290: 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a 0d 0a 73  ..----..-62....s
c2a0: 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
c2b0: 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
c2c0: 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
c2d0: 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
c2e0: 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
c2f0: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
c300: 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2a 20 2b 20   ALL - col1 * + 
c310: 63 6f 6c 30 20 63 6f 6c 30 2c 20 63 6f 6c 32 20  col0 col0, col2 
c320: 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
c330: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 35 0d 0a  0..----..-1215..
c340: 34 37 0d 0a 2d 31 38 32 37 0d 0a 31 30 0d 0a 2d  47..-1827..10..-
c350: 39 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79 20  97..99....query 
c360: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c370: 54 20 41 4c 4c 20 35 38 20 2b 20 63 6f 6c 32 20  T ALL 58 + col2 
c380: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
c390: 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
c3a0: 0a 31 31 37 0d 0a 31 32 36 0d 0a 31 35 34 0d 0a  .117..126..154..
c3b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
c3c0: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31  t..SELECT - col1
c3d0: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
c3e0: 62 32 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20  b2 WHERE - col1 
c3f0: 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 63 6f  NOT BETWEEN + co
c400: 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  l1 AND NULL..---
c410: 2d 0d 0a 2d 35 31 0d 0a 2d 36 37 0d 0a 2d 37 37  -..-51..-67..-77
c420: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
c430: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
c440: 49 4e 43 54 20 34 34 20 2a 20 31 33 20 41 53 20  INCT 44 * 13 AS 
c450: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
c460: 2d 2d 2d 2d 0d 0a 35 37 32 0d 0a 0d 0a 71 75 65  ----..572....que
c470: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
c480: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
c490: 63 6f 6c 32 20 2a 20 39 36 20 41 53 20 63 6f 6c  col2 * 96 AS col
c4a0: 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
c4b0: 2d 0d 0a 2d 32 32 30 38 0d 0a 2d 33 38 34 30 0d  -..-2208..-3840.
c4c0: 0a 2d 35 35 36 38 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-5568....onlyif
c4d0: 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72   mysql # DIV for
c4e0: 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
c4f0: 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
c500: 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37 39 0d 0a  sort label-279..
c510: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 35 20  SELECT ALL + 35 
c520: 44 49 56 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f  DIV + - col0 FRO
c530: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab1..----..0.
c540: 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
c550: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
c560: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
c570: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 37  rowsort label-27
c580: 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  9..SELECT ALL + 
c590: 33 35 20 2f 20 2b 20 2d 20 63 6f 6c 30 20 46 52  35 / + - col0 FR
c5a0: 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30  OM tab1..----..0
c5b0: 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ..0..0....query 
c5c0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
c5d0: 54 20 28 20 2b 20 28 20 2d 20 63 6f 6c 30 20 29  T ( + ( - col0 )
c5e0: 20 29 20 2a 20 2b 20 63 6f 6c 31 20 2a 20 35 39   ) * + col1 * 59
c5f0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
c600: 0d 0a 2d 32 35 30 37 35 0d 0a 2d 32 35 32 33 34  ..-25075..-25234
c610: 33 0d 0a 2d 34 32 31 32 36 0d 0a 0d 0a 71 75 65  3..-42126....que
c620: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
c630: 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20 41 53 20  ELECT - col2 AS 
c640: 63 6f 6c 30 2c 20 38 35 20 2b 20 63 6f 6c 32 20  col0, 85 + col2 
c650: 2a 20 2d 20 63 6f 6c 30 20 2a 20 32 34 20 46 52  * - col0 * 24 FR
c660: 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
c670: 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 32 35 33  .----..-23..-253
c680: 30 37 0d 0a 2d 34 30 0d 0a 2d 36 31 33 35 35 0d  07..-40..-61355.
c690: 0a 2d 35 38 0d 0a 2d 31 30 34 33 31 35 0d 0a 0d  .-58..-104315...
c6a0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
c6b0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
c6c0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
c6d0: 6f 72 74 20 6c 61 62 65 6c 2d 32 38 32 0d 0a 53  ort label-282..S
c6e0: 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a  ELECT - COUNT( *
c6f0: 20 29 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20   ) + COUNT( * ) 
c700: 2b 20 2d 20 31 31 20 41 53 20 63 6f 6c 30 20 46  + - 11 AS col0 F
c710: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
c720: 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
c730: 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
c740: 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a 0d 0a 73 6b  .----..-11....sk
c750: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
c760: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
c770: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
c780: 65 6c 2d 32 38 32 0d 0a 53 45 4c 45 43 54 20 2d  el-282..SELECT -
c790: 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 43   COUNT ( * ) + C
c7a0: 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 31  OUNT ( * ) + - 1
c7b0: 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
c7c0: 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
c7d0: 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
c7e0: 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
c7f0: 0d 0a 2d 31 31 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-11....skipif 
c800: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
c810: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
c820: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
c830: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
c840: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
c850: 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  rt..SELECT + col
c860: 31 20 63 6f 6c 31 2c 20 35 34 20 41 53 20 63 6f  1 col1, 54 AS co
c870: 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l2 FROM tab1 cor
c880: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 35 34 0d  0..----..14..54.
c890: 0a 34 37 0d 0a 35 34 0d 0a 35 0d 0a 35 34 0d 0a  .47..54..5..54..
c8a0: 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
c8b0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
c8c0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
c8d0: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
c8e0: 4f 54 20 63 6f 6c 30 20 3c 3e 20 2b 20 2b 20 63  OT col0 <> + + c
c8f0: 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ol2..----....onl
c900: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
c910: 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
c920: 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
c930: 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
c940: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
c950: 32 38 35 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55  285..SELECT - SU
c960: 4d 28 20 2b 20 38 30 20 29 20 2a 20 2d 20 2d 20  M( + 80 ) * - - 
c970: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
c980: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 31  GNED ) FROM tab1
c990: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
c9a0: 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
c9b0: 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
c9c0: 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
c9d0: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 35  owsort label-285
c9e0: 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
c9f0: 20 2b 20 38 30 20 29 20 2a 20 2d 20 2d 20 43 41   + 80 ) * - - CA
ca00: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
ca10: 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 31  EGER ) FROM tab1
ca20: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
ca30: 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
ca40: 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
ca50: 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
ca60: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
ca70: 2d 32 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -286..SELECT ALL
ca80: 20 2d 20 53 55 4d 28 20 2b 20 2d 20 63 6f 6c 32   - SUM( + - col2
ca90: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
caa0: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
cab0: 2d 2d 0d 0a 31 35 36 0d 0a 0d 0a 73 6b 69 70 69  --..156....skipi
cac0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
cad0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
cae0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
caf0: 32 38 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  286..SELECT ALL 
cb00: 2d 20 53 55 4d 20 28 20 2b 20 2d 20 63 6f 6c 32  - SUM ( + - col2
cb10: 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
cb20: 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
cb30: 2d 2d 0d 0a 31 35 36 0d 0a 0d 0a 71 75 65 72 79  --..156....query
cb40: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
cb50: 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
cb60: 6c 30 20 2f 20 2b 20 63 6f 6c 32 20 46 52 4f 4d  l0 / + col2 FROM
cb70: 20 74 61 62 30 20 57 48 45 52 45 20 28 20 4e 4f   tab0 WHERE ( NO
cb80: 54 20 2b 20 28 20 2b 20 37 39 20 29 20 3e 3d 20  T + ( + 79 ) >= 
cb90: 35 38 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  58 )..----....on
cba0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
cbb0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
cbc0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
cbd0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32   rowsort label-2
cbe0: 38 38 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  88..SELECT col2 
cbf0: 44 49 56 20 2d 20 2d 20 36 39 20 46 52 4f 4d 20  DIV - - 69 FROM 
cc00: 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30  tab0..----..0..0
cc10: 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
cc20: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
cc30: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
cc40: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 32 38 38 0d  wsort label-288.
cc50: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2f 20 2d  .SELECT col2 / -
cc60: 20 2d 20 36 39 20 46 52 4f 4d 20 74 61 62 30 0d   - 69 FROM tab0.
cc70: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 31 0d 0a  .----..0..0..1..
cc80: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
cc90: 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37 20 2a 20  t..SELECT - 7 * 
cca0: 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
ccb0: 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
ccc0: 2b 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20  + col0 ) IS NOT 
ccd0: 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
cce0: 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
ccf0: 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
cd00: 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
cd10: 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57  RE NULL NOT BETW
cd20: 45 45 4e 20 2d 20 63 6f 6c 31 20 41 4e 44 20 28  EEN - col1 AND (
cd30: 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20   + + col0 + + + 
cd40: 63 6f 6c 30 20 2b 20 2b 20 2b 20 37 32 20 29 0d  col0 + + + 72 ).
cd50: 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
cd60: 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
cd70: 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
cd80: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
cd90: 6f 72 74 20 6c 61 62 65 6c 2d 32 39 31 0d 0a 53  ort label-291..S
cda0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
cdb0: 20 34 35 20 44 49 56 20 2b 20 35 32 20 41 53 20   45 DIV + 52 AS 
cdc0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col2 FROM tab2..
cdd0: 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
cde0: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
cdf0: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
ce00: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
ce10: 32 39 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  291..SELECT DIST
ce20: 49 4e 43 54 20 2b 20 34 35 20 2f 20 2b 20 35 32  INCT + 45 / + 52
ce30: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
ce40: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  b2..----..0....q
ce50: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
ce60: 53 45 4c 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d  SELECT col1 FROM
ce70: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
ce80: 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
ce90: 20 49 4e 20 28 20 34 39 20 2a 20 63 6f 6c 32 20   IN ( 49 * col2 
cea0: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
ceb0: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
cec0: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
ced0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
cee0: 62 65 6c 2d 32 39 33 0d 0a 53 45 4c 45 43 54 20  bel-293..SELECT 
cef0: 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  ALL COUNT( * ) +
cf00: 20 39 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   98 AS col0 FROM
cf10: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
cf20: 45 52 45 20 4e 55 4c 4c 20 3c 3e 20 28 20 2b 20  ERE NULL <> ( + 
cf30: 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 38  col1 )..----..98
cf40: 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
cf50: 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
cf60: 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
cf70: 72 74 20 6c 61 62 65 6c 2d 32 39 33 0d 0a 53 45  rt label-293..SE
cf80: 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28  LECT ALL COUNT (
cf90: 20 2a 20 29 20 2b 20 39 38 20 41 53 20 63 6f 6c   * ) + 98 AS col
cfa0: 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  0 FROM tab1 AS c
cfb0: 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  or0 WHERE NULL <
cfc0: 3e 20 28 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d  > ( + col1 )..--
cfd0: 2d 2d 0d 0a 39 38 0d 0a 0d 0a 71 75 65 72 79 20  --..98....query 
cfe0: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
cff0: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
d000: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
d010: 20 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 28   WHERE NOT ( - (
d020: 20 2d 20 2b 20 63 6f 6c 30 20 29 20 29 20 49 53   - + col0 ) ) IS
d030: 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
d040: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
d050: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
d060: 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
d070: 30 20 57 48 45 52 45 20 2b 20 38 30 20 2b 20 2b  0 WHERE + 80 + +
d080: 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 3c 3e   ( - - col2 ) <>
d090: 20 2d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d   - - col0..----.
d0a0: 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
d0b0: 67 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66  g to c4b42765dff
d0c0: 39 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66  94eaaa46040e537f
d0d0: 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49  b43b7....query I
d0e0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
d0f0: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41  CT * FROM tab0 A
d100: 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 28  S cor0 WHERE ( (
d110: 20 2b 20 32 32 20 49 53 20 4e 55 4c 4c 20 29 20   + 22 IS NULL ) 
d120: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
d130: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
d140: 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38 37  CT DISTINCT + 87
d150: 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
d160: 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
d170: 20 4e 4f 54 20 28 20 2b 20 33 32 20 2d 20 2d 20   NOT ( + 32 - - 
d180: 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col0 IS NOT NULL
d190: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70   )..----....skip
d1a0: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
d1b0: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
d1c0: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
d1d0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
d1e0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
d1f0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35  sort..SELECT - 5
d200: 38 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  8 col0 FROM tab0
d210: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
d220: 2d 35 38 0d 0a 2d 35 38 0d 0a 2d 35 38 0d 0a 0d  -58..-58..-58...
d230: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
d240: 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
d250: 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
d260: 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
d270: 65 6c 2d 32 39 39 0d 0a 53 45 4c 45 43 54 20 41  el-299..SELECT A
d280: 4c 4c 20 2b 20 34 35 20 44 49 56 20 2b 20 63 6f  LL + 45 DIV + co
d290: 6c 32 20 2b 20 38 39 20 41 53 20 63 6f 6c 30 2c  l2 + 89 AS col0,
d2a0: 20 32 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   23 AS col1 FROM
d2b0: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
d2c0: 2d 2d 2d 0d 0a 38 39 0d 0a 32 33 0d 0a 39 30 0d  ---..89..23..90.
d2d0: 0a 32 33 0d 0a 39 30 0d 0a 32 33 0d 0a 0d 0a 73  .23..90..23....s
d2e0: 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
d2f0: 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
d300: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
d310: 61 62 65 6c 2d 32 39 39 0d 0a 53 45 4c 45 43 54  abel-299..SELECT
d320: 20 41 4c 4c 20 2b 20 34 35 20 2f 20 2b 20 63 6f   ALL + 45 / + co
d330: 6c 32 20 2b 20 38 39 20 41 53 20 63 6f 6c 30 2c  l2 + 89 AS col0,
d340: 20 32 33 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   23 AS col1 FROM
d350: 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
d360: 2d 2d 2d 0d 0a 38 39 0d 0a 32 33 0d 0a 39 30 0d  ---..89..23..90.
d370: 0a 32 33 0d 0a 39 30 0d 0a 32 33 0d 0a 0d 0a 71  .23..90..23....q
d380: 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
d390: 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
d3a0: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
d3b0: 20 57 48 45 52 45 20 2d 20 28 20 2b 20 63 6f 6c   WHERE - ( + col
d3c0: 31 20 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  1 ) NOT BETWEEN 
d3d0: 63 6f 6c 30 20 41 4e 44 20 2b 20 63 6f 6c 30 0d  col0 AND + col0.
d3e0: 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
d3f0: 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
d400: 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
d410: 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f  0e537fb43b7....o
d420: 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
d430: 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
d440: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d450: 74 20 6c 61 62 65 6c 2d 33 30 31 0d 0a 53 45 4c  t label-301..SEL
d460: 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28  ECT ALL + COUNT(
d470: 20 2a 20 29 20 2b 20 2b 20 33 33 20 2a 20 36 32   * ) + + 33 * 62
d480: 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
d490: 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  b0 cor0..----..2
d4a0: 30 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  049....skipif my
d4b0: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
d4c0: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
d4d0: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 30 31 0d  wsort label-301.
d4e0: 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f  .SELECT ALL + CO
d4f0: 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b 20 33 33  UNT ( * ) + + 33
d500: 20 2a 20 36 32 20 41 53 20 63 6f 6c 32 20 46 52   * 62 AS col2 FR
d510: 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d  OM tab0 cor0..--
d520: 2d 2d 0d 0a 32 30 34 39 0d 0a 0d 0a 6f 6e 6c 79  --..2049....only
d530: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
d540: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
d550: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d560: 61 62 65 6c 2d 33 30 32 0d 0a 53 45 4c 45 43 54  abel-302..SELECT
d570: 20 2d 20 28 20 2b 20 4d 49 4e 28 20 2b 20 31 32   - ( + MIN( + 12
d580: 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63   ) ) FROM tab0 c
d590: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 0d 0a  or0..----..-12..
d5a0: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
d5b0: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
d5c0: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
d5d0: 20 6c 61 62 65 6c 2d 33 30 32 0d 0a 53 45 4c 45   label-302..SELE
d5e0: 43 54 20 2d 20 28 20 2b 20 4d 49 4e 20 28 20 2b  CT - ( + MIN ( +
d5f0: 20 31 32 20 29 20 29 20 46 52 4f 4d 20 74 61 62   12 ) ) FROM tab
d600: 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  0 cor0..----..-1
d610: 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
d620: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
d630: 20 2d 20 37 34 20 2a 20 33 33 20 2a 20 38 34 20   - 74 * 33 * 84 
d640: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
d650: 0a 2d 32 30 35 31 32 38 0d 0a 2d 32 30 35 31 32  .-205128..-20512
d660: 38 0d 0a 2d 32 30 35 31 32 38 0d 0a 0d 0a 6f 6e  8..-205128....on
d670: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
d680: 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
d690: 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
d6a0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
d6b0: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
d6c0: 2d 33 30 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43  -304..SELECT - C
d6d0: 41 53 54 28 20 2d 20 2b 20 4d 41 58 28 20 2b 20  AST( - + MAX( + 
d6e0: 2d 20 35 35 20 29 20 41 53 20 53 49 47 4e 45 44  - 55 ) AS SIGNED
d6f0: 20 29 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20   ) - - COUNT( * 
d700: 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
d710: 2d 0d 0a 2d 35 32 0d 0a 0d 0a 73 6b 69 70 69 66  -..-52....skipif
d720: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
d730: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
d740: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
d750: 30 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  04..SELECT - CAS
d760: 54 20 28 20 2d 20 2b 20 4d 41 58 20 28 20 2b 20  T ( - + MAX ( + 
d770: 2d 20 35 35 20 29 20 41 53 20 49 4e 54 45 47 45  - 55 ) AS INTEGE
d780: 52 20 29 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20  R ) - - COUNT ( 
d790: 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  * ) FROM tab0..-
d7a0: 2d 2d 2d 0d 0a 2d 35 32 0d 0a 0d 0a 6f 6e 6c 79  ---..-52....only
d7b0: 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
d7c0: 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
d7d0: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d7e0: 61 62 65 6c 2d 33 30 35 0d 0a 53 45 4c 45 43 54  abel-305..SELECT
d7f0: 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20   ALL COUNT( * ) 
d800: 2d 20 2d 20 4d 41 58 28 20 44 49 53 54 49 4e 43  - - MAX( DISTINC
d810: 54 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  T col0 ) FROM ta
d820: 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a 0d 0a  b1..----..94....
d830: 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
d840: 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
d850: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
d860: 61 62 65 6c 2d 33 30 35 0d 0a 53 45 4c 45 43 54  abel-305..SELECT
d870: 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 2a 20 29   ALL COUNT ( * )
d880: 20 2d 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49   - - MAX ( DISTI
d890: 4e 43 54 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  NCT col0 ) FROM 
d8a0: 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 34 0d 0a  tab1..----..94..
d8b0: 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
d8c0: 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
d8d0: 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
d8e0: 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
d8f0: 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
d900: 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
d910: 43 54 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30  CT col1 * + col0
d920: 20 2a 20 2b 20 2b 20 63 6f 6c 32 20 2d 20 28 20   * + + col2 - ( 
d930: 28 20 2b 20 31 39 20 29 20 29 20 63 6f 6c 32 20  ( + 19 ) ) col2 
d940: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
d950: 0a 32 35 30 35 36 0d 0a 32 39 30 38 31 37 0d 0a  .25056..290817..
d960: 36 38 35 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  68525....skipif 
d970: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
d980: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
d990: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
d9a0: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
d9b0: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
d9c0: 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2d  t..SELECT col0 -
d9d0: 20 35 33 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   53 col1 FROM ta
d9e0: 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 0d 0a 31 31  b2..----..-7..11
d9f0: 0d 0a 32 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..22....query I 
da00: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
da10: 2d 20 35 35 20 2b 20 2d 20 63 6f 6c 30 20 2a 20  - 55 + - col0 * 
da20: 33 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  32 FROM tab0..--
da30: 2d 2d 0d 0a 2d 32 38 33 39 0d 0a 2d 33 31 35 39  --..-2839..-3159
da40: 0d 0a 2d 35 33 35 0d 0a 0d 0a 71 75 65 72 79 20  ..-535....query 
da50: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
da60: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
da70: 57 48 45 52 45 20 2d 20 34 39 20 2d 20 2b 20 63  WHERE - 49 - + c
da80: 6f 6c 32 20 2d 20 35 37 20 2b 20 2b 20 63 6f 6c  ol2 - 57 + + col
da90: 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  2 IS NOT NULL..-
daa0: 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
dab0: 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61  shing to 75c998a
dac0: 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65  a53ac83218cbf2fe
dad0: 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c  b962d0a49....onl
dae0: 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
daf0: 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
db00: 74 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e  type: DIV for in
db10: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
db20: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
db30: 74 20 6c 61 62 65 6c 2d 33 31 30 0d 0a 53 45 4c  t label-310..SEL
db40: 45 43 54 20 41 4c 4c 20 2d 20 2d 20 38 33 20 44  ECT ALL - - 83 D
db50: 49 56 20 2b 20 63 6f 6c 31 20 2b 20 43 41 53 54  IV + col1 + CAST
db60: 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  ( + col2 AS SIGN
db70: 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ED ) AS col1 FRO
db80: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
db90: 2d 2d 2d 2d 0d 0a 31 33 0d 0a 31 38 32 0d 0a 34  ----..13..182..4
dba0: 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
dbb0: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
dbc0: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
dbd0: 6f 72 74 20 6c 61 62 65 6c 2d 33 31 30 0d 0a 53  ort label-310..S
dbe0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 38 33  ELECT ALL - - 83
dbf0: 20 2f 20 2b 20 63 6f 6c 31 20 2b 20 43 41 53 54   / + col1 + CAST
dc00: 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54   ( + col2 AS INT
dc10: 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46  EGER ) AS col1 F
dc20: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
dc30: 0d 0a 2d 2d 2d 2d 0d 0a 31 33 0d 0a 31 38 32 0d  ..----..13..182.
dc40: 0a 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .48....onlyif my
dc50: 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
dc60: 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
dc70: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
dc80: 72 74 20 6c 61 62 65 6c 2d 33 31 31 0d 0a 53 45  rt label-311..SE
dc90: 4c 45 43 54 20 41 4c 4c 20 2d 20 36 20 44 49 56  LECT ALL - 6 DIV
dca0: 20 2d 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20   - col0, + col1 
dcb0: 2b 20 32 35 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 25 AS col0 FRO
dcc0: 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
dcd0: 2d 2d 2d 2d 0d 0a 30 0d 0a 31 30 36 0d 0a 30 0d  ----..0..106..0.
dce0: 0a 32 36 0d 0a 30 0d 0a 34 36 0d 0a 0d 0a 73 6b  .26..0..46....sk
dcf0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
dd00: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
dd10: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
dd20: 62 65 6c 2d 33 31 31 0d 0a 53 45 4c 45 43 54 20  bel-311..SELECT 
dd30: 41 4c 4c 20 2d 20 36 20 2f 20 2d 20 63 6f 6c 30  ALL - 6 / - col0
dd40: 2c 20 2b 20 63 6f 6c 31 20 2b 20 32 35 20 41 53  , + col1 + 25 AS
dd50: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
dd60: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  AS cor0..----..0
dd70: 0d 0a 31 30 36 0d 0a 30 0d 0a 32 36 0d 0a 30 0d  ..106..0..26..0.
dd80: 0a 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .46....query I r
dd90: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
dda0: 20 38 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   85 AS col2 FROM
ddb0: 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
ddc0: 0d 0a 2d 38 35 0d 0a 2d 38 35 0d 0a 2d 38 35 0d  ..-85..-85..-85.
ddd0: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
dde0: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
ddf0: 20 63 6f 6c 30 20 2a 20 2d 20 28 20 2d 20 63 6f   col0 * - ( - co
de00: 6c 30 20 29 20 2b 20 2b 20 2b 20 32 37 20 2a 20  l0 ) + + + 27 * 
de10: 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  + col2 AS col2 F
de20: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
de30: 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 38 32 0d 0a 31  ..----..12082..1
de40: 34 39 34 0d 0a 37 38 33 39 0d 0a 0d 0a 71 75 65  494..7839....que
de50: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
de60: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 35 31  ELECT ALL + - 51
de70: 20 2a 20 34 2c 20 63 6f 6c 30 20 46 52 4f 4d 20   * 4, col0 FROM 
de80: 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
de90: 2d 2d 0d 0a 2d 32 30 34 0d 0a 34 36 0d 0a 2d 32  --..-204..46..-2
dea0: 30 34 0d 0a 36 34 0d 0a 2d 32 30 34 0d 0a 37 35  04..64..-204..75
deb0: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
dec0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
ded0: 2d 20 63 6f 6c 32 20 2a 20 2d 20 31 37 20 41 53  - col2 * - 17 AS
dee0: 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
def0: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
df00: 30 30 33 0d 0a 31 31 35 36 0d 0a 31 36 33 32 0d  003..1156..1632.
df10: 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
df20: 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
df30: 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
df40: 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
df50: 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
df60: 20 6c 61 62 65 6c 2d 33 31 36 0d 0a 53 45 4c 45   label-316..SELE
df70: 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  CT - COUNT( * ) 
df80: 2a 20 2b 20 37 36 20 41 53 20 63 6f 6c 31 2c 20  * + 76 AS col1, 
df90: 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
dfa0: 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30  GNED ) FROM tab0
dfb0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
dfc0: 2d 32 32 38 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  -228..NULL....sk
dfd0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
dfe0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
dff0: 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
e000: 62 65 6c 2d 33 31 36 0d 0a 53 45 4c 45 43 54 20  bel-316..SELECT 
e010: 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  - COUNT ( * ) * 
e020: 2b 20 37 36 20 41 53 20 63 6f 6c 31 2c 20 43 41  + 76 AS col1, CA
e030: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
e040: 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
e050: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
e060: 2d 32 32 38 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e  -228..NULL....on
e070: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
e080: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
e090: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e0a0: 20 6c 61 62 65 6c 2d 33 31 37 0d 0a 53 45 4c 45   label-317..SELE
e0b0: 43 54 20 41 4c 4c 20 31 33 20 2a 20 43 4f 55 4e  CT ALL 13 * COUN
e0c0: 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
e0d0: 0d 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 73 6b  ..----..39....sk
e0e0: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
e0f0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
e100: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
e110: 65 6c 2d 33 31 37 0d 0a 53 45 4c 45 43 54 20 41  el-317..SELECT A
e120: 4c 4c 20 31 33 20 2a 20 43 4f 55 4e 54 20 28 20  LL 13 * COUNT ( 
e130: 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  * ) FROM tab1..-
e140: 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 6f 6e 6c 79 69  ---..39....onlyi
e150: 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
e160: 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
e170: 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
e180: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31  rowsort label-31
e190: 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  8..SELECT ALL * 
e1a0: 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
e1b0: 4e 4f 54 20 2b 20 63 6f 6c 30 20 49 4e 20 28 20  NOT + col0 IN ( 
e1c0: 2b 20 37 20 2a 20 2d 20 2b 20 43 41 53 54 28 20  + 7 * - + CAST( 
e1d0: 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
e1e0: 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20   + ( + + col2 ) 
e1f0: 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  )..----....skipi
e200: 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
e210: 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
e220: 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
e230: 6c 2d 33 31 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-318..SELECT AL
e240: 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  L * FROM tab1 WH
e250: 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 49  ERE NOT + col0 I
e260: 4e 20 28 20 2b 20 37 20 2a 20 2d 20 2b 20 43 41  N ( + 7 * - + CA
e270: 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
e280: 45 47 45 52 20 29 20 2b 20 28 20 2b 20 2b 20 63  EGER ) + ( + + c
e290: 6f 6c 32 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  ol2 ) )..----...
e2a0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
e2b0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
e2c0: 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  : DIV for intege
e2d0: 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
e2e0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e2f0: 62 65 6c 2d 33 31 39 0d 0a 53 45 4c 45 43 54 20  bel-319..SELECT 
e300: 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 31 20 29 20  + MAX( - col1 ) 
e310: 44 49 56 20 2b 20 32 36 20 41 53 20 63 6f 6c 31  DIV + 26 AS col1
e320: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
e330: 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
e340: 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
e350: 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
e360: 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 31 39 0d  wsort label-319.
e370: 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20  .SELECT + MAX ( 
e380: 2d 20 63 6f 6c 31 20 29 20 2f 20 2b 20 32 36 20  - col1 ) / + 26 
e390: 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
e3a0: 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e  0..----..0....on
e3b0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
e3c0: 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
e3d0: 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
e3e0: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
e3f0: 32 30 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  20..SELECT + col
e400: 30 20 44 49 56 20 2b 20 2b 20 34 37 20 46 52 4f  0 DIV + + 47 FRO
e410: 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
e420: 0a 31 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  .1..2....skipif 
e430: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
e440: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
e450: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
e460: 30 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  0..SELECT + col0
e470: 20 2f 20 2b 20 2b 20 34 37 20 46 52 4f 4d 20 74   / + + 47 FROM t
e480: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 0d  ab0..----..0..1.
e490: 0a 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  .2....query II r
e4a0: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
e4b0: 49 53 54 49 4e 43 54 20 63 6f 6c 30 2c 20 35 30  ISTINCT col0, 50
e4c0: 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
e4d0: 0d 0a 31 35 0d 0a 35 30 0d 0a 38 37 0d 0a 35 30  ..15..50..87..50
e4e0: 0d 0a 39 37 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c 79  ..97..50....only
e4f0: 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
e500: 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
e510: 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
e520: 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32 32  owsort label-322
e530: 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2d  ..SELECT CAST( -
e540: 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45   - col1 AS SIGNE
e550: 44 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  D ) FROM tab1..-
e560: 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a  ---..14..47..5..
e570: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
e580: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
e590: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e5a0: 20 6c 61 62 65 6c 2d 33 32 32 0d 0a 53 45 4c 45   label-322..SELE
e5b0: 43 54 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f  CT CAST ( - - co
e5c0: 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
e5d0: 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
e5e0: 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 6f 6e  .14..47..5....on
e5f0: 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
e600: 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
e610: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
e620: 20 6c 61 62 65 6c 2d 33 32 33 0d 0a 53 45 4c 45   label-323..SELE
e630: 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20  CT ALL + COUNT( 
e640: 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
e650: 20 74 61 62 32 20 57 48 45 52 45 20 4e 55 4c 4c   tab2 WHERE NULL
e660: 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
e670: 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
e680: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
e690: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
e6a0: 6f 72 74 20 6c 61 62 65 6c 2d 33 32 33 0d 0a 53  ort label-323..S
e6b0: 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e  ELECT ALL + COUN
e6c0: 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  T ( * ) AS col0 
e6d0: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
e6e0: 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
e6f0: 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
e700: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
e710: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
e720: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
e730: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
e740: 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
e750: 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30  t..SELECT + col0
e760: 20 2b 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46   + - col1 col1 F
e770: 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
e780: 33 37 0d 0a 34 34 0d 0a 38 30 0d 0a 0d 0a 71 75  37..44..80....qu
e790: 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
e7a0: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
e7b0: 30 2c 20 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f  0, col1 + + + co
e7c0: 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20  l1 * - + col1 * 
e7d0: 2d 20 2b 20 28 20 2b 20 37 20 29 20 41 53 20 63  - + ( + 7 ) AS c
e7e0: 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
e7f0: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d   cor0..----..15.
e800: 0a 34 36 30 30 38 0d 0a 38 37 0d 0a 33 31 30 38  .46008..87..3108
e810: 0d 0a 39 37 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69  ..97..8....onlyi
e820: 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
e830: 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
e840: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
e850: 62 65 6c 2d 33 32 36 0d 0a 53 45 4c 45 43 54 20  bel-326..SELECT 
e860: 2b 20 38 31 20 2a 20 2d 20 4d 49 4e 28 20 41 4c  + 81 * - MIN( AL
e870: 4c 20 31 35 20 29 20 41 53 20 63 6f 6c 30 20 46  L 15 ) AS col0 F
e880: 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
e890: 2d 31 32 31 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1215....skipif 
e8a0: 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
e8b0: 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
e8c0: 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 32  rowsort label-32
e8d0: 36 0d 0a 53 45 4c 45 43 54 20 2b 20 38 31 20 2a  6..SELECT + 81 *
e8e0: 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 31 35 20   - MIN ( ALL 15 
e8f0: 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
e900: 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 35  ab0..----..-1215
e910: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
e920: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20  ort..SELECT + + 
e930: 63 6f 6c 32 20 2b 20 2d 20 36 33 20 2a 20 63 6f  col2 + - 63 * co
e940: 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
e950: 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
e960: 2d 2d 0d 0a 2d 32 35 36 0d 0a 2d 32 38 39 33 0d  --..-256..-2893.
e970: 0a 2d 37 38 36 0d 0a 0d 0a 71 75 65 72 79 20 49  .-786....query I
e980: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
e990: 20 41 4c 4c 20 36 34 20 2b 20 2b 20 32 38 20 41   ALL 64 + + 28 A
e9a0: 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
e9b0: 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
e9c0: 39 32 0d 0a 39 32 0d 0a 39 32 0d 0a 0d 0a 71 75  92..92..92....qu
e9d0: 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
e9e0: 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32  ELECT ALL - col2
e9f0: 20 2a 20 2d 20 63 6f 6c 30 20 2b 20 33 36 20 46   * - col0 + 36 F
ea00: 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
ea10: 0d 0a 2d 2d 2d 2d 0d 0a 37 34 31 0d 0a 39 30 36  ..----..741..906
ea20: 0d 0a 39 36 33 39 0d 0a 0d 0a 71 75 65 72 79 20  ..9639....query 
ea30: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
ea40: 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2b 20 2d  T ALL + col2 + -
ea50: 20 35 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53   51 FROM tab2 AS
ea60: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
ea70: 0d 0a 2d 32 38 0d 0a 37 0d 0a 0d 0a 73 6b 69 70  ..-28..7....skip
ea80: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
ea90: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
eaa0: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
eab0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
eac0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
ead0: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35  sort..SELECT - 5
eae0: 37 20 2b 20 2b 20 63 6f 6c 31 20 63 6f 6c 32 20  7 + + col1 col2 
eaf0: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
eb00: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 0d 0a 31 30 0d  0..----..-6..10.
eb10: 0a 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .20....query I r
eb20: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
eb30: 49 53 54 49 4e 43 54 20 2b 20 2b 20 31 34 20 2b  ISTINCT + + 14 +
eb40: 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20   - col0 AS col1 
eb50: 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
eb60: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 2d 37  0..----..-37..-7
eb70: 31 0d 0a 2d 37 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  1..-77....onlyif
eb80: 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
eb90: 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
eba0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
ebb0: 65 6c 2d 33 33 33 0d 0a 53 45 4c 45 43 54 20 41  el-333..SELECT A
ebc0: 4c 4c 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a 20  LL ( + COUNT( * 
ebd0: 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ) ) FROM tab1 AS
ebe0: 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
ebf0: 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   >= NULL..----..
ec00: 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
ec10: 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
ec20: 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
ec30: 6f 72 74 20 6c 61 62 65 6c 2d 33 33 33 0d 0a 53  ort label-333..S
ec40: 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 43 4f  ELECT ALL ( + CO
ec50: 55 4e 54 20 28 20 2a 20 29 20 29 20 46 52 4f 4d  UNT ( * ) ) FROM
ec60: 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
ec70: 45 52 45 20 4e 55 4c 4c 20 3e 3d 20 4e 55 4c 4c  ERE NULL >= NULL
ec80: 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
ec90: 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
eca0: 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
ecb0: 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
ecc0: 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
ecd0: 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
ece0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
ecf0: 4c 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c  L - col1 - - col
ed00: 32 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  2 col1 FROM tab0
ed10: 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
ed20: 0d 0a 2d 33 34 0d 0a 39 38 0d 0a 0d 0a 71 75 65  ..-34..98....que
ed30: 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
ed40: 4c 45 43 54 20 35 36 20 41 53 20 63 6f 6c 31 20  LECT 56 AS col1 
ed50: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
ed60: 2d 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20  - col1 * - col2 
ed70: 2b 20 2b 20 38 39 20 2d 20 2b 20 36 34 20 49 53  + + 89 - + 64 IS
ed80: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
ed90: 75 65 72 79 20 49 49 49 49 49 49 20 72 6f 77 73  uery IIIIII rows
eda0: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
edb0: 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
edc0: 2c 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  , tab1 AS cor0 W
edd0: 48 45 52 45 20 4e 4f 54 20 2b 20 36 36 20 3c 3e  HERE NOT + 66 <>
ede0: 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
edf0: 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
ee00: 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2a  .SELECT - col0 *
ee10: 20 2d 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20   - col1, - col2 
ee20: 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
ee30: 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 35 0d 0a 2d  0..----..1215..-
ee40: 34 37 0d 0a 31 38 32 37 0d 0a 2d 31 30 0d 0a 39  47..1827..-10..9
ee50: 37 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20  7..-99....query 
ee60: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
ee70: 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
ee80: 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48  ROM tab2 cor0 WH
ee90: 45 52 45 20 4e 4f 54 20 28 20 2b 20 63 6f 6c 32  ERE NOT ( + col2
eea0: 20 2d 20 2b 20 34 39 20 2f 20 2d 20 33 37 20 2b   - + 49 / - 37 +
eeb0: 20 2d 20 36 39 20 2d 20 2b 20 2d 20 63 6f 6c 32   - 69 - + - col2
eec0: 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
eed0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
eee0: 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
eef0: 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  T * FROM tab0 co
ef00: 72 30 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  r0 WHERE ( NULL 
ef10: 29 20 3c 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d  ) <= ( NULL )..-
ef20: 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
ef30: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
ef40: 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
ef50: 20 74 61 62 30 20 63 6f 72 30 20 57 48 45 52 45   tab0 cor0 WHERE
ef60: 20 4e 55 4c 4c 20 3e 3d 20 28 20 37 32 20 29 0d   NULL >= ( 72 ).
ef70: 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
ef80: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
ef90: 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
efa0: 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
efb0: 20 2d 20 38 37 20 49 4e 20 28 20 2b 20 33 37 2c   - 87 IN ( + 37,
efc0: 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   col1 )..----..9
efd0: 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
efe0: 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
eff0: 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
f000: 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  a49....onlyif my
f010: 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
f020: 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
f030: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
f040: 33 34 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f  342..SELECT - CO
f050: 55 4e 54 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20  UNT( + + col1 ) 
f060: 2a 20 2d 20 31 32 20 41 53 20 63 6f 6c 32 20 46  * - 12 AS col2 F
f070: 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
f080: 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73 6b  ..----..36....sk
f090: 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
f0a0: 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
f0b0: 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
f0c0: 65 6c 2d 33 34 32 0d 0a 53 45 4c 45 43 54 20 2d  el-342..SELECT -
f0d0: 20 43 4f 55 4e 54 20 28 20 2b 20 2b 20 63 6f 6c   COUNT ( + + col
f0e0: 31 20 29 20 2a 20 2d 20 31 32 20 41 53 20 63 6f  1 ) * - 12 AS co
f0f0: 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
f100: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 36 0d 0a  cor0..----..36..
f110: 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
f120: 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
f130: 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
f140: 73 6f 72 74 20 6c 61 62 65 6c 2d 33 34 33 0d 0a  sort label-343..
f150: 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20  SELECT COUNT( * 
f160: 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
f170: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
f180: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
f190: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
f1a0: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
f1b0: 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
f1c0: 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
f1d0: 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
f1e0: 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
f1f0: 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
f200: 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
f210: 6f 72 74 20 6c 61 62 65 6c 2d 33 34 33 0d 0a 53  ort label-343..S
f220: 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  ELECT COUNT ( * 
f230: 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
f240: 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
f250: 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
f260: 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
f270: 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
f280: 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
f290: 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
f2a0: 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
f2b0: 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  mns..query II ro
f2c0: 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
f2d0: 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 63 6f  STINCT + col1 co
f2e0: 6c 32 2c 20 63 6f 6c 30 20 2a 20 33 20 2a 20 2d  l2, col0 * 3 * -
f2f0: 20 35 33 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d   53 AS col0 FROM
f300: 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a   tab0..----..1..
f310: 2d 31 35 34 32 33 0d 0a 32 31 0d 0a 2d 31 33 38  -15423..21..-138
f320: 33 33 0d 0a 38 31 0d 0a 2d 32 33 38 35 0d 0a 0d  33..81..-2385...
f330: 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
f340: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
f350: 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
f360: 57 48 45 52 45 20 4e 55 4c 4c 20 42 45 54 57 45  WHERE NULL BETWE
f370: 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f  EN NULL AND - co
f380: 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l1..----....quer
f390: 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
f3a0: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
f3b0: 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
f3c0: 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 42 45   NOT NULL NOT BE
f3d0: 54 57 45 45 4e 20 2d 20 2b 20 35 36 20 2a 20 2d  TWEEN - + 56 * -
f3e0: 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20   + ( + + col1 ) 
f3f0: 2a 20 2b 20 31 36 20 2b 20 2b 20 2b 20 63 6f 6c  * + 16 + + + col
f400: 32 20 2d 20 2b 20 63 6f 6c 31 20 41 4e 44 20 4e  2 - + col1 AND N
f410: 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
f420: 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
f430: 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
f440: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
f450: 6c 61 62 65 6c 2d 33 34 37 0d 0a 53 45 4c 45 43  label-347..SELEC
f460: 54 20 44 49 53 54 49 4e 43 54 20 53 55 4d 28 20  T DISTINCT SUM( 
f470: 41 4c 4c 20 2d 20 2b 20 33 33 20 29 20 41 53 20  ALL - + 33 ) AS 
f480: 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col1 FROM tab2..
f490: 2d 2d 2d 2d 0d 0a 2d 39 39 0d 0a 0d 0a 73 6b 69  ----..-99....ski
f4a0: 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
f4b0: 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
f4c0: 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
f4d0: 6c 2d 33 34 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-347..SELECT DI
f4e0: 53 54 49 4e 43 54 20 53 55 4d 20 28 20 41 4c 4c  STINCT SUM ( ALL
f4f0: 20 2d 20 2b 20 33 33 20 29 20 41 53 20 63 6f 6c   - + 33 ) AS col
f500: 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
f510: 2d 0d 0a 2d 39 39 0d 0a 0d 0a 71 75 65 72 79 20  -..-99....query 
f520: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
f530: 43 54 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c  CT - col1 AS col
f540: 30 2c 20 2d 20 37 31 20 46 52 4f 4d 20 74 61 62  0, - 71 FROM tab
f550: 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d 37  1..----..-14..-7
f560: 31 0d 0a 2d 34 37 0d 0a 2d 37 31 0d 0a 2d 35 0d  1..-47..-71..-5.
f570: 0a 2d 37 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-71....query I 
f580: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
f590: 41 4c 4c 20 2b 20 28 20 32 38 20 29 20 41 53 20  ALL + ( 28 ) AS 
f5a0: 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
f5b0: 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38  S cor0..----..28
f5c0: 0d 0a 32 38 0d 0a 32 38 0d 0a 0d 0a 71 75 65 72  ..28..28....quer
f5d0: 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
f5e0: 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
f5f0: 31 34 2c 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c  14, col1 + + col
f600: 31 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c  1 + - col1 * col
f610: 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
f620: 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
f630: 2d 0d 0a 31 34 0d 0a 2d 32 32 34 34 0d 0a 31 34  -..14..-2244..14
f640: 0d 0a 2d 34 37 37 34 0d 0a 31 34 0d 0a 2d 34 38  ..-4774..14..-48
f650: 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  91....query II r
f660: 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d  owsort..SELECT -
f670: 20 34 20 41 53 20 63 6f 6c 31 2c 20 2d 20 63 6f   4 AS col1, - co
f680: 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
f690: 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 0d 0a  cor0..----..-4..
f6a0: 2d 31 35 0d 0a 2d 34 0d 0a 2d 38 37 0d 0a 2d 34  -15..-4..-87..-4
f6b0: 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-97....skipif 
f6c0: 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
f6d0: 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
f6e0: 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
f6f0: 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
f700: 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
f710: 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
f720: 4e 43 54 20 2d 20 63 6f 6c 32 20 63 6f 6c 32 2c  NCT - col2 col2,
f730: 20 2b 20 63 6f 6c 30 20 2a 20 37 33 20 46 52 4f   + col0 * 73 FRO
f740: 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
f750: 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 33 33 35 38 0d  ----..-23..3358.
f760: 0a 2d 34 30 0d 0a 34 36 37 32 0d 0a 2d 35 38 0d  .-40..4672..-58.
f770: 0a 35 34 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .5475....query I
f780: 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
f790: 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c 31 20 2b   - col0 * col1 +
f7a0: 20 38 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   82 AS col1 FROM
f7b0: 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
f7c0: 2d 2d 2d 0d 0a 2d 33 34 33 0d 0a 2d 34 31 39 35  ---..-343..-4195
f7d0: 0d 0a 2d 36 33 32 0d 0a 0d 0a 71 75 65 72 79 20  ..-632....query 
f7e0: 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
f7f0: 43 54 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32 20  CT col2, + col2 
f800: 2d 20 2d 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 2b  - - + col2 - + +
f810: 20 63 6f 6c 32 20 2b 20 2b 20 34 31 20 2b 20 2d   col2 + + 41 + -
f820: 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2a 20 2d   col2 * col1 * -
f830: 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31   - col1 + - col1
f840: 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
f850: 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
f860: 0d 0a 32 33 0d 0a 2d 35 39 38 31 30 0d 0a 34 30  ..23..-59810..40
f870: 0d 0a 2d 32 33 37 31 35 36 0d 0a 35 38 0d 0a 2d  ..-237156..58..-
f880: 32 36 30 33 33 30 0d 0a 0d 0a 71 75 65 72 79 20  260330....query 
f890: 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
f8a0: 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ECT * FROM tab0 
f8b0: 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
f8c0: 54 20 28 20 4e 4f 54 20 2b 20 2b 20 63 6f 6c 32  T ( NOT + + col2
f8d0: 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
f8e0: 4c 20 41 4e 44 20 28 20 2b 20 63 6f 6c 30 20 29  L AND ( + col0 )
f8f0: 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 31   )..----..15..81
f900: 0d 0a 34 37 0d 0a 39 37 0d 0a 31 0d 0a 39 39 0d  ..47..97..1..99.
f910: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
f920: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
f930: 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
f940: 4f 54 20 63 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f  OT col2 + + - co
f950: 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  l0 IS NOT NULL..
f960: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
f970: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
f980: 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2a 20  DISTINCT col1 * 
f990: 2d 20 32 35 20 2a 20 2b 20 63 6f 6c 32 20 41 53  - 25 * + col2 AS
f9a0: 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
f9b0: 0a 2d 2d 2d 2d 0d 0a 2d 33 33 36 30 30 0d 0a 2d  .----..-33600..-
f9c0: 37 33 37 35 0d 0a 2d 37 39 39 30 30 0d 0a 0d 0a  7375..-79900....
f9d0: 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
f9e0: 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
f9f0: 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
fa00: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
fa10: 2d 33 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -358..SELECT ALL
fa20: 20 2b 20 43 41 53 54 28 20 2d 20 2d 20 63 6f 6c   + CAST( - - col
fa30: 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 63 6f  2 AS SIGNED ) co
fa40: 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l1 FROM tab1..--
fa50: 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d 0a  --..59..68..96..
fa60: 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
fa70: 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
fa80: 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
fa90: 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
faa0: 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
fab0: 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
fac0: 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
fad0: 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
fae0: 33 35 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  358..SELECT ALL 
faf0: 2b 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c  + CAST ( - - col
fb00: 32 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 63  2 AS INTEGER ) c
fb10: 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
fb20: 2d 2d 2d 0d 0a 35 39 0d 0a 36 38 0d 0a 39 36 0d  ---..59..68..96.
fb30: 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
fb40: 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
fb50: 20 33 35 20 2b 20 2d 20 63 6f 6c 30 20 46 52 4f   35 + - col0 FRO
fb60: 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
fb70: 32 30 0d 0a 2d 31 32 36 0d 0a 2d 38 36 0d 0a 0d  20..-126..-86...
fb80: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
fb90: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
fba0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
fbb0: 6f 72 74 20 6c 61 62 65 6c 2d 33 36 30 0d 0a 53  ort label-360..S
fbc0: 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20 44  ELECT + COUNT( D
fbd0: 49 53 54 49 4e 43 54 20 2b 20 33 20 29 20 46 52  ISTINCT + 3 ) FR
fbe0: 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
fbf0: 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  .----..1....skip
fc00: 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
fc10: 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
fc20: 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
fc30: 2d 33 36 30 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -360..SELECT + C
fc40: 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
fc50: 2b 20 33 20 29 20 46 52 4f 4d 20 74 61 62 30 20  + 3 ) FROM tab0 
fc60: 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
fc70: 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
fc80: 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
fc90: 2d 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 38  - + col1 * - - 8
fca0: 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
fcb0: 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 33 34  or0..----..-1134
fcc0: 0d 0a 2d 33 38 30 37 0d 0a 2d 34 30 35 0d 0a 0d  ..-3807..-405...
fcd0: 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
fce0: 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
fcf0: 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
fd00: 6f 72 74 20 6c 61 62 65 6c 2d 33 36 32 0d 0a 53  ort label-362..S
fd10: 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
fd20: 20 31 33 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a   13 + + COUNT( *
fd30: 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
fd40: 2d 2d 0d 0a 31 36 0d 0a 0d 0a 73 6b 69 70 69 66  --..16....skipif
fd50: 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
fd60: 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
fd70: 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
fd80: 36 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  62..SELECT DISTI
fd90: 4e 43 54 20 2b 20 31 33 20 2b 20 2b 20 43 4f 55  NCT + 13 + + COU
fda0: 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61  NT ( * ) FROM ta
fdb0: 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a  b0..----..16....
fdc0: 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
fdd0: 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2a 20 34  .SELECT col2 * 4
fde0: 37 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  7 + col0 AS col1
fdf0: 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
fe00: 0d 0a 32 38 35 38 0d 0a 33 32 38 37 0d 0a 34 35  ..2858..3287..45
fe10: 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  63....query III 
fe20: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
fe30: 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
fe40: 45 20 63 6f 6c 31 20 3e 20 28 20 2d 20 2d 20 28  E col1 > ( - - (
fe50: 20 2b 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d   + col0 ) )..---
fe60: 2d 0d 0a 31 35 0d 0a 38 31 0d 0a 34 37 0d 0a 0d  -..15..81..47...
fe70: 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
fe80: 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 37 30 20  ..SELECT + - 70 
fe90: 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
fea0: 2b 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 4e  + col2 BETWEEN N
feb0: 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 31 0d 0a  ULL AND + col1..
fec0: 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
fed0: 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
fee0: 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
fef0: 2a 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 31 34 20  * + col1 * + 14 
ff00: 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
ff10: 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 34 32 32 0d  0..----..-16422.
ff20: 0a 2d 34 33 31 32 30 0d 0a 2d 35 34 34 30 34 0d  .-43120..-54404.
ff30: 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
ff40: 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46  sort..SELECT * F
ff50: 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
ff60: 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20   WHERE NULL NOT 
ff70: 42 45 54 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44  BETWEEN col1 AND
ff80: 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
ff90: 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
ffa0: 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 32  SELECT ALL + + 2
ffb0: 31 20 2a 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  1 * - col1 FROM 
ffc0: 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab2 cor0..----.
ffd0: 0a 2d 31 30 37 31 0d 0a 2d 31 34 30 37 0d 0a 2d  .-1071..-1407..-
ffe0: 31 36 31 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  1617....skipif p
fff0: 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
10000 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
10010 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
10020 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
10030 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
10040 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2d  ..SELECT ALL ( -
10050 20 2d 20 63 6f 6c 30 20 29 20 2a 20 2b 20 2b 20   - col0 ) * + + 
10060 34 30 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 2b 20  40 * - - col0 + 
10070 36 36 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  66 col0 FROM tab
10080 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
10090 4e 4f 54 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 20  NOT col1 * col0 
100a0 2a 20 2d 20 2b 20 34 36 20 49 53 20 4e 55 4c 4c  * - + 46 IS NULL
100b0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 34 31 30 36 0d 0a  ..----..104106..
100c0 32 38 39 30 36 36 0d 0a 33 33 31 33 30 36 0d 0a  289066..331306..
100d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
100e0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
100f0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
10100 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10110 65 6c 2d 33 37 30 0d 0a 53 45 4c 45 43 54 20 44  el-370..SELECT D
10120 49 53 54 49 4e 43 54 20 2d 20 43 41 53 54 28 20  ISTINCT - CAST( 
10130 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  + col2 AS SIGNED
10140 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
10150 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
10160 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d 39 36 0d 0a  .-59..-68..-96..
10170 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10180 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10190 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
101a0 20 6c 61 62 65 6c 2d 33 37 30 0d 0a 53 45 4c 45   label-370..SELE
101b0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 41  CT DISTINCT - CA
101c0 53 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49  ST ( + col2 AS I
101d0 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 31  NTEGER ) AS col1
101e0 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
101f0 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d  .----..-59..-68.
10200 0a 2d 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-96....query I 
10210 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10220 2d 20 2b 20 31 32 20 2d 20 2b 20 31 34 20 46 52  - + 12 - + 14 FR
10230 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
10240 0a 2d 2d 2d 2d 0d 0a 2d 32 36 0d 0a 2d 32 36 0d  .----..-26..-26.
10250 0a 2d 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-26....query I 
10260 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
10270 41 4c 4c 20 2d 20 33 33 20 2b 20 2d 20 63 6f 6c  ALL - 33 + - col
10280 31 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  1 + col0 AS col1
10290 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
102a0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d 0a 2d  r0..----..-25..-
102b0 33 38 0d 0a 2d 34 36 0d 0a 0d 0a 6f 6e 6c 79 69  38..-46....onlyi
102c0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
102d0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
102e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
102f0 62 65 6c 2d 33 37 33 0d 0a 53 45 4c 45 43 54 20  bel-373..SELECT 
10300 2b 20 36 34 20 2d 20 2b 20 2b 20 28 20 2d 20 43  + 64 - + + ( - C
10310 4f 55 4e 54 28 20 2a 20 29 20 29 20 41 53 20 63  OUNT( * ) ) AS c
10320 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol1 FROM tab1 AS
10330 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 36 37 0d   cor0..----..67.
10340 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
10350 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
10360 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10370 74 20 6c 61 62 65 6c 2d 33 37 33 0d 0a 53 45 4c  t label-373..SEL
10380 45 43 54 20 2b 20 36 34 20 2d 20 2b 20 2b 20 28  ECT + 64 - + + (
10390 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29   - COUNT ( * ) )
103a0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
103b0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
103c0 0d 0a 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..67....query I 
103d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
103e0 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2d 20  DISTINCT col1 - 
103f0 2d 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  - - col0 FROM ta
10400 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 37 0d 0a 2d  b1..----..-37..-
10410 34 34 0d 0a 2d 38 30 0d 0a 0d 0a 71 75 65 72 79  44..-80....query
10420 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
10430 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b 20  CT - col1 * - + 
10440 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 2d 20 37  ( - col1 ) + - 7
10450 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
10460 2d 0d 0a 2d 32 32 38 31 0d 0a 2d 32 36 38 0d 0a  -..-2281..-268..
10470 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -97....onlyif my
10480 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
10490 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
104a0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
104b0 6f 72 74 20 6c 61 62 65 6c 2d 33 37 36 0d 0a 53  ort label-376..S
104c0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
104d0 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
104e0 20 2d 20 37 33 20 2a 20 2b 20 43 41 53 54 28 20   - 73 * + CAST( 
104f0 2d 20 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  - - col2 AS SIGN
10500 45 44 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  ED ) IS NULL..--
10510 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
10520 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
10530 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72  ble..query III r
10540 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 36  owsort label-376
10550 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
10560 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
10570 45 52 45 20 2d 20 37 33 20 2a 20 2b 20 43 41 53  ERE - 73 * + CAS
10580 54 20 28 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20  T ( - - col2 AS 
10590 49 4e 54 45 47 45 52 20 29 20 49 53 20 4e 55 4c  INTEGER ) IS NUL
105a0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
105b0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
105c0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
105d0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
105e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 37 0d  wsort label-377.
105f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
10600 20 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   - + CAST( NULL 
10610 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
10620 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
10630 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
10640 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
10650 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
10660 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
10670 73 6f 72 74 20 6c 61 62 65 6c 2d 33 37 37 0d 0a  sort label-377..
10680 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
10690 2d 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - + CAST ( NULL 
106a0 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
106b0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
106c0 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d   NULL IS NULL..-
106d0 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
106e0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
106f0 44 49 53 54 49 4e 43 54 20 36 34 2c 20 2d 20 63  DISTINCT 64, - c
10700 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol1 AS col2 FROM
10710 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d   tab1..----..64.
10720 0a 2d 31 34 0d 0a 36 34 0d 0a 2d 34 37 0d 0a 36  .-14..64..-47..6
10730 34 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49  4..-5....query I
10740 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
10750 54 20 44 49 53 54 49 4e 43 54 20 37 35 20 41 53  T DISTINCT 75 AS
10760 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 32 20 41 53   col1, - col2 AS
10770 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d   col2 FROM tab0.
10780 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 2d 31 30 0d 0a  .----..75..-10..
10790 37 35 0d 0a 2d 34 37 0d 0a 37 35 0d 0a 2d 39 39  75..-47..75..-99
107a0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
107b0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
107c0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
107d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 30  owsort label-380
107e0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43  ..SELECT ALL + C
107f0 4f 55 4e 54 28 20 32 36 20 29 20 46 52 4f 4d 20  OUNT( 26 ) FROM 
10800 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
10810 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
10820 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
10830 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
10840 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38  rowsort label-38
10850 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  0..SELECT ALL + 
10860 43 4f 55 4e 54 20 28 20 32 36 20 29 20 46 52 4f  COUNT ( 26 ) FRO
10870 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
10880 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79  ----..3....query
10890 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
108a0 43 54 20 41 4c 4c 20 2b 20 34 35 20 41 53 20 63  CT ALL + 45 AS c
108b0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
108c0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
108d0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
108e0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
108f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
10900 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
10910 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33   rowsort label-3
10920 38 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43  82..SELECT - - C
10930 4f 55 4e 54 28 20 2d 20 28 20 2d 20 63 6f 6c 31  OUNT( - ( - col1
10940 20 29 20 29 20 2a 20 2d 20 35 39 20 63 6f 6c 30   ) ) * - 59 col0
10950 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
10960 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 37 0d 0a  r0..----..-177..
10970 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
10980 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
10990 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
109a0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
109b0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
109c0 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
109d0 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
109e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
109f0 33 38 32 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  382..SELECT - - 
10a00 43 4f 55 4e 54 20 28 20 2d 20 28 20 2d 20 63 6f  COUNT ( - ( - co
10a10 6c 31 20 29 20 29 20 2a 20 2d 20 35 39 20 63 6f  l1 ) ) * - 59 co
10a20 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
10a30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 37  cor0..----..-177
10a40 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
10a50 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
10a60 6c 30 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63  l0 + + col1 AS c
10a70 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol1 FROM tab0 AS
10a80 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
10a90 2d 20 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 49 53  - col0 / col2 IS
10aa0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 38   NULL..----..108
10ab0 0d 0a 39 36 0d 0a 39 38 0d 0a 0d 0a 71 75 65 72  ..96..98....quer
10ac0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
10ad0 45 43 54 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  ECT - ( + col0 )
10ae0 20 2a 20 2d 20 28 20 2d 20 2b 20 39 34 20 29 20   * - ( - + 94 ) 
10af0 2b 20 2b 20 2d 20 34 39 20 2a 20 2b 20 2b 20 32  + + - 49 * + + 2
10b00 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  6 FROM tab2 AS c
10b10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 39 38  or0..----..-5598
10b20 0d 0a 2d 37 32 39 30 0d 0a 2d 38 33 32 34 0d 0a  ..-7290..-8324..
10b30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
10b40 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
10b50 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
10b60 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
10b70 65 6c 2d 33 38 35 0d 0a 53 45 4c 45 43 54 20 44  el-385..SELECT D
10b80 49 53 54 49 4e 43 54 20 2b 20 2d 20 43 41 53 54  ISTINCT + - CAST
10b90 28 20 2b 20 28 20 2b 20 38 33 20 29 20 41 53 20  ( + ( + 83 ) AS 
10ba0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31  SIGNED ) AS col1
10bb0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
10bc0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a 0d  r0..----..-83...
10bd0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10be0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
10bf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10c00 6c 61 62 65 6c 2d 33 38 35 0d 0a 53 45 4c 45 43  label-385..SELEC
10c10 54 20 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 43  T DISTINCT + - C
10c20 41 53 54 20 28 20 2b 20 28 20 2b 20 38 33 20 29  AST ( + ( + 83 )
10c30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
10c40 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
10c50 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
10c60 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  83....query I ro
10c70 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
10c80 32 37 20 2a 20 2d 20 2d 20 63 6f 6c 30 20 46 52  27 * - - col0 FR
10c90 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
10ca0 0a 2d 2d 2d 2d 0d 0a 31 32 34 32 0d 0a 31 37 32  .----..1242..172
10cb0 38 0d 0a 32 30 32 35 0d 0a 0d 0a 6f 6e 6c 79 69  8..2025....onlyi
10cc0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
10cd0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
10ce0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
10cf0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 38 37 0d  wsort label-387.
10d00 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20  .SELECT CAST( + 
10d10 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  + col2 AS SIGNED
10d20 20 29 20 2b 20 2d 20 2b 20 36 20 2b 20 2b 20 63   ) + - + 6 + + c
10d30 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
10d40 2d 2d 2d 0d 0a 31 39 30 0d 0a 35 36 0d 0a 39 31  ---..190..56..91
10d50 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
10d60 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
10d70 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
10d80 72 74 20 6c 61 62 65 6c 2d 33 38 37 0d 0a 53 45  rt label-387..SE
10d90 4c 45 43 54 20 43 41 53 54 20 28 20 2b 20 2b 20  LECT CAST ( + + 
10da0 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
10db0 29 20 2b 20 2d 20 2b 20 36 20 2b 20 2b 20 63 6f  ) + - + 6 + + co
10dc0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
10dd0 2d 2d 0d 0a 31 39 30 0d 0a 35 36 0d 0a 39 31 0d  --..190..56..91.
10de0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
10df0 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
10e00 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
10e10 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
10e20 62 65 6c 2d 33 38 38 0d 0a 53 45 4c 45 43 54 20  bel-388..SELECT 
10e30 44 49 53 54 49 4e 43 54 20 38 33 20 2b 20 2b 20  DISTINCT 83 + + 
10e40 63 6f 6c 31 20 44 49 56 20 2d 20 2d 20 63 6f 6c  col1 DIV - - col
10e50 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
10e60 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d  or0..----..84...
10e70 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
10e80 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
10e90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
10ea0 6c 61 62 65 6c 2d 33 38 38 0d 0a 53 45 4c 45 43  label-388..SELEC
10eb0 54 20 44 49 53 54 49 4e 43 54 20 38 33 20 2b 20  T DISTINCT 83 + 
10ec0 2b 20 63 6f 6c 31 20 2f 20 2d 20 2d 20 63 6f 6c  + col1 / - - col
10ed0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
10ee0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 34 0d 0a 0d  or0..----..84...
10ef0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
10f00 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
10f10 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
10f20 48 45 52 45 20 2b 20 33 20 42 45 54 57 45 45 4e  HERE + 3 BETWEEN
10f30 20 28 20 63 6f 6c 31 20 2a 20 2d 20 38 37 20 2b   ( col1 * - 87 +
10f40 20 2d 20 2d 20 28 20 63 6f 6c 31 20 29 20 29 20   - - ( col1 ) ) 
10f50 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
10f60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
10f70 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
10f80 2d 20 63 6f 6c 32 20 2a 20 2b 20 2d 20 28 20 34  - col2 * + - ( 4
10f90 35 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  5 ) AS col0 FROM
10fa0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
10fb0 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3e 3d 20  ERE ( NULL ) >= 
10fc0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
10fd0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
10fe0 53 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 2c  SELECT - + col1,
10ff0 20 2b 20 28 20 2d 20 34 31 20 29 20 41 53 20 63   + ( - 41 ) AS c
11000 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
11010 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34   cor0..----..-14
11020 0d 0a 2d 34 31 0d 0a 2d 34 37 0d 0a 2d 34 31 0d  ..-41..-47..-41.
11030 0a 2d 35 0d 0a 2d 34 31 0d 0a 0d 0a 71 75 65 72  .-5..-41....quer
11040 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
11050 45 43 54 20 41 4c 4c 20 37 32 20 2b 20 2d 20 2d  ECT ALL 72 + - -
11060 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
11070 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
11080 35 33 0d 0a 37 33 0d 0a 39 33 0d 0a 0d 0a 6f 6e  53..73..93....on
11090 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
110a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
110b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
110c0 20 6c 61 62 65 6c 2d 33 39 33 0d 0a 53 45 4c 45   label-393..SELE
110d0 43 54 20 4d 41 58 28 20 41 4c 4c 20 2d 20 35 39  CT MAX( ALL - 59
110e0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
110f0 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
11100 74 61 62 31 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  tab1 cor1..----.
11110 0a 2d 35 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-59....skipif m
11120 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
11130 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
11140 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 33 39 33  owsort label-393
11150 0d 0a 53 45 4c 45 43 54 20 4d 41 58 20 28 20 41  ..SELECT MAX ( A
11160 4c 4c 20 2d 20 35 39 20 29 20 46 52 4f 4d 20 74  LL - 59 ) FROM t
11170 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
11180 53 20 4a 4f 49 4e 20 74 61 62 31 20 63 6f 72 31  S JOIN tab1 cor1
11190 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 0d 0a 71  ..----..-59....q
111a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
111b0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
111c0 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 63 6f 6c 32   col1 + - - col2
111d0 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 41   AS col0, col2 A
111e0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
111f0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30   cor0..----..100
11200 0d 0a 39 39 0d 0a 31 32 38 0d 0a 34 37 0d 0a 33  ..99..128..47..3
11210 31 0d 0a 31 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  1..10....onlyif 
11220 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
11230 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
11240 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
11250 6c 2d 33 39 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-395..SELECT AL
11260 4c 20 4d 41 58 28 20 2b 20 63 6f 6c 31 20 29 20  L MAX( + col1 ) 
11270 2a 20 2b 20 53 55 4d 28 20 2b 20 2d 20 30 20 29  * + SUM( + - 0 )
11280 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
11290 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  r0..----..0....s
112a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
112b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
112c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
112d0 62 65 6c 2d 33 39 35 0d 0a 53 45 4c 45 43 54 20  bel-395..SELECT 
112e0 41 4c 4c 20 4d 41 58 20 28 20 2b 20 63 6f 6c 31  ALL MAX ( + col1
112f0 20 29 20 2a 20 2b 20 53 55 4d 20 28 20 2b 20 2d   ) * + SUM ( + -
11300 20 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41   0 ) FROM tab0 A
11310 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
11320 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
11330 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
11340 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
11350 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
11360 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11370 6c 61 62 65 6c 2d 33 39 36 0d 0a 53 45 4c 45 43  label-396..SELEC
11380 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
11390 28 20 2a 20 29 20 44 49 56 20 2b 20 32 34 20 2a  ( * ) DIV + 24 *
113a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
113b0 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
113c0 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
113d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
113e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
113f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11400 20 6c 61 62 65 6c 2d 33 39 36 0d 0a 53 45 4c 45   label-396..SELE
11410 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
11420 54 20 28 20 2a 20 29 20 2f 20 2b 20 32 34 20 2a  T ( * ) / + 24 *
11430 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
11440 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
11450 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
11460 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
11470 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 35 35 20  rt..SELECT - 55 
11480 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 33 30 20  * - col2 * - 30 
11490 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  + - col0 AS col2
114a0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
114b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 33 34 34  r0..----..-16344
114c0 37 0d 0a 2d 31 36 35 38 37 0d 0a 2d 37 37 35 36  7..-16587..-7756
114d0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
114e0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
114f0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
11500 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
11510 6c 61 62 65 6c 2d 33 39 38 0d 0a 53 45 4c 45 43  label-398..SELEC
11520 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 43  T DISTINCT ( + C
11530 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
11540 4e 45 44 20 29 20 29 20 41 53 20 63 6f 6c 30 20  NED ) ) AS col0 
11550 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
11560 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
11570 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
11580 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
11590 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
115a0 6c 61 62 65 6c 2d 33 39 38 0d 0a 53 45 4c 45 43  label-398..SELEC
115b0 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 43  T DISTINCT ( + C
115c0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
115d0 54 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c  TEGER ) ) AS col
115e0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
115f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
11600 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
11610 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63  rt..SELECT ALL c
11620 6f 6c 30 20 2d 20 2b 20 2d 20 37 37 20 46 52 4f  ol0 - + - 77 FRO
11630 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
11640 2d 2d 2d 2d 0d 0a 31 36 34 0d 0a 31 37 34 0d 0a  ----..164..174..
11650 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  92....query I ro
11660 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
11670 4c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c  L - col2 * - col
11680 30 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2b  0 + - col1 + - +
11690 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52   col0 AS col2 FR
116a0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
116b0 57 48 45 52 45 20 63 6f 6c 32 20 49 53 20 4e 55  WHERE col2 IS NU
116c0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
116d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
116e0 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2d 20 2d  ECT ALL col0 - -
116f0 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20   + col0 AS col2 
11700 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
11710 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38 0d 0a 31 35  0..----..128..15
11720 30 0d 0a 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49  0..92....query I
11730 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
11740 20 41 4c 4c 20 2b 20 2b 20 39 33 20 2a 20 2d 20   ALL + + 93 * - 
11750 39 38 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20  98 + + col1 * + 
11760 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46  - col0 AS col0 F
11770 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d  ROM tab2 WHERE -
11780 20 63 6f 6c 32 20 42 45 54 57 45 45 4e 20 28 20   col2 BETWEEN ( 
11790 4e 55 4c 4c 20 29 20 41 4e 44 20 2b 20 63 6f 6c  NULL ) AND + col
117a0 32 20 2a 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  2 * + col0..----
117b0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
117c0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
117d0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  L * FROM tab2 WH
117e0 45 52 45 20 4e 55 4c 4c 20 3d 20 2d 20 28 20 2d  ERE NULL = - ( -
117f0 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   - col2 )..----.
11800 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
11810 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
11820 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 63  NCT + col1 * - c
11830 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol1 FROM tab2 WH
11840 45 52 45 20 2d 20 2d 20 39 38 20 2a 20 2d 20 37  ERE - - 98 * - 7
11850 35 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  5 IS NOT NULL..-
11860 2d 2d 2d 0d 0a 2d 32 36 30 31 0d 0a 2d 34 34 38  ---..-2601..-448
11870 39 0d 0a 2d 35 39 32 39 0d 0a 0d 0a 6f 6e 6c 79  9..-5929....only
11880 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
11890 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
118a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
118b0 61 62 65 6c 2d 34 30 35 0d 0a 53 45 4c 45 43 54  abel-405..SELECT
118c0 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e   DISTINCT + COUN
118d0 54 28 20 36 36 20 29 20 41 53 20 63 6f 6c 32 20  T( 66 ) AS col2 
118e0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
118f0 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
11900 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
11910 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
11920 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 35 0d 0a  sort label-405..
11930 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
11940 2b 20 43 4f 55 4e 54 20 28 20 36 36 20 29 20 41  + COUNT ( 66 ) A
11950 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
11960 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c  ..----..3....onl
11970 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
11980 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
11990 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
119a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30  rowsort label-40
119b0 36 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  6..SELECT + - co
119c0 6c 31 20 44 49 56 20 63 6f 6c 31 20 2b 20 2d 20  l1 DIV col1 + - 
119d0 32 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  28 AS col2 FROM 
119e0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
119f0 2d 2d 0d 0a 2d 32 39 0d 0a 2d 32 39 0d 0a 2d 32  --..-29..-29..-2
11a00 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
11a10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
11a20 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
11a30 6f 72 74 20 6c 61 62 65 6c 2d 34 30 36 0d 0a 53  ort label-406..S
11a40 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 31 20 2f  ELECT + - col1 /
11a50 20 63 6f 6c 31 20 2b 20 2d 20 32 38 20 41 53 20   col1 + - 28 AS 
11a60 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
11a70 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
11a80 39 0d 0a 2d 32 39 0d 0a 2d 32 39 0d 0a 0d 0a 6f  9..-29..-29....o
11a90 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
11aa0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
11ab0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
11ac0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
11ad0 6c 2d 34 30 37 0d 0a 53 45 4c 45 43 54 20 44 49  l-407..SELECT DI
11ae0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
11af0 62 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  b0 cor0 WHERE NO
11b00 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53  T - col0 * - CAS
11b10 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
11b20 44 20 29 20 42 45 54 57 45 45 4e 20 36 35 20 2a  D ) BETWEEN 65 *
11b30 20 2b 20 2d 20 63 6f 6c 31 20 2f 20 2d 20 35 30   + - col1 / - 50
11b40 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   * - col2 * - co
11b50 6c 31 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c  l1 + + CAST( NUL
11b60 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 4e  L AS SIGNED ) AN
11b70 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
11b80 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
11b90 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
11ba0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
11bb0 20 6c 61 62 65 6c 2d 34 30 37 0d 0a 53 45 4c 45   label-407..SELE
11bc0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
11bd0 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
11be0 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2a 20  RE NOT - col0 * 
11bf0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
11c00 20 49 4e 54 45 47 45 52 20 29 20 42 45 54 57 45   INTEGER ) BETWE
11c10 45 4e 20 36 35 20 2a 20 2b 20 2d 20 63 6f 6c 31  EN 65 * + - col1
11c20 20 2f 20 2d 20 35 30 20 2a 20 2d 20 63 6f 6c 32   / - 50 * - col2
11c30 20 2a 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 43 41   * - col1 + + CA
11c40 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
11c50 45 47 45 52 20 29 20 41 4e 44 20 4e 55 4c 4c 0d  EGER ) AND NULL.
11c60 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
11c70 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
11c80 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
11c90 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
11ca0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 30 38 0d 0a  sort label-408..
11cb0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 36 33 20  SELECT ALL - 63 
11cc0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
11cd0 30 20 57 48 45 52 45 20 2d 20 28 20 33 36 20 29  0 WHERE - ( 36 )
11ce0 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   + CAST( NULL AS
11cf0 20 44 45 43 49 4d 41 4c 20 29 20 49 53 20 4e 55   DECIMAL ) IS NU
11d00 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33 0d 0a 2d  LL..----..-63..-
11d10 36 33 0d 0a 2d 36 33 0d 0a 0d 0a 73 6b 69 70 69  63..-63....skipi
11d20 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
11d30 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
11d40 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
11d50 34 30 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  408..SELECT ALL 
11d60 2d 20 36 33 20 46 52 4f 4d 20 74 61 62 31 20 41  - 63 FROM tab1 A
11d70 53 20 63 6f 72 30 20 57 48 45 52 45 20 2d 20 28  S cor0 WHERE - (
11d80 20 33 36 20 29 20 2b 20 43 41 53 54 20 28 20 4e   36 ) + CAST ( N
11d90 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20 49 53  ULL AS REAL ) IS
11da0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 33   NULL..----..-63
11db0 0d 0a 2d 36 33 0d 0a 2d 36 33 0d 0a 0d 0a 6f 6e  ..-63..-63....on
11dc0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
11dd0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
11de0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
11df0 20 6c 61 62 65 6c 2d 34 30 39 0d 0a 53 45 4c 45   label-409..SELE
11e00 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20  CT DISTINCT - ( 
11e10 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 29  - - COUNT( * ) )
11e20 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
11e30 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49 53  b0 WHERE NULL IS
11e40 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d   NULL..----..-3.
11e50 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
11e60 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
11e70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
11e80 74 20 6c 61 62 65 6c 2d 34 30 39 0d 0a 53 45 4c  t label-409..SEL
11e90 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 28  ECT DISTINCT - (
11ea0 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   - - COUNT ( * )
11eb0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
11ec0 74 61 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  tab0 WHERE NULL 
11ed0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d  IS NULL..----..-
11ee0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
11ef0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
11f00 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
11f10 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab2 WHERE NOT co
11f20 6c 32 20 2a 20 63 6f 6c 32 20 2a 20 2b 20 63 6f  l2 * col2 * + co
11f30 6c 31 20 3e 3d 20 2d 20 63 6f 6c 31 0d 0a 2d 2d  l1 >= - col1..--
11f40 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
11f50 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
11f60 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
11f70 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
11f80 31 31 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 53  11..SELECT ( + S
11f90 55 4d 28 20 63 6f 6c 31 20 29 20 29 20 46 52 4f  UM( col1 ) ) FRO
11fa0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
11fb0 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
11fc0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
11fd0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
11fe0 6f 72 74 20 6c 61 62 65 6c 2d 34 31 31 0d 0a 53  ort label-411..S
11ff0 45 4c 45 43 54 20 28 20 2b 20 53 55 4d 20 28 20  ELECT ( + SUM ( 
12000 63 6f 6c 31 20 29 20 29 20 46 52 4f 4d 20 74 61  col1 ) ) FROM ta
12010 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a 0d  b0..----..103...
12020 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12030 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
12040 54 20 2b 20 28 20 2b 20 33 35 20 29 20 2b 20 2b  T + ( + 35 ) + +
12050 20 63 6f 6c 30 20 2b 20 2b 20 34 39 20 46 52 4f   col0 + + 49 FRO
12060 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
12070 2d 2d 2d 2d 0d 0a 31 33 35 0d 0a 31 36 39 0d 0a  ----..135..169..
12080 31 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  175....query I r
12090 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28  owsort..SELECT (
120a0 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   - col2 ) FROM t
120b0 61 62 31 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab1 cor0 WHERE N
120c0 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
120d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
120e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
120f0 20 44 49 53 54 49 4e 43 54 20 2d 20 28 20 2b 20   DISTINCT - ( + 
12100 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  + col0 ) AS col0
12110 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
12120 0a 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d  .----..-15..-87.
12130 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-97....query II
12140 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
12150 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
12160 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
12170 28 20 2b 20 2b 20 63 6f 6c 32 20 29 20 49 53 20  ( + + col2 ) IS 
12180 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
12190 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
121a0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
121b0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
121c0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
121d0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
121e0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
121f0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 31 36  owsort label-416
12200 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53  ..SELECT ALL + S
12210 55 4d 28 20 2d 20 2d 20 37 32 20 29 20 41 53 20  UM( - - 72 ) AS 
12220 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
12230 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
12240 20 28 20 36 38 20 29 20 42 45 54 57 45 45 4e 20   ( 68 ) BETWEEN 
12250 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  NULL AND NULL..-
12260 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
12270 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
12280 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
12290 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
122a0 6c 2d 34 31 36 0d 0a 53 45 4c 45 43 54 20 41 4c  l-416..SELECT AL
122b0 4c 20 2b 20 53 55 4d 20 28 20 2d 20 2d 20 37 32  L + SUM ( - - 72
122c0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
122d0 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48 45  tab2 AS cor0 WHE
122e0 52 45 20 4e 4f 54 20 28 20 36 38 20 29 20 42 45  RE NOT ( 68 ) BE
122f0 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e  TWEEN NULL AND N
12300 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  ULL..----..NULL.
12310 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
12320 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
12330 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
12340 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
12350 62 65 6c 2d 34 31 37 0d 0a 53 45 4c 45 43 54 20  bel-417..SELECT 
12360 28 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20 44  ( + ( col1 ) ) D
12370 49 56 20 2d 20 39 20 41 53 20 63 6f 6c 30 20 46  IV - 9 AS col0 F
12380 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
12390 2d 31 0d 0a 2d 35 0d 0a 30 0d 0a 0d 0a 73 6b 69  -1..-5..0....ski
123a0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
123b0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
123c0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
123d0 6c 2d 34 31 37 0d 0a 53 45 4c 45 43 54 20 28 20  l-417..SELECT ( 
123e0 2b 20 28 20 63 6f 6c 31 20 29 20 29 20 2f 20 2d  + ( col1 ) ) / -
123f0 20 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   9 AS col0 FROM 
12400 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  tab1..----..-1..
12410 2d 35 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49  -5..0....query I
12420 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
12430 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
12440 62 30 20 57 48 45 52 45 20 4e 4f 54 20 39 30 20  b0 WHERE NOT 90 
12450 2a 20 33 31 20 2a 20 32 35 20 2a 20 2b 20 36 35  * 31 * 25 * + 65
12460 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c   NOT BETWEEN NUL
12470 4c 20 41 4e 44 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  L AND + col2..--
12480 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
12490 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
124a0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
124b0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
124c0 72 74 20 6c 61 62 65 6c 2d 34 31 39 0d 0a 53 45  rt label-419..SE
124d0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
124e0 20 57 48 45 52 45 20 2b 20 43 41 53 54 28 20 4e   WHERE + CAST( N
124f0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
12500 2b 20 2d 20 63 6f 6c 31 20 3c 20 28 20 2d 20 63  + - col1 < ( - c
12510 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  ol1 )..----....s
12520 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
12530 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
12540 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
12550 6c 61 62 65 6c 2d 34 31 39 0d 0a 53 45 4c 45 43  label-419..SELEC
12560 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
12570 45 52 45 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  ERE + CAST ( NUL
12580 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
12590 20 2d 20 63 6f 6c 31 20 3c 20 28 20 2d 20 63 6f   - col1 < ( - co
125a0 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  l1 )..----....on
125b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
125c0 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67  T syntax: aggreg
125d0 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  ate syntax: SIGN
125e0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
125f0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
12600 2d 34 32 30 0d 0a 53 45 4c 45 43 54 20 2b 20 39  -420..SELECT + 9
12610 36 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  6 * + COUNT( * )
12620 20 2a 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   * + CAST( NULL 
12630 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
12640 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   tab2..----..NUL
12650 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
12660 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
12670 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
12680 6f 72 74 20 6c 61 62 65 6c 2d 34 32 30 0d 0a 53  ort label-420..S
12690 45 4c 45 43 54 20 2b 20 39 36 20 2a 20 2b 20 43  ELECT + 96 * + C
126a0 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 43  OUNT ( * ) * + C
126b0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
126c0 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
126d0 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  2..----..NULL...
126e0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
126f0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f  t..SELECT ALL co
12700 6c 31 20 2a 20 2b 20 28 20 2b 20 63 6f 6c 30 20  l1 * + ( + col0 
12710 29 2c 20 63 6f 6c 32 20 2b 20 2b 20 34 32 20 2a  ), col2 + + 42 *
12720 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   - col2 AS col0 
12730 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
12740 0a 32 33 34 36 0d 0a 2d 39 34 33 0d 0a 34 39 32  .2346..-943..492
12750 38 0d 0a 2d 31 36 34 30 0d 0a 35 30 32 35 0d 0a  8..-1640..5025..
12760 2d 32 33 37 38 0d 0a 0d 0a 71 75 65 72 79 20 49  -2378....query I
12770 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
12780 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
12790 20 2b 20 2b 20 2b 20 32 36 20 46 52 4f 4d 20 74   + + + 26 FROM t
127a0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 31 0d 0a 34  ab1..----..31..4
127b0 30 0d 0a 37 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  0..73....onlyif 
127c0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
127d0 74 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73  tax: aggregate s
127e0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
127f0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
12800 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 33 0d  wsort label-423.
12810 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
12820 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
12830 20 53 49 47 4e 45 44 20 29 20 2a 20 43 4f 55 4e   SIGNED ) * COUN
12840 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
12850 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
12860 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
12870 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
12880 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
12890 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 33  owsort label-423
128a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
128b0 54 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  T - CAST ( NULL 
128c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 43  AS INTEGER ) * C
128d0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
128e0 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
128f0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79  --..NULL....only
12900 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
12910 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
12920 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
12930 61 62 65 6c 2d 34 32 34 0d 0a 53 45 4c 45 43 54  abel-424..SELECT
12940 20 41 4c 4c 20 4d 41 58 28 20 44 49 53 54 49 4e   ALL MAX( DISTIN
12950 43 54 20 2b 20 63 6f 6c 30 20 29 20 2b 20 4d 49  CT + col0 ) + MI
12960 4e 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20  N( ALL + col2 ) 
12970 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
12980 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a 0d 0a  0..----..107....
12990 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
129a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
129b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
129c0 61 62 65 6c 2d 34 32 34 0d 0a 53 45 4c 45 43 54  abel-424..SELECT
129d0 20 41 4c 4c 20 4d 41 58 20 28 20 44 49 53 54 49   ALL MAX ( DISTI
129e0 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20 2b 20 4d  NCT + col0 ) + M
129f0 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  IN ( ALL + col2 
12a00 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
12a10 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37 0d 0a  ab0..----..107..
12a20 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
12a30 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
12a40 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
12a50 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 35 0d 0a  sort label-425..
12a60 53 45 4c 45 43 54 20 38 20 2b 20 2d 20 2b 20 38  SELECT 8 + - + 8
12a70 33 20 2d 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a  3 - + + COUNT( *
12a80 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
12a90 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d  tab1..----..-78.
12aa0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
12ab0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
12ac0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
12ad0 74 20 6c 61 62 65 6c 2d 34 32 35 0d 0a 53 45 4c  t label-425..SEL
12ae0 45 43 54 20 38 20 2b 20 2d 20 2b 20 38 33 20 2d  ECT 8 + - + 83 -
12af0 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   + + COUNT ( * )
12b00 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
12b10 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 38 0d 0a 0d  b1..----..-78...
12b20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
12b30 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
12b40 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
12b50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
12b60 6c 2d 34 32 36 0d 0a 53 45 4c 45 43 54 20 63 6f  l-426..SELECT co
12b70 6c 30 20 2b 20 2b 20 34 35 20 44 49 56 20 63 6f  l0 + + 45 DIV co
12b80 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
12b90 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a  --..46..64..75..
12ba0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
12bb0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
12bc0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
12bd0 20 6c 61 62 65 6c 2d 34 32 36 0d 0a 53 45 4c 45   label-426..SELE
12be0 43 54 20 63 6f 6c 30 20 2b 20 2b 20 34 35 20 2f  CT col0 + + 45 /
12bf0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
12c00 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37  .----..46..64..7
12c10 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
12c20 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
12c30 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
12c40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32  rowsort label-42
12c50 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  7..SELECT ALL + 
12c60 28 20 2d 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ( - - COUNT( * )
12c70 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   ) FROM tab0 WHE
12c80 52 45 20 2d 20 36 20 4e 4f 54 20 42 45 54 57 45  RE - 6 NOT BETWE
12c90 45 4e 20 2b 20 2d 20 63 6f 6c 30 20 41 4e 44 20  EN + - col0 AND 
12ca0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
12cb0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
12cc0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
12cd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
12ce0 6c 61 62 65 6c 2d 34 32 37 0d 0a 53 45 4c 45 43  label-427..SELEC
12cf0 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2d 20 43 4f  T ALL + ( - - CO
12d00 55 4e 54 20 28 20 2a 20 29 20 29 20 46 52 4f 4d  UNT ( * ) ) FROM
12d10 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 36 20   tab0 WHERE - 6 
12d20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2b 20 2d 20  NOT BETWEEN + - 
12d30 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  col0 AND NULL..-
12d40 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
12d50 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
12d60 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
12d70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
12d80 65 6c 2d 34 32 38 0d 0a 53 45 4c 45 43 54 20 41  el-428..SELECT A
12d90 4c 4c 20 2b 20 53 55 4d 28 20 2b 20 2d 20 63 6f  LL + SUM( + - co
12da0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l2 ) FROM tab0 A
12db0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
12dc0 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  56....skipif mys
12dd0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
12de0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
12df0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 32 38 0d 0a  sort label-428..
12e00 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 53 55 4d  SELECT ALL + SUM
12e10 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29 20 46 52   ( + - col2 ) FR
12e20 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
12e30 0a 2d 2d 2d 2d 0d 0a 2d 31 35 36 0d 0a 0d 0a 71  .----..-156....q
12e40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
12e50 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
12e60 2d 20 37 37 20 2b 20 2b 20 31 30 20 2d 20 2d 20  - 77 + + 10 - - 
12e70 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
12e80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
12e90 37 0d 0a 2d 34 34 0d 0a 2d 39 0d 0a 0d 0a 71 75  7..-44..-9....qu
12ea0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
12eb0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 2d 20  ELECT ALL - ( - 
12ec0 35 39 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  59 ) AS col2 FRO
12ed0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
12ee0 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 39 0d 0a 35 39  ----..59..59..59
12ef0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
12f00 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
12f10 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
12f20 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
12f30 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
12f40 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
12f50 4c 45 43 54 20 2d 20 2b 20 35 33 20 63 6f 6c 32  LECT - + 53 col2
12f60 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
12f70 0a 2d 2d 2d 2d 0d 0a 2d 35 33 0d 0a 2d 35 33 0d  .----..-53..-53.
12f80 0a 2d 35 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-53....skipif p
12f90 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
12fa0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
12fb0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
12fc0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
12fd0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
12fe0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
12ff0 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 37 37  CT - col0 * - 77
13000 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 41 53 20 63   col1, col1 AS c
13010 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
13020 2d 2d 2d 0d 0a 31 31 35 35 0d 0a 38 31 0d 0a 36  ---..1155..81..6
13030 36 39 39 0d 0a 32 31 0d 0a 37 34 36 39 0d 0a 31  699..21..7469..1
13040 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
13050 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
13060 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
13070 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
13080 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13090 20 6c 61 62 65 6c 2d 34 33 33 0d 0a 53 45 4c 45   label-433..SELE
130a0 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
130b0 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31  T( * ) FROM tab1
130c0 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2b 20 43   WHERE ( NOT + C
130d0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
130e0 4e 45 44 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 30  NED ) + - + col0
130f0 20 49 53 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d   IS NULL )..----
13100 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
13110 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
13120 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
13130 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 33 0d  wsort label-433.
13140 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
13150 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
13160 4d 20 74 61 62 31 20 57 48 45 52 45 20 28 20 4e  M tab1 WHERE ( N
13170 4f 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c  OT + CAST ( NULL
13180 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20   AS INTEGER ) + 
13190 2d 20 2b 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c  - + col0 IS NULL
131a0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71   )..----..0....q
131b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
131c0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
131d0 2d 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20  - col2 * + col0 
131e0 2b 20 31 38 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 18 AS col1 FRO
131f0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
13200 2d 2d 2d 2d 0d 0a 2d 34 38 37 38 0d 0a 2d 34 39  ----..-4878..-49
13210 39 37 0d 0a 2d 36 31 37 30 0d 0a 0d 0a 6f 6e 6c  97..-6170....onl
13220 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
13230 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
13240 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
13250 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33  rowsort label-43
13260 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  5..SELECT ALL + 
13270 43 41 53 54 28 20 2b 20 39 31 20 41 53 20 53 49  CAST( + 91 AS SI
13280 47 4e 45 44 20 29 20 63 6f 6c 31 20 46 52 4f 4d  GNED ) col1 FROM
13290 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
132a0 2d 2d 2d 0d 0a 39 31 0d 0a 39 31 0d 0a 39 31 0d  ---..91..91..91.
132b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
132c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
132d0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
132e0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
132f0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
13300 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
13310 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
13320 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13330 2d 34 33 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -435..SELECT ALL
13340 20 2b 20 43 41 53 54 20 28 20 2b 20 39 31 20 41   + CAST ( + 91 A
13350 53 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 31  S INTEGER ) col1
13360 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
13370 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 31 0d 0a 39 31  r0..----..91..91
13380 0d 0a 39 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..91....onlyif m
13390 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
133a0 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
133b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
133c0 6f 72 74 20 6c 61 62 65 6c 2d 34 33 36 0d 0a 53  ort label-436..S
133d0 45 4c 45 43 54 20 37 36 20 2a 20 2b 20 43 41 53  ELECT 76 * + CAS
133e0 54 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d  T( NULL AS DECIM
133f0 41 4c 20 29 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  AL ) * + + col1 
13400 2d 20 2d 20 28 20 63 6f 6c 31 20 29 20 41 53 20  - - ( col1 ) AS 
13410 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
13420 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  S cor0..----..NU
13430 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  LL..NULL..NULL..
13440 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
13450 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
13460 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
13470 20 6c 61 62 65 6c 2d 34 33 36 0d 0a 53 45 4c 45   label-436..SELE
13480 43 54 20 37 36 20 2a 20 2b 20 43 41 53 54 20 28  CT 76 * + CAST (
13490 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
134a0 2a 20 2b 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 28  * + + col1 - - (
134b0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20   col1 ) AS col1 
134c0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
134d0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
134e0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
134f0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
13500 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
13510 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
13520 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
13530 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
13540 34 33 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  437..SELECT ALL 
13550 53 55 4d 28 20 2b 20 43 41 53 54 28 20 2b 20 36  SUM( + CAST( + 6
13560 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 20  1 AS SIGNED ) ) 
13570 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
13580 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
13590 0a 31 38 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .183....skipif m
135a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
135b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
135c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 33 37  owsort label-437
135d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d  ..SELECT ALL SUM
135e0 20 28 20 2b 20 43 41 53 54 20 28 20 2b 20 36 31   ( + CAST ( + 61
135f0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
13600 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
13610 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
13620 0a 31 38 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .183....onlyif m
13630 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
13640 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
13650 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
13660 2d 34 33 38 0d 0a 53 45 4c 45 43 54 20 38 35 20  -438..SELECT 85 
13670 2a 20 53 55 4d 28 20 41 4c 4c 20 36 35 20 29 20  * SUM( ALL 65 ) 
13680 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
13690 0a 31 36 35 37 35 0d 0a 0d 0a 73 6b 69 70 69 66  .16575....skipif
136a0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
136b0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
136c0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
136d0 33 38 0d 0a 53 45 4c 45 43 54 20 38 35 20 2a 20  38..SELECT 85 * 
136e0 53 55 4d 20 28 20 41 4c 4c 20 36 35 20 29 20 46  SUM ( ALL 65 ) F
136f0 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
13700 31 36 35 37 35 0d 0a 0d 0a 71 75 65 72 79 20 49  16575....query I
13710 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
13720 20 2b 20 28 20 2d 20 33 35 20 29 20 46 52 4f 4d   + ( - 35 ) FROM
13730 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 35   tab0..----..-35
13740 0d 0a 2d 33 35 0d 0a 2d 33 35 0d 0a 0d 0a 71 75  ..-35..-35....qu
13750 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
13760 45 4c 45 43 54 20 2d 20 33 37 20 41 53 20 63 6f  ELECT - 37 AS co
13770 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l2 FROM tab2 AS 
13780 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
13790 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol2 IS NULL..---
137a0 2d 0d 0a 2d 33 37 0d 0a 2d 33 37 0d 0a 2d 33 37  -..-37..-37..-37
137b0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
137c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
137d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
137e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 39  S cor0 WHERE + 9
137f0 36 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  6 >= NULL..----.
13800 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
13810 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
13820 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
13830 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 32 0d  wsort label-442.
13840 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28  .SELECT + COUNT(
13850 20 44 49 53 54 49 4e 43 54 20 34 39 20 29 20 41   DISTINCT 49 ) A
13860 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
13870 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
13880 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
13890 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
138a0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
138b0 6f 72 74 20 6c 61 62 65 6c 2d 34 34 32 0d 0a 53  ort label-442..S
138c0 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20  ELECT + COUNT ( 
138d0 44 49 53 54 49 4e 43 54 20 34 39 20 29 20 41 53  DISTINCT 49 ) AS
138e0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
138f0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
13900 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
13910 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
13920 49 4e 43 54 20 2b 20 39 34 20 2a 20 63 6f 6c 31  INCT + 94 * col1
13930 20 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 32 20   + + col2 + + 2 
13940 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
13950 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 31 39 0d 0a 36  0..----..4819..6
13960 33 35 38 0d 0a 37 32 38 30 0d 0a 0d 0a 6f 6e 6c  358..7280....onl
13970 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
13980 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
13990 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
139a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
139b0 34 34 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  444..SELECT DIST
139c0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
139d0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
139e0 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e  NULL NOT BETWEEN
139f0 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 34 31 20 2a   + col1 + + 41 *
13a00 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
13a10 49 47 4e 45 44 20 29 20 41 4e 44 20 2d 20 63 6f  IGNED ) AND - co
13a20 6c 31 20 2a 20 2d 20 28 20 34 37 20 29 20 2b 20  l1 * - ( 47 ) + 
13a30 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col0..----....
13a40 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
13a50 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
13a60 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
13a70 20 6c 61 62 65 6c 2d 34 34 34 0d 0a 53 45 4c 45   label-444..SELE
13a80 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
13a90 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48 45  OM tab0 cor0 WHE
13aa0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20  RE NOT NULL NOT 
13ab0 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20 2b  BETWEEN + col1 +
13ac0 20 2b 20 34 31 20 2a 20 43 41 53 54 20 28 20 4e   + 41 * CAST ( N
13ad0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
13ae0 20 41 4e 44 20 2d 20 63 6f 6c 31 20 2a 20 2d 20   AND - col1 * - 
13af0 28 20 34 37 20 29 20 2b 20 2d 20 63 6f 6c 30 0d  ( 47 ) + - col0.
13b00 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
13b10 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
13b20 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
13b30 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
13b40 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 35 0d 0a  sort label-445..
13b50 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 4e  SELECT + CAST( N
13b60 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
13b70 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20   + + col1 * + + 
13b80 36 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  66 AS col2 FROM 
13b90 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
13ba0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
13bb0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
13bc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
13bd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
13be0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34 35  owsort label-445
13bf0 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20  ..SELECT + CAST 
13c00 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
13c10 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2b 20   + + col1 * + + 
13c20 36 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  66 AS col2 FROM 
13c30 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
13c40 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
13c50 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
13c60 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
13c70 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
13c80 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
13c90 72 74 20 6c 61 62 65 6c 2d 34 34 36 0d 0a 53 45  rt label-446..SE
13ca0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
13cb0 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
13cc0 53 49 47 4e 45 44 20 29 20 2b 20 2b 20 28 20 2b  SIGNED ) + + ( +
13cd0 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62   col2 ) FROM tab
13ce0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
13cf0 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
13d00 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
13d10 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
13d20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 34  rowsort label-44
13d30 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  6..SELECT DISTIN
13d40 43 54 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55  CT - - CAST ( NU
13d50 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
13d60 2b 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 46  + + ( + col2 ) F
13d70 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
13d80 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
13d90 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
13da0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
13db0 39 36 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  96 AS col1 FROM 
13dc0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
13dd0 2d 2d 0d 0a 2d 39 36 0d 0a 2d 39 36 0d 0a 2d 39  --..-96..-96..-9
13de0 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
13df0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
13e00 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49  ntax: ..query II
13e10 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34   rowsort label-4
13e20 34 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  48..SELECT + COU
13e30 4e 54 28 20 2a 20 29 20 2b 20 35 31 20 41 53 20  NT( * ) + 51 AS 
13e40 63 6f 6c 31 2c 20 43 4f 55 4e 54 28 20 2a 20 29  col1, COUNT( * )
13e50 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
13e60 0d 0a 35 34 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ..54..3....skipi
13e70 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
13e80 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
13e90 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
13ea0 2d 34 34 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -448..SELECT + C
13eb0 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 35 31 20  OUNT ( * ) + 51 
13ec0 41 53 20 63 6f 6c 31 2c 20 43 4f 55 4e 54 20 28  AS col1, COUNT (
13ed0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   * ) FROM tab2..
13ee0 2d 2d 2d 2d 0d 0a 35 34 0d 0a 33 0d 0a 0d 0a 71  ----..54..3....q
13ef0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
13f00 53 45 4c 45 43 54 20 63 6f 6c 30 20 2b 20 2b 20  SELECT col0 + + 
13f10 34 33 20 2b 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  43 + - col2 FROM
13f20 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d   tab2..----..60.
13f30 0a 36 36 0d 0a 36 37 0d 0a 0d 0a 6f 6e 6c 79 69  .66..67....onlyi
13f40 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
13f50 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
13f60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
13f70 62 65 6c 2d 34 35 30 0d 0a 53 45 4c 45 43 54 20  bel-450..SELECT 
13f80 41 4c 4c 20 43 4f 55 4e 54 28 20 44 49 53 54 49  ALL COUNT( DISTI
13f90 4e 43 54 20 33 37 20 29 20 2a 20 2d 20 36 31 20  NCT 37 ) * - 61 
13fa0 2d 20 2b 20 2d 20 34 38 20 46 52 4f 4d 20 74 61  - + - 48 FROM ta
13fb0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 0d 0a 0d  b0..----..-13...
13fc0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
13fd0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
13fe0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
13ff0 6c 61 62 65 6c 2d 34 35 30 0d 0a 53 45 4c 45 43  label-450..SELEC
14000 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20 44 49  T ALL COUNT ( DI
14010 53 54 49 4e 43 54 20 33 37 20 29 20 2a 20 2d 20  STINCT 37 ) * - 
14020 36 31 20 2d 20 2b 20 2d 20 34 38 20 46 52 4f 4d  61 - + - 48 FROM
14030 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33   tab0..----..-13
14040 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
14050 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
14060 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
14070 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
14080 61 62 65 6c 2d 34 35 31 0d 0a 53 45 4c 45 43 54  abel-451..SELECT
14090 20 41 4c 4c 20 2d 20 43 41 53 54 28 20 4e 55 4c   ALL - CAST( NUL
140a0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
140b0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
140c0 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20  HERE NOT - col1 
140d0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
140e0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
140f0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
14100 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
14110 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14120 74 20 6c 61 62 65 6c 2d 34 35 31 0d 0a 53 45 4c  t label-451..SEL
14130 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28  ECT ALL - CAST (
14140 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
14150 20 29 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74   ) * col2 FROM t
14160 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
14170 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
14180 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
14190 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
141a0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
141b0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
141c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
141d0 2d 34 35 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -452..SELECT ALL
141e0 20 2b 20 43 4f 55 4e 54 28 20 2d 20 2b 20 36 33   + COUNT( - + 63
141f0 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d   ) FROM tab2..--
14200 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
14210 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
14220 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
14230 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
14240 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  2..SELECT ALL + 
14250 43 4f 55 4e 54 20 28 20 2d 20 2b 20 36 33 20 29  COUNT ( - + 63 )
14260 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
14270 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..3....query I r
14280 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
14290 49 53 54 49 4e 43 54 20 2d 20 37 34 20 2b 20 63  ISTINCT - 74 + c
142a0 6f 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f  ol0 + + col2 FRO
142b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  M tab2..----..-5
142c0 0d 0a 33 30 0d 0a 35 39 0d 0a 0d 0a 71 75 65 72  ..30..59....quer
142d0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
142e0 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f 6c  LECT col0 AS col
142f0 32 2c 20 2b 20 30 20 41 53 20 63 6f 6c 30 20 46  2, + 0 AS col0 F
14300 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
14310 20 57 48 45 52 45 20 4e 55 4c 4c 20 3d 20 4e 55   WHERE NULL = NU
14320 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
14330 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
14340 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
14350 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
14360 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
14370 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
14380 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
14390 20 2d 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f   - - col2 + + co
143a0 6c 31 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  l1 col0 FROM tab
143b0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
143c0 0a 31 30 30 0d 0a 31 32 38 0d 0a 33 31 0d 0a 0d  .100..128..31...
143d0 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
143e0 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
143f0 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
14400 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
14410 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
14420 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
14430 43 54 20 2b 20 2d 20 31 39 20 63 6f 6c 30 2c 20  CT + - 19 col0, 
14440 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
14450 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
14460 2d 0d 0a 2d 31 39 0d 0a 35 39 0d 0a 2d 31 39 0d  -..-19..59..-19.
14470 0a 36 38 0d 0a 2d 31 39 0d 0a 39 36 0d 0a 0d 0a  .68..-19..96....
14480 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
14490 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
144a0 54 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  T - col2 AS col1
144b0 2c 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2a  , ( - - col2 ) *
144c0 20 36 38 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f   68 + col1 AS co
144d0 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
144e0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d  cor0..----..-10.
144f0 0a 37 30 31 0d 0a 2d 34 37 0d 0a 33 32 37 37 0d  .701..-47..3277.
14500 0a 2d 39 39 0d 0a 36 37 33 33 0d 0a 0d 0a 71 75  .-99..6733....qu
14510 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14520 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32  ELECT ALL + col2
14530 20 2b 20 2b 20 33 34 20 2b 20 32 20 46 52 4f 4d   + + 34 + 2 FROM
14540 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
14550 2d 2d 2d 0d 0a 31 33 35 0d 0a 34 36 0d 0a 38 33  ---..135..46..83
14560 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
14570 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
14580 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
14590 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
145a0 61 62 65 6c 2d 34 35 39 0d 0a 53 45 4c 45 43 54  abel-459..SELECT
145b0 20 2b 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31   + col1 - - col1
145c0 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20   + + CAST( NULL 
145d0 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
145e0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
145f0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
14600 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
14610 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
14620 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
14630 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 35  rowsort label-45
14640 39 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  9..SELECT + col1
14650 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 43 41   - - col1 + + CA
14660 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
14670 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
14680 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
14690 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
146a0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
146b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b  sort..SELECT ( +
146c0 20 2d 20 39 32 20 29 20 2d 20 2d 20 63 6f 6c 31   - 92 ) - - col1
146d0 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 41   AS col0, col1 A
146e0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
146f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 0d 0a 34 37 0d  ..----..-45..47.
14700 0a 2d 37 38 0d 0a 31 34 0d 0a 2d 38 37 0d 0a 35  .-78..14..-87..5
14710 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
14720 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
14730 2b 20 63 6f 6c 30 20 2d 20 28 20 2d 20 63 6f 6c  + col0 - ( - col
14740 31 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  1 ) AS col0 FROM
14750 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31   tab2..----..141
14760 0d 0a 31 34 32 0d 0a 39 37 0d 0a 0d 0a 71 75 65  ..142..97....que
14770 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
14780 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
14790 62 32 20 57 48 45 52 45 20 28 20 4e 4f 54 20 28  b2 WHERE ( NOT (
147a0 20 4e 4f 54 20 28 20 2d 20 32 39 20 49 53 20 4e   NOT ( - 29 IS N
147b0 55 4c 4c 20 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d  ULL ) ) )..----.
147c0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
147d0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
147e0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
147f0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
14800 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
14810 20 6c 61 62 65 6c 2d 34 36 33 0d 0a 53 45 4c 45   label-463..SELE
14820 43 54 20 2b 20 43 4f 55 4e 54 28 20 2d 20 35 34  CT + COUNT( - 54
14830 20 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43 4f   ) AS col2, - CO
14840 55 4e 54 28 20 28 20 2b 20 35 33 20 29 20 29 20  UNT( ( + 53 ) ) 
14850 2b 20 2d 20 38 34 20 2d 20 2d 20 53 55 4d 28 20  + - 84 - - SUM( 
14860 2d 20 2b 20 28 20 2d 20 2b 20 43 41 53 54 28 20  - + ( - + CAST( 
14870 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
14880 20 29 20 29 20 2b 20 2d 20 2d 20 33 31 20 46 52   ) ) + - - 31 FR
14890 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
148a0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 4e 55 4c 4c 0d 0a  .----..3..NULL..
148b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
148c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
148d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
148e0 74 20 6c 61 62 65 6c 2d 34 36 33 0d 0a 53 45 4c  t label-463..SEL
148f0 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20  ECT + COUNT ( - 
14900 35 34 20 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20  54 ) AS col2, - 
14910 43 4f 55 4e 54 20 28 20 28 20 2b 20 35 33 20 29  COUNT ( ( + 53 )
14920 20 29 20 2b 20 2d 20 38 34 20 2d 20 2d 20 53 55   ) + - 84 - - SU
14930 4d 20 28 20 2d 20 2b 20 28 20 2d 20 2b 20 43 41  M ( - + ( - + CA
14940 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
14950 45 47 45 52 20 29 20 29 20 29 20 2b 20 2d 20 2d  EGER ) ) ) + - -
14960 20 33 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53   31 FROM tab1 AS
14970 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a   cor0..----..3..
14980 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
14990 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
149a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
149b0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
149c0 6c 2d 34 36 34 0d 0a 53 45 4c 45 43 54 20 2d 20  l-464..SELECT - 
149d0 2b 20 53 55 4d 28 20 41 4c 4c 20 63 6f 6c 30 20  + SUM( ALL col0 
149e0 29 2c 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20  ), + COUNT( * ) 
149f0 2a 20 34 32 20 2b 20 2b 20 43 4f 55 4e 54 28 20  * 42 + + COUNT( 
14a00 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
14a10 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
14a20 2d 2d 2d 0d 0a 2d 32 32 37 0d 0a 31 32 39 0d 0a  ---..-227..129..
14a30 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
14a40 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14a50 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
14a60 74 20 6c 61 62 65 6c 2d 34 36 34 0d 0a 53 45 4c  t label-464..SEL
14a70 45 43 54 20 2d 20 2b 20 53 55 4d 20 28 20 41 4c  ECT - + SUM ( AL
14a80 4c 20 63 6f 6c 30 20 29 2c 20 2b 20 43 4f 55 4e  L col0 ), + COUN
14a90 54 20 28 20 2a 20 29 20 2a 20 34 32 20 2b 20 2b  T ( * ) * 42 + +
14aa0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
14ab0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
14ac0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  S cor0..----..-2
14ad0 32 37 0d 0a 31 32 39 0d 0a 0d 0a 6f 6e 6c 79 69  27..129....onlyi
14ae0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
14af0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
14b00 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
14b10 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 35  owsort label-465
14b20 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
14b30 31 20 44 49 56 20 2b 20 63 6f 6c 30 20 2a 20 2d  1 DIV + col0 * -
14b40 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 31   col0 AS col1, 1
14b50 30 20 2b 20 36 37 20 41 53 20 63 6f 6c 32 20 46  0 + 67 AS col2 F
14b60 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
14b70 30 0d 0a 37 37 0d 0a 30 0d 0a 37 37 0d 0a 30 0d  0..77..0..77..0.
14b80 0a 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .77....skipif my
14b90 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
14ba0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
14bb0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 36 35  owsort label-465
14bc0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
14bd0 31 20 2f 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63  1 / + col0 * - c
14be0 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 31 30 20  ol0 AS col1, 10 
14bf0 2b 20 36 37 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 67 AS col2 FRO
14c00 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab1..----..0.
14c10 0a 37 37 0d 0a 30 0d 0a 37 37 0d 0a 30 0d 0a 37  .77..0..77..0..7
14c20 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
14c30 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
14c40 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
14c50 20 4e 4f 54 20 2b 20 33 32 20 2a 20 2d 20 33 20   NOT + 32 * - 3 
14c60 2a 20 2b 20 33 37 20 49 53 20 4e 55 4c 4c 0d 0a  * + 37 IS NULL..
14c70 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
14c80 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
14c90 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
14ca0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
14cb0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
14cc0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
14cd0 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 2b 20   ( - col1 ) * + 
14ce0 39 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  9 AS col2 FROM t
14cf0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 39 0d  ab0..----..-189.
14d00 0a 2d 37 32 39 0d 0a 2d 39 0d 0a 0d 0a 71 75 65  .-729..-9....que
14d10 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
14d20 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
14d30 2a 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 32 20 29  * + ( + - col2 )
14d40 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
14d50 0d 0a 31 30 30 0d 0a 32 32 30 39 0d 0a 39 38 30  ..100..2209..980
14d60 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  1....skipif post
14d70 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
14d80 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
14d90 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
14da0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
14db0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
14dc0 53 45 4c 45 43 54 20 2b 20 35 20 63 6f 6c 31 2c  SELECT + 5 col1,
14dd0 20 2b 20 34 36 20 41 53 20 63 6f 6c 30 20 46 52   + 46 AS col0 FR
14de0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
14df0 0d 0a 34 36 0d 0a 35 0d 0a 34 36 0d 0a 35 0d 0a  ..46..5..46..5..
14e00 34 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  46....query I ro
14e10 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 35  wsort..SELECT 75
14e20 20 2a 20 2b 20 31 33 20 41 53 20 63 6f 6c 30 20   * + 13 AS col0 
14e30 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
14e40 0a 39 37 35 0d 0a 39 37 35 0d 0a 39 37 35 0d 0a  .975..975..975..
14e50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
14e60 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
14e70 2b 20 28 20 38 30 20 29 20 46 52 4f 4d 20 74 61  + ( 80 ) FROM ta
14e80 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
14e90 0d 0a 2d 38 30 0d 0a 2d 38 30 0d 0a 2d 38 30 0d  ..-80..-80..-80.
14ea0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
14eb0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
14ec0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
14ed0 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
14ee0 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 2d 20 2d  col0 BETWEEN - -
14ef0 20 37 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d   7 AND NULL..---
14f00 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
14f10 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
14f20 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
14f30 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
14f40 20 6c 61 62 65 6c 2d 34 37 33 0d 0a 53 45 4c 45   label-473..SELE
14f50 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32  CT DISTINCT col2
14f60 20 44 49 56 20 63 6f 6c 30 20 41 53 20 63 6f 6c   DIV col0 AS col
14f70 31 2c 20 2b 20 35 35 20 46 52 4f 4d 20 74 61 62  1, + 55 FROM tab
14f80 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 35 35 0d 0a  2..----..0..55..
14f90 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
14fa0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
14fb0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
14fc0 74 20 6c 61 62 65 6c 2d 34 37 33 0d 0a 53 45 4c  t label-473..SEL
14fd0 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c  ECT DISTINCT col
14fe0 32 20 2f 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  2 / col0 AS col1
14ff0 2c 20 2b 20 35 35 20 46 52 4f 4d 20 74 61 62 32  , + 55 FROM tab2
15000 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 35 35 0d 0a 0d  ..----..0..55...
15010 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15020 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
15030 6f 6c 32 20 2b 20 2d 20 39 36 20 41 53 20 63 6f  ol2 + - 96 AS co
15040 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
15050 2d 2d 0d 0a 2d 33 38 0d 0a 2d 35 36 0d 0a 2d 37  --..-38..-56..-7
15060 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
15070 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
15080 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
15090 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
150a0 6c 61 62 65 6c 2d 34 37 35 0d 0a 53 45 4c 45 43  label-475..SELEC
150b0 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 2d  T ALL + col1 * -
150c0 20 2d 20 43 41 53 54 28 20 2d 20 2d 20 63 6f 6c   - CAST( - - col
150d0 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  1 AS SIGNED ) * 
150e0 63 6f 6c 32 20 2b 20 2b 20 34 38 20 41 53 20 63  col2 + + 48 AS c
150f0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
15100 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37 0d 0a 33  r0..----..147..3
15110 30 38 34 31 35 0d 0a 34 34 35 38 0d 0a 0d 0a 73  08415..4458....s
15120 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
15130 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
15140 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
15150 62 65 6c 2d 34 37 35 0d 0a 53 45 4c 45 43 54 20  bel-475..SELECT 
15160 41 4c 4c 20 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d  ALL + col1 * - -
15170 20 43 41 53 54 20 28 20 2d 20 2d 20 63 6f 6c 31   CAST ( - - col1
15180 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
15190 63 6f 6c 32 20 2b 20 2b 20 34 38 20 41 53 20 63  col2 + + 48 AS c
151a0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
151b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37 0d 0a 33  r0..----..147..3
151c0 30 38 34 31 35 0d 0a 34 34 35 38 0d 0a 0d 0a 6f  08415..4458....o
151d0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
151e0 53 54 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d  ST syntax: DECIM
151f0 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  AL type: ..query
15200 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15210 2d 34 37 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -476..SELECT ALL
15220 20 2d 20 63 6f 6c 30 20 2d 20 43 41 53 54 28 20   - col0 - CAST( 
15230 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20  NULL AS DECIMAL 
15240 29 20 2b 20 2d 20 2d 20 39 37 20 2d 20 2d 20 2b  ) + - - 97 - - +
15250 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52   col1 AS col1 FR
15260 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
15270 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42  WHERE NOT NULL B
15280 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41 4e  ETWEEN - col1 AN
15290 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
152a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
152b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
152c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
152d0 61 62 65 6c 2d 34 37 36 0d 0a 53 45 4c 45 43 54  abel-476..SELECT
152e0 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2d 20 43 41   ALL - col0 - CA
152f0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
15300 4c 20 29 20 2b 20 2d 20 2d 20 39 37 20 2d 20 2d  L ) + - - 97 - -
15310 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
15320 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
15330 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  0 WHERE NOT NULL
15340 20 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20   BETWEEN - col1 
15350 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
15360 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15370 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
15380 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
15390 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
153a0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
153b0 6c 61 62 65 6c 2d 34 37 37 0d 0a 53 45 4c 45 43  label-477..SELEC
153c0 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28  T DISTINCT CAST(
153d0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
153e0 29 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55 4e 54  ) AS col2, COUNT
153f0 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ( * ) AS col1 FR
15400 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
15410 55 4c 4c 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66  ULL..3....skipif
15420 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
15430 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
15440 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15450 34 37 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  477..SELECT DIST
15460 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  INCT CAST ( NULL
15470 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
15480 20 63 6f 6c 32 2c 20 43 4f 55 4e 54 20 28 20 2a   col2, COUNT ( *
15490 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
154a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab0..----..NULL
154b0 0d 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..3....query I r
154c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
154d0 6f 6c 32 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2d  ol2 - - col0 * -
154e0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
154f0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
15500 31 30 33 35 0d 0a 2d 32 35 32 30 0d 0a 2d 34 32  1035..-2520..-42
15510 39 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  92....query III 
15520 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15530 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  ALL * FROM tab0 
15540 57 48 45 52 45 20 39 35 20 2a 20 28 20 2d 20 63  WHERE 95 * ( - c
15550 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d  ol2 ) IS NULL..-
15560 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
15570 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
15580 49 53 54 49 4e 43 54 20 2d 20 34 39 20 41 53 20  ISTINCT - 49 AS 
15590 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
155a0 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 0d 0a 6f 6e 6c  ----..-49....onl
155b0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
155c0 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
155d0 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
155e0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
155f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
15600 34 38 31 0d 0a 53 45 4c 45 43 54 20 2d 20 34 35  481..SELECT - 45
15610 20 2a 20 2b 20 31 32 20 2a 20 2d 20 4d 49 4e 28   * + 12 * - MIN(
15620 20 41 4c 4c 20 2d 20 2b 20 43 41 53 54 28 20 2b   ALL - + CAST( +
15630 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20   col0 AS SIGNED 
15640 29 20 29 20 2b 20 2d 20 2d 20 43 4f 55 4e 54 28  ) ) + - - COUNT(
15650 20 2d 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c   - col2 ) AS col
15660 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
15670 2d 0d 0a 2d 34 39 31 33 37 0d 0a 0d 0a 73 6b 69  -..-49137....ski
15680 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
15690 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
156a0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
156b0 6c 2d 34 38 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-481..SELECT - 
156c0 34 35 20 2a 20 2b 20 31 32 20 2a 20 2d 20 4d 49  45 * + 12 * - MI
156d0 4e 20 28 20 41 4c 4c 20 2d 20 2b 20 43 41 53 54  N ( ALL - + CAST
156e0 20 28 20 2b 20 63 6f 6c 30 20 41 53 20 49 4e 54   ( + col0 AS INT
156f0 45 47 45 52 20 29 20 29 20 2b 20 2d 20 2d 20 43  EGER ) ) + - - C
15700 4f 55 4e 54 20 28 20 2d 20 63 6f 6c 32 20 29 20  OUNT ( - col2 ) 
15710 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
15720 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 31 33 37 0d  1..----..-49137.
15730 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
15740 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
15750 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
15760 77 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 32 0d  wsort label-482.
15770 0a 53 45 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e  .SELECT - - COUN
15780 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
15790 20 57 48 45 52 45 20 63 6f 6c 30 20 49 53 20 4e   WHERE col0 IS N
157a0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ULL..----..0....
157b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
157c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
157d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
157e0 61 62 65 6c 2d 34 38 32 0d 0a 53 45 4c 45 43 54  abel-482..SELECT
157f0 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   - - COUNT ( * )
15800 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
15810 20 63 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col0 IS NULL..-
15820 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
15830 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15840 54 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20  T col1 * + col0 
15850 2b 20 37 33 20 41 53 20 63 6f 6c 31 20 46 52 4f  + 73 AS col1 FRO
15860 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 34  M tab2..----..24
15870 31 39 0d 0a 35 30 30 31 0d 0a 35 30 39 38 0d 0a  19..5001..5098..
15880 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
15890 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
158a0 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
158b0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
158c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
158d0 61 62 65 6c 2d 34 38 34 0d 0a 53 45 4c 45 43 54  abel-484..SELECT
158e0 20 41 4c 4c 20 39 31 20 44 49 56 20 43 4f 55 4e   ALL 91 DIV COUN
158f0 54 28 20 2a 20 29 20 44 49 56 20 2d 20 2b 20 43  T( * ) DIV - + C
15900 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74  OUNT( * ) FROM t
15910 61 62 31 2c 20 74 61 62 30 20 63 6f 72 30 0d 0a  ab1, tab0 cor0..
15920 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70  ----..-1....skip
15930 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
15940 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
15950 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
15960 2d 34 38 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -484..SELECT ALL
15970 20 39 31 20 2f 20 43 4f 55 4e 54 20 28 20 2a 20   91 / COUNT ( * 
15980 29 20 2f 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20  ) / - + COUNT ( 
15990 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 2c 20 74  * ) FROM tab1, t
159a0 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
159b0 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  -1....query II r
159c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
159d0 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 2d 20 35  ol1 AS col0, - 5
159e0 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
159f0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 2d  ab2..----..51..-
15a00 35 31 0d 0a 36 37 0d 0a 2d 35 31 0d 0a 37 37 0d  51..67..-51..77.
15a10 0a 2d 35 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-51....onlyif m
15a20 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
15a30 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
15a40 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
15a50 72 74 20 6c 61 62 65 6c 2d 34 38 36 0d 0a 53 45  rt label-486..SE
15a60 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c  LECT - CAST( NUL
15a70 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20  L AS SIGNED ) * 
15a80 2b 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30  + + col0 AS col0
15a90 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
15aa0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
15ab0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
15ac0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
15ad0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
15ae0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 38 36 0d 0a  sort label-486..
15af0 53 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20  SELECT - CAST ( 
15b00 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
15b10 29 20 2a 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  ) * + + col0 AS 
15b20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
15b30 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  ----..NULL..NULL
15b40 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
15b50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
15b60 54 20 2b 20 2d 20 38 39 20 46 52 4f 4d 20 74 61  T + - 89 FROM ta
15b70 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
15b80 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 3c 3d 20 4e   NOT + col2 <= N
15b90 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
15ba0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
15bb0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
15bc0 20 2b 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 30 20   + col2, + col0 
15bd0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
15be0 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39  1 cor0..----..59
15bf0 0d 0a 38 35 0d 0a 36 38 0d 0a 39 31 0d 0a 39 36  ..85..68..91..96
15c00 0d 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..51....query I 
15c10 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
15c20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
15c30 2a 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 33 33 20  * + col2 * + 33 
15c40 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  * + col0 FROM ta
15c50 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
15c60 0d 0a 2d 31 33 38 38 35 38 37 32 0d 0a 2d 31 35  ..-13885872..-15
15c70 35 31 30 35 32 38 0d 0a 2d 39 37 36 34 32 30 35  510528..-9764205
15c80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
15c90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
15ca0 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2d 20  INCT - col2 * - 
15cb0 2d 20 35 38 20 46 52 4f 4d 20 74 61 62 30 20 63  - 58 FROM tab0 c
15cc0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 32 36  or0..----..-2726
15cd0 0d 0a 2d 35 37 34 32 0d 0a 2d 35 38 30 0d 0a 0d  ..-5742..-580...
15ce0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15cf0 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 28 20 2b  ..SELECT - - ( +
15d00 20 38 31 20 29 20 46 52 4f 4d 20 74 61 62 31 20   81 ) FROM tab1 
15d10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38  AS cor0..----..8
15d20 31 0d 0a 38 31 0d 0a 38 31 0d 0a 0d 0a 71 75 65  1..81..81....que
15d30 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
15d40 4c 45 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20  LECT - col2 * + 
15d50 63 6f 6c 31 20 2b 20 2b 20 2b 20 63 6f 6c 32 20  col1 + + + col2 
15d60 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
15d70 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
15d80 0a 2d 31 31 35 30 0d 0a 2d 33 30 34 30 0d 0a 2d  .-1150..-3040..-
15d90 33 38 32 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  3828....skipif p
15da0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
15db0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
15dc0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
15dd0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
15de0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15df0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15e00 54 20 2b 20 36 20 63 6f 6c 30 20 46 52 4f 4d 20  T + 6 col0 FROM 
15e10 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d  tab2..----..6...
15e20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
15e30 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
15e40 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
15e50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
15e60 6c 2d 34 39 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-494..SELECT AL
15e70 4c 20 2d 20 28 20 31 31 20 29 20 46 52 4f 4d 20  L - ( 11 ) FROM 
15e80 74 61 62 32 20 57 48 45 52 45 20 2b 20 63 6f 6c  tab2 WHERE + col
15e90 31 20 3c 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c  1 < - CAST( NULL
15ea0 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d   AS SIGNED )..--
15eb0 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  --....skipif mys
15ec0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
15ed0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
15ee0 73 6f 72 74 20 6c 61 62 65 6c 2d 34 39 34 0d 0a  sort label-494..
15ef0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20 31  SELECT ALL - ( 1
15f00 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 57 48  1 ) FROM tab2 WH
15f10 45 52 45 20 2b 20 63 6f 6c 31 20 3c 20 2d 20 43  ERE + col1 < - C
15f20 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
15f30 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  TEGER )..----...
15f40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
15f50 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
15f60 54 20 2d 20 28 20 2d 20 35 37 20 29 20 46 52 4f  T - ( - 57 ) FRO
15f70 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35 37  M tab2..----..57
15f80 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
15f90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
15fa0 2b 20 2d 20 31 34 20 29 20 46 52 4f 4d 20 74 61  + - 14 ) FROM ta
15fb0 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 0d 0a 2d  b0..----..-14..-
15fc0 31 34 0d 0a 2d 31 34 0d 0a 0d 0a 71 75 65 72 79  14..-14....query
15fd0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
15fe0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 31 33  CT DISTINCT + 13
15ff0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
16000 20 28 20 2d 20 2d 20 32 31 20 29 20 49 53 20 4e   ( - - 21 ) IS N
16010 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31  OT NULL..----..1
16020 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
16030 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
16040 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
16050 61 62 32 20 57 48 45 52 45 20 2b 20 28 20 2b 20  ab2 WHERE + ( + 
16060 63 6f 6c 31 20 29 20 49 53 20 4e 55 4c 4c 0d 0a  col1 ) IS NULL..
16070 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
16080 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16090 2d 20 63 6f 6c 31 20 2b 20 2b 20 2d 20 63 6f 6c  - col1 + + - col
160a0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
160b0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55  or0 WHERE NOT NU
160c0 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e  LL NOT BETWEEN N
160d0 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
160e0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  --....query III 
160f0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
16100 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
16110 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
16120 54 20 4e 55 4c 4c 20 3c 3d 20 33 39 0d 0a 2d 2d  T NULL <= 39..--
16130 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
16140 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
16150 4c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  L col2 AS col1 F
16160 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
16170 4f 54 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f 54  OT - col2 IS NOT
16180 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
16190 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
161a0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
161b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
161c0 20 63 6f 72 30 20 57 48 45 52 45 20 39 31 20 49   cor0 WHERE 91 I
161d0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
161e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
161f0 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2d  .SELECT col2 + -
16200 20 37 37 20 2a 20 2b 20 2b 20 34 33 20 41 53 20   77 * + + 43 AS 
16210 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
16220 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
16230 32 35 33 0d 0a 2d 33 32 37 31 0d 0a 2d 33 32 38  253..-3271..-328
16240 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
16250 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
16260 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
16270 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 30  rowsort label-50
16280 34 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28  4..SELECT + SUM(
16290 20 2b 20 36 31 20 29 20 46 52 4f 4d 20 74 61 62   + 61 ) FROM tab
162a0 32 0d 0a 2d 2d 2d 2d 0d 0a 31 38 33 0d 0a 0d 0a  2..----..183....
162b0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
162c0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
162d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
162e0 61 62 65 6c 2d 35 30 34 0d 0a 53 45 4c 45 43 54  abel-504..SELECT
162f0 20 2b 20 53 55 4d 20 28 20 2b 20 36 31 20 29 20   + SUM ( + 61 ) 
16300 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
16310 0a 31 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .183....query II
16320 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
16330 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31   DISTINCT + col1
16340 20 2a 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63   * + - col0 AS c
16350 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63  ol0, + col1 AS c
16360 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol1 FROM tab0..-
16370 2d 2d 2d 0d 0a 2d 31 32 31 35 0d 0a 38 31 0d 0a  ---..-1215..81..
16380 2d 31 38 32 37 0d 0a 32 31 0d 0a 2d 39 37 0d 0a  -1827..21..-97..
16390 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  1....query III r
163a0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
163b0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
163c0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
163d0 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2b 20 2d 20  col1 * col1 + - 
163e0 2d 20 36 20 2d 20 31 20 2f 20 2d 20 2b 20 33 20  - 6 - 1 / - + 3 
163f0 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
16400 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
16410 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38  to 75c998aa53ac8
16420 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30  3218cbf2feb962d0
16430 61 34 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  a49....skipif po
16440 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
16450 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
16460 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
16470 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
16480 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
16490 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20  ..SELECT - col0 
164a0 2a 20 2d 20 2b 20 32 31 2c 20 63 6f 6c 31 20 63  * - + 21, col1 c
164b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol0 FROM tab2..-
164c0 2d 2d 2d 0d 0a 31 33 34 34 0d 0a 37 37 0d 0a 31  ---..1344..77..1
164d0 35 37 35 0d 0a 36 37 0d 0a 39 36 36 0d 0a 35 31  575..67..966..51
164e0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
164f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
16500 20 2d 20 34 30 2c 20 2d 20 63 6f 6c 31 20 41 53   - 40, - col1 AS
16510 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
16520 57 48 45 52 45 20 4e 4f 54 20 2b 20 38 34 20 49  WHERE NOT + 84 I
16530 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S NULL..----..-4
16540 30 0d 0a 2d 31 34 0d 0a 2d 34 30 0d 0a 2d 34 37  0..-14..-40..-47
16550 0d 0a 2d 34 30 0d 0a 2d 35 0d 0a 0d 0a 71 75 65  ..-40..-5....que
16560 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
16570 4c 45 43 54 20 63 6f 6c 32 20 2d 20 2d 20 2d 20  LECT col2 - - - 
16580 63 6f 6c 31 20 2a 20 2b 20 2b 20 63 6f 6c 31 20  col1 * + + col1 
16590 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
165a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
165b0 0a 2d 31 30 30 0d 0a 2d 32 31 34 31 0d 0a 33 34  .-100..-2141..34
165c0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
165d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
165e0 20 2d 20 2b 20 38 32 20 2b 20 2d 20 63 6f 6c 32   - + 82 + - col2
165f0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
16600 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 38 30 0d 0a  r0..----..-180..
16610 2d 34 38 0d 0a 2d 37 31 0d 0a 0d 0a 71 75 65 72  -48..-71....quer
16620 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
16630 45 43 54 20 2b 20 28 20 35 30 20 29 20 2d 20 2d  ECT + ( 50 ) - -
16640 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20   + col1 AS col2 
16650 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
16660 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a 31 31  0..----..101..11
16670 37 0d 0a 31 32 37 0d 0a 0d 0a 71 75 65 72 79 20  7..127....query 
16680 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16690 54 20 41 4c 4c 20 39 38 20 2a 20 32 39 20 2b 20  T ALL 98 * 29 + 
166a0 2b 20 35 30 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  + 50 + col2 * - 
166b0 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f  col1 AS col0 FRO
166c0 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
166d0 2d 2d 2d 2d 0d 0a 2d 33 30 34 0d 0a 31 35 34 38  ----..-304..1548
166e0 0d 0a 32 35 39 37 0d 0a 0d 0a 71 75 65 72 79 20  ..2597....query 
166f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
16700 54 20 2b 20 2d 20 63 6f 6c 31 20 2d 20 2d 20 34  T + - col1 - - 4
16710 39 20 2b 20 2b 20 2b 20 33 35 20 46 52 4f 4d 20  9 + + + 35 FROM 
16720 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
16730 2d 2d 0d 0a 33 37 0d 0a 37 30 0d 0a 37 39 0d 0a  --..37..70..79..
16740 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
16750 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d  t..SELECT col1 -
16760 20 2d 20 35 34 20 46 52 4f 4d 20 74 61 62 30 20   - 54 FROM tab0 
16770 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 35 0d  cor0..----..135.
16780 0a 35 35 0d 0a 37 35 0d 0a 0d 0a 6f 6e 6c 79 69  .55..75....onlyi
16790 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
167a0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
167b0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
167c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 35 0d  wsort label-515.
167d0 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20  .SELECT CAST( + 
167e0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
167f0 47 4e 45 44 20 29 20 41 53 20 53 49 47 4e 45 44  GNED ) AS SIGNED
16800 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
16810 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
16820 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
16830 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
16840 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
16850 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
16860 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 31 35  owsort label-515
16870 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20  ..SELECT CAST ( 
16880 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
16890 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 49 4e   INTEGER ) AS IN
168a0 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20  TEGER ) AS col0 
168b0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
168c0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
168d0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ULL..NULL....que
168e0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
168f0 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2a 20  LECT - - col1 * 
16900 2d 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  - - col0 AS col2
16910 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
16920 0a 2d 2d 2d 2d 0d 0a 34 32 35 0d 0a 34 32 37 37  .----..425..4277
16930 0d 0a 37 31 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..714....onlyif 
16940 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
16950 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
16960 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
16970 6f 72 74 20 6c 61 62 65 6c 2d 35 31 37 0d 0a 53  ort label-517..S
16980 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 44 49 56  ELECT + col2 DIV
16990 20 2b 20 2b 20 32 31 20 46 52 4f 4d 20 74 61 62   + + 21 FROM tab
169a0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
169b0 0a 31 0d 0a 31 0d 0a 32 0d 0a 0d 0a 73 6b 69 70  .1..1..2....skip
169c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
169d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
169e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
169f0 2d 35 31 37 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -517..SELECT + c
16a00 6f 6c 32 20 2f 20 2b 20 2b 20 32 31 20 46 52 4f  ol2 / + + 21 FRO
16a10 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
16a20 2d 2d 2d 2d 0d 0a 31 0d 0a 31 0d 0a 32 0d 0a 0d  ----..1..1..2...
16a30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
16a40 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
16a50 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
16a60 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
16a70 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
16a80 62 65 6c 2d 35 31 38 0d 0a 53 45 4c 45 43 54 20  bel-518..SELECT 
16a90 41 4c 4c 20 4d 49 4e 28 20 2d 20 35 30 20 29 20  ALL MIN( - 50 ) 
16aa0 2a 20 2b 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c  * + + CAST( NULL
16ab0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 2b   AS SIGNED ) / +
16ac0 20 4d 41 58 28 20 41 4c 4c 20 33 34 20 29 20 46   MAX( ALL 34 ) F
16ad0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
16ae0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
16af0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
16b00 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
16b10 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
16b20 61 62 65 6c 2d 35 31 38 0d 0a 53 45 4c 45 43 54  abel-518..SELECT
16b30 20 41 4c 4c 20 4d 49 4e 20 28 20 2d 20 35 30 20   ALL MIN ( - 50 
16b40 29 20 2a 20 2b 20 2b 20 43 41 53 54 20 28 20 4e  ) * + + CAST ( N
16b50 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
16b60 20 2f 20 2b 20 4d 41 58 20 28 20 41 4c 4c 20 33   / + MAX ( ALL 3
16b70 34 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  4 ) FROM tab0 AS
16b80 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
16b90 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
16ba0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d  sort..SELECT + -
16bb0 20 32 20 2a 20 63 6f 6c 30 20 2b 20 2d 20 36 20   2 * col0 + - 6 
16bc0 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  + + col2 FROM ta
16bd0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
16be0 0d 0a 2d 31 31 37 0d 0a 2d 31 32 0d 0a 2d 31 32  ..-117..-12..-12
16bf0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
16c00 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
16c10 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
16c20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
16c30 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
16c40 43 54 20 2d 20 43 4f 55 4e 54 28 20 2d 20 63 6f  CT - COUNT( - co
16c50 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l2 ) AS col0 FRO
16c60 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
16c70 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
16c80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
16c90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
16ca0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
16cb0 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  0..SELECT DISTIN
16cc0 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2d 20 63  CT - COUNT ( - c
16cd0 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ol2 ) AS col0 FR
16ce0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
16cf0 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  --..-3....onlyif
16d00 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
16d10 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
16d20 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
16d30 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ion: ..query II 
16d40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32  rowsort label-52
16d50 31 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  1..SELECT DISTIN
16d60 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53  CT COUNT( * ) AS
16d70 20 63 6f 6c 31 2c 20 2d 20 39 39 20 2a 20 2b 20   col1, - 99 * + 
16d80 39 20 2b 20 2b 20 28 20 2b 20 34 32 20 29 20 44  9 + + ( + 42 ) D
16d90 49 56 20 4d 49 4e 28 20 2d 20 39 32 20 29 20 41  IV MIN( - 92 ) A
16da0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
16db0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
16dc0 33 0d 0a 2d 38 39 31 0d 0a 0d 0a 73 6b 69 70 69  3..-891....skipi
16dd0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
16de0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
16df0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
16e00 2d 35 32 31 0d 0a 53 45 4c 45 43 54 20 44 49 53  -521..SELECT DIS
16e10 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20  TINCT COUNT ( * 
16e20 29 20 41 53 20 63 6f 6c 31 2c 20 2d 20 39 39 20  ) AS col1, - 99 
16e30 2a 20 2b 20 39 20 2b 20 2b 20 28 20 2b 20 34 32  * + 9 + + ( + 42
16e40 20 29 20 2f 20 4d 49 4e 20 28 20 2d 20 39 32 20   ) / MIN ( - 92 
16e50 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
16e60 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
16e70 2d 0d 0a 33 0d 0a 2d 38 39 31 0d 0a 0d 0a 6f 6e  -..3..-891....on
16e80 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
16e90 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
16ea0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
16eb0 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
16ec0 2d 35 32 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -522..SELECT ALL
16ed0 20 63 6f 6c 32 2c 20 43 41 53 54 28 20 4e 55 4c   col2, CAST( NUL
16ee0 4c 20 41 53 20 53 49 47 4e 45 44 20 29 2c 20 2b  L AS SIGNED ), +
16ef0 20 28 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d   ( + col0 ) FROM
16f00 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   tab1..----..9 v
16f10 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
16f20 20 65 31 36 64 61 32 64 32 31 39 34 39 36 38 62   e16da2d2194968b
16f30 34 63 66 65 34 64 62 30 33 62 63 66 34 61 66 30  4cfe4db03bcf4af0
16f40 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  8....skipif mysq
16f50 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
16f60 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  le..query III ro
16f70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 32 0d  wsort label-522.
16f80 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32  .SELECT ALL col2
16f90 2c 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  , CAST ( NULL AS
16fa0 20 49 4e 54 45 47 45 52 20 29 2c 20 2b 20 28 20   INTEGER ), + ( 
16fb0 2b 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  + col0 ) FROM ta
16fc0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  b1..----..9 valu
16fd0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 65 31  es hashing to e1
16fe0 36 64 61 32 64 32 31 39 34 39 36 38 62 34 63 66  6da2d2194968b4cf
16ff0 65 34 64 62 30 33 62 63 66 34 61 66 30 38 0d 0a  e4db03bcf4af08..
17000 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
17010 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
17020 63 6f 6c 32 20 2b 20 28 20 2b 20 32 39 20 29 20  col2 + ( + 29 ) 
17030 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
17040 28 20 4e 4f 54 20 28 20 4e 4f 54 20 2d 20 63 6f  ( NOT ( NOT - co
17050 6c 30 20 2f 20 2b 20 2b 20 63 6f 6c 30 20 49 53  l0 / + + col0 IS
17060 20 4e 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   NULL ) )..----.
17070 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
17080 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
17090 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
170a0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 32 34 0d  wsort label-524.
170b0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 4d 49 4e 28  .SELECT ALL MIN(
170c0 20 44 49 53 54 49 4e 43 54 20 2d 20 39 38 20 29   DISTINCT - 98 )
170d0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
170e0 62 32 2c 20 74 61 62 30 20 41 53 20 63 6f 72 30  b2, tab0 AS cor0
170f0 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 38 0d 0a 0d 0a 73  ..----..-98....s
17100 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
17110 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
17120 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
17130 62 65 6c 2d 35 32 34 0d 0a 53 45 4c 45 43 54 20  bel-524..SELECT 
17140 41 4c 4c 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  ALL MIN ( DISTIN
17150 43 54 20 2d 20 39 38 20 29 20 41 53 20 63 6f 6c  CT - 98 ) AS col
17160 32 20 46 52 4f 4d 20 74 61 62 32 2c 20 74 61 62  2 FROM tab2, tab
17170 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
17180 0a 2d 39 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .-98....query II
17190 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
171a0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 2c 20   DISTINCT col2, 
171b0 34 34 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  44 * - col0 FROM
171c0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d   tab2..----..23.
171d0 0a 2d 32 30 32 34 0d 0a 34 30 0d 0a 2d 32 38 31  .-2024..40..-281
171e0 36 0d 0a 35 38 0d 0a 2d 33 33 30 30 0d 0a 0d 0a  6..58..-3300....
171f0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
17200 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
17210 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
17220 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a 53 45  rt label-526..SE
17230 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20 2a 20  LECT - COUNT( * 
17240 29 20 2a 20 2b 20 2b 20 38 37 20 46 52 4f 4d 20  ) * + + 87 FROM 
17250 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36 31  tab1..----..-261
17260 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
17270 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
17280 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
17290 72 74 20 6c 61 62 65 6c 2d 35 32 36 0d 0a 53 45  rt label-526..SE
172a0 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a  LECT - COUNT ( *
172b0 20 29 20 2a 20 2b 20 2b 20 38 37 20 46 52 4f 4d   ) * + + 87 FROM
172c0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 36   tab1..----..-26
172d0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  1....query II ro
172e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
172f0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20  col1 AS col2, - 
17300 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
17310 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab0..----..-1
17320 0d 0a 2d 39 39 0d 0a 2d 32 31 0d 0a 2d 31 30 0d  ..-99..-21..-10.
17330 0a 2d 38 31 0d 0a 2d 34 37 0d 0a 0d 0a 71 75 65  .-81..-47....que
17340 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
17350 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
17360 28 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29  ( + ( - - col0 )
17370 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d   ) FROM tab1..--
17380 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39  --..-51..-85..-9
17390 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
173a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
173b0 54 49 4e 43 54 20 2d 20 34 20 2a 20 2b 20 2d 20  TINCT - 4 * + - 
173c0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col2 FROM tab0..
173d0 2d 2d 2d 2d 0d 0a 31 38 38 0d 0a 33 39 36 0d 0a  ----..188..396..
173e0 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  40....query I ro
173f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
17400 4c 20 32 35 20 2a 20 2d 20 2b 20 63 6f 6c 31 20  L 25 * - + col1 
17410 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
17420 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37 35 0d 0a  1..----..-1175..
17430 2d 31 32 35 0d 0a 2d 33 35 30 0d 0a 0d 0a 71 75  -125..-350....qu
17440 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
17450 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31 38 2c  SELECT ALL - 18,
17460 20 34 35 20 2a 20 63 6f 6c 32 20 2a 20 2d 20 63   45 * col2 * - c
17470 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol1 AS col0 FROM
17480 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
17490 45 52 45 20 63 6f 6c 31 20 2a 20 30 20 49 53 20  ERE col1 * 0 IS 
174a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
174b0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
174c0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30  ELECT ALL - col0
174d0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
174e0 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20  r0 WHERE - col1 
174f0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
17500 2d 0d 0a 2d 31 35 0d 0a 2d 38 37 0d 0a 2d 39 37  -..-15..-87..-97
17510 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
17520 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
17530 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
17540 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
17550 61 62 65 6c 2d 35 33 33 0d 0a 53 45 4c 45 43 54  abel-533..SELECT
17560 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30 20 2a   DISTINCT col0 *
17570 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
17580 49 47 4e 45 44 20 29 20 2a 20 2d 20 39 31 20 46  IGNED ) * - 91 F
17590 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
175a0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
175b0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
175c0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
175d0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 33  owsort label-533
175e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
175f0 54 20 63 6f 6c 30 20 2a 20 43 41 53 54 20 28 20  T col0 * CAST ( 
17600 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
17610 29 20 2a 20 2d 20 39 31 20 46 52 4f 4d 20 74 61  ) * - 91 FROM ta
17620 62 32 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b2..----..NULL..
17630 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
17640 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
17650 4e 43 54 20 2d 20 63 6f 6c 32 2c 20 2b 20 34 35  NCT - col2, + 45
17660 20 2a 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f   * col0 * + - co
17670 6c 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 20 2d 20  l1 * - + col2 - 
17680 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46  - col2 AS col2 F
17690 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
176a0 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20 4e 55   WHERE NULL > NU
176b0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  LL..----....quer
176c0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
176d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a  ELECT DISTINCT *
176e0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
176f0 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30 20  r0 WHERE - col0 
17700 2d 20 2b 20 2d 20 63 6f 6c 32 20 49 53 20 4e 4f  - + - col2 IS NO
17710 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  T NULL..----..9 
17720 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
17730 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
17740 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
17750 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  49....query I ro
17760 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
17770 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 2b 20  STINCT - col0 + 
17780 2b 20 2d 20 35 31 20 2a 20 2d 20 63 6f 6c 32 20  + - 51 * - col2 
17790 2a 20 2d 20 31 31 20 46 52 4f 4d 20 74 61 62 30  * - 11 FROM tab0
177a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
177b0 2d 32 36 33 38 32 0d 0a 2d 35 35 36 33 36 0d 0a  -26382..-55636..
177c0 2d 35 36 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -5697....onlyif 
177d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
177e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
177f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
17800 6f 72 74 20 6c 61 62 65 6c 2d 35 33 37 0d 0a 53  ort label-537..S
17810 45 4c 45 43 54 20 2d 20 2d 20 43 41 53 54 28 20  ELECT - - CAST( 
17820 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
17830 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - + col2 AS col
17840 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
17850 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
17860 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
17870 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
17880 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
17890 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
178a0 62 65 6c 2d 35 33 37 0d 0a 53 45 4c 45 43 54 20  bel-537..SELECT 
178b0 2d 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  - - CAST ( NULL 
178c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 2d 20 2b  AS INTEGER ) - +
178d0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52   col2 AS col0 FR
178e0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
178f0 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
17900 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  L..NULL....onlyi
17910 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
17920 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
17930 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  pe: ..query I ro
17940 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 33 38 0d  wsort label-538.
17950 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 38 20 2b  .SELECT ALL 78 +
17960 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53   - CAST( NULL AS
17970 20 53 49 47 4e 45 44 20 29 20 63 6f 6c 31 20 46   SIGNED ) col1 F
17980 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
17990 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c  NULL..NULL..NULL
179a0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
179b0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
179c0 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  e..skipif postgr
179d0 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
179e0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
179f0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
17a00 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
17a10 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
17a20 6c 2d 35 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c  l-538..SELECT AL
17a30 4c 20 37 38 20 2b 20 2d 20 43 41 53 54 20 28 20  L 78 + - CAST ( 
17a40 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
17a50 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
17a60 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
17a70 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
17a80 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
17a90 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
17aa0 31 20 57 48 45 52 45 20 2d 20 2d 20 34 35 20 3c  1 WHERE - - 45 <
17ab0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
17ac0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
17ad0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
17ae0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
17af0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
17b00 35 34 30 0d 0a 53 45 4c 45 43 54 20 39 38 20 2a  540..SELECT 98 *
17b10 20 2b 20 36 33 20 2a 20 2d 20 2d 20 36 31 20 2b   + 63 * - - 61 +
17b20 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c 32 20 2f   + col1 * col2 /
17b30 20 2d 20 63 6f 6c 30 20 2a 20 43 41 53 54 28 20   - col0 * CAST( 
17b40 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
17b50 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
17b60 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
17b70 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  NULL..NULL....sk
17b80 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
17b90 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
17ba0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
17bb0 65 6c 2d 35 34 30 0d 0a 53 45 4c 45 43 54 20 39  el-540..SELECT 9
17bc0 38 20 2a 20 2b 20 36 33 20 2a 20 2d 20 2d 20 36  8 * + 63 * - - 6
17bd0 31 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 63 6f 6c  1 + + col1 * col
17be0 32 20 2f 20 2d 20 63 6f 6c 30 20 2a 20 43 41 53  2 / - col0 * CAS
17bf0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
17c00 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46 52  GER ) AS col0 FR
17c10 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab1..----..N
17c20 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
17c30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
17c40 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
17c50 20 63 6f 6c 30 20 2a 20 34 32 20 2a 20 2d 20 2b   col0 * 42 * - +
17c60 20 35 33 20 2a 20 28 20 2b 20 63 6f 6c 30 20 29   53 * ( + col0 )
17c70 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20   - col2 AS col1 
17c80 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
17c90 0a 2d 31 36 30 38 32 39 30 39 0d 0a 2d 31 38 34  .-16082909..-184
17ca0 33 33 35 37 34 0d 0a 2d 35 37 38 39 39 32 32 0d  33574..-5789922.
17cb0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
17cc0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
17cd0 2b 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  + + col2 + + col
17ce0 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
17cf0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 39 0d 0a  ab1..----..149..
17d00 31 36 31 0d 0a 32 30 36 0d 0a 0d 0a 71 75 65 72  161..206....quer
17d10 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
17d20 45 43 54 20 41 4c 4c 20 37 36 20 2a 20 2b 20 63  ECT ALL 76 * + c
17d30 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
17d40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 34 39   cor0..----..349
17d50 36 0d 0a 34 38 36 34 0d 0a 35 37 30 30 0d 0a 0d  6..4864..5700...
17d60 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
17d70 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
17d80 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
17d90 48 45 52 45 20 2d 20 63 6f 6c 31 20 42 45 54 57  HERE - col1 BETW
17da0 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c  EEN NULL AND NUL
17db0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  L..----....onlyi
17dc0 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
17dd0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
17de0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  on: ..query II r
17df0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 34 35  owsort label-545
17e00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
17e10 54 20 2b 20 63 6f 6c 30 20 44 49 56 20 31 34 20  T + col0 DIV 14 
17e20 2b 20 2b 20 34 20 41 53 20 63 6f 6c 31 2c 20 31  + + 4 AS col1, 1
17e30 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  2 AS col1 FROM t
17e40 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
17e50 31 30 0d 0a 31 32 0d 0a 37 0d 0a 31 32 0d 0a 0d  10..12..7..12...
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 49 20 72 6f 77 73 6f 72 74  query II rowsort
17e90 20 6c 61 62 65 6c 2d 35 34 35 0d 0a 53 45 4c 45   label-545..SELE
17ea0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
17eb0 6c 30 20 2f 20 31 34 20 2b 20 2b 20 34 20 41 53  l0 / 14 + + 4 AS
17ec0 20 63 6f 6c 31 2c 20 31 32 20 41 53 20 63 6f 6c   col1, 12 AS col
17ed0 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30  1 FROM tab1 cor0
17ee0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d 0a 31 32 0d 0a  ..----..10..12..
17ef0 37 0d 0a 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49  7..12....query I
17f00 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
17f10 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 63  CT * FROM tab1 c
17f20 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  or0 WHERE NOT + 
17f30 35 37 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  57 IS NOT NULL..
17f40 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
17f50 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
17f60 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
17f70 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
17f80 2d 35 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -547..SELECT ALL
17f90 20 2d 20 43 4f 55 4e 54 28 20 2b 20 2b 20 63 6f   - COUNT( + + co
17fa0 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l1 ) FROM tab0 A
17fb0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  S cor0..----..-3
17fc0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
17fd0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
17fe0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
17ff0 72 74 20 6c 61 62 65 6c 2d 35 34 37 0d 0a 53 45  rt label-547..SE
18000 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
18010 20 28 20 2b 20 2b 20 63 6f 6c 31 20 29 20 46 52   ( + + col1 ) FR
18020 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
18030 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65  .----..-3....que
18040 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
18050 45 4c 45 43 54 20 28 20 2b 20 63 6f 6c 31 20 29  ELECT ( + col1 )
18060 20 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 32   AS col0, - col2
18070 20 2a 20 2b 20 63 6f 6c 32 20 2d 20 2b 20 63 6f   * + col2 - + co
18080 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
18090 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  cor0..----..14..
180a0 2d 39 33 31 32 0d 0a 34 37 0d 0a 2d 34 36 39 32  -9312..47..-4692
180b0 0d 0a 35 0d 0a 2d 33 35 34 30 0d 0a 0d 0a 6f 6e  ..5..-3540....on
180c0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53  lyif mysql # CAS
180d0 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  T syntax: SIGNED
180e0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
180f0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
18100 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53  49..SELECT + CAS
18110 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
18120 44 20 29 20 2a 20 2b 20 28 20 2d 20 2d 20 43 41  D ) * + ( - - CA
18130 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
18140 45 44 20 29 20 29 20 2a 20 2d 20 38 30 20 2b 20  ED ) ) * - 80 + 
18150 2b 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 46 52  + col1 + col1 FR
18160 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
18170 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
18180 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
18190 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
181a0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
181b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
181c0 35 34 39 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  549..SELECT + CA
181d0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
181e0 45 47 45 52 20 29 20 2a 20 2b 20 28 20 2d 20 2d  EGER ) * + ( - -
181f0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
18200 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2d 20  INTEGER ) ) * - 
18210 38 30 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 63 6f  80 + + col1 + co
18220 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
18230 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
18240 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
18250 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
18260 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
18270 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
18280 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
18290 6c 2d 35 35 30 0d 0a 53 45 4c 45 43 54 20 2b 20  l-550..SELECT + 
182a0 2d 20 63 6f 6c 30 20 44 49 56 20 2d 20 2d 20 35  - col0 DIV - - 5
182b0 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20  0 AS col0, col0 
182c0 2d 20 2b 20 38 31 20 2a 20 2b 20 2b 20 63 6f 6c  - + 81 * + + col
182d0 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  1 AS col0 FROM t
182e0 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
182f0 2d 31 0d 0a 2d 31 36 31 34 0d 0a 2d 31 0d 0a 31  -1..-1614..-1..1
18300 36 0d 0a 30 0d 0a 2d 36 35 34 36 0d 0a 0d 0a 73  6..0..-6546....s
18310 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
18320 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
18330 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
18340 61 62 65 6c 2d 35 35 30 0d 0a 53 45 4c 45 43 54  abel-550..SELECT
18350 20 2b 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 2d 20   + - col0 / - - 
18360 35 30 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30  50 AS col0, col0
18370 20 2d 20 2b 20 38 31 20 2a 20 2b 20 2b 20 63 6f   - + 81 * + + co
18380 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
18390 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
183a0 0a 2d 31 0d 0a 2d 31 36 31 34 0d 0a 2d 31 0d 0a  .-1..-1614..-1..
183b0 31 36 0d 0a 30 0d 0a 2d 36 35 34 36 0d 0a 0d 0a  16..0..-6546....
183c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
183d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
183e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
183f0 72 74 20 6c 61 62 65 6c 2d 35 35 31 0d 0a 53 45  rt label-551..SE
18400 4c 45 43 54 20 2b 20 39 37 20 2a 20 4d 49 4e 28  LECT + 97 * MIN(
18410 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 46 52   ALL - col0 ) FR
18420 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
18430 0a 2d 2d 2d 2d 0d 0a 2d 37 32 37 35 0d 0a 0d 0a  .----..-7275....
18440 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
18450 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
18460 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
18470 61 62 65 6c 2d 35 35 31 0d 0a 53 45 4c 45 43 54  abel-551..SELECT
18480 20 2b 20 39 37 20 2a 20 4d 49 4e 20 28 20 41 4c   + 97 * MIN ( AL
18490 4c 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  L - col0 ) FROM 
184a0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
184b0 2d 2d 0d 0a 2d 37 32 37 35 0d 0a 0d 0a 73 6b 69  --..-7275....ski
184c0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
184d0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
184e0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
184f0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
18500 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
18510 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 37 33  wsort..SELECT 73
18520 20 2a 20 37 32 20 2a 20 2b 20 2d 20 63 6f 6c 32   * 72 * + - col2
18530 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
18540 0a 2d 2d 2d 2d 0d 0a 2d 32 34 37 30 33 32 0d 0a  .----..-247032..
18550 2d 35 32 30 33 34 34 0d 0a 2d 35 32 35 36 30 0d  -520344..-52560.
18560 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
18570 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
18580 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
18590 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 28 20  1 WHERE NOT - ( 
185a0 63 6f 6c 31 20 29 20 3d 20 2b 20 63 6f 6c 32 0d  col1 ) = + col2.
185b0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
185c0 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
185d0 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
185e0 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f  a11e4d54cad....o
185f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
18600 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
18610 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18620 74 20 6c 61 62 65 6c 2d 35 35 34 0d 0a 53 45 4c  t label-554..SEL
18630 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 38  ECT DISTINCT + 8
18640 37 20 2a 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a  7 * + - COUNT( *
18650 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
18660 2d 2d 0d 0a 2d 32 36 31 0d 0a 0d 0a 73 6b 69 70  --..-261....skip
18670 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
18680 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
18690 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
186a0 2d 35 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53  -554..SELECT DIS
186b0 54 49 4e 43 54 20 2b 20 38 37 20 2a 20 2b 20 2d  TINCT + 87 * + -
186c0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
186d0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab0..----..-2
186e0 36 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  61....query I ro
186f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32 31  wsort..SELECT 21
18700 20 2b 20 37 36 20 46 52 4f 4d 20 74 61 62 31 0d   + 76 FROM tab1.
18710 0a 2d 2d 2d 2d 0d 0a 39 37 0d 0a 39 37 0d 0a 39  .----..97..97..9
18720 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  7....query I row
18730 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
18740 54 49 4e 43 54 20 2d 20 35 34 20 41 53 20 63 6f  TINCT - 54 AS co
18750 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
18760 52 45 20 4e 55 4c 4c 20 3d 20 4e 55 4c 4c 0d 0a  RE NULL = NULL..
18770 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
18780 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
18790 20 35 39 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63   59, + col1 AS c
187a0 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol2 FROM tab1..-
187b0 2d 2d 2d 0d 0a 35 39 0d 0a 31 34 0d 0a 35 39 0d  ---..59..14..59.
187c0 0a 34 37 0d 0a 35 39 0d 0a 35 0d 0a 0d 0a 71 75  .47..59..5....qu
187d0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
187e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
187f0 2b 20 2b 20 37 36 2c 20 2b 20 63 6f 6c 32 20 41  + + 76, + col2 A
18800 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
18810 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
18820 37 36 0d 0a 35 39 0d 0a 37 36 0d 0a 36 38 0d 0a  76..59..76..68..
18830 37 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79 20  76..96....query 
18840 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
18850 43 54 20 63 6f 6c 30 2c 20 2b 20 31 31 20 46 52  CT col0, + 11 FR
18860 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab1..----..5
18870 31 0d 0a 31 31 0d 0a 38 35 0d 0a 31 31 0d 0a 39  1..11..85..11..9
18880 31 0d 0a 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49  1..11....query I
18890 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
188a0 20 41 4c 4c 20 63 6f 6c 30 20 2b 20 2b 20 63 6f   ALL col0 + + co
188b0 6c 31 20 2b 20 35 35 20 41 53 20 63 6f 6c 30 20  l1 + 55 AS col0 
188c0 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
188d0 0a 31 35 31 0d 0a 31 35 33 0d 0a 31 36 33 0d 0a  .151..153..163..
188e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
188f0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
18900 43 54 20 2d 20 36 30 20 2b 20 2b 20 63 6f 6c 30  CT - 60 + + col0
18910 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   * - col1 AS col
18920 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
18930 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 33 37  or0..----..-4337
18940 0d 0a 2d 34 38 35 0d 0a 2d 37 37 34 0d 0a 0d 0a  ..-485..-774....
18950 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
18960 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32  .SELECT - - col2
18970 20 2a 20 2b 20 36 30 20 2b 20 2b 20 2b 20 63 6f   * + 60 + + + co
18980 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
18990 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
189a0 2d 2d 0d 0a 31 34 32 36 0d 0a 32 34 36 34 0d 0a  --..1426..2464..
189b0 33 35 35 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  3555....onlyif m
189c0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
189d0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
189e0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
189f0 6c 2d 35 36 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-563..SELECT AL
18a00 4c 20 36 20 2a 20 2d 20 2d 20 43 4f 55 4e 54 28  L 6 * - - COUNT(
18a10 20 2a 20 29 2c 20 2b 20 38 35 20 41 53 20 63 6f   * ), + 85 AS co
18a20 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
18a30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a  cor0..----..18..
18a40 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  85....skipif mys
18a50 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
18a60 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  ble..query II ro
18a70 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 33 0d  wsort label-563.
18a80 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 20 2a 20  .SELECT ALL 6 * 
18a90 2d 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 2c  - - COUNT ( * ),
18aa0 20 2b 20 38 35 20 41 53 20 63 6f 6c 30 20 46 52   + 85 AS col0 FR
18ab0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
18ac0 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 38 35 0d 0a 0d  .----..18..85...
18ad0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
18ae0 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
18af0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
18b00 6f 72 74 20 6c 61 62 65 6c 2d 35 36 34 0d 0a 53  ort label-564..S
18b10 45 4c 45 43 54 20 41 4c 4c 20 4d 41 58 28 20 33  ELECT ALL MAX( 3
18b20 32 20 29 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2b  2 ) + SUM( ALL +
18b30 20 63 6f 6c 31 20 29 20 2b 20 43 4f 55 4e 54 28   col1 ) + COUNT(
18b40 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   * ) AS col1 FRO
18b50 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
18b60 2d 2d 2d 2d 0d 0a 31 33 38 0d 0a 0d 0a 73 6b 69  ----..138....ski
18b70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
18b80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
18b90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
18ba0 6c 2d 35 36 34 0d 0a 53 45 4c 45 43 54 20 41 4c  l-564..SELECT AL
18bb0 4c 20 4d 41 58 20 28 20 33 32 20 29 20 2b 20 53  L MAX ( 32 ) + S
18bc0 55 4d 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  UM ( ALL + col1 
18bd0 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  ) + COUNT ( * ) 
18be0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
18bf0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
18c00 0a 31 33 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .138....onlyif m
18c10 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
18c20 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72   syntax: DIV for
18c30 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f   integer divisio
18c40 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  n: ..query I row
18c50 73 6f 72 74 20 6c 61 62 65 6c 2d 35 36 35 0d 0a  sort label-565..
18c60 53 45 4c 45 43 54 20 2b 20 2d 20 35 35 20 2b 20  SELECT + - 55 + 
18c70 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b  + - COUNT( * ) +
18c80 20 2b 20 2b 20 4d 41 58 28 20 2b 20 2d 20 63 6f   + + MAX( + - co
18c90 6c 32 20 29 20 44 49 56 20 2b 20 43 4f 55 4e 54  l2 ) DIV + COUNT
18ca0 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52  ( * ) AS col0 FR
18cb0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
18cc0 2d 2d 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b 69 70 69  --..-77....skipi
18cd0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
18ce0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
18cf0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
18d00 35 36 35 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20  565..SELECT + - 
18d10 35 35 20 2b 20 2b 20 2d 20 43 4f 55 4e 54 20 28  55 + + - COUNT (
18d20 20 2a 20 29 20 2b 20 2b 20 2b 20 4d 41 58 20 28   * ) + + + MAX (
18d30 20 2b 20 2d 20 63 6f 6c 32 20 29 20 2f 20 2b 20   + - col2 ) / + 
18d40 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
18d50 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
18d60 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 37 0d 0a 0d  r0..----..-77...
18d70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
18d80 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
18d90 2b 20 2b 20 2b 20 33 38 20 2a 20 2d 20 39 36 20  + + + 38 * - 96 
18da0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
18db0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33  2 cor0..----..-3
18dc0 36 39 39 0d 0a 2d 33 37 31 35 0d 0a 2d 33 37 32  699..-3715..-372
18dd0 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
18de0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
18df0 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e  ntax: DIV for in
18e00 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
18e10 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18e20 74 20 6c 61 62 65 6c 2d 35 36 37 0d 0a 53 45 4c  t label-567..SEL
18e30 45 43 54 20 4d 49 4e 28 20 63 6f 6c 32 20 29 20  ECT MIN( col2 ) 
18e40 2b 20 35 36 20 44 49 56 20 39 31 20 41 53 20 63  + 56 DIV 91 AS c
18e50 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol2 FROM tab1 AS
18e60 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   cor0..----..59.
18e70 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
18e80 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
18e90 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
18ea0 74 20 6c 61 62 65 6c 2d 35 36 37 0d 0a 53 45 4c  t label-567..SEL
18eb0 45 43 54 20 4d 49 4e 20 28 20 63 6f 6c 32 20 29  ECT MIN ( col2 )
18ec0 20 2b 20 35 36 20 2f 20 39 31 20 41 53 20 63 6f   + 56 / 91 AS co
18ed0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
18ee0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a  cor0..----..59..
18ef0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
18f00 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
18f10 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
18f20 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
18f30 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
18f40 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
18f50 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
18f60 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32 20 63 6f  col1 + - col2 co
18f70 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
18f80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 37  cor0..----..-117
18f90 0d 0a 2d 31 32 35 0d 0a 2d 37 34 0d 0a 0d 0a 73  ..-125..-74....s
18fa0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
18fb0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
18fc0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
18fd0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
18fe0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49  olumns..query II
18ff0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
19000 20 2b 20 63 6f 6c 30 2c 20 63 6f 6c 31 20 2a 20   + col0, col1 * 
19010 2b 20 28 20 63 6f 6c 30 20 29 20 2b 20 2d 20 63  + ( col0 ) + - c
19020 6f 6c 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  ol1 col2 FROM ta
19030 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
19040 0d 0a 31 35 0d 0a 31 31 33 34 0d 0a 38 37 0d 0a  ..15..1134..87..
19050 31 38 30 36 0d 0a 39 37 0d 0a 39 36 0d 0a 0d 0a  1806..97..96....
19060 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
19070 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
19080 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
19090 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
190a0 2d 35 37 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -570..SELECT ALL
190b0 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 63 6f   - col0 * + - co
190c0 6c 32 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 43 41  l2 + col0 + + CA
190d0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
190e0 45 44 20 29 20 2a 20 2b 20 63 6f 6c 31 20 41 53  ED ) * + col1 AS
190f0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
19100 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  AS cor0..----..N
19110 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
19120 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
19130 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
19140 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
19150 74 20 6c 61 62 65 6c 2d 35 37 30 0d 0a 53 45 4c  t label-570..SEL
19160 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20 2a  ECT ALL - col0 *
19170 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 63 6f 6c 30   + - col2 + col0
19180 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
19190 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20   AS INTEGER ) * 
191a0 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46  + col1 AS col2 F
191b0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
191c0 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..----..NULL..NU
191d0 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72  LL..NULL....quer
191e0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
191f0 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b  ECT ALL - col1 +
19200 20 2b 20 2d 20 37 33 20 41 53 20 63 6f 6c 31 20   + - 73 AS col1 
19210 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
19220 0a 2d 31 32 30 0d 0a 2d 37 38 0d 0a 2d 38 37 0d  .-120..-78..-87.
19230 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
19240 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
19250 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
19260 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
19270 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
19280 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
19290 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f  LECT DISTINCT co
192a0 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 2b 20  l2 * - col2 + + 
192b0 32 32 20 63 6f 6c 31 2c 20 63 6f 6c 31 20 46 52  22 col1, col1 FR
192c0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
192d0 33 34 35 39 0d 0a 35 0d 0a 2d 34 36 30 32 0d 0a  3459..5..-4602..
192e0 34 37 0d 0a 2d 39 31 39 34 0d 0a 31 34 0d 0a 0d  47..-9194..14...
192f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
19300 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 31 20  ..SELECT ALL 61 
19310 2a 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20 46  * - ( + col2 ) F
19320 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
19330 2d 33 35 39 39 0d 0a 2d 34 31 34 38 0d 0a 2d 35  -3599..-4148..-5
19340 38 35 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  856....onlyif my
19350 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
19360 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
19370 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
19380 35 37 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  574..SELECT ALL 
19390 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 2d  + COUNT( ALL + -
193a0 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62   col0 ) FROM tab
193b0 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d  2 cor0..----..3.
193c0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
193d0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
193e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
193f0 74 20 6c 61 62 65 6c 2d 35 37 34 0d 0a 53 45 4c  t label-574..SEL
19400 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20  ECT ALL + COUNT 
19410 28 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30 20 29  ( ALL + - col0 )
19420 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d   FROM tab2 cor0.
19430 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 71 75 65 72  .----..3....quer
19440 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
19450 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
19460 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
19470 45 52 45 20 4e 4f 54 20 36 31 20 3c 20 2b 20 32  ERE NOT 61 < + 2
19480 37 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  7..----..9 value
19490 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
194a0 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
194b0 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
194c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
194d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
194e0 54 20 2b 20 63 6f 6c 31 20 2a 20 39 36 20 41 53  T + col1 * 96 AS
194f0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d   col1 FROM tab2.
19500 0a 2d 2d 2d 2d 0d 0a 34 38 39 36 0d 0a 36 34 33  .----..4896..643
19510 32 0d 0a 37 33 39 32 0d 0a 0d 0a 6f 6e 6c 79 69  2..7392....onlyi
19520 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
19530 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
19540 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19550 62 65 6c 2d 35 37 37 0d 0a 53 45 4c 45 43 54 20  bel-577..SELECT 
19560 2d 20 2d 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2d  - - COUNT( ALL -
19570 20 2d 20 39 39 20 29 20 63 6f 6c 30 20 46 52 4f   - 99 ) col0 FRO
19580 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
19590 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
195a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
195b0 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66  mpatible..skipif
195c0 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
195d0 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
195e0 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
195f0 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
19600 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  s..query I rowso
19610 72 74 20 6c 61 62 65 6c 2d 35 37 37 0d 0a 53 45  rt label-577..SE
19620 4c 45 43 54 20 2d 20 2d 20 43 4f 55 4e 54 20 28  LECT - - COUNT (
19630 20 41 4c 4c 20 2d 20 2d 20 39 39 20 29 20 63 6f   ALL - - 99 ) co
19640 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
19650 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  cor0..----..3...
19660 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
19670 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
19680 2c 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  , col1 FROM tab1
19690 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39   cor0..----..-59
196a0 0d 0a 35 0d 0a 2d 36 38 0d 0a 34 37 0d 0a 2d 39  ..5..-68..47..-9
196b0 36 0d 0a 31 34 0d 0a 0d 0a 73 6b 69 70 69 66 20  6..14....skipif 
196c0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
196d0 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
196e0 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
196f0 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
19700 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
19710 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
19720 4e 43 54 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  NCT col1 AS col1
19730 2c 20 35 35 20 63 6f 6c 30 20 46 52 4f 4d 20 74  , 55 col0 FROM t
19740 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
19750 2d 0d 0a 31 34 0d 0a 35 35 0d 0a 34 37 0d 0a 35  -..14..55..47..5
19760 35 0d 0a 35 0d 0a 35 35 0d 0a 0d 0a 71 75 65 72  5..5..55....quer
19770 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
19780 45 43 54 20 2b 20 37 20 2a 20 2b 20 63 6f 6c 31  ECT + 7 * + col1
19790 20 2b 20 2b 20 2b 20 38 34 20 2b 20 2d 20 63 6f   + + + 84 + - co
197a0 6c 31 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f  l1 + col0 * - co
197b0 6c 31 20 2b 20 2d 20 2b 20 63 6f 6c 32 20 2b 20  l1 + - + col2 + 
197c0 28 20 2d 20 2b 20 63 6f 6c 30 20 29 20 41 53 20  ( - + col0 ) AS 
197d0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
197e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  S cor0..----..-4
197f0 30 37 30 0d 0a 2d 34 35 35 0d 0a 2d 36 39 33 0d  070..-455..-693.
19800 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
19810 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
19820 4e 43 54 20 39 39 20 2a 20 2d 20 63 6f 6c 30 20  NCT 99 * - col0 
19830 2b 20 63 6f 6c 30 20 2b 20 2d 20 2d 20 31 36 20  + col0 + - - 16 
19840 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
19850 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 35 34 0d 0a  0..----..-1454..
19860 2d 38 35 31 30 0d 0a 2d 39 34 39 30 0d 0a 0d 0a  -8510..-9490....
19870 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
19880 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19890 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 31 39   + + col0 * + 19
198a0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
198b0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 31 36 0d 0a  r0..----..1216..
198c0 31 34 32 35 0d 0a 38 37 34 0d 0a 0d 0a 71 75 65  1425..874....que
198d0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
198e0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
198f0 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
19900 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  or0 WHERE NOT - 
19910 63 6f 6c 30 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  col0 = NULL..---
19920 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
19930 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
19940 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 44 45   SIGNED type: DE
19950 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71 75  CIMAL type: ..qu
19960 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
19970 62 65 6c 2d 35 38 34 0d 0a 53 45 4c 45 43 54 20  bel-584..SELECT 
19980 41 4c 4c 20 2d 20 43 41 53 54 28 20 43 41 53 54  ALL - CAST( CAST
19990 28 20 2d 20 63 6f 6c 31 20 41 53 20 44 45 43 49  ( - col1 AS DECI
199a0 4d 41 4c 20 29 20 41 53 20 53 49 47 4e 45 44 20  MAL ) AS SIGNED 
199b0 29 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b  ) * - + col1 + +
199c0 20 63 6f 6c 30 20 2b 20 39 37 20 46 52 4f 4d 20   col0 + 97 FROM 
199d0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
199e0 2d 2d 0d 0a 2d 32 30 32 31 0d 0a 2d 34 38 0d 0a  --..-2021..-48..
199f0 31 35 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  157....skipif my
19a00 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19a10 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
19a20 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 34 0d  wsort label-584.
19a30 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 41  .SELECT ALL - CA
19a40 53 54 20 28 20 43 41 53 54 20 28 20 2d 20 63 6f  ST ( CAST ( - co
19a50 6c 31 20 41 53 20 52 45 41 4c 20 29 20 41 53 20  l1 AS REAL ) AS 
19a60 49 4e 54 45 47 45 52 20 29 20 2a 20 2d 20 2b 20  INTEGER ) * - + 
19a70 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2b 20  col1 + + col0 + 
19a80 39 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  97 FROM tab1 AS 
19a90 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 32  cor0..----..-202
19aa0 31 0d 0a 2d 34 38 0d 0a 31 35 37 0d 0a 0d 0a 71  1..-48..157....q
19ab0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
19ac0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c  SELECT ALL - col
19ad0 32 20 2a 20 2b 20 63 6f 6c 30 20 2a 20 2d 20 34  2 * + col0 * - 4
19ae0 37 20 2b 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  7 + - col1 FROM 
19af0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
19b00 2d 2d 0d 0a 32 33 30 30 39 38 0d 0a 32 33 35 37  --..230098..2357
19b10 30 30 0d 0a 32 39 30 37 38 39 0d 0a 0d 0a 71 75  00..290789....qu
19b20 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
19b30 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 35 38 20  SELECT ALL - 58 
19b40 41 53 20 63 6f 6c 31 2c 20 63 6f 6c 30 20 46 52  AS col1, col0 FR
19b50 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
19b60 0a 2d 2d 2d 2d 0d 0a 2d 35 38 0d 0a 31 35 0d 0a  .----..-58..15..
19b70 2d 35 38 0d 0a 38 37 0d 0a 2d 35 38 0d 0a 39 37  -58..87..-58..97
19b80 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
19b90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
19ba0 4c 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  L * FROM tab1 AS
19bb0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
19bc0 4e 55 4c 4c 20 3e 3d 20 31 36 0d 0a 2d 2d 2d 2d  NULL >= 16..----
19bd0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
19be0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
19bf0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
19c00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 38 38  owsort label-588
19c10 0d 0a 53 45 4c 45 43 54 20 2b 20 36 35 20 2a 20  ..SELECT + 65 * 
19c20 2b 20 2b 20 37 30 20 2d 20 2b 20 2b 20 43 4f 55  + + 70 - + + COU
19c30 4e 54 28 20 2a 20 29 20 2a 20 2d 20 43 4f 55 4e  NT( * ) * - COUN
19c40 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 31 20 46  T( * ) AS col1 F
19c50 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d  ROM tab0 cor0..-
19c60 2d 2d 2d 0d 0a 34 35 35 39 0d 0a 0d 0a 73 6b 69  ---..4559....ski
19c70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
19c80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
19c90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
19ca0 6c 2d 35 38 38 0d 0a 53 45 4c 45 43 54 20 2b 20  l-588..SELECT + 
19cb0 36 35 20 2a 20 2b 20 2b 20 37 30 20 2d 20 2b 20  65 * + + 70 - + 
19cc0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
19cd0 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  - COUNT ( * ) AS
19ce0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
19cf0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 35 39  cor0..----..4559
19d00 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
19d10 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
19d20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
19d30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
19d40 61 62 65 6c 2d 35 38 39 0d 0a 53 45 4c 45 43 54  abel-589..SELECT
19d50 20 34 32 20 2a 20 43 41 53 54 28 20 2b 20 35 20   42 * CAST( + 5 
19d60 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
19d70 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30   tab1..----..210
19d80 0d 0a 32 31 30 0d 0a 32 31 30 0d 0a 0d 0a 73 6b  ..210..210....sk
19d90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19da0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19db0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19dc0 65 6c 2d 35 38 39 0d 0a 53 45 4c 45 43 54 20 34  el-589..SELECT 4
19dd0 32 20 2a 20 43 41 53 54 20 28 20 2b 20 35 20 41  2 * CAST ( + 5 A
19de0 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f 4d  S INTEGER ) FROM
19df0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 31 30   tab1..----..210
19e00 0d 0a 32 31 30 0d 0a 32 31 30 0d 0a 0d 0a 6f 6e  ..210..210....on
19e10 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
19e20 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
19e30 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
19e40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35   rowsort label-5
19e50 39 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  90..SELECT DISTI
19e60 4e 43 54 20 2d 20 63 6f 6c 30 20 44 49 56 20 31  NCT - col0 DIV 1
19e70 33 20 44 49 56 20 39 36 20 41 53 20 63 6f 6c 30  3 DIV 96 AS col0
19e80 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
19e90 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
19ea0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
19eb0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
19ec0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 30 0d  wsort label-590.
19ed0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
19ee0 20 2d 20 63 6f 6c 30 20 2f 20 31 33 20 2f 20 39   - col0 / 13 / 9
19ef0 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  6 AS col0 FROM t
19f00 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a  ab2..----..0....
19f10 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
19f20 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
19f30 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
19f40 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
19f50 2d 35 39 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -591..SELECT ALL
19f60 20 63 6f 6c 31 20 44 49 56 20 2b 20 2b 20 63 6f   col1 DIV + + co
19f70 6c 31 20 2a 20 2d 20 2b 20 39 37 20 44 49 56 20  l1 * - + 97 DIV 
19f80 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46  + col2 AS col1 F
19f90 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
19fa0 2d 31 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 73 6b  -1..-1..-1....sk
19fb0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
19fc0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
19fd0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
19fe0 65 6c 2d 35 39 31 0d 0a 53 45 4c 45 43 54 20 41  el-591..SELECT A
19ff0 4c 4c 20 63 6f 6c 31 20 2f 20 2b 20 2b 20 63 6f  LL col1 / + + co
1a000 6c 31 20 2a 20 2d 20 2b 20 39 37 20 2f 20 2b 20  l1 * - + 97 / + 
1a010 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52 4f  col2 AS col1 FRO
1a020 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
1a030 0d 0a 2d 31 0d 0a 2d 31 0d 0a 0d 0a 6f 6e 6c 79  ..-1..-1....only
1a040 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1a050 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1a060 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  ype: ..query II 
1a070 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39  rowsort label-59
1a080 32 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41 53 54  2..SELECT + CAST
1a090 28 20 2b 20 63 6f 6c 31 20 41 53 20 53 49 47 4e  ( + col1 AS SIGN
1a0a0 45 44 20 29 20 41 53 20 63 6f 6c 30 2c 20 63 6f  ED ) AS col0, co
1a0b0 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
1a0c0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  tab1..----..14..
1a0d0 35 31 0d 0a 34 37 0d 0a 39 31 0d 0a 35 0d 0a 38  51..47..91..5..8
1a0e0 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
1a0f0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1a100 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
1a110 73 6f 72 74 20 6c 61 62 65 6c 2d 35 39 32 0d 0a  sort label-592..
1a120 53 45 4c 45 43 54 20 2b 20 43 41 53 54 20 28 20  SELECT + CAST ( 
1a130 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45  + col1 AS INTEGE
1a140 52 20 29 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c  R ) AS col0, col
1a150 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  0 AS col2 FROM t
1a160 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a 35  ab1..----..14..5
1a170 31 0d 0a 34 37 0d 0a 39 31 0d 0a 35 0d 0a 38 35  1..47..91..5..85
1a180 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1a190 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1a1a0 28 20 2b 20 2d 20 33 30 20 29 20 41 53 20 63 6f  ( + - 30 ) AS co
1a1b0 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
1a1c0 2d 2d 0d 0a 2d 33 30 0d 0a 2d 33 30 0d 0a 2d 33  --..-30..-30..-3
1a1d0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  0....skipif post
1a1e0 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
1a1f0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
1a200 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
1a210 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
1a220 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1a230 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1a240 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32   - col0 * - col2
1a250 20 2b 20 2b 20 2b 20 31 32 20 63 6f 6c 31 20 46   + + + 12 col1 F
1a260 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
1a270 0d 0a 2d 2d 2d 2d 0d 0a 34 39 30 38 0d 0a 35 30  ..----..4908..50
1a280 32 37 0d 0a 36 32 30 30 0d 0a 0d 0a 71 75 65 72  27..6200....quer
1a290 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1a2a0 45 43 54 20 41 4c 4c 20 35 20 2b 20 2d 20 63 6f  ECT ALL 5 + - co
1a2b0 6c 30 20 2d 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l0 - col2 FROM t
1a2c0 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
1a2d0 2d 31 39 31 0d 0a 2d 35 37 0d 0a 2d 39 32 0d 0a  -191..-57..-92..
1a2e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a2f0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  t..SELECT + col1
1a300 20 2b 20 2d 20 37 33 20 41 53 20 63 6f 6c 31 20   + - 73 AS col1 
1a310 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1a320 0a 2d 32 36 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a  .-26..-59..-68..
1a330 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a340 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
1a350 20 2a 20 38 34 20 46 52 4f 4d 20 74 61 62 30 0d   * 84 FROM tab0.
1a360 0a 2d 2d 2d 2d 0d 0a 2d 33 39 34 38 0d 0a 2d 38  .----..-3948..-8
1a370 33 31 36 0d 0a 2d 38 34 30 0d 0a 0d 0a 71 75 65  316..-840....que
1a380 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1a390 4c 45 43 54 20 2d 20 35 31 20 2a 20 2b 20 2d 20  LECT - 51 * + - 
1a3a0 33 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  33 FROM tab2..--
1a3b0 2d 2d 0d 0a 31 36 38 33 0d 0a 31 36 38 33 0d 0a  --..1683..1683..
1a3c0 31 36 38 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20  1683....query I 
1a3d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1a3e0 41 4c 4c 20 2b 20 28 20 2d 20 32 20 29 20 41 53  ALL + ( - 2 ) AS
1a3f0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
1a400 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
1a410 32 0d 0a 2d 32 0d 0a 2d 32 0d 0a 0d 0a 71 75 65  2..-2..-2....que
1a420 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1a430 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1a440 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1a450 20 4e 55 4c 4c 20 3d 20 2b 20 63 6f 6c 30 20 2b   NULL = + col0 +
1a460 20 2b 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d   + + col2..----.
1a470 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1a480 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28  rt..SELECT ALL (
1a490 20 2d 20 2d 20 34 35 20 29 20 41 53 20 63 6f 6c   - - 45 ) AS col
1a4a0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
1a4b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 34  or0..----..45..4
1a4c0 35 0d 0a 34 35 0d 0a 0d 0a 71 75 65 72 79 20 49  5..45....query I
1a4d0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1a4e0 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2d 20   ALL - col1 + - 
1a4f0 37 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  73 FROM tab1 AS 
1a500 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 30  cor0..----..-120
1a510 0d 0a 2d 37 38 0d 0a 2d 38 37 0d 0a 0d 0a 6f 6e  ..-78..-87....on
1a520 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
1a530 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
1a540 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
1a550 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1a560 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  03..SELECT DISTI
1a570 4e 43 54 20 38 35 20 2b 20 2b 20 63 6f 6c 32 20  NCT 85 + + col2 
1a580 44 49 56 20 2d 20 2d 20 38 31 20 41 53 20 63 6f  DIV - - 81 AS co
1a590 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72  l1 FROM tab1 cor
1a5a0 30 0d 0a 2d 2d 2d 2d 0d 0a 38 35 0d 0a 38 36 0d  0..----..85..86.
1a5b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1a5c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1a5d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1a5e0 74 20 6c 61 62 65 6c 2d 36 30 33 0d 0a 53 45 4c  t label-603..SEL
1a5f0 45 43 54 20 44 49 53 54 49 4e 43 54 20 38 35 20  ECT DISTINCT 85 
1a600 2b 20 2b 20 63 6f 6c 32 20 2f 20 2d 20 2d 20 38  + + col2 / - - 8
1a610 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
1a620 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
1a630 38 35 0d 0a 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  85..86....onlyif
1a640 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
1a650 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
1a660 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
1a670 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 34 0d 0a  sort label-604..
1a680 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20 43  SELECT ALL - + C
1a690 41 53 54 28 20 2b 20 34 30 20 41 53 20 53 49 47  AST( + 40 AS SIG
1a6a0 4e 45 44 20 29 20 2b 20 2d 20 28 20 2b 20 2b 20  NED ) + - ( + + 
1a6b0 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30  col2 ) FROM tab0
1a6c0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1a6d0 2d 31 33 39 0d 0a 2d 35 30 0d 0a 2d 38 37 0d 0a  -139..-50..-87..
1a6e0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1a6f0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1a700 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a710 20 6c 61 62 65 6c 2d 36 30 34 0d 0a 53 45 4c 45   label-604..SELE
1a720 43 54 20 41 4c 4c 20 2d 20 2b 20 43 41 53 54 20  CT ALL - + CAST 
1a730 28 20 2b 20 34 30 20 41 53 20 49 4e 54 45 47 45  ( + 40 AS INTEGE
1a740 52 20 29 20 2b 20 2d 20 28 20 2b 20 2b 20 63 6f  R ) + - ( + + co
1a750 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  l2 ) FROM tab0 A
1a760 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
1a770 33 39 0d 0a 2d 35 30 0d 0a 2d 38 37 0d 0a 0d 0a  39..-50..-87....
1a780 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1a790 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1a7a0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
1a7b0 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 42 45 54  ERE ( NULL ) BET
1a7c0 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20 2b 20  WEEN col1 AND + 
1a7d0 2d 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col1..----....
1a7e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1a7f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1a800 20 2d 20 36 30 20 2b 20 2d 20 35 20 2a 20 2b 20   - 60 + - 5 * + 
1a810 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  ( col1 ) FROM ta
1a820 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
1a830 0d 0a 2d 31 36 35 0d 0a 2d 34 36 35 0d 0a 2d 36  ..-165..-465..-6
1a840 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  5....onlyif mysq
1a850 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
1a860 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
1a870 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1a880 6c 61 62 65 6c 2d 36 30 37 0d 0a 53 45 4c 45 43  label-607..SELEC
1a890 54 20 28 20 2b 20 2b 20 28 20 2d 20 63 6f 6c 31  T ( + + ( - col1
1a8a0 20 29 20 29 20 2b 20 2b 20 2b 20 63 6f 6c 30 20   ) ) + + + col0 
1a8b0 2d 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - + CAST( NULL A
1a8c0 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d 20  S SIGNED ) FROM 
1a8d0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
1a8e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
1a8f0 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  NULL....skipif m
1a900 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1a910 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1a920 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 30 37  owsort label-607
1a930 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 2b 20 28  ..SELECT ( + + (
1a940 20 2d 20 63 6f 6c 31 20 29 20 29 20 2b 20 2b 20   - col1 ) ) + + 
1a950 2b 20 63 6f 6c 30 20 2d 20 2b 20 43 41 53 54 20  + col0 - + CAST 
1a960 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1a970 52 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53  R ) FROM tab1 AS
1a980 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
1a990 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
1a9a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1a9b0 0d 0a 53 45 4c 45 43 54 20 34 31 20 2b 20 2b 20  ..SELECT 41 + + 
1a9c0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
1a9d0 2d 2d 2d 2d 0d 0a 31 30 35 0d 0a 31 31 36 0d 0a  ----..105..116..
1a9e0 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  87....query I ro
1a9f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
1aa00 53 54 49 4e 43 54 20 38 34 20 2a 20 2b 20 2b 20  STINCT 84 * + + 
1aa10 31 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  12 AS col0 FROM 
1aa20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 38  tab1..----..1008
1aa30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1aa40 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1aa50 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1aa60 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
1aa70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1aa80 20 6c 61 62 65 6c 2d 36 31 30 0d 0a 53 45 4c 45   label-610..SELE
1aa90 43 54 20 41 4c 4c 20 43 41 53 54 28 20 2b 20 4d  CT ALL CAST( + M
1aaa0 41 58 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20  AX( + col1 ) AS 
1aab0 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 32  SIGNED ) AS col2
1aac0 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1aad0 0d 0a 38 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..81....skipif m
1aae0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1aaf0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1ab00 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 30  owsort label-610
1ab10 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
1ab20 54 20 28 20 2b 20 4d 41 58 20 28 20 2b 20 63 6f  T ( + MAX ( + co
1ab30 6c 31 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  l1 ) AS INTEGER 
1ab40 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
1ab50 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a 0d  ab0..----..81...
1ab60 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1ab70 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1ab80 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1ab90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1aba0 6c 2d 36 31 31 0d 0a 53 45 4c 45 43 54 20 2d 20  l-611..SELECT - 
1abb0 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
1abc0 47 4e 45 44 20 29 20 63 6f 6c 32 20 46 52 4f 4d  GNED ) col2 FROM
1abd0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1abe0 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  + col0 * - col1 
1abf0 2f 20 63 6f 6c 32 20 49 53 20 4e 4f 54 20 4e 55  / col2 IS NOT NU
1ac00 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  LL..----....skip
1ac10 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1ac20 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
1ac30 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
1ac40 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
1ac50 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
1ac60 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
1ac70 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
1ac80 6f 72 74 20 6c 61 62 65 6c 2d 36 31 31 0d 0a 53  ort label-611..S
1ac90 45 4c 45 43 54 20 2d 20 43 41 53 54 20 28 20 4e  ELECT - CAST ( N
1aca0 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
1acb0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
1acc0 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30  WHERE NOT + col0
1acd0 20 2a 20 2d 20 63 6f 6c 31 20 2f 20 63 6f 6c 32   * - col1 / col2
1ace0 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1acf0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
1ad00 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 32  owsort..SELECT 2
1ad10 38 20 41 53 20 63 6f 6c 32 2c 20 63 6f 6c 31 20  8 AS col2, col1 
1ad20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1ad30 31 0d 0a 2d 2d 2d 2d 0d 0a 32 38 0d 0a 31 34 0d  1..----..28..14.
1ad40 0a 32 38 0d 0a 34 37 0d 0a 32 38 0d 0a 35 0d 0a  .28..47..28..5..
1ad50 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1ad60 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1ad70 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1ad80 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 33 0d 0a  sort label-613..
1ad90 53 45 4c 45 43 54 20 4d 41 58 28 20 41 4c 4c 20  SELECT MAX( ALL 
1ada0 2b 20 63 6f 6c 32 20 29 20 63 6f 6c 30 20 46 52  + col2 ) col0 FR
1adb0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 39  OM tab0..----..9
1adc0 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
1add0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1ade0 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
1adf0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
1ae00 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
1ae10 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
1ae20 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
1ae30 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1ae40 65 6c 2d 36 31 33 0d 0a 53 45 4c 45 43 54 20 4d  el-613..SELECT M
1ae50 41 58 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  AX ( ALL + col2 
1ae60 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  ) col0 FROM tab0
1ae70 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 71 75  ..----..99....qu
1ae80 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1ae90 0a 53 45 4c 45 43 54 20 41 4c 4c 20 37 39 2c 20  .SELECT ALL 79, 
1aea0 35 20 2a 20 2b 20 35 36 20 2a 20 2b 20 2d 20 63  5 * + 56 * + - c
1aeb0 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20 2b 20 35  ol1 AS col2, + 5
1aec0 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  9 AS col0 FROM t
1aed0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ab2..----..9 val
1aee0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 35  ues hashing to 5
1aef0 36 36 66 36 37 65 39 63 34 30 64 37 64 37 32 62  66f67e9c40d7d72b
1af00 63 37 30 32 37 61 61 65 32 63 38 66 35 35 66 0d  c7027aae2c8f55f.
1af10 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1af20 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 36 33 20  rt..SELECT + 63 
1af30 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
1af40 32 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c  2 WHERE NOT NULL
1af50 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1af60 2d 2d 0d 0a 36 33 0d 0a 36 33 0d 0a 36 33 0d 0a  --..63..63..63..
1af70 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1af80 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
1af90 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  * FROM tab2 AS c
1afa0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
1afb0 4e 4f 54 20 2d 20 36 32 20 49 53 20 4e 4f 54 20  NOT - 62 IS NOT 
1afc0 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20  NULL )..----..9 
1afd0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
1afe0 6f 20 37 35 63 39 39 38 61 61 35 33 61 63 38 33  o 75c998aa53ac83
1aff0 32 31 38 63 62 66 32 66 65 62 39 36 32 64 30 61  218cbf2feb962d0a
1b000 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  49....onlyif mys
1b010 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1b020 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1b030 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1b040 31 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  17..SELECT DISTI
1b050 4e 43 54 20 2b 20 53 55 4d 28 20 41 4c 4c 20 2b  NCT + SUM( ALL +
1b060 20 63 6f 6c 30 20 29 20 2a 20 2b 20 2d 20 32 37   col0 ) * + - 27
1b070 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1b080 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b0 cor0..----..-
1b090 35 33 37 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  5373....skipif m
1b0a0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
1b0b0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
1b0c0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 37  owsort label-617
1b0d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1b0e0 54 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 2b 20  T + SUM ( ALL + 
1b0f0 63 6f 6c 30 20 29 20 2a 20 2b 20 2d 20 32 37 20  col0 ) * + - 27 
1b100 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1b110 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  0 cor0..----..-5
1b120 33 37 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  373....onlyif my
1b130 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1b140 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1b150 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b160 36 31 38 0d 0a 53 45 4c 45 43 54 20 2d 20 28 20  618..SELECT - ( 
1b170 2b 20 2b 20 32 39 20 29 20 2a 20 2d 20 43 4f 55  + + 29 ) * - COU
1b180 4e 54 28 20 2d 20 35 20 29 20 2a 20 2d 20 2d 20  NT( - 5 ) * - - 
1b190 34 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  45 AS col2 FROM 
1b1a0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1b1b0 2d 2d 0d 0a 33 39 31 35 0d 0a 0d 0a 73 6b 69 70  --..3915....skip
1b1c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1b1d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1b1e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b1f0 2d 36 31 38 0d 0a 53 45 4c 45 43 54 20 2d 20 28  -618..SELECT - (
1b200 20 2b 20 2b 20 32 39 20 29 20 2a 20 2d 20 43 4f   + + 29 ) * - CO
1b210 55 4e 54 20 28 20 2d 20 35 20 29 20 2a 20 2d 20  UNT ( - 5 ) * - 
1b220 2d 20 34 35 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 45 AS col2 FRO
1b230 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1b240 2d 2d 2d 2d 0d 0a 33 39 31 35 0d 0a 0d 0a 6f 6e  ----..3915....on
1b250 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1b260 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
1b270 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
1b280 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
1b290 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b2a0 2d 36 31 39 0d 0a 53 45 4c 45 43 54 20 44 49 53  -619..SELECT DIS
1b2b0 54 49 4e 43 54 20 2b 20 34 20 44 49 56 20 43 4f  TINCT + 4 DIV CO
1b2c0 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  UNT( * ) AS col0
1b2d0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1b2e0 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..1....skipif my
1b2f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1b300 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1b310 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 31 39 0d  wsort label-619.
1b320 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1b330 20 2b 20 34 20 2f 20 43 4f 55 4e 54 20 28 20 2a   + 4 / COUNT ( *
1b340 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
1b350 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  tab2..----..1...
1b360 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b370 0d 0a 53 45 4c 45 43 54 20 32 34 20 46 52 4f 4d  ..SELECT 24 FROM
1b380 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43 52   tab1 AS cor0 CR
1b390 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
1b3a0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
1b3b0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1b3c0 20 62 30 64 38 33 34 65 66 39 65 34 33 34 36 38   b0d834ef9e43468
1b3d0 30 31 62 36 61 61 61 30 65 37 34 62 32 63 38 65  01b6aaa0e74b2c8e
1b3e0 66 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  f....query I row
1b3f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1b400 20 2b 20 34 35 20 41 53 20 63 6f 6c 31 20 46 52   + 45 AS col1 FR
1b410 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
1b420 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
1b430 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
1b440 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
1b450 74 6f 20 36 30 62 39 66 39 33 35 65 65 38 65 34  to 60b9f935ee8e4
1b460 30 34 64 31 35 35 61 32 66 35 65 39 35 31 35 63  04d155a2f5e9515c
1b470 30 35 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  050....onlyif my
1b480 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1b490 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1b4a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b4b0 36 32 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  622..SELECT DIST
1b4c0 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28 20 2a 20  INCT + COUNT( * 
1b4d0 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
1b4e0 61 62 30 20 57 48 45 52 45 20 2b 20 2b 20 63 6f  ab0 WHERE + + co
1b4f0 6c 31 20 42 45 54 57 45 45 4e 20 35 20 2b 20 2d  l1 BETWEEN 5 + -
1b500 20 63 6f 6c 30 20 41 4e 44 20 37 32 0d 0a 2d 2d   col0 AND 72..--
1b510 2d 2d 0d 0a 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..2....skipif 
1b520 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1b530 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1b540 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 32  rowsort label-62
1b550 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  2..SELECT DISTIN
1b560 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
1b570 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
1b580 62 30 20 57 48 45 52 45 20 2b 20 2b 20 63 6f 6c  b0 WHERE + + col
1b590 31 20 42 45 54 57 45 45 4e 20 35 20 2b 20 2d 20  1 BETWEEN 5 + - 
1b5a0 63 6f 6c 30 20 41 4e 44 20 37 32 0d 0a 2d 2d 2d  col0 AND 72..---
1b5b0 2d 0d 0a 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..2....onlyif m
1b5c0 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
1b5d0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
1b5e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1b5f0 2d 36 32 33 0d 0a 53 45 4c 45 43 54 20 4d 41 58  -623..SELECT MAX
1b600 28 20 41 4c 4c 20 31 20 29 20 46 52 4f 4d 20 74  ( ALL 1 ) FROM t
1b610 61 62 32 20 41 53 20 63 6f 72 30 20 43 52 4f 53  ab2 AS cor0 CROS
1b620 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20 63  S JOIN tab0 AS c
1b630 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a  or1..----..1....
1b640 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1b650 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1b660 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1b670 61 62 65 6c 2d 36 32 33 0d 0a 53 45 4c 45 43 54  abel-623..SELECT
1b680 20 4d 41 58 20 28 20 41 4c 4c 20 31 20 29 20 46   MAX ( ALL 1 ) F
1b690 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1b6a0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
1b6b0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
1b6c0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  1....query III r
1b6d0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
1b6e0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1b6f0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c  r0 WHERE NOT col
1b700 30 20 3c 20 2b 20 2b 20 34 36 20 2d 20 63 6f 6c  0 < + + 46 - col
1b710 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  0..----..9 value
1b720 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63  s hashing to 75c
1b730 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62  998aa53ac83218cb
1b740 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d  f2feb962d0a49...
1b750 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1b760 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1b770 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1b780 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1b790 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1b7a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b7b0 54 20 2b 20 28 20 2d 20 37 35 20 29 20 63 6f 6c  T + ( - 75 ) col
1b7c0 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  0 FROM tab2 AS c
1b7d0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 35 0d 0a  or0..----..-75..
1b7e0 2d 37 35 0d 0a 2d 37 35 0d 0a 0d 0a 71 75 65 72  -75..-75....quer
1b7f0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1b800 45 43 54 20 41 4c 4c 20 2d 20 2b 20 63 6f 6c 30  ECT ALL - + col0
1b810 20 2a 20 2b 20 28 20 28 20 2b 20 38 35 20 29 20   * + ( ( + 85 ) 
1b820 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1b830 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
1b840 2d 0d 0a 2d 31 32 37 35 0d 0a 2d 37 33 39 35 0d  -..-1275..-7395.
1b850 0a 2d 38 32 34 35 0d 0a 0d 0a 71 75 65 72 79 20  .-8245....query 
1b860 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1b870 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2b 20 2d  T ALL + col2 + -
1b880 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 32 33 20 41   - col0 + - 23 A
1b890 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
1b8a0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
1b8b0 31 32 31 0d 0a 31 32 34 0d 0a 31 33 36 0d 0a 0d  121..124..136...
1b8c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1b8d0 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32 20  ..SELECT - col2 
1b8e0 2b 20 63 6f 6c 30 20 2b 20 2b 20 39 34 20 41 53  + col0 + + 94 AS
1b8f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
1b900 0a 2d 2d 2d 2d 0d 0a 31 31 37 0d 0a 31 32 30 0d  .----..117..120.
1b910 0a 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .49....onlyif my
1b920 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1b930 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1b940 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1b950 36 32 39 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  629..SELECT ALL 
1b960 2b 20 2b 20 43 4f 55 4e 54 28 20 2b 20 37 33 20  + + COUNT( + 73 
1b970 29 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  ) FROM tab1 WHER
1b980 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55  E NOT NULL IS NU
1b990 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73  LL..----..0....s
1b9a0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1b9b0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1b9c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1b9d0 62 65 6c 2d 36 32 39 0d 0a 53 45 4c 45 43 54 20  bel-629..SELECT 
1b9e0 41 4c 4c 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20  ALL + + COUNT ( 
1b9f0 2b 20 37 33 20 29 20 46 52 4f 4d 20 74 61 62 31  + 73 ) FROM tab1
1ba00 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
1ba10 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30  IS NULL..----..0
1ba20 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1ba30 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
1ba40 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
1ba50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ba60 61 62 65 6c 2d 36 33 30 0d 0a 53 45 4c 45 43 54  abel-630..SELECT
1ba70 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 28 20   DISTINCT CAST( 
1ba80 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
1ba90 20 2b 20 2d 20 37 38 20 41 53 20 63 6f 6c 32 20   + - 78 AS col2 
1baa0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
1bab0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
1bac0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1bad0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1bae0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1baf0 6c 61 62 65 6c 2d 36 33 30 0d 0a 53 45 4c 45 43  label-630..SELEC
1bb00 54 20 44 49 53 54 49 4e 43 54 20 43 41 53 54 20  T DISTINCT CAST 
1bb10 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
1bb20 52 20 29 20 2b 20 2d 20 37 38 20 41 53 20 63 6f  R ) + - 78 AS co
1bb30 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
1bb40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
1bb50 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
1bb60 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
1bb70 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
1bb80 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 31  owsort label-631
1bb90 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1bba0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  T COUNT( * ) AS 
1bbb0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
1bbc0 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 30 20 2a  or0 WHERE col0 *
1bbd0 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 49   col1 * - col2 I
1bbe0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S NULL..----..0.
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 33 31 0d 0a 53 45 4c  t label-631..SEL
1bc30 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55  ECT DISTINCT COU
1bc40 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
1bc50 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
1bc60 57 48 45 52 45 20 63 6f 6c 30 20 2a 20 63 6f 6c  WHERE col0 * col
1bc70 31 20 2a 20 2d 20 63 6f 6c 32 20 49 53 20 4e 55  1 * - col2 IS NU
1bc80 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71  LL..----..0....q
1bc90 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1bca0 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1bcb0 74 61 62 32 20 57 48 45 52 45 20 63 6f 6c 31 20  tab2 WHERE col1 
1bcc0 3e 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36  > col0..----..46
1bcd0 0d 0a 35 31 0d 0a 32 33 0d 0a 36 34 0d 0a 37 37  ..51..23..64..77
1bce0 0d 0a 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..40....query I 
1bcf0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1bd00 31 36 20 2a 20 2b 20 63 6f 6c 31 20 2b 20 34 39  16 * + col1 + 49
1bd10 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1bd20 0d 0a 31 32 39 0d 0a 32 37 33 0d 0a 38 30 31 0d  ..129..273..801.
1bd30 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1bd40 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
1bd50 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
1bd60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bd70 62 65 6c 2d 36 33 34 0d 0a 53 45 4c 45 43 54 20  bel-634..SELECT 
1bd80 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 44 49  DISTINCT col2 DI
1bd90 56 20 2b 20 36 34 20 46 52 4f 4d 20 74 61 62 32  V + 64 FROM tab2
1bda0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69  ..----..0....ski
1bdb0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1bdc0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1bdd0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1bde0 6c 2d 36 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  l-634..SELECT DI
1bdf0 53 54 49 4e 43 54 20 63 6f 6c 32 20 2f 20 2b 20  STINCT col2 / + 
1be00 36 34 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  64 FROM tab2..--
1be10 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  --..0....onlyif 
1be20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1be30 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f  e syntax: DIV fo
1be40 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
1be50 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
1be60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 35 0d  wsort label-635.
1be70 0a 53 45 4c 45 43 54 20 2d 20 31 39 20 44 49 56  .SELECT - 19 DIV
1be80 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
1be90 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36  OM tab2..----..6
1bea0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1beb0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1bec0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1bed0 72 74 20 6c 61 62 65 6c 2d 36 33 35 0d 0a 53 45  rt label-635..SE
1bee0 4c 45 43 54 20 2d 20 31 39 20 2f 20 2d 20 43 4f  LECT - 19 / - CO
1bef0 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
1bf00 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 36 0d 0a 0d 0a  ab2..----..6....
1bf10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1bf20 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1bf30 20 33 30 20 2b 20 2d 20 39 30 20 41 53 20 63 6f   30 + - 90 AS co
1bf40 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l0 FROM tab2..--
1bf50 2d 2d 0d 0a 2d 36 30 0d 0a 0d 0a 6f 6e 6c 79 69  --..-60....onlyi
1bf60 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1bf70 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1bf80 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1bf90 62 65 6c 2d 36 33 37 0d 0a 53 45 4c 45 43 54 20  bel-637..SELECT 
1bfa0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
1bfb0 28 20 2b 20 31 35 20 29 20 2d 20 28 20 43 4f 55  ( + 15 ) - ( COU
1bfc0 4e 54 28 20 2a 20 29 20 29 20 2a 20 2b 20 37 34  NT( * ) ) * + 74
1bfd0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1bfe0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 39 0d 0a  b1..----..-219..
1bff0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1c000 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1c010 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c020 20 6c 61 62 65 6c 2d 36 33 37 0d 0a 53 45 4c 45   label-637..SELE
1c030 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
1c040 55 4e 54 20 28 20 2b 20 31 35 20 29 20 2d 20 28  UNT ( + 15 ) - (
1c050 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 29 20 2a   COUNT ( * ) ) *
1c060 20 2b 20 37 34 20 41 53 20 63 6f 6c 31 20 46 52   + 74 AS col1 FR
1c070 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
1c080 32 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  219....onlyif my
1c090 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
1c0a0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
1c0b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1c0c0 36 33 38 0d 0a 53 45 4c 45 43 54 20 2b 20 38 20  638..SELECT + 8 
1c0d0 2b 20 53 55 4d 28 20 63 6f 6c 32 20 29 20 46 52  + SUM( col2 ) FR
1c0e0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab2..----..1
1c0f0 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  29....skipif mys
1c100 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1c110 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1c120 73 6f 72 74 20 6c 61 62 65 6c 2d 36 33 38 0d 0a  sort label-638..
1c130 53 45 4c 45 43 54 20 2b 20 38 20 2b 20 53 55 4d  SELECT + 8 + SUM
1c140 20 28 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74   ( col2 ) FROM t
1c150 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a  ab2..----..129..
1c160 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c170 74 0d 0a 53 45 4c 45 43 54 20 32 36 20 2a 20 2b  t..SELECT 26 * +
1c180 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 2a   col2 + - col2 *
1c190 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1c1a0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35 32 30 0d 0a  2..----..-1520..
1c1b0 2d 32 38 34 32 0d 0a 2d 34 36 30 0d 0a 0d 0a 71  -2842..-460....q
1c1c0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1c1d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46  ..SELECT ALL * F
1c1e0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 2b  ROM tab1 WHERE +
1c1f0 20 63 6f 6c 30 20 49 4e 20 28 20 2b 20 63 6f 6c   col0 IN ( + col
1c200 30 20 2a 20 2b 20 34 20 29 0d 0a 2d 2d 2d 2d 0d  0 * + 4 )..----.
1c210 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1c220 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
1c230 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
1c240 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
1c250 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1c260 6c 61 62 65 6c 2d 36 34 31 0d 0a 53 45 4c 45 43  label-641..SELEC
1c270 54 20 41 4c 4c 20 32 30 20 44 49 56 20 43 4f 55  T ALL 20 DIV COU
1c280 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
1c290 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1c2a0 0a 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .6....skipif mys
1c2b0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1c2c0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1c2d0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 34 31 0d 0a  sort label-641..
1c2e0 53 45 4c 45 43 54 20 41 4c 4c 20 32 30 20 2f 20  SELECT ALL 20 / 
1c2f0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
1c300 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
1c310 2d 2d 2d 0d 0a 36 0d 0a 0d 0a 71 75 65 72 79 20  ---..6....query 
1c320 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c330 54 20 2b 20 39 20 2a 20 2d 20 32 37 20 41 53 20  T + 9 * - 27 AS 
1c340 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
1c350 2d 2d 2d 2d 0d 0a 2d 32 34 33 0d 0a 2d 32 34 33  ----..-243..-243
1c360 0d 0a 2d 32 34 33 0d 0a 0d 0a 71 75 65 72 79 20  ..-243....query 
1c370 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c380 54 20 2b 20 34 33 20 2a 20 63 6f 6c 30 20 41 53  T + 43 * col0 AS
1c390 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
1c3a0 0a 2d 2d 2d 2d 0d 0a 32 31 39 33 0d 0a 33 36 35  .----..2193..365
1c3b0 35 0d 0a 33 39 31 33 0d 0a 0d 0a 71 75 65 72 79  5..3913....query
1c3c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1c3d0 43 54 20 35 39 20 2a 20 2d 20 35 30 20 46 52 4f  CT 59 * - 50 FRO
1c3e0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  M tab2..----..-2
1c3f0 39 35 30 0d 0a 2d 32 39 35 30 0d 0a 2d 32 39 35  950..-2950..-295
1c400 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
1c410 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
1c420 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  LL * FROM tab2 W
1c430 48 45 52 45 20 2b 20 63 6f 6c 32 20 2a 20 39 37  HERE + col2 * 97
1c440 20 2d 20 63 6f 6c 30 20 3d 20 4e 55 4c 4c 0d 0a   - col0 = NULL..
1c450 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
1c460 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c470 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1c480 45 52 45 20 36 39 20 2a 20 63 6f 6c 32 20 49 53  ERE 69 * col2 IS
1c490 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
1c4a0 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  .9 values hashin
1c4b0 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61  g to 75c998aa53a
1c4c0 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32  c83218cbf2feb962
1c4d0 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  d0a49....onlyif 
1c4e0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
1c4f0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
1c500 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c510 6c 2d 36 34 37 0d 0a 53 45 4c 45 43 54 20 2d 20  l-647..SELECT - 
1c520 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20 2b 20 4d  COUNT( * ) * + M
1c530 49 4e 28 20 2b 20 63 6f 6c 31 20 29 20 63 6f 6c  IN( + col1 ) col
1c540 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  0 FROM tab0..---
1c550 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
1c560 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1c570 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
1c580 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
1c590 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
1c5a0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
1c5b0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
1c5c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c5d0 20 6c 61 62 65 6c 2d 36 34 37 0d 0a 53 45 4c 45   label-647..SELE
1c5e0 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
1c5f0 20 2a 20 2b 20 4d 49 4e 20 28 20 2b 20 63 6f 6c   * + MIN ( + col
1c600 31 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  1 ) col0 FROM ta
1c610 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a  b0..----..-3....
1c620 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1c630 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1c640 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1c650 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1c660 2d 36 34 38 0d 0a 53 45 4c 45 43 54 20 2b 20 43  -648..SELECT + C
1c670 41 53 54 28 20 37 34 20 41 53 20 53 49 47 4e 45  AST( 74 AS SIGNE
1c680 44 20 29 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f  D ) * + col0 FRO
1c690 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 34  M tab2..----..34
1c6a0 30 34 0d 0a 34 37 33 36 0d 0a 35 35 35 30 0d 0a  04..4736..5550..
1c6b0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1c6c0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1c6d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1c6e0 20 6c 61 62 65 6c 2d 36 34 38 0d 0a 53 45 4c 45   label-648..SELE
1c6f0 43 54 20 2b 20 43 41 53 54 20 28 20 37 34 20 41  CT + CAST ( 74 A
1c700 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20  S INTEGER ) * + 
1c710 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
1c720 2d 2d 2d 2d 0d 0a 33 34 30 34 0d 0a 34 37 33 36  ----..3404..4736
1c730 0d 0a 35 35 35 30 0d 0a 0d 0a 71 75 65 72 79 20  ..5550....query 
1c740 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1c750 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 2a 20 63  T ( - col1 ) * c
1c760 6f 6c 32 20 2b 20 39 35 20 2a 20 63 6f 6c 31 20  ol2 + 95 * col1 
1c770 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
1c780 0a 2d 34 0d 0a 31 37 38 35 0d 0a 33 38 38 38 0d  .-4..1785..3888.
1c790 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
1c7a0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20  rt..SELECT col2 
1c7b0 2a 20 38 33 20 2b 20 63 6f 6c 30 20 41 53 20 63  * 83 + col0 AS c
1c7c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
1c7d0 2d 2d 2d 0d 0a 34 39 38 32 0d 0a 35 37 33 35 0d  ---..4982..5735.
1c7e0 0a 38 30 31 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .8019....onlyif 
1c7f0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1c800 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1c810 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1c820 6f 72 74 20 6c 61 62 65 6c 2d 36 35 31 0d 0a 53  ort label-651..S
1c830 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
1c840 41 53 54 28 20 2b 20 63 6f 6c 31 20 41 53 20 53  AST( + col1 AS S
1c850 49 47 4e 45 44 20 29 20 2a 20 2d 20 28 20 2b 20  IGNED ) * - ( + 
1c860 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
1c870 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31 35 0d 0a 2d  ..----..-1215..-
1c880 31 38 32 37 0d 0a 2d 39 37 0d 0a 0d 0a 73 6b 69  1827..-97....ski
1c890 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
1c8a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
1c8b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1c8c0 6c 2d 36 35 31 0d 0a 53 45 4c 45 43 54 20 44 49  l-651..SELECT DI
1c8d0 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 2b 20  STINCT CAST ( + 
1c8e0 63 6f 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20  col1 AS INTEGER 
1c8f0 29 20 2a 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29  ) * - ( + col0 )
1c900 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1c910 0d 0a 2d 31 32 31 35 0d 0a 2d 31 38 32 37 0d 0a  ..-1215..-1827..
1c920 2d 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -97....onlyif my
1c930 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e  sql # DIV for in
1c940 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20  teger division: 
1c950 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c960 74 20 6c 61 62 65 6c 2d 36 35 32 0d 0a 53 45 4c  t label-652..SEL
1c970 45 43 54 20 2d 20 63 6f 6c 30 20 44 49 56 20 2b  ECT - col0 DIV +
1c980 20 28 20 2b 20 63 6f 6c 30 20 29 20 2d 20 34 38   ( + col0 ) - 48
1c990 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
1c9a0 0d 0a 2d 34 39 0d 0a 2d 34 39 0d 0a 2d 34 39 0d  ..-49..-49..-49.
1c9b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
1c9c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
1c9d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
1c9e0 74 20 6c 61 62 65 6c 2d 36 35 32 0d 0a 53 45 4c  t label-652..SEL
1c9f0 45 43 54 20 2d 20 63 6f 6c 30 20 2f 20 2b 20 28  ECT - col0 / + (
1ca00 20 2b 20 63 6f 6c 30 20 29 20 2d 20 34 38 20 46   + col0 ) - 48 F
1ca10 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
1ca20 2d 34 39 0d 0a 2d 34 39 0d 0a 2d 34 39 0d 0a 0d  -49..-49..-49...
1ca30 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
1ca40 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
1ca50 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
1ca60 20 4e 4f 54 20 2d 20 39 35 20 49 4e 20 28 20 63   NOT - 95 IN ( c
1ca70 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76  ol0 )..----..9 v
1ca80 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
1ca90 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
1caa0 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
1cab0 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  d....query III r
1cac0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1cad0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
1cae0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab0 WHERE NOT - 
1caf0 63 6f 6c 31 20 3c 3d 20 35 33 0d 0a 2d 2d 2d 2d  col1 <= 53..----
1cb00 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1cb10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
1cb20 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
1cb30 62 32 20 57 48 45 52 45 20 28 20 4e 55 4c 4c 20  b2 WHERE ( NULL 
1cb40 29 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55  ) NOT BETWEEN NU
1cb50 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d  LL AND NULL..---
1cb60 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
1cb70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1cb80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1cb90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35  rowsort label-65
1cba0 36 0d 0a 53 45 4c 45 43 54 20 28 20 28 20 2b 20  6..SELECT ( ( + 
1cbb0 53 55 4d 28 20 63 6f 6c 32 20 29 20 29 20 29 20  SUM( col2 ) ) ) 
1cbc0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1cbd0 31 0d 0a 2d 2d 2d 2d 0d 0a 32 32 33 0d 0a 0d 0a  1..----..223....
1cbe0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1cbf0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1cc00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1cc10 61 62 65 6c 2d 36 35 36 0d 0a 53 45 4c 45 43 54  abel-656..SELECT
1cc20 20 28 20 28 20 2b 20 53 55 4d 20 28 20 63 6f 6c   ( ( + SUM ( col
1cc30 32 20 29 20 29 20 29 20 41 53 20 63 6f 6c 31 20  2 ) ) ) AS col1 
1cc40 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1cc50 0a 32 32 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .223....query II
1cc60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1cc70 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
1cc80 4d 20 74 61 62 31 20 57 48 45 52 45 20 32 39 20  M tab1 WHERE 29 
1cc90 4e 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c  NOT BETWEEN NULL
1cca0 20 41 4e 44 20 28 20 2b 20 38 20 2b 20 63 6f 6c   AND ( + 8 + col
1ccb0 32 20 2a 20 33 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  2 * 31 )..----..
1ccc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1ccd0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1cce0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1ccf0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 35 38 0d 0a  sort label-658..
1cd00 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
1cd10 4e 54 28 20 2a 20 29 20 2b 20 2b 20 28 20 36 20  NT( * ) + + ( 6 
1cd20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
1cd30 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  ab1..----..9....
1cd40 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
1cd50 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
1cd60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1cd70 61 62 65 6c 2d 36 35 38 0d 0a 53 45 4c 45 43 54  abel-658..SELECT
1cd80 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ALL + COUNT ( *
1cd90 20 29 20 2b 20 2b 20 28 20 36 20 29 20 41 53 20   ) + + ( 6 ) AS 
1cda0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col1 FROM tab1..
1cdb0 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a 71 75 65 72 79  ----..9....query
1cdc0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1cdd0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
1cde0 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
1cdf0 74 61 62 31 20 57 48 45 52 45 20 2d 20 37 30 20  tab1 WHERE - 70 
1ce00 49 4e 20 28 20 2b 20 39 36 20 2a 20 2b 20 63 6f  IN ( + 96 * + co
1ce10 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d  l2 + + col1 )..-
1ce20 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ---....query III
1ce30 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ce40 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45   * FROM tab0 WHE
1ce50 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 30 20 2b 20  RE NOT + col0 + 
1ce60 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col1 IS NULL..--
1ce70 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1ce80 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
1ce90 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
1cea0 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
1ceb0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1cec0 45 43 54 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  ECT col1 FROM ta
1ced0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  b0 WHERE NOT ( N
1cee0 55 4c 4c 20 29 20 4e 4f 54 20 42 45 54 57 45 45  ULL ) NOT BETWEE
1cef0 4e 20 4e 55 4c 4c 20 41 4e 44 20 2d 20 63 6f 6c  N NULL AND - col
1cf00 30 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d 2d 0d 0a  0 + col1..----..
1cf10 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1cf20 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
1cf30 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
1cf40 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
1cf50 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1cf60 61 62 65 6c 2d 36 36 32 0d 0a 53 45 4c 45 43 54  abel-662..SELECT
1cf70 20 44 49 53 54 49 4e 43 54 20 2d 20 32 20 2b 20   DISTINCT - 2 + 
1cf80 43 4f 55 4e 54 28 20 41 4c 4c 20 43 41 53 54 28  COUNT( ALL CAST(
1cf90 20 36 36 20 41 53 20 53 49 47 4e 45 44 20 29 20   66 AS SIGNED ) 
1cfa0 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
1cfb0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 73  b1..----..1....s
1cfc0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1cfd0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1cfe0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1cff0 62 65 6c 2d 36 36 32 0d 0a 53 45 4c 45 43 54 20  bel-662..SELECT 
1d000 44 49 53 54 49 4e 43 54 20 2d 20 32 20 2b 20 43  DISTINCT - 2 + C
1d010 4f 55 4e 54 20 28 20 41 4c 4c 20 43 41 53 54 20  OUNT ( ALL CAST 
1d020 28 20 36 36 20 41 53 20 49 4e 54 45 47 45 52 20  ( 66 AS INTEGER 
1d030 29 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20  ) - col0 ) FROM 
1d040 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 0d  tab1..----..1...
1d050 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d060 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1d070 54 20 63 6f 6c 31 20 2a 20 2b 20 28 20 2b 20 63  T col1 * + ( + c
1d080 6f 6c 30 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol0 ) AS col1 FR
1d090 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1d0a0 0a 2d 2d 2d 2d 0d 0a 32 33 34 36 0d 0a 34 39 32  .----..2346..492
1d0b0 38 0d 0a 35 30 32 35 0d 0a 0d 0a 71 75 65 72 79  8..5025....query
1d0c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1d0d0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f  CT DISTINCT - co
1d0e0 6c 31 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d  l1 * - col0 FROM
1d0f0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1d100 45 52 45 20 28 20 2d 20 63 6f 6c 31 20 2a 20 63  ERE ( - col1 * c
1d110 6f 6c 32 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ol2 ) IS NOT NUL
1d120 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 36 0d 0a 34  L..----..2346..4
1d130 39 32 38 0d 0a 35 30 32 35 0d 0a 0d 0a 6f 6e 6c  928..5025....onl
1d140 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1d150 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
1d160 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d170 6c 61 62 65 6c 2d 36 36 35 0d 0a 53 45 4c 45 43  label-665..SELEC
1d180 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d 49 4e  T DISTINCT + MIN
1d190 28 20 41 4c 4c 20 39 35 20 29 20 41 53 20 63 6f  ( ALL 95 ) AS co
1d1a0 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1d1b0 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c 32 20  cor0 WHERE col2 
1d1c0 2a 20 63 6f 6c 30 20 42 45 54 57 45 45 4e 20 4e  * col0 BETWEEN N
1d1d0 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d  ULL AND NULL..--
1d1e0 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
1d1f0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1d200 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1d210 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1d220 2d 36 36 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  -665..SELECT DIS
1d230 54 49 4e 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c  TINCT + MIN ( AL
1d240 4c 20 39 35 20 29 20 41 53 20 63 6f 6c 31 20 46  L 95 ) AS col1 F
1d250 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
1d260 20 57 48 45 52 45 20 63 6f 6c 32 20 2a 20 63 6f   WHERE col2 * co
1d270 6c 30 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  l0 BETWEEN NULL 
1d280 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
1d290 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 49  NULL....query II
1d2a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d2b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
1d2c0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1d2d0 28 20 32 34 20 2a 20 37 39 20 2b 20 63 6f 6c 31  ( 24 * 79 + col1
1d2e0 20 29 20 3e 3d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d   ) >= - col0..--
1d2f0 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1d300 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1d310 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1d320 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1d330 36 37 0d 0a 53 45 4c 45 43 54 20 4d 41 58 28 20  67..SELECT MAX( 
1d340 41 4c 4c 20 63 6f 6c 31 20 29 20 2a 20 33 33 20  ALL col1 ) * 33 
1d350 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1d360 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35 34 31 0d 0a 0d  0..----..2541...
1d370 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
1d380 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
1d390 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
1d3a0 6c 61 62 65 6c 2d 36 36 37 0d 0a 53 45 4c 45 43  label-667..SELEC
1d3b0 54 20 4d 41 58 20 28 20 41 4c 4c 20 63 6f 6c 31  T MAX ( ALL col1
1d3c0 20 29 20 2a 20 33 33 20 46 52 4f 4d 20 74 61 62   ) * 33 FROM tab
1d3d0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
1d3e0 0a 32 35 34 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .2541....onlyif 
1d3f0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1d400 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
1d410 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
1d420 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 36 38 0d  wsort label-668.
1d430 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1d440 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
1d450 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
1d460 20 39 31 20 2b 20 2b 20 43 41 53 54 28 20 2b 20   91 + + CAST( + 
1d470 33 34 20 41 53 20 53 49 47 4e 45 44 20 29 20 3c  34 AS SIGNED ) <
1d480 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73   NULL..----....s
1d490 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1d4a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1d4b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
1d4c0 6c 61 62 65 6c 2d 36 36 38 0d 0a 53 45 4c 45 43  label-668..SELEC
1d4d0 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
1d4e0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
1d4f0 48 45 52 45 20 4e 4f 54 20 2d 20 39 31 20 2b 20  HERE NOT - 91 + 
1d500 2b 20 43 41 53 54 20 28 20 2b 20 33 34 20 41 53  + CAST ( + 34 AS
1d510 20 49 4e 54 45 47 45 52 20 29 20 3c 20 4e 55 4c   INTEGER ) < NUL
1d520 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
1d530 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72 74 0d   IIIIII rowsort.
1d540 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
1d550 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
1d560 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
1d570 57 48 45 52 45 20 4e 4f 54 20 28 20 32 30 20 29  WHERE NOT ( 20 )
1d580 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
1d590 35 34 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e  54 values hashin
1d5a0 67 20 74 6f 20 39 63 66 35 33 32 39 61 65 35 30  g to 9cf5329ae50
1d5b0 39 32 30 66 34 63 36 65 32 39 37 63 39 66 35 62  920f4c6e297c9f5b
1d5c0 36 35 32 66 64 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  652fd....onlyif 
1d5d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
1d5e0 74 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70  tax: DECIMAL typ
1d5f0 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
1d600 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 30  owsort label-670
1d610 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
1d620 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1d630 52 45 20 4e 4f 54 20 43 41 53 54 28 20 4e 55 4c  RE NOT CAST( NUL
1d640 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20 42  L AS DECIMAL ) B
1d650 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20 29 20  ETWEEN ( NULL ) 
1d660 41 4e 44 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d  AND - col0..----
1d670 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1d680 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1d690 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
1d6a0 73 6f 72 74 20 6c 61 62 65 6c 2d 36 37 30 0d 0a  sort label-670..
1d6b0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
1d6c0 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
1d6d0 20 4e 4f 54 20 43 41 53 54 20 28 20 4e 55 4c 4c   NOT CAST ( NULL
1d6e0 20 41 53 20 52 45 41 4c 20 29 20 42 45 54 57 45   AS REAL ) BETWE
1d6f0 45 4e 20 28 20 4e 55 4c 4c 20 29 20 41 4e 44 20  EN ( NULL ) AND 
1d700 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col0..----....
1d710 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
1d720 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
1d730 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1d740 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 3d 20 63  ERE NOT col1 = c
1d750 6f 6c 32 20 2a 20 2d 20 63 6f 6c 31 0d 0a 2d 2d  ol2 * - col1..--
1d760 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1d770 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
1d780 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
1d790 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
1d7a0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1d7b0 45 43 54 20 41 4c 4c 20 2d 20 37 37 20 2b 20 63  ECT ALL - 77 + c
1d7c0 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 41 53 20  ol2 * + col0 AS 
1d7d0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
1d7e0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34  S cor0..----..24
1d7f0 38 33 0d 0a 34 32 37 33 0d 0a 39 38 31 0d 0a 0d  83..4273..981...
1d800 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73  .skipif postgres
1d810 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20  ql # PostgreSQL 
1d820 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e  requires AS when
1d830 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74   renaming output
1d840 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20   columns..query 
1d850 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d860 54 20 2d 20 28 20 35 37 20 29 20 63 6f 6c 30 20  T - ( 57 ) col0 
1d870 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
1d880 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 37 0d 0a 2d 35  0..----..-57..-5
1d890 37 0d 0a 2d 35 37 0d 0a 0d 0a 71 75 65 72 79 20  7..-57....query 
1d8a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1d8b0 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 41 53 20  T ALL - col2 AS 
1d8c0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
1d8d0 53 20 63 6f 72 30 20 57 48 45 52 45 20 63 6f 6c  S cor0 WHERE col
1d8e0 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
1d8f0 2d 2d 2d 0d 0a 2d 35 39 0d 0a 2d 36 38 0d 0a 2d  ---..-59..-68..-
1d900 39 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  96....query III 
1d910 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1d920 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  * FROM tab1 AS c
1d930 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 30  or0 WHERE - col0
1d940 20 2f 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d   / col1 IS NULL.
1d950 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1d960 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1d970 20 34 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   42 AS col2 FROM
1d980 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
1d990 45 52 45 20 37 37 20 2f 20 2b 20 63 6f 6c 31 20  ERE 77 / + col1 
1d9a0 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
1d9b0 2d 0d 0a 34 32 0d 0a 34 32 0d 0a 34 32 0d 0a 0d  -..42..42..42...
1d9c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1d9d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 36  ..SELECT ALL + 6
1d9e0 39 20 2b 20 36 31 20 2a 20 2b 20 37 38 20 41 53  9 + 61 * + 78 AS
1d9f0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
1da00 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 38 32 37  cor0..----..4827
1da10 0d 0a 34 38 32 37 0d 0a 34 38 32 37 0d 0a 0d 0a  ..4827..4827....
1da20 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
1da30 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
1da40 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
1da50 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1da60 2d 36 37 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  -678..SELECT DIS
1da70 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20 2a 20 2b  TINCT + col1 * +
1da80 20 63 6f 6c 32 20 2b 20 43 41 53 54 28 20 63 6f   col2 + CAST( co
1da90 6c 31 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  l1 AS SIGNED ) F
1daa0 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
1dab0 31 30 30 0d 0a 32 33 31 0d 0a 33 38 38 38 0d 0a  100..231..3888..
1dac0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
1dad0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
1dae0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1daf0 20 6c 61 62 65 6c 2d 36 37 38 0d 0a 53 45 4c 45   label-678..SELE
1db00 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
1db10 6c 31 20 2a 20 2b 20 63 6f 6c 32 20 2b 20 43 41  l1 * + col2 + CA
1db20 53 54 20 28 20 63 6f 6c 31 20 41 53 20 49 4e 54  ST ( col1 AS INT
1db30 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
1db40 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 32 33 31  ..----..100..231
1db50 0d 0a 33 38 38 38 0d 0a 0d 0a 71 75 65 72 79 20  ..3888....query 
1db60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1db70 54 20 28 20 2b 20 63 6f 6c 30 20 29 20 46 52 4f  T ( + col0 ) FRO
1db80 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e  M tab2 WHERE ( N
1db90 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ULL ) IS NOT NUL
1dba0 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
1dbb0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1dbc0 43 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31  CT DISTINCT col1
1dbd0 20 2a 20 2b 20 32 38 20 46 52 4f 4d 20 74 61 62   * + 28 FROM tab
1dbe0 30 0d 0a 2d 2d 2d 2d 0d 0a 32 32 36 38 0d 0a 32  0..----..2268..2
1dbf0 38 0d 0a 35 38 38 0d 0a 0d 0a 71 75 65 72 79 20  8..588....query 
1dc00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1dc10 54 20 63 6f 6c 30 20 2b 20 33 31 20 2b 20 63 6f  T col0 + 31 + co
1dc20 6c 32 20 2a 20 2d 20 63 6f 6c 32 20 46 52 4f 4d  l2 * - col2 FROM
1dc30 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31   tab0..----..-21
1dc40 36 33 0d 0a 2d 39 36 37 33 0d 0a 31 38 0d 0a 0d  63..-9673..18...
1dc50 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1dc60 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
1dc70 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
1dc80 6f 72 74 20 6c 61 62 65 6c 2d 36 38 32 0d 0a 53  ort label-682..S
1dc90 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
1dca0 20 4d 41 58 28 20 2d 20 63 6f 6c 31 20 29 20 41   MAX( - col1 ) A
1dcb0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  S col1 FROM tab0
1dcc0 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 73 6b  ..----..-1....sk
1dcd0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1dce0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
1dcf0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1dd00 65 6c 2d 36 38 32 0d 0a 53 45 4c 45 43 54 20 44  el-682..SELECT D
1dd10 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20  ISTINCT + MAX ( 
1dd20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31  - col1 ) AS col1
1dd30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
1dd40 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ..-1....query II
1dd50 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1dd60 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1dd70 45 52 45 20 63 6f 6c 31 20 3c 3e 20 28 20 63 6f  ERE col1 <> ( co
1dd80 6c 32 20 2d 20 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  l2 - 1 )..----..
1dd90 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
1dda0 20 74 6f 20 37 35 63 39 39 38 61 61 35 33 61 63   to 75c998aa53ac
1ddb0 38 33 32 31 38 63 62 66 32 66 65 62 39 36 32 64  83218cbf2feb962d
1ddc0 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20  0a49....query I 
1ddd0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
1dde0 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  col0 + - col2 + 
1ddf0 35 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  5 FROM tab0..---
1de00 2d 0d 0a 2d 32 37 0d 0a 33 0d 0a 38 32 0d 0a 0d  -..-27..3..82...
1de10 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1de20 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
1de30 2b 20 2d 20 2d 20 35 32 20 2a 20 63 6f 6c 32 20  + - - 52 * col2 
1de40 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
1de50 0a 33 31 32 37 0d 0a 33 36 30 34 0d 0a 35 30 38  .3127..3604..508
1de60 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
1de70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
1de80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
1de90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1dea0 36 0d 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 28  6..SELECT + SUM(
1deb0 20 2d 20 2b 20 32 34 20 29 20 2b 20 2d 20 36 34   - + 24 ) + - 64
1dec0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1ded0 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  b2 cor0..----..-
1dee0 31 33 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  136....skipif my
1def0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1df00 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1df10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38 36 0d  wsort label-686.
1df20 0a 53 45 4c 45 43 54 20 2b 20 53 55 4d 20 28 20  .SELECT + SUM ( 
1df30 2d 20 2b 20 32 34 20 29 20 2b 20 2d 20 36 34 20  - + 24 ) + - 64 
1df40 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1df50 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  2 cor0..----..-1
1df60 33 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  36....onlyif mys
1df70 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1df80 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1df90 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1dfa0 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  87..SELECT ALL +
1dfb0 20 39 37 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 28   97 + + + COUNT(
1dfc0 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
1dfd0 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab1 cor0..---
1dfe0 2d 0d 0a 31 30 30 0d 0a 0d 0a 73 6b 69 70 69 66  -..100....skipif
1dff0 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
1e000 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
1e010 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36   rowsort label-6
1e020 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  87..SELECT ALL +
1e030 20 39 37 20 2b 20 2b 20 2b 20 43 4f 55 4e 54 20   97 + + + COUNT 
1e040 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
1e050 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
1e060 2d 2d 0d 0a 31 30 30 0d 0a 0d 0a 6f 6e 6c 79 69  --..100....onlyi
1e070 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
1e080 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
1e090 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
1e0a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 38  rowsort label-68
1e0b0 38 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  8..SELECT * FROM
1e0c0 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52 45   tab2 cor0 WHERE
1e0d0 20 4e 55 4c 4c 20 3c 3d 20 43 41 53 54 28 20 2d   NULL <= CAST( -
1e0e0 20 37 33 20 41 53 20 53 49 47 4e 45 44 20 29 0d   73 AS SIGNED ).
1e0f0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
1e100 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1e110 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
1e120 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1e130 36 38 38 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  688..SELECT * FR
1e140 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45  OM tab2 cor0 WHE
1e150 52 45 20 4e 55 4c 4c 20 3c 3d 20 43 41 53 54 20  RE NULL <= CAST 
1e160 28 20 2d 20 37 33 20 41 53 20 49 4e 54 45 47 45  ( - 73 AS INTEGE
1e170 52 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  R )..----....que
1e180 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1e190 4c 45 43 54 20 41 4c 4c 20 39 30 20 2a 20 2d 20  LECT ALL 90 * - 
1e1a0 63 6f 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  col1 AS col2 FRO
1e1b0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1e1c0 2d 2d 2d 2d 0d 0a 2d 31 38 39 30 0d 0a 2d 37 32  ----..-1890..-72
1e1d0 39 30 0d 0a 2d 39 30 0d 0a 0d 0a 6f 6e 6c 79 69  90..-90....onlyi
1e1e0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
1e1f0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
1e200 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e210 62 65 6c 2d 36 39 30 0d 0a 53 45 4c 45 43 54 20  bel-690..SELECT 
1e220 2d 20 43 4f 55 4e 54 28 20 63 6f 6c 32 20 29 20  - COUNT( col2 ) 
1e230 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
1e240 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
1e250 55 4c 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  ULL ) IS NOT NUL
1e260 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b  L..----..0....sk
1e270 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
1e280 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69   compatible..ski
1e290 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
1e2a0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
1e2b0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
1e2c0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
1e2d0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
1e2e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 30 0d  wsort label-690.
1e2f0 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 20  .SELECT - COUNT 
1e300 28 20 63 6f 6c 32 20 29 20 63 6f 6c 32 20 46 52  ( col2 ) col2 FR
1e310 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
1e320 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 49  WHERE ( NULL ) I
1e330 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
1e340 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  ..0....query III
1e350 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1e360 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1e370 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1e380 45 52 45 20 32 30 20 2a 20 31 36 20 49 53 20 4e  ERE 20 * 16 IS N
1e390 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
1e3a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
1e3b0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e3c0 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  * FROM tab2 WHER
1e3d0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 3c  E NOT ( NULL ) <
1e3e0 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 31   - col0 + - col1
1e3f0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
1e400 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1e410 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1e420 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1e430 65 6c 2d 36 39 33 0d 0a 53 45 4c 45 43 54 20 2d  el-693..SELECT -
1e440 20 53 55 4d 28 20 44 49 53 54 49 4e 43 54 20 2b   SUM( DISTINCT +
1e450 20 2d 20 33 37 20 29 20 46 52 4f 4d 20 74 61 62   - 37 ) FROM tab
1e460 31 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 0d 0a 73  1..----..37....s
1e470 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1e480 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
1e490 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e4a0 62 65 6c 2d 36 39 33 0d 0a 53 45 4c 45 43 54 20  bel-693..SELECT 
1e4b0 2d 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54  - SUM ( DISTINCT
1e4c0 20 2b 20 2d 20 33 37 20 29 20 46 52 4f 4d 20 74   + - 37 ) FROM t
1e4d0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 37 0d 0a 0d  ab1..----..37...
1e4e0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1e4f0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
1e500 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1e510 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
1e520 62 65 6c 2d 36 39 34 0d 0a 53 45 4c 45 43 54 20  bel-694..SELECT 
1e530 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ALL * FROM tab2 
1e540 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 33 38  WHERE NOT ( - 38
1e550 20 29 20 3d 20 2d 20 43 41 53 54 28 20 4e 55 4c   ) = - CAST( NUL
1e560 4c 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d  L AS SIGNED )..-
1e570 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
1e580 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1e590 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49 20  ible..query III 
1e5a0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39  rowsort label-69
1e5b0 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  4..SELECT ALL * 
1e5c0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
1e5d0 4e 4f 54 20 28 20 2d 20 33 38 20 29 20 3d 20 2d  NOT ( - 38 ) = -
1e5e0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
1e5f0 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d 0d  INTEGER )..----.
1e600 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
1e610 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
1e620 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
1e630 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
1e640 62 65 6c 2d 36 39 35 0d 0a 53 45 4c 45 43 54 20  bel-695..SELECT 
1e650 43 41 53 54 28 20 2b 20 2b 20 63 6f 6c 31 20 41  CAST( + + col1 A
1e660 53 20 53 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c  S SIGNED ) * col
1e670 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  1 AS col1 FROM t
1e680 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
1e690 2d 0d 0a 32 36 30 31 0d 0a 34 34 38 39 0d 0a 35  -..2601..4489..5
1e6a0 39 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  929....skipif my
1e6b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1e6c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1e6d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 35 0d  wsort label-695.
1e6e0 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 2b  .SELECT CAST ( +
1e6f0 20 2b 20 63 6f 6c 31 20 41 53 20 49 4e 54 45 47   + col1 AS INTEG
1e700 45 52 20 29 20 2a 20 63 6f 6c 31 20 41 53 20 63  ER ) * col1 AS c
1e710 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol1 FROM tab2 AS
1e720 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 36 30   cor0..----..260
1e730 31 0d 0a 34 34 38 39 0d 0a 35 39 32 39 0d 0a 0d  1..4489..5929...
1e740 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1e750 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1e760 54 20 2b 20 39 34 20 2b 20 37 30 20 41 53 20 63  T + 94 + 70 AS c
1e770 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53  ol0 FROM tab1 AS
1e780 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1e790 28 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 63 6f 6c  ( + col0 + + col
1e7a0 30 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  0 ) IS NULL..---
1e7b0 2d 0d 0a 31 36 34 0d 0a 0d 0a 6f 6e 6c 79 69 66  -..164....onlyif
1e7c0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
1e7d0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
1e7e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1e7f0 65 6c 2d 36 39 37 0d 0a 53 45 4c 45 43 54 20 44  el-697..SELECT D
1e800 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 28 20 41  ISTINCT + SUM( A
1e810 4c 4c 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74  LL col1 ) FROM t
1e820 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab1 cor0..----..
1e830 36 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  66....skipif mys
1e840 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1e850 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1e860 73 6f 72 74 20 6c 61 62 65 6c 2d 36 39 37 0d 0a  sort label-697..
1e870 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1e880 2b 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 31  + SUM ( ALL col1
1e890 20 29 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72   ) FROM tab1 cor
1e8a0 30 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d 0a 0d 0a 71  0..----..66....q
1e8b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1e8c0 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 39  SELECT ALL + ( 9
1e8d0 37 20 29 20 2a 20 2b 20 38 33 20 2b 20 63 6f 6c  7 ) * + 83 + col
1e8e0 32 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  2 * + col0 FROM 
1e8f0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
1e900 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 49 53  RE NOT + col2 IS
1e910 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39   NULL..----..129
1e920 34 37 0d 0a 31 33 30 36 36 0d 0a 31 34 32 33 39  47..13066..14239
1e930 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
1e940 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  ort..SELECT - - 
1e950 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  col2 AS col2 FRO
1e960 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
1e970 48 45 52 45 20 4e 4f 54 20 2d 20 37 37 20 49 53  HERE NOT - 77 IS
1e980 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d   NULL..----..10.
1e990 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65 72 79  .47..99....query
1e9a0 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1e9b0 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20  LECT ALL * FROM 
1e9c0 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
1e9d0 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45 54 57  RE NOT NULL BETW
1e9e0 45 45 4e 20 63 6f 6c 30 20 2f 20 63 6f 6c 30 20  EEN col0 / col0 
1e9f0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
1ea00 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1ea10 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1ea20 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67  x: DIV for integ
1ea30 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
1ea40 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
1ea50 61 62 65 6c 2d 37 30 31 0d 0a 53 45 4c 45 43 54  abel-701..SELECT
1ea60 20 2b 20 2d 20 36 30 20 44 49 56 20 2d 20 2b 20   + - 60 DIV - + 
1ea70 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
1ea80 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
1ea90 0a 32 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .20....skipif my
1eaa0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1eab0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1eac0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 31 0d  wsort label-701.
1ead0 0a 53 45 4c 45 43 54 20 2b 20 2d 20 36 30 20 2f  .SELECT + - 60 /
1eae0 20 2d 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29   - + COUNT ( * )
1eaf0 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
1eb00 0a 2d 2d 2d 2d 0d 0a 32 30 0d 0a 0d 0a 6f 6e 6c  .----..20....onl
1eb10 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
1eb20 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49  egate syntax: DI
1eb30 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
1eb40 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
1eb50 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
1eb60 37 30 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  702..SELECT ALL 
1eb70 32 32 20 44 49 56 20 2b 20 4d 49 4e 28 20 44 49  22 DIV + MIN( DI
1eb80 53 54 49 4e 43 54 20 36 20 29 20 46 52 4f 4d 20  STINCT 6 ) FROM 
1eb90 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
1eba0 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..3....skipif 
1ebb0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1ebc0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1ebd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30  rowsort label-70
1ebe0 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 32 32  2..SELECT ALL 22
1ebf0 20 2f 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49   / + MIN ( DISTI
1ec00 4e 43 54 20 36 20 29 20 46 52 4f 4d 20 74 61 62  NCT 6 ) FROM tab
1ec10 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
1ec20 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  .3....skipif pos
1ec30 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1ec40 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1ec50 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1ec60 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1ec70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1ec80 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
1ec90 32 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  2 col2 FROM tab0
1eca0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
1ecb0 2b 20 28 20 2d 20 39 33 20 29 20 2f 20 2d 20 63  + ( - 93 ) / - c
1ecc0 6f 6c 30 20 3e 3d 20 28 20 63 6f 6c 31 20 2d 20  ol0 >= ( col1 - 
1ecd0 2b 20 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 30 0d  + 1 )..----..10.
1ece0 0a 34 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .47....query III
1ecf0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1ed00 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
1ed10 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
1ed20 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 4e 4f 54  ERE NOT col0 NOT
1ed30 20 42 45 54 57 45 45 4e 20 28 20 4e 55 4c 4c 20   BETWEEN ( NULL 
1ed40 29 20 41 4e 44 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  ) AND + col2..--
1ed50 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
1ed60 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
1ed70 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
1ed80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
1ed90 30 35 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  05..SELECT - COU
1eda0 4e 54 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f  NT( * ) col0 FRO
1edb0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
1edc0 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c   NULL IS NOT NUL
1edd0 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  L..----..-3....s
1ede0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
1edf0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
1ee00 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
1ee10 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
1ee20 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
1ee30 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
1ee40 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
1ee50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 30 35  owsort label-705
1ee60 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54  ..SELECT - COUNT
1ee70 20 28 20 2a 20 29 20 63 6f 6c 30 20 46 52 4f 4d   ( * ) col0 FROM
1ee80 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
1ee90 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
1eea0 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75  ..----..-3....qu
1eeb0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1eec0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
1eed0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 55  OM tab2 WHERE NU
1eee0 4c 4c 20 3e 20 2b 20 28 20 2b 20 2b 20 63 6f 6c  LL > + ( + + col
1eef0 31 20 29 20 2a 20 63 6f 6c 32 20 2b 20 35 39 0d  1 ) * col2 + 59.
1ef00 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1ef10 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
1ef20 54 20 44 49 53 54 49 4e 43 54 20 28 20 2d 20 63  T DISTINCT ( - c
1ef30 6f 6c 32 20 29 2c 20 63 6f 6c 32 20 41 53 20 63  ol2 ), col2 AS c
1ef40 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol2 FROM tab0..-
1ef50 2d 2d 2d 0d 0a 2d 31 30 0d 0a 31 30 0d 0a 2d 34  ---..-10..10..-4
1ef60 37 0d 0a 34 37 0d 0a 2d 39 39 0d 0a 39 39 0d 0a  7..47..-99..99..
1ef70 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
1ef80 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
1ef90 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
1efa0 54 20 2d 20 2b 20 63 6f 6c 30 20 3c 20 2d 20 2b  T - + col0 < - +
1efb0 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col2..----....q
1efc0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1efd0 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
1efe0 2a 20 2d 20 34 39 20 41 53 20 63 6f 6c 31 20 46  * - 49 AS col1 F
1eff0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
1f000 2d 32 33 30 33 0d 0a 2d 32 34 35 0d 0a 2d 36 38  -2303..-245..-68
1f010 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
1f020 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
1f030 20 2d 20 2b 20 28 20 2b 20 2d 20 31 36 20 29 20   - + ( + - 16 ) 
1f040 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
1f050 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36  2 cor0..----..16
1f060 0d 0a 31 36 0d 0a 31 36 0d 0a 0d 0a 71 75 65 72  ..16..16....quer
1f070 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1f080 45 43 54 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 34  ECT col2 * - + 4
1f090 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
1f0a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 34 31 39  or0..----..-2419
1f0b0 0d 0a 2d 32 37 38 38 0d 0a 2d 33 39 33 36 0d 0a  ..-2788..-3936..
1f0c0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1f0d0 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72   DIV for integer
1f0e0 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65   division: ..que
1f0f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
1f100 65 6c 2d 37 31 32 0d 0a 53 45 4c 45 43 54 20 2b  el-712..SELECT +
1f110 20 2b 20 63 6f 6c 30 20 2a 20 63 6f 6c 30 20 2b   + col0 * col0 +
1f120 20 2b 20 2d 20 63 6f 6c 32 20 44 49 56 20 2b 20   + - col2 DIV + 
1f130 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f  col0 AS col0 FRO
1f140 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
1f150 2d 2d 2d 2d 0d 0a 32 32 32 0d 0a 37 35 36 39 0d  ----..222..7569.
1f160 0a 39 34 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .9408....skipif 
1f170 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1f180 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1f190 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31  rowsort label-71
1f1a0 32 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 63 6f  2..SELECT + + co
1f1b0 6c 30 20 2a 20 63 6f 6c 30 20 2b 20 2b 20 2d 20  l0 * col0 + + - 
1f1c0 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 30 20 41 53  col2 / + col0 AS
1f1d0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20   col0 FROM tab0 
1f1e0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
1f1f0 32 32 0d 0a 37 35 36 39 0d 0a 39 34 30 38 0d 0a  22..7569..9408..
1f200 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
1f210 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
1f220 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
1f230 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 33 0d 0a  sort label-713..
1f240 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
1f250 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
1f260 28 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  ( tab2 AS cor0 C
1f270 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
1f280 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  S cor1 )..----..
1f290 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  9....skipif mysq
1f2a0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
1f2b0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
1f2c0 6f 72 74 20 6c 61 62 65 6c 2d 37 31 33 0d 0a 53  ort label-713..S
1f2d0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43  ELECT DISTINCT C
1f2e0 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
1f2f0 28 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 43  ( tab2 AS cor0 C
1f300 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41  ROSS JOIN tab0 A
1f310 53 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  S cor1 )..----..
1f320 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
1f330 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
1f340 30 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  0 AS col1 FROM t
1f350 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab2 WHERE NOT ( 
1f360 2d 20 2d 20 63 6f 6c 32 20 29 20 4e 4f 54 20 42  - - col2 ) NOT B
1f370 45 54 57 45 45 4e 20 63 6f 6c 31 20 41 4e 44 20  ETWEEN col1 AND 
1f380 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
1f390 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1f3a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1f3b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f3c0 20 6c 61 62 65 6c 2d 37 31 35 0d 0a 53 45 4c 45   label-715..SELE
1f3d0 43 54 20 41 4c 4c 20 2d 20 2d 20 36 33 20 2a 20  CT ALL - - 63 * 
1f3e0 39 32 20 2b 20 2d 20 35 38 20 2a 20 4d 41 58 28  92 + - 58 * MAX(
1f3f0 20 44 49 53 54 49 4e 43 54 20 2b 20 39 31 20 29   DISTINCT + 91 )
1f400 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
1f410 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  b2 cor0..----..5
1f420 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  18....skipif mys
1f430 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
1f440 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
1f450 73 6f 72 74 20 6c 61 62 65 6c 2d 37 31 35 0d 0a  sort label-715..
1f460 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 36  SELECT ALL - - 6
1f470 33 20 2a 20 39 32 20 2b 20 2d 20 35 38 20 2a 20  3 * 92 + - 58 * 
1f480 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 2b  MAX ( DISTINCT +
1f490 20 39 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52   91 ) AS col1 FR
1f4a0 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d  OM tab2 cor0..--
1f4b0 2d 2d 0d 0a 35 31 38 0d 0a 0d 0a 71 75 65 72 79  --..518....query
1f4c0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1f4d0 43 54 20 41 4c 4c 20 2b 20 2d 20 28 20 2d 20 34  CT ALL + - ( - 4
1f4e0 20 29 20 2a 20 63 6f 6c 32 20 2b 20 63 6f 6c 32   ) * col2 + col2
1f4f0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
1f500 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 35 0d 0a 33  r0..----..295..3
1f510 34 30 0d 0a 34 38 30 0d 0a 0d 0a 71 75 65 72 79  40..480....query
1f520 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
1f530 43 54 20 35 20 2b 20 2b 20 63 6f 6c 31 20 46 52  CT 5 + + col1 FR
1f540 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
1f550 0a 2d 2d 2d 2d 0d 0a 35 36 0d 0a 37 32 0d 0a 38  .----..56..72..8
1f560 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
1f570 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
1f580 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
1f590 72 30 20 57 48 45 52 45 20 63 6f 6c 31 20 2b 20  r0 WHERE col1 + 
1f5a0 2b 20 36 34 20 2a 20 2b 20 63 6f 6c 32 20 2b 20  + 64 * + col2 + 
1f5b0 31 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  11 IS NOT NULL..
1f5c0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
1f5d0 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38  ashing to 75c998
1f5e0 61 61 35 33 61 63 38 33 32 31 38 63 62 66 32 66  aa53ac83218cbf2f
1f5f0 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a 71 75  eb962d0a49....qu
1f600 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
1f610 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
1f620 6f 6c 32 20 2b 20 2b 20 39 39 20 41 53 20 63 6f  ol2 + + 99 AS co
1f630 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l1 FROM tab0 AS 
1f640 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 39 0d  cor0..----..109.
1f650 0a 31 34 36 0d 0a 31 39 38 0d 0a 0d 0a 71 75 65  .146..198....que
1f660 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
1f670 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
1f680 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
1f690 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 63  S cor0 WHERE ( c
1f6a0 6f 6c 30 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 63  ol0 * col1 * - c
1f6b0 6f 6c 30 20 2f 20 2d 20 2b 20 63 6f 6c 31 20 2b  ol0 / - + col1 +
1f6c0 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d   col2 ) IS NULL.
1f6d0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
1f6e0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
1f6f0 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b   DISTINCT col2 +
1f700 20 2d 20 2b 20 63 6f 6c 32 20 2b 20 35 39 20 2b   - + col2 + 59 +
1f710 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f   + + col2 * + co
1f720 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
1f730 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 33 32  cor0..----..1232
1f740 0d 0a 33 31 33 39 0d 0a 33 39 34 35 0d 0a 0d 0a  ..3139..3945....
1f750 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
1f760 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 31  .SELECT + - col1
1f770 20 2b 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20   + + + col2 * - 
1f780 2d 20 63 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c  - col0 - - + col
1f790 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
1f7a0 0d 0a 2d 2d 2d 2d 0d 0a 36 33 39 0d 0a 39 33 36  ..----..639..936
1f7b0 0d 0a 39 36 39 39 0d 0a 0d 0a 71 75 65 72 79 20  ..9699....query 
1f7c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
1f7d0 43 54 20 44 49 53 54 49 4e 43 54 20 35 30 20 2b  CT DISTINCT 50 +
1f7e0 20 2b 20 2b 20 37 39 20 41 53 20 63 6f 6c 32 2c   + + 79 AS col2,
1f7f0 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   + col0 FROM tab
1f800 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 39 0d 0a 31 35  0..----..129..15
1f810 0d 0a 31 32 39 0d 0a 38 37 0d 0a 31 32 39 0d 0a  ..129..87..129..
1f820 39 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  97....skipif pos
1f830 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
1f840 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
1f850 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
1f860 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
1f870 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
1f880 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20 2a 20  SELECT + col2 * 
1f890 2d 20 39 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74  - 90 col2 FROM t
1f8a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 33 30  ab0..----..-4230
1f8b0 0d 0a 2d 38 39 31 30 0d 0a 2d 39 30 30 0d 0a 0d  ..-8910..-900...
1f8c0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f8d0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 33 37 20  ..SELECT ALL 37 
1f8e0 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  * col2 FROM tab2
1f8f0 0d 0a 2d 2d 2d 2d 0d 0a 31 34 38 30 0d 0a 32 31  ..----..1480..21
1f900 34 36 0d 0a 38 35 31 0d 0a 0d 0a 71 75 65 72 79  46..851....query
1f910 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
1f920 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
1f930 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
1f940 4e 4f 54 20 28 20 28 20 2b 20 2b 20 63 6f 6c 30  NOT ( ( + + col0
1f950 20 29 20 2b 20 28 20 2b 20 38 36 20 29 20 2d 20   ) + ( + 86 ) - 
1f960 2b 20 39 31 20 49 53 20 4e 55 4c 4c 20 29 0d 0a  + 91 IS NULL )..
1f970 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
1f980 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61 34  ashing to c6c0a4
1f990 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31 61  111b36d04dbc811a
1f9a0 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f 6e  11e4d54cad....on
1f9b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
1f9c0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
1f9d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
1f9e0 20 6c 61 62 65 6c 2d 37 32 37 0d 0a 53 45 4c 45   label-727..SELE
1f9f0 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  CT COUNT( * ) * 
1fa00 2b 20 33 36 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 36 AS col2 FRO
1fa10 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20 4e  M tab2 WHERE ( N
1fa20 55 4c 4c 20 3e 20 2b 20 63 6f 6c 30 20 2a 20 2b  ULL > + col0 * +
1fa30 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30   col1 )..----..0
1fa40 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
1fa50 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
1fa60 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
1fa70 72 74 20 6c 61 62 65 6c 2d 37 32 37 0d 0a 53 45  rt label-727..SE
1fa80 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  LECT COUNT ( * )
1fa90 20 2a 20 2b 20 33 36 20 41 53 20 63 6f 6c 32 20   * + 36 AS col2 
1faa0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
1fab0 28 20 4e 55 4c 4c 20 3e 20 2b 20 63 6f 6c 30 20  ( NULL > + col0 
1fac0 2a 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d  * + col1 )..----
1fad0 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ..0....query I r
1fae0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
1faf0 49 53 54 49 4e 43 54 20 39 33 20 46 52 4f 4d 20  ISTINCT 93 FROM 
1fb00 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28  tab1 WHERE NOT (
1fb10 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 4f 54   NOT NULL IS NOT
1fb20 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   NULL )..----...
1fb30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
1fb40 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
1fb50 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
1fb60 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1fb70 6c 2d 37 32 39 0d 0a 53 45 4c 45 43 54 20 44 49  l-729..SELECT DI
1fb80 53 54 49 4e 43 54 20 32 32 20 44 49 56 20 38 32  STINCT 22 DIV 82
1fb90 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
1fba0 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
1fbb0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
1fbc0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
1fbd0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 32 39 0d  wsort label-729.
1fbe0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
1fbf0 20 32 32 20 2f 20 38 32 20 46 52 4f 4d 20 74 61   22 / 82 FROM ta
1fc00 62 31 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f  b1..----..0....o
1fc10 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
1fc20 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65  ST syntax: aggre
1fc30 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47  gate syntax: SIG
1fc40 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
1fc50 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
1fc60 6c 2d 37 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-730..SELECT AL
1fc70 4c 20 2b 20 28 20 2b 20 43 4f 55 4e 54 28 20 2a  L + ( + COUNT( *
1fc80 20 29 20 29 20 2a 20 31 35 20 2d 20 2b 20 28 20   ) ) * 15 - + ( 
1fc90 2d 20 2d 20 43 41 53 54 28 20 2d 20 43 4f 55 4e  - - CAST( - COUN
1fca0 54 28 20 2a 20 29 20 41 53 20 53 49 47 4e 45 44  T( * ) AS SIGNED
1fcb0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a   ) ) FROM tab1..
1fcc0 2d 2d 2d 2d 0d 0a 34 38 0d 0a 0d 0a 73 6b 69 70  ----..48....skip
1fcd0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
1fce0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
1fcf0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
1fd00 2d 37 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -730..SELECT ALL
1fd10 20 2b 20 28 20 2b 20 43 4f 55 4e 54 20 28 20 2a   + ( + COUNT ( *
1fd20 20 29 20 29 20 2a 20 31 35 20 2d 20 2b 20 28 20   ) ) * 15 - + ( 
1fd30 2d 20 2d 20 43 41 53 54 20 28 20 2d 20 43 4f 55  - - CAST ( - COU
1fd40 4e 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45  NT ( * ) AS INTE
1fd50 47 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62  GER ) ) FROM tab
1fd60 31 0d 0a 2d 2d 2d 2d 0d 0a 34 38 0d 0a 0d 0a 71  1..----..48....q
1fd70 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
1fd80 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
1fd90 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
1fda0 45 52 45 20 2d 20 2d 20 63 6f 6c 32 20 3c 3e 20  ERE - - col2 <> 
1fdb0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
1fdc0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
1fdd0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
1fde0 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab0 AS cor0 WHER
1fdf0 45 20 33 32 20 2b 20 33 37 20 2b 20 2b 20 34 34  E 32 + 37 + + 44
1fe00 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
1fe10 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
1fe20 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36 35  hing to c4b42765
1fe30 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65 35  dff94eaaa46040e5
1fe40 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65 72  37fb43b7....quer
1fe50 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
1fe60 45 43 54 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 28  ECT + + col2 * (
1fe70 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
1fe80 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
1fe90 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 30 0d 0a 32 32  0..----..100..22
1fea0 30 39 0d 0a 39 38 30 31 0d 0a 0d 0a 6f 6e 6c 79  09..9801....only
1feb0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
1fec0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
1fed0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
1fee0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33 34  owsort label-734
1fef0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
1ff00 20 31 39 20 2f 20 2b 20 43 41 53 54 28 20 63 6f   19 / + CAST( co
1ff10 6c 32 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b  l2 AS SIGNED ) +
1ff20 20 2b 20 2b 20 28 20 2d 20 2d 20 43 41 53 54 28   + + ( - - CAST(
1ff30 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
1ff40 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  ) ) AS col1 FROM
1ff50 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
1ff60 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
1ff70 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
1ff80 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
1ff90 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
1ffa0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 33  rowsort label-73
1ffb0 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  4..SELECT ALL - 
1ffc0 2d 20 31 39 20 2f 20 2b 20 43 41 53 54 20 28 20  - 19 / + CAST ( 
1ffd0 63 6f 6c 32 20 41 53 20 49 4e 54 45 47 45 52 20  col2 AS INTEGER 
1ffe0 29 20 2b 20 2b 20 2b 20 28 20 2d 20 2d 20 43 41  ) + + + ( - - CA
1fff0 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
20000 45 47 45 52 20 29 20 29 20 41 53 20 63 6f 6c 31  EGER ) ) AS col1
20010 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
20020 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  r0..----..NULL..
20030 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75  NULL..NULL....qu
20040 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
20050 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
20060 20 2d 20 33 35 20 2d 20 2b 20 38 35 20 41 53 20   - 35 - + 85 AS 
20070 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
20080 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
20090 32 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  20....query I ro
200a0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 34 39  wsort..SELECT 49
200b0 20 2d 20 2d 20 2d 20 63 6f 6c 32 20 46 52 4f 4d   - - - col2 FROM
200c0 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
200d0 2d 2d 2d 0d 0a 2d 35 30 0d 0a 32 0d 0a 33 39 0d  ---..-50..2..39.
200e0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
200f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
20100 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
20110 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e  cor0 WHERE NOT N
20120 55 4c 4c 20 42 45 54 57 45 45 4e 20 33 34 20 2a  ULL BETWEEN 34 *
20130 20 2d 20 37 34 20 41 4e 44 20 4e 55 4c 4c 0d 0a   - 74 AND NULL..
20140 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
20150 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
20160 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
20170 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
20180 72 74 20 6c 61 62 65 6c 2d 37 33 38 0d 0a 53 45  rt label-738..SE
20190 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 44 49  LECT ALL col1 DI
201a0 56 20 2b 20 36 31 20 41 53 20 63 6f 6c 30 20 46  V + 61 AS col0 F
201b0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
201c0 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  0..0..0....skipi
201d0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
201e0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
201f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20200 37 33 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  738..SELECT ALL 
20210 63 6f 6c 31 20 2f 20 2b 20 36 31 20 41 53 20 63  col1 / + 61 AS c
20220 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol0 FROM tab1..-
20230 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
20240 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
20250 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
20260 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
20270 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
20280 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
20290 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
202a0 20 41 4c 4c 20 63 6f 6c 30 20 63 6f 6c 32 20 46   ALL col0 col2 F
202b0 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d  ROM tab2 WHERE -
202c0 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 2a   col2 * + col0 *
202d0 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 28 20   - col2 - + + ( 
202e0 2b 20 63 6f 6c 32 20 29 20 2a 20 2d 20 63 6f 6c  + col2 ) * - col
202f0 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  1 IS NOT NULL..-
20300 2d 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d  ---..46..64..75.
20310 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
20320 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
20330 4e 43 54 20 2d 20 2b 20 39 32 20 41 53 20 63 6f  NCT - + 92 AS co
20340 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
20350 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
20360 20 28 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c   ( col2 ) IS NUL
20370 4c 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 32 0d 0a 0d 0a  L..----..-92....
20380 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
20390 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
203a0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
203b0 72 74 20 6c 61 62 65 6c 2d 37 34 31 0d 0a 53 45  rt label-741..SE
203c0 4c 45 43 54 20 34 34 20 2b 20 53 55 4d 28 20 44  LECT 44 + SUM( D
203d0 49 53 54 49 4e 43 54 20 2b 20 34 32 20 29 20 41  ISTINCT + 42 ) A
203e0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
203f0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
20400 4f 54 20 28 20 4e 4f 54 20 28 20 4e 4f 54 20 28  OT ( NOT ( NOT (
20410 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 20   - col1 IS NULL 
20420 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 38 36 0d  ) ) )..----..86.
20430 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
20440 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
20450 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20460 74 20 6c 61 62 65 6c 2d 37 34 31 0d 0a 53 45 4c  t label-741..SEL
20470 45 43 54 20 34 34 20 2b 20 53 55 4d 20 28 20 44  ECT 44 + SUM ( D
20480 49 53 54 49 4e 43 54 20 2b 20 34 32 20 29 20 41  ISTINCT + 42 ) A
20490 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
204a0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
204b0 4f 54 20 28 20 4e 4f 54 20 28 20 4e 4f 54 20 28  OT ( NOT ( NOT (
204c0 20 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 20   - col1 IS NULL 
204d0 29 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 38 36 0d  ) ) )..----..86.
204e0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
204f0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
20500 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
20510 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 32 0d  wsort label-742.
20520 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58 28 20 41  .SELECT + MAX( A
20530 4c 4c 20 2d 20 2d 20 33 31 20 29 20 2a 20 2d 20  LL - - 31 ) * - 
20540 33 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  3 FROM tab0 cor0
20550 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 33 0d 0a 0d 0a 73  ..----..-93....s
20560 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
20570 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
20580 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20590 62 65 6c 2d 37 34 32 0d 0a 53 45 4c 45 43 54 20  bel-742..SELECT 
205a0 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20 2d 20  + MAX ( ALL - - 
205b0 33 31 20 29 20 2a 20 2d 20 33 20 46 52 4f 4d 20  31 ) * - 3 FROM 
205c0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
205d0 0a 2d 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .-93....onlyif m
205e0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
205f0 61 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79  ax: aggregate sy
20600 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
20610 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
20620 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 33 0d 0a  sort label-743..
20630 53 45 4c 45 43 54 20 2b 20 28 20 2b 20 2b 20 43  SELECT + ( + + C
20640 41 53 54 28 20 43 4f 55 4e 54 28 20 2a 20 29 20  AST( COUNT( * ) 
20650 41 53 20 53 49 47 4e 45 44 20 29 20 29 20 46 52  AS SIGNED ) ) FR
20660 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
20670 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70  .----..3....skip
20680 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
20690 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
206a0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
206b0 2d 37 34 33 0d 0a 53 45 4c 45 43 54 20 2b 20 28  -743..SELECT + (
206c0 20 2b 20 2b 20 43 41 53 54 20 28 20 43 4f 55 4e   + + CAST ( COUN
206d0 54 20 28 20 2a 20 29 20 41 53 20 49 4e 54 45 47  T ( * ) AS INTEG
206e0 45 52 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31  ER ) ) FROM tab1
206f0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
20700 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
20710 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
20720 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
20730 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34  rowsort label-74
20740 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  4..SELECT ALL - 
20750 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
20760 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
20770 45 20 4e 4f 54 20 31 33 20 49 53 20 4e 4f 54 20  E NOT 13 IS NOT 
20780 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  NULL..----..0...
20790 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
207a0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
207b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
207c0 6c 61 62 65 6c 2d 37 34 34 0d 0a 53 45 4c 45 43  label-744..SELEC
207d0 54 20 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 20  T ALL - - COUNT 
207e0 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ( * ) FROM tab2 
207f0 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 31  cor0 WHERE NOT 1
20800 33 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  3 IS NOT NULL..-
20810 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
20820 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20830 54 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 38  T + - col1 * + 8
20840 30 20 2b 20 2b 20 28 20 2d 20 2d 20 33 33 20 29  0 + + ( - - 33 )
20850 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
20860 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 34 37 0d  r0..----..-1647.
20870 0a 2d 34 37 0d 0a 2d 36 34 34 37 0d 0a 0d 0a 71  .-47..-6447....q
20880 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
20890 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
208a0 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
208b0 52 45 20 4e 4f 54 20 28 20 4e 4f 54 20 2b 20 63  RE NOT ( NOT + c
208c0 6f 6c 32 20 2a 20 63 6f 6c 32 20 2d 20 2b 20 63  ol2 * col2 - + c
208d0 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20  ol1 IS NOT NULL 
208e0 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
208f0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
20900 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
20910 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
20920 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
20930 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
20940 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 20   FROM tab1 cor0 
20950 57 48 45 52 45 20 4e 4f 54 20 28 20 2d 20 34 20  WHERE NOT ( - 4 
20960 2a 20 2b 20 63 6f 6c 30 20 29 20 42 45 54 57 45  * + col0 ) BETWE
20970 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b 20 63 6f  EN NULL AND + co
20980 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l2..----....only
20990 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
209a0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
209b0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
209c0 61 62 65 6c 2d 37 34 38 0d 0a 53 45 4c 45 43 54  abel-748..SELECT
209d0 20 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 4d 49   DISTINCT - - MI
209e0 4e 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30  N( DISTINCT col0
209f0 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
20a00 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 73  0..----..15....s
20a10 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
20a20 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
20a30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
20a40 62 65 6c 2d 37 34 38 0d 0a 53 45 4c 45 43 54 20  bel-748..SELECT 
20a50 44 49 53 54 49 4e 43 54 20 2d 20 2d 20 4d 49 4e  DISTINCT - - MIN
20a60 20 28 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 30   ( DISTINCT col0
20a70 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
20a80 30 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 0d 0a 6f  0..----..15....o
20a90 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
20aa0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
20ab0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
20ac0 74 20 6c 61 62 65 6c 2d 37 34 39 0d 0a 53 45 4c  t label-749..SEL
20ad0 45 43 54 20 41 4c 4c 20 28 20 2b 20 2d 20 43 4f  ECT ALL ( + - CO
20ae0 55 4e 54 28 20 44 49 53 54 49 4e 43 54 20 2d 20  UNT( DISTINCT - 
20af0 32 33 20 29 20 29 20 46 52 4f 4d 20 74 61 62 30  23 ) ) FROM tab0
20b00 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
20b10 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  -1....skipif mys
20b20 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
20b30 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
20b40 73 6f 72 74 20 6c 61 62 65 6c 2d 37 34 39 0d 0a  sort label-749..
20b50 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b 20 2d  SELECT ALL ( + -
20b60 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43   COUNT ( DISTINC
20b70 54 20 2d 20 32 33 20 29 20 29 20 46 52 4f 4d 20  T - 23 ) ) FROM 
20b80 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
20b90 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71 75 65 72 79 20  --..-1....query 
20ba0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
20bb0 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
20bc0 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 32  WHERE NOT - col2
20bd0 20 42 45 54 57 45 45 4e 20 2d 20 28 20 63 6f 6c   BETWEEN - ( col
20be0 31 20 29 20 41 4e 44 20 37 34 0d 0a 2d 2d 2d 2d  1 ) AND 74..----
20bf0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
20c00 6e 67 20 74 6f 20 63 36 63 30 61 34 31 31 31 62  ng to c6c0a4111b
20c10 33 36 64 30 34 64 62 63 38 31 31 61 31 31 65 34  36d04dbc811a11e4
20c20 64 35 34 63 61 64 0d 0a 0d 0a 71 75 65 72 79 20  d54cad....query 
20c30 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
20c40 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 63  T DISTINCT ( + c
20c50 6f 6c 32 20 29 20 2a 20 2b 20 63 6f 6c 32 20 41  ol2 ) * + col2 A
20c60 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
20c70 0d 0a 2d 2d 2d 2d 0d 0a 33 34 38 31 0d 0a 34 36  ..----..3481..46
20c80 32 34 0d 0a 39 32 31 36 0d 0a 0d 0a 71 75 65 72  24..9216....quer
20c90 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
20ca0 45 43 54 20 41 4c 4c 20 28 20 2b 20 2d 20 32 35  ECT ALL ( + - 25
20cb0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
20cc0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 35 0d  tab2..----..-25.
20cd0 0a 2d 32 35 0d 0a 2d 32 35 0d 0a 0d 0a 6f 6e 6c  .-25..-25....onl
20ce0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
20cf0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
20d00 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
20d10 20 6c 61 62 65 6c 2d 37 35 33 0d 0a 53 45 4c 45   label-753..SELE
20d20 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28 20 2a 20  CT ALL COUNT( * 
20d30 29 2c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20  ), - COUNT( * ) 
20d40 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
20d50 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
20d60 0a 33 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66  .3..-3....skipif
20d70 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
20d80 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
20d90 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20da0 37 35 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  753..SELECT ALL 
20db0 43 4f 55 4e 54 20 28 20 2a 20 29 2c 20 2d 20 43  COUNT ( * ), - C
20dc0 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f  OUNT ( * ) AS co
20dd0 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
20de0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d  cor0..----..3..-
20df0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
20e00 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
20e10 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
20e20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20e30 6c 61 62 65 6c 2d 37 35 34 0d 0a 53 45 4c 45 43  label-754..SELEC
20e40 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53  T DISTINCT + CAS
20e50 54 28 20 2b 20 35 31 20 41 53 20 53 49 47 4e 45  T( + 51 AS SIGNE
20e60 44 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  D ) AS col2 FROM
20e70 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
20e80 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69  ---..51....skipi
20e90 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
20ea0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
20eb0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
20ec0 37 35 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  754..SELECT DIST
20ed0 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 2b 20  INCT + CAST ( + 
20ee0 35 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  51 AS INTEGER ) 
20ef0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
20f00 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
20f10 0a 35 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .51....query I r
20f20 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
20f30 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2d 20 2d  ISTINCT col2 - -
20f40 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 36 35   - col1 * + - 65
20f50 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
20f60 57 48 45 52 45 20 63 6f 6c 32 20 2a 20 63 6f 6c  WHERE col2 * col
20f70 31 20 3c 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b  1 < + - col1 + +
20f80 20 31 36 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   16..----....onl
20f90 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
20fa0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
20fb0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
20fc0 6c 61 62 65 6c 2d 37 35 36 0d 0a 53 45 4c 45 43  label-756..SELEC
20fd0 54 20 41 4c 4c 20 53 55 4d 28 20 2d 20 63 6f 6c  T ALL SUM( - col
20fe0 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41 53  2 ) FROM tab0 AS
20ff0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
21000 20 49 4e 20 28 20 38 30 20 29 0d 0a 2d 2d 2d 2d   IN ( 80 )..----
21010 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
21020 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
21030 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
21040 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
21050 35 36 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53  56..SELECT ALL S
21060 55 4d 20 28 20 2d 20 63 6f 6c 32 20 29 20 46 52  UM ( - col2 ) FR
21070 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
21080 57 48 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20  WHERE NULL IN ( 
21090 38 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  80 )..----..NULL
210a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
210b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
210c0 49 4e 43 54 20 2b 20 2d 20 39 34 20 2b 20 63 6f  INCT + - 94 + co
210d0 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
210e0 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
210f0 2d 2d 0d 0a 2d 31 33 0d 0a 2d 37 33 0d 0a 2d 39  --..-13..-73..-9
21100 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  3....query I row
21110 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c  sort..SELECT col
21120 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2b 20 2b  2 + - + col1 + +
21130 20 33 32 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d   32 AS col1 FROM
21140 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 0d   tab0..----..-2.
21150 0a 31 33 30 0d 0a 32 31 0d 0a 0d 0a 71 75 65 72  .130..21....quer
21160 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
21170 45 43 54 20 2b 20 31 32 20 41 53 20 63 6f 6c 30  ECT + 12 AS col0
21180 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
21190 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
211a0 62 32 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b2 AS cor1..----
211b0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
211c0 6e 67 20 74 6f 20 64 34 66 35 61 38 65 30 33 32  ng to d4f5a8e032
211d0 32 39 34 63 33 62 39 33 34 32 38 32 31 36 31 37  294c3b9342821617
211e0 38 30 30 39 37 32 0d 0a 0d 0a 71 75 65 72 79 20  800972....query 
211f0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
21200 54 20 41 4c 4c 20 2b 20 28 20 2b 20 63 6f 6c 30  T ALL + ( + col0
21210 20 29 20 2a 20 2b 20 63 6f 6c 31 20 46 52 4f 4d   ) * + col1 FROM
21220 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 34 32 35   tab1..----..425
21230 0d 0a 34 32 37 37 0d 0a 37 31 34 0d 0a 0d 0a 71  ..4277..714....q
21240 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
21250 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  ..SELECT * FROM 
21260 74 61 62 30 20 57 48 45 52 45 20 2b 20 2d 20 34  tab0 WHERE + - 4
21270 30 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d  0 IS NOT NULL..-
21280 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
21290 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32 37 36  shing to c4b4276
212a0 35 64 66 66 39 34 65 61 61 61 34 36 30 34 30 65  5dff94eaaa46040e
212b0 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71 75 65  537fb43b7....que
212c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
212d0 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 32 20  LECT ALL - col2 
212e0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
212f0 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
21300 2b 20 36 20 2a 20 63 6f 6c 30 20 2f 20 2d 20 2d  + 6 * col0 / - -
21310 20 34 36 20 3e 20 2d 20 35 0d 0a 2d 2d 2d 2d 0d   46 > - 5..----.
21320 0a 2d 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a  .-23..-40..-58..
21330 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
21340 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
21350 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
21360 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36 33 0d  wsort label-763.
21370 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
21380 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20   + COUNT( * ) * 
21390 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
213a0 63 6f 6c 32 2c 20 2d 20 38 31 20 63 6f 6c 32 20  col2, - 81 col2 
213b0 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
213c0 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 2d 38 31 0d  0..----..9..-81.
213d0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
213e0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
213f0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
21400 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
21410 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
21420 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
21430 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
21440 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
21450 6c 2d 37 36 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-763..SELECT DI
21460 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20 28  STINCT + COUNT (
21470 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28   * ) * + COUNT (
21480 20 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 2d 20   * ) AS col2, - 
21490 38 31 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  81 col2 FROM tab
214a0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
214b0 0a 39 0d 0a 2d 38 31 0d 0a 0d 0a 6f 6e 6c 79 69  .9..-81....onlyi
214c0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
214d0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
214e0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
214f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 36  rowsort label-76
21500 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
21510 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
21520 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
21530 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 2b   NULL NOT IN ( +
21540 20 63 6f 6c 31 2c 20 43 41 53 54 28 20 4e 55 4c   col1, CAST( NUL
21550 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 29 0d  L AS SIGNED ) ).
21560 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
21570 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
21580 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
21590 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
215a0 37 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  764..SELECT DIST
215b0 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  INCT * FROM tab2
215c0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
215d0 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28  OT NULL NOT IN (
215e0 20 2b 20 63 6f 6c 31 2c 20 43 41 53 54 20 28 20   + col1, CAST ( 
215f0 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20  NULL AS INTEGER 
21600 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ) )..----....que
21610 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
21620 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
21630 33 38 20 2b 20 2d 20 37 30 20 2b 20 2d 20 63 6f  38 + - 70 + - co
21640 6c 31 20 2a 20 2b 20 36 37 20 41 53 20 63 6f 6c  l1 * + 67 AS col
21650 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
21660 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 34 36  or0..----..-1046
21670 0d 0a 2d 33 32 35 37 0d 0a 2d 34 34 33 0d 0a 0d  ..-3257..-443...
21680 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
21690 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
216a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53  regate syntax: S
216b0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
216c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
216d0 62 65 6c 2d 37 36 36 0d 0a 53 45 4c 45 43 54 20  bel-766..SELECT 
216e0 44 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54  DISTINCT + COUNT
216f0 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ( * ) AS col2 FR
21700 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
21710 57 48 45 52 45 20 43 41 53 54 28 20 2d 20 36 30  WHERE CAST( - 60
21720 20 41 53 20 53 49 47 4e 45 44 20 29 20 3c 3d 20   AS SIGNED ) <= 
21730 28 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2b 20 63  ( - col1 + - + c
21740 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 32 0d 0a  ol1 )..----..2..
21750 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
21760 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21770 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21780 20 6c 61 62 65 6c 2d 37 36 36 0d 0a 53 45 4c 45   label-766..SELE
21790 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43 4f  CT DISTINCT + CO
217a0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
217b0 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  2 FROM tab1 AS c
217c0 6f 72 30 20 57 48 45 52 45 20 43 41 53 54 20 28  or0 WHERE CAST (
217d0 20 2d 20 36 30 20 41 53 20 49 4e 54 45 47 45 52   - 60 AS INTEGER
217e0 20 29 20 3c 3d 20 28 20 2d 20 63 6f 6c 31 20 2b   ) <= ( - col1 +
217f0 20 2d 20 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d   - + col1 )..---
21800 2d 0d 0a 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20  -..2....query I 
21810 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
21820 41 4c 4c 20 2d 20 63 6f 6c 31 20 46 52 4f 4d 20  ALL - col1 FROM 
21830 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48 45  tab0 AS cor0 WHE
21840 52 45 20 33 30 20 3d 20 63 6f 6c 32 0d 0a 2d 2d  RE 30 = col2..--
21850 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
21860 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
21870 4c 20 2d 20 63 6f 6c 32 20 2b 20 38 33 20 2d 20  L - col2 + 83 - 
21880 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  + ( + col2 ) AS 
21890 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
218a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31 0d 0a  or0..----..-11..
218b0 2d 31 31 35 0d 0a 36 33 0d 0a 0d 0a 6f 6e 6c 79  -115..63....only
218c0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
218d0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
218e0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
218f0 61 62 65 6c 2d 37 36 39 0d 0a 53 45 4c 45 43 54  abel-769..SELECT
21900 20 53 55 4d 28 20 2b 20 63 6f 6c 30 20 29 20 46   SUM( + col0 ) F
21910 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
21920 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 4e 55   WHERE NULL < NU
21930 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
21940 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
21950 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
21960 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21970 20 6c 61 62 65 6c 2d 37 36 39 0d 0a 53 45 4c 45   label-769..SELE
21980 43 54 20 53 55 4d 20 28 20 2b 20 63 6f 6c 30 20  CT SUM ( + col0 
21990 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  ) FROM tab1 AS c
219a0 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3c  or0 WHERE NULL <
219b0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
219c0 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
219d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
219e0 20 2d 20 28 20 2b 20 36 38 20 29 20 2d 20 2d 20   - ( + 68 ) - - 
219f0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41  col2 FROM tab2 A
21a00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
21a10 30 0d 0a 2d 32 38 0d 0a 2d 34 35 0d 0a 0d 0a 71  0..-28..-45....q
21a20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
21a30 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2b 20  SELECT - col1 + 
21a40 2d 20 63 6f 6c 31 20 2d 20 2b 20 63 6f 6c 32 20  - col1 - + col2 
21a50 2a 20 2d 20 2b 20 37 39 20 41 53 20 63 6f 6c 30  * - + 79 AS col0
21a60 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
21a70 0d 0a 33 35 35 31 0d 0a 37 34 38 0d 0a 37 38 31  ..3551..748..781
21a80 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  9....query I row
21a90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
21aa0 6f 6c 30 20 2b 20 2b 20 2b 20 34 32 20 2b 20 2d  ol0 + + + 42 + -
21ab0 20 34 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   43 AS col2 FROM
21ac0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d   tab0..----..14.
21ad0 0a 38 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65 72 79  .86..96....query
21ae0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
21af0 43 54 20 37 35 20 2a 20 33 36 20 2a 20 2d 20 63  CT 75 * 36 * - c
21b00 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 41 53 20  ol1 + + col0 AS 
21b10 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a  col2 FROM tab1..
21b20 2d 2d 2d 2d 0d 0a 2d 31 32 36 38 30 39 0d 0a 2d  ----..-126809..-
21b30 31 33 34 31 35 0d 0a 2d 33 37 37 34 39 0d 0a 0d  13415..-37749...
21b40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21b50 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
21b60 31 20 2a 20 2b 20 32 32 20 46 52 4f 4d 20 74 61  1 * + 22 FROM ta
21b70 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 34 0d 0a  b1..----..1034..
21b80 31 31 30 0d 0a 33 30 38 0d 0a 0d 0a 71 75 65 72  110..308....quer
21b90 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
21ba0 45 43 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 30  ECT ALL + - col0
21bb0 20 2a 20 2d 20 35 34 20 46 52 4f 4d 20 74 61 62   * - 54 FROM tab
21bc0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
21bd0 0a 34 36 39 38 0d 0a 35 32 33 38 0d 0a 38 31 30  .4698..5238..810
21be0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
21bf0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
21c00 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
21c10 20 4e 4f 54 20 2d 20 63 6f 6c 32 20 3e 3d 20 28   NOT - col2 >= (
21c20 20 38 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d   81 )..----..59.
21c30 0a 36 38 0d 0a 39 36 0d 0a 0d 0a 6f 6e 6c 79 69  .68..96....onlyi
21c40 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
21c50 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
21c60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
21c70 62 65 6c 2d 37 37 37 0d 0a 53 45 4c 45 43 54 20  bel-777..SELECT 
21c80 41 4c 4c 20 33 32 20 2a 20 4d 41 58 28 20 41 4c  ALL 32 * MAX( AL
21c90 4c 20 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f  L + col0 ) AS co
21ca0 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
21cb0 2d 2d 0d 0a 32 39 31 32 0d 0a 0d 0a 73 6b 69 70  --..2912....skip
21cc0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
21cd0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
21ce0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
21cf0 2d 37 37 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -777..SELECT ALL
21d00 20 33 32 20 2a 20 4d 41 58 20 28 20 41 4c 4c 20   32 * MAX ( ALL 
21d10 2b 20 63 6f 6c 30 20 29 20 41 53 20 63 6f 6c 30  + col0 ) AS col0
21d20 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
21d30 0d 0a 32 39 31 32 0d 0a 0d 0a 73 6b 69 70 69 66  ..2912....skipif
21d40 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f   postgresql # Po
21d50 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65  stgreSQL require
21d60 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69  s AS when renami
21d70 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e  ng output column
21d80 73 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  s..query II rows
21d90 6f 72 74 0d 0a 53 45 4c 45 43 54 20 36 36 20 41  ort..SELECT 66 A
21da0 53 20 63 6f 6c 31 2c 20 63 6f 6c 32 20 63 6f 6c  S col1, col2 col
21db0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
21dc0 2d 0d 0a 36 36 0d 0a 31 30 0d 0a 36 36 0d 0a 34  -..66..10..66..4
21dd0 37 0d 0a 36 36 0d 0a 39 39 0d 0a 0d 0a 71 75 65  7..66..99....que
21de0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
21df0 4c 45 43 54 20 2b 20 39 39 20 2a 20 2d 20 33 33  LECT + 99 * - 33
21e00 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
21e10 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 36 37 0d  b0..----..-3267.
21e20 0a 2d 33 32 36 37 0d 0a 2d 33 32 36 37 0d 0a 0d  .-3267..-3267...
21e30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
21e40 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 31  ..SELECT ALL - 1
21e50 39 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 28  9 AS col0 FROM (
21e60 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
21e70 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 41 53  OSS JOIN tab2 AS
21e80 20 63 6f 72 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 39   cor1 )..----..9
21e90 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
21ea0 74 6f 20 33 33 39 63 39 64 36 32 31 34 33 62 66  to 339c9d62143bf
21eb0 32 66 37 35 36 36 62 38 39 61 31 62 35 36 65 65  2f7566b89a1b56ee
21ec0 65 62 34 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  eb4....query III
21ed0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
21ee0 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 32   ALL * FROM tab2
21ef0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
21f00 4f 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 37 33  OT - col0 + - 73
21f10 20 2b 20 2d 20 63 6f 6c 30 20 49 53 20 4e 4f 54   + - col0 IS NOT
21f20 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   NULL..----....q
21f30 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
21f40 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 41  .SELECT - col0 A
21f50 53 20 63 6f 6c 30 2c 20 34 39 20 2b 20 2d 20 2d  S col0, 49 + - -
21f60 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
21f70 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
21f80 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e  WHERE NOT NULL N
21f90 4f 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  OT BETWEEN NULL 
21fa0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
21fb0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
21fc0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  ort..SELECT * FR
21fd0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
21fe0 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31  WHERE NOT + col1
21ff0 20 2f 20 2b 20 2b 20 38 37 20 2a 20 2d 20 37 37   / + + 87 * - 77
22000 20 2f 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20   / + - col2 + + 
22010 37 36 20 2a 20 63 6f 6c 32 20 3e 20 4e 55 4c 4c  76 * col2 > NULL
22020 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
22030 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
22040 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
22050 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  e: ..query I row
22060 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 34 0d 0a  sort label-784..
22070 53 45 4c 45 43 54 20 43 41 53 54 28 20 2b 20 2b  SELECT CAST( + +
22080 20 38 37 20 41 53 20 53 49 47 4e 45 44 20 29 20   87 AS SIGNED ) 
22090 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
220a0 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a 38 37 0d  0..----..87..87.
220b0 0a 38 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .87....skipif my
220c0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
220d0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
220e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 38 34 0d  wsort label-784.
220f0 0a 53 45 4c 45 43 54 20 43 41 53 54 20 28 20 2b  .SELECT CAST ( +
22100 20 2b 20 38 37 20 41 53 20 49 4e 54 45 47 45 52   + 87 AS INTEGER
22110 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
22120 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 38 37 0d 0a  tab0..----..87..
22130 38 37 0d 0a 38 37 0d 0a 0d 0a 6f 6e 6c 79 69 66  87..87....onlyif
22140 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
22150 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
22160 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
22170 65 6c 2d 37 38 35 0d 0a 53 45 4c 45 43 54 20 41  el-785..SELECT A
22180 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 31 39 20 29  LL + COUNT( 19 )
22190 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
221a0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  b1..----..3....s
221b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
221c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
221d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
221e0 62 65 6c 2d 37 38 35 0d 0a 53 45 4c 45 43 54 20  bel-785..SELECT 
221f0 41 4c 4c 20 2b 20 43 4f 55 4e 54 20 28 20 31 39  ALL + COUNT ( 19
22200 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
22210 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  tab1..----..3...
22220 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22230 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20  ..SELECT - col1 
22240 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 36 36 20  * - col2 * - 66 
22250 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  + + col2 AS col0
22260 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
22270 0d 0a 2d 31 39 34 31 31 0d 0a 2d 32 31 30 38 36  ..-19411..-21086
22280 38 0d 0a 2d 38 38 36 30 38 0d 0a 0d 0a 71 75 65  8..-88608....que
22290 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
222a0 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
222b0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d  b0 WHERE NOT + -
222c0 20 34 30 20 2b 20 2b 20 63 6f 6c 31 20 49 53 20   40 + + col1 IS 
222d0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
222e0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
222f0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
22300 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
22310 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22320 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
22330 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
22340 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
22350 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22360 20 6c 61 62 65 6c 2d 37 38 38 0d 0a 53 45 4c 45   label-788..SELE
22370 43 54 20 2d 20 53 55 4d 28 20 44 49 53 54 49 4e  CT - SUM( DISTIN
22380 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
22390 20 53 49 47 4e 45 44 20 29 20 29 20 2b 20 2d 20   SIGNED ) ) + - 
223a0 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20  COUNT( * ) FROM 
223b0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  tab1..----..NULL
223c0 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
223d0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
223e0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
223f0 72 74 20 6c 61 62 65 6c 2d 37 38 38 0d 0a 53 45  rt label-788..SE
22400 4c 45 43 54 20 2d 20 53 55 4d 20 28 20 44 49 53  LECT - SUM ( DIS
22410 54 49 4e 43 54 20 43 41 53 54 20 28 20 4e 55 4c  TINCT CAST ( NUL
22420 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  L AS INTEGER ) )
22430 20 2b 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29   + - COUNT ( * )
22440 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
22450 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
22460 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
22470 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20 63  T DISTINCT - + c
22480 6f 6c 30 20 2b 20 30 20 41 53 20 63 6f 6c 31 20  ol0 + 0 AS col1 
22490 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
224a0 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
224b0 2d 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39  --..-51..-85..-9
224c0 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
224d0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
224e0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
224f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
22500 6c 61 62 65 6c 2d 37 39 30 0d 0a 53 45 4c 45 43  label-790..SELEC
22510 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 44 49 56  T ALL + col0 DIV
22520 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   + - col1 AS col
22530 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
22540 2d 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  -..-1..0..0....s
22550 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
22560 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
22570 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
22580 62 65 6c 2d 37 39 30 0d 0a 53 45 4c 45 43 54 20  bel-790..SELECT 
22590 41 4c 4c 20 2b 20 63 6f 6c 30 20 2f 20 2b 20 2d  ALL + col0 / + -
225a0 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20 46 52   col1 AS col0 FR
225b0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
225c0 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79  1..0..0....query
225d0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
225e0 43 54 20 2b 20 32 37 20 2a 20 63 6f 6c 32 20 41  CT + 27 * col2 A
225f0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
22600 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
22610 31 35 39 33 0d 0a 31 38 33 36 0d 0a 32 35 39 32  1593..1836..2592
22620 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22630 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
22640 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
22650 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22660 61 62 65 6c 2d 37 39 32 0d 0a 53 45 4c 45 43 54  abel-792..SELECT
22670 20 28 20 2d 20 63 6f 6c 30 20 29 20 44 49 56 20   ( - col0 ) DIV 
22680 31 30 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  10 col2 FROM tab
22690 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
226a0 0a 2d 31 0d 0a 2d 38 0d 0a 2d 39 0d 0a 0d 0a 73  .-1..-8..-9....s
226b0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
226c0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b  t compatible..sk
226d0 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20  ipif postgresql 
226e0 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71  # PostgreSQL req
226f0 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65  uires AS when re
22700 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f  naming output co
22710 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72  lumns..query I r
22720 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37 39 32  owsort label-792
22730 0d 0a 53 45 4c 45 43 54 20 28 20 2d 20 63 6f 6c  ..SELECT ( - col
22740 30 20 29 20 2f 20 31 30 20 63 6f 6c 32 20 46 52  0 ) / 10 col2 FR
22750 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
22760 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 38 0d 0a 2d  .----..-1..-8..-
22770 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  9....skipif post
22780 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
22790 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
227a0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
227b0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
227c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
227d0 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b  ELECT ALL col1 +
227e0 20 2d 20 2b 20 28 20 2b 20 63 6f 6c 32 20 29 20   - + ( + col2 ) 
227f0 2a 20 2b 20 36 31 20 2a 20 2d 20 28 20 2b 20 63  * + 61 * - ( + c
22800 6f 6c 31 20 29 20 2d 20 2d 20 63 6f 6c 31 20 2a  ol1 ) - - col1 *
22810 20 2b 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f   + col1 col0 FRO
22820 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
22830 2d 2d 2d 2d 0d 0a 31 33 32 37 32 0d 0a 32 33 38  ----..13272..238
22840 38 36 39 0d 0a 36 30 34 31 0d 0a 0d 0a 6f 6e 6c  869..6041....onl
22850 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
22860 20 73 79 6e 74 61 78 3a 20 44 45 43 49 4d 41 4c   syntax: DECIMAL
22870 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
22880 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
22890 39 34 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28  94..SELECT CAST(
228a0 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c   NULL AS DECIMAL
228b0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
228c0 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52 4f  tab0 AS cor0 CRO
228d0 53 53 20 4a 4f 49 4e 20 74 61 62 30 20 41 53 20  SS JOIN tab0 AS 
228e0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  cor1..----..9 va
228f0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
22900 63 64 37 61 37 39 30 31 65 34 37 63 31 35 31 35  cd7a7901e47c1515
22910 35 34 30 34 61 66 66 30 64 32 31 36 66 65 30 62  5404aff0d216fe0b
22920 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
22930 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
22940 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
22950 72 74 20 6c 61 62 65 6c 2d 37 39 34 0d 0a 53 45  rt label-794..SE
22960 4c 45 43 54 20 43 41 53 54 20 28 20 4e 55 4c 4c  LECT CAST ( NULL
22970 20 41 53 20 52 45 41 4c 20 29 20 41 53 20 63 6f   AS REAL ) AS co
22980 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
22990 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20  cor0 CROSS JOIN 
229a0 74 61 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d  tab0 AS cor1..--
229b0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
229c0 68 69 6e 67 20 74 6f 20 63 64 37 61 37 39 30 31  hing to cd7a7901
229d0 65 34 37 63 31 35 31 35 35 34 30 34 61 66 66 30  e47c15155404aff0
229e0 64 32 31 36 66 65 30 62 0d 0a 0d 0a 6f 6e 6c 79  d216fe0b....only
229f0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
22a00 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
22a10 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
22a20 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 37   rowsort label-7
22a30 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  95..SELECT DISTI
22a40 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20  NCT * FROM tab0 
22a50 57 48 45 52 45 20 4e 4f 54 20 2b 20 43 41 53 54  WHERE NOT + CAST
22a60 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
22a70 20 29 20 2a 20 2d 20 36 34 20 49 53 20 4e 55 4c   ) * - 64 IS NUL
22a80 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69  L..----....skipi
22a90 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
22aa0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
22ab0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
22ac0 6c 2d 37 39 35 0d 0a 53 45 4c 45 43 54 20 44 49  l-795..SELECT DI
22ad0 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61  STINCT * FROM ta
22ae0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 43  b0 WHERE NOT + C
22af0 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
22b00 54 45 47 45 52 20 29 20 2a 20 2d 20 36 34 20 49  TEGER ) * - 64 I
22b10 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
22b20 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
22b30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c  ..SELECT ALL col
22b40 30 2c 20 2d 20 39 32 20 41 53 20 63 6f 6c 30 20  0, - 92 AS col0 
22b50 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
22b60 0a 35 31 0d 0a 2d 39 32 0d 0a 38 35 0d 0a 2d 39  .51..-92..85..-9
22b70 32 0d 0a 39 31 0d 0a 2d 39 32 0d 0a 0d 0a 71 75  2..91..-92....qu
22b80 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
22b90 53 45 4c 45 43 54 20 41 4c 4c 20 30 2c 20 63 6f  SELECT ALL 0, co
22ba0 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20  l1 AS col1 FROM 
22bb0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
22bc0 2d 2d 0d 0a 30 0d 0a 31 34 0d 0a 30 0d 0a 34 37  --..0..14..0..47
22bd0 0d 0a 30 0d 0a 35 0d 0a 0d 0a 71 75 65 72 79 20  ..0..5....query 
22be0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
22bf0 43 54 20 41 4c 4c 20 63 6f 6c 31 2c 20 2b 20 39  CT ALL col1, + 9
22c00 39 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  9 FROM tab0 AS c
22c10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 39 39  or0..----..1..99
22c20 0d 0a 32 31 0d 0a 39 39 0d 0a 38 31 0d 0a 39 39  ..21..99..81..99
22c30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22c40 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
22c50 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
22c60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22c70 61 62 65 6c 2d 37 39 39 0d 0a 53 45 4c 45 43 54  abel-799..SELECT
22c80 20 44 49 53 54 49 4e 43 54 20 2b 20 35 36 20 44   DISTINCT + 56 D
22c90 49 56 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2b  IV col2 * col1 +
22ca0 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31 20 2a   col1 - - col1 *
22cb0 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
22cc0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
22cd0 0a 31 30 30 0d 0a 33 33 36 0d 0a 33 39 36 39 0d  .100..336..3969.
22ce0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
22cf0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
22d00 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
22d10 74 20 6c 61 62 65 6c 2d 37 39 39 0d 0a 53 45 4c  t label-799..SEL
22d20 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 35  ECT DISTINCT + 5
22d30 36 20 2f 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20  6 / col2 * col1 
22d40 2b 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31 20  + col1 - - col1 
22d50 2a 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * + col2 FROM ta
22d60 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
22d70 0d 0a 31 30 30 0d 0a 33 33 36 0d 0a 33 39 36 39  ..100..336..3969
22d80 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
22d90 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
22da0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
22db0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22dc0 61 62 65 6c 2d 38 30 30 0d 0a 53 45 4c 45 43 54  abel-800..SELECT
22dd0 20 2b 20 2d 20 36 35 20 2a 20 32 36 20 2a 20 63   + - 65 * 26 * c
22de0 6f 6c 31 20 44 49 56 20 63 6f 6c 32 20 2b 20 2d  ol1 DIV col2 + -
22df0 20 31 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53   17 FROM tab1 AS
22e00 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
22e10 38 35 0d 0a 2d 31 36 30 0d 0a 2d 32 36 33 0d 0a  85..-160..-263..
22e20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
22e30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
22e40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
22e50 20 6c 61 62 65 6c 2d 38 30 30 0d 0a 53 45 4c 45   label-800..SELE
22e60 43 54 20 2b 20 2d 20 36 35 20 2a 20 32 36 20 2a  CT + - 65 * 26 *
22e70 20 63 6f 6c 31 20 2f 20 63 6f 6c 32 20 2b 20 2d   col1 / col2 + -
22e80 20 31 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53   17 FROM tab1 AS
22e90 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 31   cor0..----..-11
22ea0 38 35 0d 0a 2d 31 36 30 0d 0a 2d 32 36 33 0d 0a  85..-160..-263..
22eb0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
22ec0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
22ed0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
22ee0 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
22ef0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22f00 61 62 65 6c 2d 38 30 31 0d 0a 53 45 4c 45 43 54  abel-801..SELECT
22f10 20 44 49 53 54 49 4e 43 54 20 2d 20 53 55 4d 28   DISTINCT - SUM(
22f20 20 44 49 53 54 49 4e 43 54 20 32 31 20 29 20 2b   DISTINCT 21 ) +
22f30 20 43 41 53 54 28 20 41 56 47 20 28 20 2d 20 33   CAST( AVG ( - 3
22f40 31 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  1 ) AS SIGNED ) 
22f50 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
22f60 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d 0a 0d 0a  0..----..-52....
22f70 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
22f80 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
22f90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
22fa0 61 62 65 6c 2d 38 30 31 0d 0a 53 45 4c 45 43 54  abel-801..SELECT
22fb0 20 44 49 53 54 49 4e 43 54 20 2d 20 53 55 4d 20   DISTINCT - SUM 
22fc0 28 20 44 49 53 54 49 4e 43 54 20 32 31 20 29 20  ( DISTINCT 21 ) 
22fd0 2b 20 43 41 53 54 20 28 20 41 56 47 20 28 20 2d  + CAST ( AVG ( -
22fe0 20 33 31 20 29 20 41 53 20 49 4e 54 45 47 45 52   31 ) AS INTEGER
22ff0 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   ) FROM tab1 AS 
23000 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 32 0d  cor0..----..-52.
23010 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
23020 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c  rt..SELECT - col
23030 31 20 2b 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 63  1 + - col1 + + c
23040 6f 6c 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  ol2 AS col2 FROM
23050 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
23060 2d 2d 2d 0d 0a 2d 32 36 0d 0a 34 39 0d 0a 36 38  ---..-26..49..68
23070 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
23080 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
23090 2d 20 36 32 20 2a 20 2b 20 63 6f 6c 31 20 2d 20  - 62 * + col1 - 
230a0 2d 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61  - + col1 FROM ta
230b0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 31 31 31 0d  b2..----..-3111.
230c0 0a 2d 34 30 38 37 0d 0a 2d 34 36 39 37 0d 0a 0d  .-4087..-4697...
230d0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
230e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
230f0 54 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 31 31 20  T - col0 + - 11 
23100 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
23110 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 32  1 WHERE NOT col2
23120 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
23130 2d 31 30 32 0d 0a 2d 36 32 0d 0a 2d 39 36 0d 0a  -102..-62..-96..
23140 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
23150 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
23160 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
23170 45 20 4e 4f 54 20 28 20 2d 20 63 6f 6c 30 20 29  E NOT ( - col0 )
23180 20 3c 3d 20 2b 20 28 20 2b 20 36 36 20 29 0d 0a   <= + ( + 66 )..
23190 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
231a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
231b0 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48  T * FROM tab1 WH
231c0 45 52 45 20 28 20 2b 20 63 6f 6c 31 20 2a 20 2b  ERE ( + col1 * +
231d0 20 63 6f 6c 30 20 29 20 49 53 20 4e 4f 54 20 4e   col0 ) IS NOT N
231e0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ULL..----..9 val
231f0 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
23200 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64 62  6c0a4111b36d04db
23210 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64 0d  c811a11e4d54cad.
23220 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
23230 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
23240 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
23250 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
23260 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
23270 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
23280 4c 45 43 54 20 41 4c 4c 20 36 33 20 63 6f 6c 32  LECT ALL 63 col2
23290 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  , + col2 AS col1
232a0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
232b0 20 4e 4f 54 20 2d 20 2d 20 63 6f 6c 31 20 49 53   NOT - - col1 IS
232c0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 36 33 0d   NULL..----..63.
232d0 0a 31 30 0d 0a 36 33 0d 0a 34 37 0d 0a 36 33 0d  .10..63..47..63.
232e0 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .99....onlyif my
232f0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
23300 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
23310 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
23320 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
23330 6f 72 74 20 6c 61 62 65 6c 2d 38 30 38 0d 0a 53  ort label-808..S
23340 45 4c 45 43 54 20 2d 20 2b 20 53 55 4d 28 20 2d  ELECT - + SUM( -
23350 20 2d 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20   - ( - + col2 ) 
23360 29 20 44 49 56 20 2b 20 4d 49 4e 28 20 2d 20 63  ) DIV + MIN( - c
23370 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol0 ) FROM tab0 
23380 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
23390 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
233a0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
233b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
233c0 20 6c 61 62 65 6c 2d 38 30 38 0d 0a 53 45 4c 45   label-808..SELE
233d0 43 54 20 2d 20 2b 20 53 55 4d 20 28 20 2d 20 2d  CT - + SUM ( - -
233e0 20 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 29 20   ( - + col2 ) ) 
233f0 2f 20 2b 20 4d 49 4e 20 28 20 2d 20 63 6f 6c 30  / + MIN ( - col0
23400 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72   ) FROM tab0 cor
23410 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 0d 0a 71  0..----..-1....q
23420 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
23430 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 32 20 2a  SELECT ALL - 2 *
23440 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   + + col2 AS col
23450 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
23460 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 38 0d  or0..----..-198.
23470 0a 2d 32 30 0d 0a 2d 39 34 0d 0a 0d 0a 6f 6e 6c  .-20..-94....onl
23480 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
23490 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
234a0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
234b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31  rowsort label-81
234c0 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f  0..SELECT + - co
234d0 6c 30 20 44 49 56 20 2b 20 35 36 20 2b 20 2b 20  l0 DIV + 56 + + 
234e0 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
234f0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
23500 2d 2d 2d 2d 0d 0a 30 0d 0a 32 30 0d 0a 38 31 0d  ----..0..20..81.
23510 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
23520 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
23530 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
23540 74 20 6c 61 62 65 6c 2d 38 31 30 0d 0a 53 45 4c  t label-810..SEL
23550 45 43 54 20 2b 20 2d 20 63 6f 6c 30 20 2f 20 2b  ECT + - col0 / +
23560 20 35 36 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20   56 + + col1 AS 
23570 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 41  col1 FROM tab0 A
23580 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
23590 0a 32 30 0d 0a 38 31 0d 0a 0d 0a 6f 6e 6c 79 69  .20..81....onlyi
235a0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
235b0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
235c0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
235d0 62 65 6c 2d 38 31 31 0d 0a 53 45 4c 45 43 54 20  bel-811..SELECT 
235e0 4d 49 4e 28 20 41 4c 4c 20 32 34 20 29 20 41 53  MIN( ALL 24 ) AS
235f0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
23600 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32  AS cor0..----..2
23610 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
23620 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
23630 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
23640 6f 72 74 20 6c 61 62 65 6c 2d 38 31 31 0d 0a 53  ort label-811..S
23650 45 4c 45 43 54 20 4d 49 4e 20 28 20 41 4c 4c 20  ELECT MIN ( ALL 
23660 32 34 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  24 ) AS col0 FRO
23670 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
23680 2d 2d 2d 2d 0d 0a 32 34 0d 0a 0d 0a 71 75 65 72  ----..24....quer
23690 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
236a0 45 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b  ECT + + col0 * +
236b0 20 2d 20 39 34 20 46 52 4f 4d 20 74 61 62 31 20   - 94 FROM tab1 
236c0 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f  AS cor0 WHERE NO
236d0 54 20 2b 20 63 6f 6c 30 20 3e 20 2b 20 63 6f 6c  T + col0 > + col
236e0 31 20 2a 20 2d 20 2b 20 63 6f 6c 32 0d 0a 2d 2d  1 * - + col2..--
236f0 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
23700 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
23710 2d 20 63 6f 6c 31 20 2f 20 2d 20 2b 20 39 33 20  - col1 / - + 93 
23720 2a 20 2b 20 36 38 20 41 53 20 63 6f 6c 30 20 46  * + 68 AS col0 F
23730 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e  ROM tab2 WHERE N
23740 4f 54 20 28 20 63 6f 6c 30 20 29 20 49 53 20 4e  OT ( col0 ) IS N
23750 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  OT NULL..----...
23760 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
23770 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
23780 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
23790 73 6f 72 74 20 6c 61 62 65 6c 2d 38 31 34 0d 0a  sort label-814..
237a0 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54  SELECT ALL COUNT
237b0 28 20 2a 20 29 2c 20 2b 20 38 20 63 6f 6c 31 20  ( * ), + 8 col1 
237c0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
237d0 0a 33 0d 0a 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .3..8....skipif 
237e0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
237f0 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
23800 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
23810 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
23820 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
23830 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
23840 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
23850 74 20 6c 61 62 65 6c 2d 38 31 34 0d 0a 53 45 4c  t label-814..SEL
23860 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 20 28 20  ECT ALL COUNT ( 
23870 2a 20 29 2c 20 2b 20 38 20 63 6f 6c 31 20 46 52  * ), + 8 col1 FR
23880 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 33  OM tab1..----..3
23890 0d 0a 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  ..8....onlyif my
238a0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
238b0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
238c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
238d0 74 20 6c 61 62 65 6c 2d 38 31 35 0d 0a 53 45 4c  t label-815..SEL
238e0 45 43 54 20 41 4c 4c 20 2d 20 43 41 53 54 28 20  ECT ALL - CAST( 
238f0 31 36 20 41 53 20 53 49 47 4e 45 44 20 29 20 46  16 AS SIGNED ) F
23900 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
23910 2d 31 36 0d 0a 2d 31 36 0d 0a 2d 31 36 0d 0a 0d  -16..-16..-16...
23920 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
23930 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
23940 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23950 6c 61 62 65 6c 2d 38 31 35 0d 0a 53 45 4c 45 43  label-815..SELEC
23960 54 20 41 4c 4c 20 2d 20 43 41 53 54 20 28 20 31  T ALL - CAST ( 1
23970 36 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 46  6 AS INTEGER ) F
23980 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
23990 2d 31 36 0d 0a 2d 31 36 0d 0a 2d 31 36 0d 0a 0d  -16..-16..-16...
239a0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
239b0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 2b  ..SELECT ALL ( +
239c0 20 36 30 20 29 20 2a 20 34 34 20 46 52 4f 4d 20   60 ) * 44 FROM 
239d0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
239e0 2d 2d 0d 0a 32 36 34 30 0d 0a 32 36 34 30 0d 0a  --..2640..2640..
239f0 32 36 34 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20  2640....query I 
23a00 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
23a10 2d 20 36 34 20 2a 20 2d 20 2d 20 38 37 20 46 52  - 64 * - - 87 FR
23a20 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
23a30 0a 2d 2d 2d 2d 0d 0a 2d 35 35 36 38 0d 0a 2d 35  .----..-5568..-5
23a40 35 36 38 0d 0a 2d 35 35 36 38 0d 0a 0d 0a 71 75  568..-5568....qu
23a50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
23a60 45 4c 45 43 54 20 2d 20 2b 20 63 6f 6c 31 20 2a  ELECT - + col1 *
23a70 20 2b 20 36 33 20 46 52 4f 4d 20 74 61 62 30 20   + 63 FROM tab0 
23a80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
23a90 31 33 32 33 0d 0a 2d 35 31 30 33 0d 0a 2d 36 33  1323..-5103..-63
23aa0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
23ab0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
23ac0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
23ad0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
23ae0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
23af0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
23b00 4c 45 43 54 20 2b 20 37 34 20 2a 20 33 38 20 2a  LECT + 74 * 38 *
23b10 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 2a   col1 * - col2 *
23b20 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29 20 63 6f   + ( + col1 ) co
23b30 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
23b40 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 38  cor0..----..-168
23b50 32 32 32 32 37 36 0d 0a 2d 36 36 36 38 39 33 39  222276..-6668939
23b60 32 30 0d 0a 2d 37 33 32 31 33 37 39 34 34 0d 0a  20..-732137944..
23b70 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
23b80 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
23b90 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
23ba0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
23bb0 65 6c 2d 38 32 30 0d 0a 53 45 4c 45 43 54 20 44  el-820..SELECT D
23bc0 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20  ISTINCT + CAST( 
23bd0 2d 20 37 20 41 53 20 53 49 47 4e 45 44 20 29 20  - 7 AS SIGNED ) 
23be0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
23bf0 2d 2d 2d 2d 0d 0a 2d 37 0d 0a 0d 0a 73 6b 69 70  ----..-7....skip
23c00 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23c10 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
23c20 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23c30 2d 38 32 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  -820..SELECT DIS
23c40 54 49 4e 43 54 20 2b 20 43 41 53 54 20 28 20 2d  TINCT + CAST ( -
23c50 20 37 20 41 53 20 49 4e 54 45 47 45 52 20 29 20   7 AS INTEGER ) 
23c60 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
23c70 2d 2d 2d 2d 0d 0a 2d 37 0d 0a 0d 0a 6f 6e 6c 79  ----..-7....only
23c80 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
23c90 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
23ca0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
23cb0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
23cc0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
23cd0 32 31 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 34  21..SELECT ALL 4
23ce0 39 20 44 49 56 20 43 4f 55 4e 54 28 20 2a 20 29  9 DIV COUNT( * )
23cf0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
23d00 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 0d 0a 0d 0a  r0..----..16....
23d10 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
23d20 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..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 32 31 0d 0a 53 45 4c 45 43 54  abel-821..SELECT
23d50 20 41 4c 4c 20 34 39 20 2f 20 43 4f 55 4e 54 20   ALL 49 / COUNT 
23d60 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ( * ) FROM tab0 
23d70 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
23d80 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  6....onlyif mysq
23d90 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
23da0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
23db0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
23dc0 6c 61 62 65 6c 2d 38 32 32 0d 0a 53 45 4c 45 43  label-822..SELEC
23dd0 54 20 41 4c 4c 20 63 6f 6c 32 20 2a 20 2d 20 43  T ALL col2 * - C
23de0 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
23df0 4e 45 44 20 29 20 2b 20 2d 20 2b 20 63 6f 6c 31  NED ) + - + col1
23e00 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
23e10 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
23e20 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
23e30 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
23e40 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
23e50 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
23e60 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 32 0d 0a  sort label-822..
23e70 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 32 20  SELECT ALL col2 
23e80 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  * - CAST ( NULL 
23e90 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d  AS INTEGER ) + -
23ea0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20   + col1 AS col1 
23eb0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
23ec0 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e  0..----..NULL..N
23ed0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ULL..NULL....onl
23ee0 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20  yif mysql # DIV 
23ef0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
23f00 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
23f10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
23f20 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  3..SELECT ALL - 
23f30 63 6f 6c 32 20 44 49 56 20 2d 20 31 20 41 53 20  col2 DIV - 1 AS 
23f40 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
23f50 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  S cor0..----..10
23f60 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 73 6b 69 70  ..47..99....skip
23f70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
23f80 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
23f90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
23fa0 2d 38 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -823..SELECT ALL
23fb0 20 2d 20 63 6f 6c 32 20 2f 20 2d 20 31 20 41 53   - col2 / - 1 AS
23fc0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
23fd0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
23fe0 30 0d 0a 34 37 0d 0a 39 39 0d 0a 0d 0a 71 75 65  0..47..99....que
23ff0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
24000 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
24010 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
24020 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31 20  HERE NOT + col1 
24030 3d 20 2b 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d  = + - col2..----
24040 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
24050 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
24060 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
24070 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66  2d0a49....onlyif
24080 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
24090 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
240a0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
240b0 65 6c 2d 38 32 35 0d 0a 53 45 4c 45 43 54 20 41  el-825..SELECT A
240c0 4c 4c 20 43 4f 55 4e 54 28 20 2a 20 29 20 2a 20  LL COUNT( * ) * 
240d0 2d 20 4d 41 58 28 20 63 6f 6c 30 20 29 20 46 52  - MAX( col0 ) FR
240e0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
240f0 32 32 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  225....skipif my
24100 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
24110 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
24120 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 35 0d  wsort label-825.
24130 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e  .SELECT ALL COUN
24140 54 20 28 20 2a 20 29 20 2a 20 2d 20 4d 41 58 20  T ( * ) * - MAX 
24150 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  ( col0 ) FROM ta
24160 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 35 0d 0a  b2..----..-225..
24170 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
24180 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
24190 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
241a0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
241b0 61 62 65 6c 2d 38 32 36 0d 0a 53 45 4c 45 43 54  abel-826..SELECT
241c0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
241d0 20 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f   tab0 WHERE - co
241e0 6c 31 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  l1 BETWEEN NULL 
241f0 41 4e 44 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  AND CAST( NULL A
24200 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d  S SIGNED )..----
24210 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
24220 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
24230 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
24240 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32 36 0d 0a  sort label-826..
24250 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24260 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
24270 45 20 2d 20 63 6f 6c 31 20 42 45 54 57 45 45 4e  E - col1 BETWEEN
24280 20 4e 55 4c 4c 20 41 4e 44 20 43 41 53 54 20 28   NULL AND CAST (
24290 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
242a0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79   )..----....only
242b0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
242c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
242d0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
242e0 61 62 65 6c 2d 38 32 37 0d 0a 53 45 4c 45 43 54  abel-827..SELECT
242f0 20 41 4c 4c 20 53 55 4d 28 20 2d 20 2b 20 28 20   ALL SUM( - + ( 
24300 2b 20 2d 20 63 6f 6c 31 20 29 20 29 20 46 52 4f  + - col1 ) ) FRO
24310 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
24320 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
24330 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
24340 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
24350 6f 72 74 20 6c 61 62 65 6c 2d 38 32 37 0d 0a 53  ort label-827..S
24360 45 4c 45 43 54 20 41 4c 4c 20 53 55 4d 20 28 20  ELECT ALL SUM ( 
24370 2d 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 31 20 29  - + ( + - col1 )
24380 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d   ) FROM tab0..--
24390 2d 2d 0d 0a 31 30 33 0d 0a 0d 0a 6f 6e 6c 79 69  --..103....onlyi
243a0 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
243b0 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
243c0 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20  pe: ..query III 
243d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 32  rowsort label-82
243e0 38 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  8..SELECT + col1
243f0 20 41 53 20 63 6f 6c 30 2c 20 43 41 53 54 28 20   AS col0, CAST( 
24400 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
24410 2c 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30  , + col1 AS col0
24420 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
24430 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
24440 6e 67 20 74 6f 20 63 35 65 33 30 37 34 34 36 36  ng to c5e3074466
24450 35 64 64 37 63 63 34 32 37 65 33 38 38 38 62 65  5dd7cc427e3888be
24460 65 32 64 66 34 61 0d 0a 0d 0a 73 6b 69 70 69 66  e2df4a....skipif
24470 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
24480 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
24490 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
244a0 2d 38 32 38 0d 0a 53 45 4c 45 43 54 20 2b 20 63  -828..SELECT + c
244b0 6f 6c 31 20 41 53 20 63 6f 6c 30 2c 20 43 41 53  ol1 AS col0, CAS
244c0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
244d0 47 45 52 20 29 2c 20 2b 20 63 6f 6c 31 20 41 53  GER ), + col1 AS
244e0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
244f0 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
24500 68 61 73 68 69 6e 67 20 74 6f 20 63 35 65 33 30  hashing to c5e30
24510 37 34 34 36 36 35 64 64 37 63 63 34 32 37 65 33  744665dd7cc427e3
24520 38 38 38 62 65 65 32 64 66 34 61 0d 0a 0d 0a 6f  888bee2df4a....o
24530 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
24540 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
24550 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24560 74 20 6c 61 62 65 6c 2d 38 32 39 0d 0a 53 45 4c  t label-829..SEL
24570 45 43 54 20 44 49 53 54 49 4e 43 54 20 4d 41 58  ECT DISTINCT MAX
24580 28 20 2d 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( - col1 ) AS co
24590 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d  l1 FROM tab2..--
245a0 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69  --..-51....skipi
245b0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
245c0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
245d0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
245e0 38 32 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  829..SELECT DIST
245f0 49 4e 43 54 20 4d 41 58 20 28 20 2d 20 63 6f 6c  INCT MAX ( - col
24600 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  1 ) AS col1 FROM
24610 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   tab2..----..-51
24620 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
24630 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
24640 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
24650 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
24660 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
24670 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
24680 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
24690 6f 6c 30 20 41 53 20 63 6f 6c 31 2c 20 28 20 63  ol0 AS col1, ( c
246a0 6f 6c 32 20 29 20 63 6f 6c 31 20 46 52 4f 4d 20  ol2 ) col1 FROM 
246b0 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d 0a  tab2..----..46..
246c0 32 33 0d 0a 36 34 0d 0a 34 30 0d 0a 37 35 0d 0a  23..64..40..75..
246d0 35 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  58....query I ro
246e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
246f0 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20  STINCT - - col1 
24700 2b 20 2b 20 63 6f 6c 32 20 2d 20 39 31 20 41 53  + + col2 - 91 AS
24710 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
24720 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
24730 36 30 0d 0a 33 37 0d 0a 39 0d 0a 0d 0a 6f 6e 6c  60..37..9....onl
24740 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
24750 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
24760 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
24770 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33  rowsort label-83
24780 32 0d 0a 53 45 4c 45 43 54 20 43 41 53 54 28 20  2..SELECT CAST( 
24790 2d 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  - col2 AS SIGNED
247a0 20 29 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d   ) + + col2 FROM
247b0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
247c0 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a  ---..0..0..0....
247d0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
247e0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
247f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24800 61 62 65 6c 2d 38 33 32 0d 0a 53 45 4c 45 43 54  abel-832..SELECT
24810 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 32 20 41   CAST ( - col2 A
24820 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2b 20  S INTEGER ) + + 
24830 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41  col2 FROM tab1 A
24840 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
24850 0a 30 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .0..0....onlyif 
24860 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
24870 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
24880 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
24890 6c 2d 38 33 33 0d 0a 53 45 4c 45 43 54 20 44 49  l-833..SELECT DI
248a0 53 54 49 4e 43 54 20 2d 20 4d 49 4e 28 20 2d 20  STINCT - MIN( - 
248b0 2b 20 31 32 20 29 20 41 53 20 63 6f 6c 30 20 46  + 12 ) AS col0 F
248c0 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
248d0 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
248e0 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
248f0 31 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  12....skipif mys
24900 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
24910 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
24920 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 33 0d 0a  sort label-833..
24930 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
24940 2d 20 4d 49 4e 20 28 20 2d 20 2b 20 31 32 20 29  - MIN ( - + 12 )
24950 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
24960 62 31 20 41 53 20 63 6f 72 30 20 43 52 4f 53 53  b1 AS cor0 CROSS
24970 20 4a 4f 49 4e 20 74 61 62 32 20 41 53 20 63 6f   JOIN tab2 AS co
24980 72 31 0d 0a 2d 2d 2d 2d 0d 0a 31 32 0d 0a 0d 0a  r1..----..12....
24990 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
249a0 0a 53 45 4c 45 43 54 20 2d 20 36 31 20 46 52 4f  .SELECT - 61 FRO
249b0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 55 4c  M tab1 WHERE NUL
249c0 4c 20 3c 3e 20 2b 20 63 6f 6c 32 0d 0a 2d 2d 2d  L <> + col2..---
249d0 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
249e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
249f0 54 49 4e 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  TINCT col0 AS co
24a00 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
24a10 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 63  cor0 WHERE NOT c
24a20 6f 6c 31 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ol1 NOT BETWEEN 
24a30 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20  + col2 * - col2 
24a40 41 4e 44 20 28 20 34 36 20 2a 20 63 6f 6c 32 20  AND ( 46 * col2 
24a50 2b 20 2b 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d  + + + col2 )..--
24a60 2d 2d 0d 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a  --..46..64..75..
24a70 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24a80 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2d  t..SELECT col1 -
24a90 20 2d 20 2d 20 39 36 20 2a 20 2d 20 36 34 20 41   - - 96 * - 64 A
24aa0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  S col1 FROM tab1
24ab0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
24ac0 36 31 34 39 0d 0a 36 31 35 38 0d 0a 36 31 39 31  6149..6158..6191
24ad0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
24ae0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 33 31  ort..SELECT - 31
24af0 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c   - - col1 AS col
24b00 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
24b10 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a  or0..----..-10..
24b20 2d 33 30 0d 0a 35 30 0d 0a 0d 0a 6f 6e 6c 79 69  -30..50....onlyi
24b30 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
24b40 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
24b50 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
24b60 62 65 6c 2d 38 33 38 0d 0a 53 45 4c 45 43 54 20  bel-838..SELECT 
24b70 41 4c 4c 20 2d 20 2d 20 53 55 4d 28 20 44 49 53  ALL - - SUM( DIS
24b80 54 49 4e 43 54 20 28 20 2d 20 63 6f 6c 32 20 29  TINCT ( - col2 )
24b90 20 29 20 2b 20 36 36 20 46 52 4f 4d 20 74 61 62   ) + 66 FROM tab
24ba0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
24bb0 0a 2d 35 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-55....skipif m
24bc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
24bd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
24be0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 33 38  owsort label-838
24bf0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d  ..SELECT ALL - -
24c00 20 53 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20   SUM ( DISTINCT 
24c10 28 20 2d 20 63 6f 6c 32 20 29 20 29 20 2b 20 36  ( - col2 ) ) + 6
24c20 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  6 FROM tab2 AS c
24c30 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 35 0d 0a  or0..----..-55..
24c40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
24c50 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  t..SELECT ALL + 
24c60 36 30 20 2a 20 2b 20 35 39 20 2d 20 63 6f 6c 30  60 * + 59 - col0
24c70 20 2d 20 2d 20 34 39 20 2b 20 2d 20 35 39 20 2a   - - 49 + - 59 *
24c80 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 63 6f   + - col0 * - co
24c90 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
24ca0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 34  tab0..----..-104
24cb0 32 39 31 0d 0a 2d 32 32 33 31 0d 0a 2d 36 38 31  291..-2231..-681
24cc0 31 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  11....onlyif mys
24cd0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
24ce0 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
24cf0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
24d00 34 30 0d 0a 53 45 4c 45 43 54 20 37 35 20 2b 20  40..SELECT 75 + 
24d10 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 39  COUNT( * ) + - 9
24d20 35 20 2b 20 2d 20 2b 20 53 55 4d 28 20 41 4c 4c  5 + - + SUM( ALL
24d30 20 63 6f 6c 30 20 29 20 2a 20 31 30 20 63 6f 6c   col0 ) * 10 col
24d40 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  2 FROM tab2..---
24d50 2d 0d 0a 2d 31 38 36 37 0d 0a 0d 0a 73 6b 69 70  -..-1867....skip
24d60 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
24d70 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
24d80 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
24d90 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
24da0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
24db0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
24dc0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
24dd0 6f 72 74 20 6c 61 62 65 6c 2d 38 34 30 0d 0a 53  ort label-840..S
24de0 45 4c 45 43 54 20 37 35 20 2b 20 43 4f 55 4e 54  ELECT 75 + COUNT
24df0 20 28 20 2a 20 29 20 2b 20 2d 20 39 35 20 2b 20   ( * ) + - 95 + 
24e00 2d 20 2b 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f  - + SUM ( ALL co
24e10 6c 30 20 29 20 2a 20 31 30 20 63 6f 6c 32 20 46  l0 ) * 10 col2 F
24e20 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
24e30 2d 31 38 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49  -1867....query I
24e40 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
24e50 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
24e60 62 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20  b0 WHERE + col0 
24e70 3c 3e 20 2b 20 28 20 2b 20 2d 20 31 30 20 29 0d  <> + ( + - 10 ).
24e80 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
24e90 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
24ea0 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
24eb0 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 6f  0e537fb43b7....o
24ec0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
24ed0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
24ee0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
24ef0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
24f00 38 34 32 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  842..SELECT + co
24f10 6c 30 20 2a 20 34 33 20 2b 20 2d 20 43 41 53 54  l0 * 43 + - CAST
24f20 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45 44  ( col1 AS SIGNED
24f30 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
24f40 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 39 32 37  tab2..----..1927
24f50 0d 0a 32 36 37 35 0d 0a 33 31 35 38 0d 0a 0d 0a  ..2675..3158....
24f60 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
24f70 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
24f80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
24f90 61 62 65 6c 2d 38 34 32 0d 0a 53 45 4c 45 43 54  abel-842..SELECT
24fa0 20 2b 20 63 6f 6c 30 20 2a 20 34 33 20 2b 20 2d   + col0 * 43 + -
24fb0 20 43 41 53 54 20 28 20 63 6f 6c 31 20 41 53 20   CAST ( col1 AS 
24fc0 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c  INTEGER ) AS col
24fd0 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  0 FROM tab2..---
24fe0 2d 0d 0a 31 39 32 37 0d 0a 32 36 37 35 0d 0a 33  -..1927..2675..3
24ff0 31 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  158....onlyif my
25000 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
25010 73 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20  syntax: DIV for 
25020 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
25030 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
25040 6f 72 74 20 6c 61 62 65 6c 2d 38 34 33 0d 0a 53  ort label-843..S
25050 45 4c 45 43 54 20 41 4c 4c 20 39 33 20 44 49 56  ELECT ALL 93 DIV
25060 20 2d 20 34 38 20 2d 20 2d 20 53 55 4d 28 20 63   - 48 - - SUM( c
25070 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d  ol1 ) FROM tab0.
25080 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 0d 0a 73 6b  .----..102....sk
25090 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
250a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
250b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
250c0 65 6c 2d 38 34 33 0d 0a 53 45 4c 45 43 54 20 41  el-843..SELECT A
250d0 4c 4c 20 39 33 20 2f 20 2d 20 34 38 20 2d 20 2d  LL 93 / - 48 - -
250e0 20 53 55 4d 20 28 20 63 6f 6c 31 20 29 20 46 52   SUM ( col1 ) FR
250f0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
25100 30 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  02....onlyif mys
25110 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
25120 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
25130 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25140 34 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  44..SELECT DISTI
25150 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2d  NCT COUNT( * ) -
25160 20 2b 20 2d 20 35 34 20 41 53 20 63 6f 6c 30 20   + - 54 AS col0 
25170 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
25180 0a 35 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .57....skipif my
25190 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
251a0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
251b0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 34 0d  wsort label-844.
251c0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
251d0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2d 20 2b   COUNT ( * ) - +
251e0 20 2d 20 35 34 20 41 53 20 63 6f 6c 30 20 46 52   - 54 AS col0 FR
251f0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 35  OM tab2..----..5
25200 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  7....query III r
25210 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
25220 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
25230 20 4e 4f 54 20 28 20 2b 20 31 30 20 29 20 3c 3e   NOT ( + 10 ) <>
25240 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d   - col0..----...
25250 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
25260 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
25270 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
25280 6f 72 74 20 6c 61 62 65 6c 2d 38 34 36 0d 0a 53  ort label-846..S
25290 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  ELECT COUNT( * )
252a0 20 2a 20 36 32 20 41 53 20 63 6f 6c 30 20 46 52   * 62 AS col0 FR
252b0 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab1..----..1
252c0 38 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  86....skipif mys
252d0 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
252e0 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
252f0 73 6f 72 74 20 6c 61 62 65 6c 2d 38 34 36 0d 0a  sort label-846..
25300 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
25310 20 29 20 2a 20 36 32 20 41 53 20 63 6f 6c 30 20   ) * 62 AS col0 
25320 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
25330 0a 31 38 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .186....onlyif m
25340 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
25350 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
25360 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
25370 2d 38 34 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -847..SELECT ALL
25380 20 4d 41 58 28 20 41 4c 4c 20 2d 20 63 6f 6c 32   MAX( ALL - col2
25390 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
253a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d  cor0..----..-23.
253b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
253c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
253d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
253e0 74 20 6c 61 62 65 6c 2d 38 34 37 0d 0a 53 45 4c  t label-847..SEL
253f0 45 43 54 20 41 4c 4c 20 4d 41 58 20 28 20 41 4c  ECT ALL MAX ( AL
25400 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  L - col2 ) FROM 
25410 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
25420 2d 2d 0d 0a 2d 32 33 0d 0a 0d 0a 6f 6e 6c 79 69  --..-23....onlyi
25430 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
25440 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
25450 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  pe: DIV for inte
25460 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
25470 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
25480 20 6c 61 62 65 6c 2d 38 34 38 0d 0a 53 45 4c 45   label-848..SELE
25490 43 54 20 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20  CT + + col0 DIV 
254a0 63 6f 6c 31 20 44 49 56 20 2d 20 63 6f 6c 30 2c  col1 DIV - col0,
254b0 20 43 41 53 54 28 20 34 37 20 41 53 20 53 49 47   CAST( 47 AS SIG
254c0 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
254d0 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
254e0 2d 2d 0d 0a 30 0d 0a 34 37 0d 0a 30 0d 0a 34 37  --..0..47..0..47
254f0 0d 0a 30 0d 0a 34 37 0d 0a 0d 0a 73 6b 69 70 69  ..0..47....skipi
25500 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
25510 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
25520 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
25530 2d 38 34 38 0d 0a 53 45 4c 45 43 54 20 2b 20 2b  -848..SELECT + +
25540 20 63 6f 6c 30 20 2f 20 63 6f 6c 31 20 2f 20 2d   col0 / col1 / -
25550 20 63 6f 6c 30 2c 20 43 41 53 54 20 28 20 34 37   col0, CAST ( 47
25560 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
25570 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
25580 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34  cor0..----..0..4
25590 37 0d 0a 30 0d 0a 34 37 0d 0a 30 0d 0a 34 37 0d  7..0..47..0..47.
255a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
255b0 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
255c0 4e 43 54 20 2d 20 2b 20 36 38 20 2a 20 33 36 20  NCT - + 68 * 36 
255d0 2a 20 2d 20 38 39 20 46 52 4f 4d 20 74 61 62 32  * - 89 FROM tab2
255e0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
255f0 32 31 37 38 37 32 0d 0a 0d 0a 71 75 65 72 79 20  217872....query 
25600 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
25610 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20  ECT * FROM tab1 
25620 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31  WHERE NOT + col1
25630 20 2a 20 2d 20 34 38 20 4e 4f 54 20 49 4e 20 28   * - 48 NOT IN (
25640 20 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d   col0 )..----...
25650 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
25660 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28  ..SELECT ALL + (
25670 20 2d 20 28 20 2d 20 34 36 20 29 20 29 20 46 52   - ( - 46 ) ) FR
25680 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 34  OM tab0..----..4
25690 36 0d 0a 34 36 0d 0a 34 36 0d 0a 0d 0a 71 75 65  6..46..46....que
256a0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
256b0 4c 45 43 54 20 63 6f 6c 30 20 2a 20 33 20 41 53  LECT col0 * 3 AS
256c0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
256d0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
256e0 35 33 0d 0a 32 35 35 0d 0a 32 37 33 0d 0a 0d 0a  53..255..273....
256f0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
25700 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
25710 20 2d 20 35 31 20 2b 20 2d 20 63 6f 6c 31 20 46   - 51 + - col1 F
25720 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
25730 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 30 32 0d 0a 2d 31  ..----..-102..-1
25740 31 38 0d 0a 2d 31 32 38 0d 0a 0d 0a 6f 6e 6c 79  18..-128....only
25750 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
25760 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
25770 79 70 65 3a 20 44 49 56 20 66 6f 72 20 69 6e 74  ype: DIV for int
25780 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
25790 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
257a0 74 20 6c 61 62 65 6c 2d 38 35 34 0d 0a 53 45 4c  t label-854..SEL
257b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63  ECT DISTINCT - c
257c0 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20 2b 20 63  ol1 AS col1, + c
257d0 6f 6c 32 20 44 49 56 20 2b 20 63 6f 6c 31 20 46  ol2 DIV + col1 F
257e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
257f0 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2d 20 43   WHERE ( NOT - C
25800 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
25810 4e 45 44 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c  NED ) IS NOT NUL
25820 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a  L )..----..-51..
25830 30 0d 0a 2d 36 37 0d 0a 30 0d 0a 2d 37 37 0d 0a  0..-67..0..-77..
25840 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
25850 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
25860 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
25870 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35 34 0d 0a  sort label-854..
25880 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
25890 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31 2c 20  - col1 AS col1, 
258a0 2b 20 63 6f 6c 32 20 2f 20 2b 20 63 6f 6c 31 20  + col2 / + col1 
258b0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
258c0 30 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2d 20  0 WHERE ( NOT - 
258d0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
258e0 4e 54 45 47 45 52 20 29 20 49 53 20 4e 4f 54 20  NTEGER ) IS NOT 
258f0 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  NULL )..----..-5
25900 31 0d 0a 30 0d 0a 2d 36 37 0d 0a 30 0d 0a 2d 37  1..0..-67..0..-7
25910 37 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49  7..0....query II
25920 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
25930 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
25940 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
25950 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20  HERE NOT ( NULL 
25960 29 20 3c 20 2d 20 30 0d 0a 2d 2d 2d 2d 0d 0a 0d  ) < - 0..----...
25970 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
25980 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
25990 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
259a0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
259b0 65 6c 2d 38 35 36 0d 0a 53 45 4c 45 43 54 20 2b  el-856..SELECT +
259c0 20 63 6f 6c 31 20 2a 20 35 33 20 44 49 56 20 2d   col1 * 53 DIV -
259d0 20 32 30 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b   20 + - col0 * +
259e0 20 36 36 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c   66 AS col0, col
259f0 32 20 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  2 * + col2 AS co
25a00 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
25a10 2d 2d 0d 0a 2d 33 34 30 33 0d 0a 39 32 31 36 0d  --..-3403..9216.
25a20 0a 2d 35 36 32 33 0d 0a 33 34 38 31 0d 0a 2d 36  .-5623..3481..-6
25a30 31 33 30 0d 0a 34 36 32 34 0d 0a 0d 0a 73 6b 69  130..4624....ski
25a40 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
25a50 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
25a60 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
25a70 65 6c 2d 38 35 36 0d 0a 53 45 4c 45 43 54 20 2b  el-856..SELECT +
25a80 20 63 6f 6c 31 20 2a 20 35 33 20 2f 20 2d 20 32   col1 * 53 / - 2
25a90 30 20 2b 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 36  0 + - col0 * + 6
25aa0 36 20 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20  6 AS col0, col2 
25ab0 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30  * + col2 AS col0
25ac0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
25ad0 0d 0a 2d 33 34 30 33 0d 0a 39 32 31 36 0d 0a 2d  ..-3403..9216..-
25ae0 35 36 32 33 0d 0a 33 34 38 31 0d 0a 2d 36 31 33  5623..3481..-613
25af0 30 0d 0a 34 36 32 34 0d 0a 0d 0a 71 75 65 72 79  0..4624....query
25b00 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
25b10 43 54 20 41 4c 4c 20 2b 20 36 37 20 2a 20 2b 20  CT ALL + 67 * + 
25b20 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
25b30 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30  M tab0..----..10
25b40 30 35 0d 0a 35 38 32 39 0d 0a 36 34 39 39 0d 0a  05..5829..6499..
25b50 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
25b60 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
25b70 43 54 20 2d 20 28 20 2b 20 28 20 2d 20 28 20 2d  CT - ( + ( - ( -
25b80 20 31 35 20 29 20 29 20 29 20 41 53 20 63 6f 6c   15 ) ) ) AS col
25b90 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  1 FROM tab2 WHER
25ba0 45 20 63 6f 6c 31 20 3e 20 28 20 2d 20 2b 20 39  E col1 > ( - + 9
25bb0 34 20 2d 20 2d 20 2b 20 63 6f 6c 30 20 29 0d 0a  4 - - + col0 )..
25bc0 2d 2d 2d 2d 0d 0a 2d 31 35 0d 0a 0d 0a 6f 6e 6c  ----..-15....onl
25bd0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
25be0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
25bf0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
25c00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 35  rowsort label-85
25c10 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
25c20 43 54 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT + CAST( NULL 
25c30 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 38 39  AS SIGNED ) + 89
25c40 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
25c50 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
25c60 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
25c70 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
25c80 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
25c90 35 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  59..SELECT DISTI
25ca0 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  NCT + CAST ( NUL
25cb0 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  L AS INTEGER ) +
25cc0 20 38 39 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d   89 FROM tab2..-
25cd0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
25ce0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
25cf0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
25d00 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
25d10 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
25d20 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
25d30 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
25d40 53 54 49 4e 43 54 20 63 6f 6c 32 20 2b 20 2b 20  STINCT col2 + + 
25d50 2d 20 63 6f 6c 31 20 63 6f 6c 31 20 46 52 4f 4d  - col1 col1 FROM
25d60 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
25d70 2d 2d 2d 0d 0a 32 31 0d 0a 35 34 0d 0a 38 32 0d  ---..21..54..82.
25d80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
25d90 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
25da0 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f   - col0 + + - co
25db0 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l1 FROM tab1 AS 
25dc0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 38  cor0..----..-138
25dd0 0d 0a 2d 36 35 0d 0a 2d 39 30 0d 0a 0d 0a 71 75  ..-65..-90....qu
25de0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
25df0 45 4c 45 43 54 20 2b 20 2d 20 28 20 2d 20 63 6f  ELECT + - ( - co
25e00 6c 31 20 29 20 2a 20 2b 20 2d 20 39 37 20 46 52  l1 ) * + - 97 FR
25e10 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
25e20 0a 2d 2d 2d 2d 0d 0a 2d 31 33 35 38 0d 0a 2d 34  .----..-1358..-4
25e30 35 35 39 0d 0a 2d 34 38 35 0d 0a 0d 0a 71 75 65  559..-485....que
25e40 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
25e50 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
25e60 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 20 41 53  col2 * - col0 AS
25e70 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20   col1 FROM tab2 
25e80 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 35 20  AS cor0 WHERE 5 
25e90 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d  IS NOT NULL..---
25ea0 2d 0d 0a 31 30 35 38 0d 0a 32 35 36 30 0d 0a 34  -..1058..2560..4
25eb0 33 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  350....query III
25ec0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
25ed0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
25ee0 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20   tab1 WHERE NOT 
25ef0 2b 20 2b 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29  + + ( + + col0 )
25f00 20 2d 20 2d 20 63 6f 6c 32 20 3c 3d 20 4e 55 4c   - - col2 <= NUL
25f10 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
25f20 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
25f30 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 2b 20  CT ALL col1 + + 
25f40 2d 20 63 6f 6c 32 20 2d 20 2d 20 28 20 37 36 20  - col2 - - ( 76 
25f50 29 20 2b 20 37 31 20 2b 20 2d 20 2b 20 63 6f 6c  ) + 71 + - + col
25f60 32 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f  2 + + col1 AS co
25f70 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l0 FROM tab2 AS 
25f80 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 36 35 0d  cor0..----..165.
25f90 0a 32 30 33 0d 0a 32 32 31 0d 0a 0d 0a 6f 6e 6c  .203..221....onl
25fa0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
25fb0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
25fc0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
25fd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36  rowsort label-86
25fe0 36 0d 0a 53 45 4c 45 43 54 20 2d 20 33 33 20 2b  6..SELECT - 33 +
25ff0 20 2b 20 43 41 53 54 28 20 2b 20 63 6f 6c 32 20   + CAST( + col2 
26000 41 53 20 53 49 47 4e 45 44 20 29 20 46 52 4f 4d  AS SIGNED ) FROM
26010 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
26020 2d 2d 2d 0d 0a 32 36 0d 0a 33 35 0d 0a 36 33 0d  ---..26..35..63.
26030 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
26040 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
26050 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26060 74 20 6c 61 62 65 6c 2d 38 36 36 0d 0a 53 45 4c  t label-866..SEL
26070 45 43 54 20 2d 20 33 33 20 2b 20 2b 20 43 41 53  ECT - 33 + + CAS
26080 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e  T ( + col2 AS IN
26090 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
260a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
260b0 0a 32 36 0d 0a 33 35 0d 0a 36 33 0d 0a 0d 0a 71  .26..35..63....q
260c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
260d0 53 45 4c 45 43 54 20 2d 20 2b 20 39 20 41 53 20  SELECT - + 9 AS 
260e0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63  col0 FROM tab1 c
260f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 0d 0a 2d  or0..----..-9..-
26100 39 0d 0a 2d 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  9..-9....skipif 
26110 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
26120 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
26130 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
26140 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
26150 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
26160 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
26170 43 54 20 2d 20 63 6f 6c 31 20 63 6f 6c 32 20 46  CT - col1 col2 F
26180 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20 57 48  ROM tab0 cor0 WH
26190 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
261a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
261b0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56  lyif mysql # DIV
261c0 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
261d0 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
261e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
261f0 36 39 0d 0a 53 45 4c 45 43 54 20 2d 20 39 30 20  69..SELECT - 90 
26200 44 49 56 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  DIV col0 AS col1
26210 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
26220 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31  r0..----..-1..-1
26230 0d 0a 2d 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..-1....skipif m
26240 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
26250 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
26260 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 36 39  owsort label-869
26270 0d 0a 53 45 4c 45 43 54 20 2d 20 39 30 20 2f 20  ..SELECT - 90 / 
26280 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
26290 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
262a0 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 2d 31 0d 0a 2d 31  ----..-1..-1..-1
262b0 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
262c0 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
262d0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
262e0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
262f0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
26300 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
26310 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c  LECT ALL + + col
26320 32 20 2d 20 2b 20 63 6f 6c 32 20 63 6f 6c 30 20  2 - + col2 col0 
26330 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
26340 2d 2d 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d  ----..0..0..0...
26350 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
26360 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
26370 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
26380 20 2d 20 38 30 20 3d 20 2b 20 2b 20 36 30 0d 0a   - 80 = + + 60..
26390 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ----....query I 
263a0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
263b0 44 49 53 54 49 4e 43 54 20 2d 20 39 38 20 2a 20  DISTINCT - 98 * 
263c0 2b 20 63 6f 6c 31 20 2d 20 2d 20 63 6f 6c 31 20  + col1 - - col1 
263d0 2d 20 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 32 20  - col2 * - col2 
263e0 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20  FROM tab2 WHERE 
263f0 4e 55 4c 4c 20 3c 20 2d 20 2d 20 63 6f 6c 30 0d  NULL < - - col0.
26400 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
26410 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
26420 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
26430 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26440 6c 2d 38 37 33 0d 0a 53 45 4c 45 43 54 20 2d 20  l-873..SELECT - 
26450 33 38 20 2a 20 2b 20 2b 20 53 55 4d 28 20 44 49  38 * + + SUM( DI
26460 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20  STINCT - col1 ) 
26470 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
26480 0a 32 35 30 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  .2508....skipif 
26490 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
264a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
264b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37  rowsort label-87
264c0 33 0d 0a 53 45 4c 45 43 54 20 2d 20 33 38 20 2a  3..SELECT - 38 *
264d0 20 2b 20 2b 20 53 55 4d 20 28 20 44 49 53 54 49   + + SUM ( DISTI
264e0 4e 43 54 20 2d 20 63 6f 6c 31 20 29 20 46 52 4f  NCT - col1 ) FRO
264f0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 32 35  M tab1..----..25
26500 30 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  08....query I ro
26510 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
26520 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 2a 20  STINCT + col0 * 
26530 2d 20 37 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  - 7 FROM tab2..-
26540 2d 2d 2d 0d 0a 2d 33 32 32 0d 0a 2d 34 34 38 0d  ---..-322..-448.
26550 0a 2d 35 32 35 0d 0a 0d 0a 71 75 65 72 79 20 49  .-525....query I
26560 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
26570 20 2d 20 28 20 2b 20 38 38 20 29 20 41 53 20 63   - ( + 88 ) AS c
26580 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol1 FROM tab2..-
26590 2d 2d 2d 0d 0a 2d 38 38 0d 0a 2d 38 38 0d 0a 2d  ---..-88..-88..-
265a0 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  88....onlyif mys
265b0 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
265c0 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
265d0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
265e0 72 74 20 6c 61 62 65 6c 2d 38 37 36 0d 0a 53 45  rt label-876..SE
265f0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32  LECT * FROM tab2
26600 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
26610 4f 54 20 2d 20 63 6f 6c 30 20 3d 20 28 20 2b 20  OT - col0 = ( + 
26620 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  - CAST( NULL AS 
26630 53 49 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d  SIGNED ) )..----
26640 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
26650 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26660 65 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  e..query III row
26670 73 6f 72 74 20 6c 61 62 65 6c 2d 38 37 36 0d 0a  sort label-876..
26680 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
26690 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
266a0 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 3d 20 28 20   NOT - col0 = ( 
266b0 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
266c0 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 0d 0a  AS INTEGER ) )..
266d0 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49  ----....query II
266e0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
266f0 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62  T ALL * FROM tab
26700 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
26710 4e 4f 54 20 2b 20 37 32 20 49 53 20 4e 4f 54 20  NOT + 72 IS NOT 
26720 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75  NULL..----....qu
26730 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
26740 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
26750 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
26760 63 6f 72 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  cor0 WHERE - col
26770 31 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 2d  1 + + col1 + - -
26780 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 63 6f 6c 32   col1 * - - col2
26790 20 2a 20 2b 20 63 6f 6c 30 20 3d 20 63 6f 6c 31   * + col0 = col1
267a0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
267b0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
267c0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
267d0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
267e0 65 6c 2d 38 37 39 0d 0a 53 45 4c 45 43 54 20 44  el-879..SELECT D
267f0 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 32  ISTINCT - MAX( 2
26800 37 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  7 ) col2 FROM ta
26810 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 0d  b2..----..-27...
26820 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
26830 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
26840 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71  skipif postgresq
26850 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72  l # PostgreSQL r
26860 65 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20  equires AS when 
26870 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20  renaming output 
26880 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49  columns..query I
26890 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
268a0 37 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  79..SELECT DISTI
268b0 4e 43 54 20 2d 20 4d 41 58 20 28 20 32 37 20 29  NCT - MAX ( 27 )
268c0 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
268d0 0a 2d 2d 2d 2d 0d 0a 2d 32 37 0d 0a 0d 0a 71 75  .----..-27....qu
268e0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
268f0 45 4c 45 43 54 20 63 6f 6c 30 20 2a 20 2b 20 32  ELECT col0 * + 2
26900 38 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20  8 * + col0 FROM 
26910 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34 36  tab2..----..1146
26920 38 38 0d 0a 31 35 37 35 30 30 0d 0a 35 39 32 34  88..157500..5924
26930 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  8....query II ro
26940 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
26950 4c 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20 32  L - col0 * + - 2
26960 33 20 2b 20 2b 20 35 34 2c 20 2b 20 31 30 20 41  3 + + 54, + 10 A
26970 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
26980 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
26990 31 31 31 32 0d 0a 31 30 0d 0a 31 35 32 36 0d 0a  1112..10..1526..
269a0 31 30 0d 0a 31 37 37 39 0d 0a 31 30 0d 0a 0d 0a  10..1779..10....
269b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
269c0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
269d0 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
269e0 6f 72 74 20 6c 61 62 65 6c 2d 38 38 32 0d 0a 53  ort label-882..S
269f0 45 4c 45 43 54 20 2b 20 2d 20 35 33 2c 20 2d 20  ELECT + - 53, - 
26a00 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
26a10 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72  l1 FROM tab0 cor
26a20 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 0d 0a 2d 33  0..----..-53..-3
26a30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
26a40 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
26a50 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  e..query II rows
26a60 6f 72 74 20 6c 61 62 65 6c 2d 38 38 32 0d 0a 53  ort label-882..S
26a70 45 4c 45 43 54 20 2b 20 2d 20 35 33 2c 20 2d 20  ELECT + - 53, - 
26a80 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
26a90 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol1 FROM tab0 co
26aa0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 33 0d 0a 2d  r0..----..-53..-
26ab0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
26ac0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
26ad0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 20   FROM tab0 cor0 
26ae0 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20 37 37  WHERE NOT + ( 77
26af0 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a   ) IS NOT NULL..
26b00 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ----....skipif p
26b10 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
26b20 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
26b30 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
26b40 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
26b50 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
26b60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
26b70 54 20 2b 20 36 30 20 2b 20 2b 20 63 6f 6c 30 20  T + 60 + + col0 
26b80 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63  col2 FROM tab2 c
26b90 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 36 0d 0a  or0..----..106..
26ba0 31 32 34 0d 0a 31 33 35 0d 0a 0d 0a 6f 6e 6c 79  124..135....only
26bb0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
26bc0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
26bd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
26be0 61 62 65 6c 2d 38 38 35 0d 0a 53 45 4c 45 43 54  abel-885..SELECT
26bf0 20 41 4c 4c 20 2b 20 43 4f 55 4e 54 28 20 2d 20   ALL + COUNT( - 
26c00 2d 20 32 39 20 29 20 46 52 4f 4d 20 74 61 62 30  - 29 ) FROM tab0
26c10 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
26c20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
26c30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
26c40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
26c50 6c 2d 38 38 35 0d 0a 53 45 4c 45 43 54 20 41 4c  l-885..SELECT AL
26c60 4c 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 2d 20  L + COUNT ( - - 
26c70 32 39 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a  29 ) FROM tab0..
26c80 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79 69  ----..3....onlyi
26c90 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
26ca0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
26cb0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
26cc0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
26cd0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38 38  rowsort label-88
26ce0 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e  6..SELECT + COUN
26cf0 54 28 20 2a 20 29 20 44 49 56 20 2b 20 28 20 36  T( * ) DIV + ( 6
26d00 35 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  5 ) FROM tab0..-
26d10 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
26d20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
26d30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
26d40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
26d50 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  86..SELECT + COU
26d60 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 28 20 36  NT ( * ) / + ( 6
26d70 35 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  5 ) FROM tab0..-
26d80 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
26d90 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
26da0 54 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 31 20  T col2 + + col1 
26db0 2a 20 2b 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20  * + + col2 FROM 
26dc0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 34 30  tab1..----..1440
26dd0 0d 0a 33 32 36 34 0d 0a 33 35 34 0d 0a 0d 0a 71  ..3264..354....q
26de0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
26df0 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30 20 2b 20  SELECT - col0 + 
26e00 2b 20 34 33 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 43 FROM tab2..
26e10 2d 2d 2d 2d 0d 0a 2d 32 31 0d 0a 2d 33 0d 0a 2d  ----..-21..-3..-
26e20 33 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  32....query I ro
26e30 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
26e40 63 6f 6c 31 20 2a 20 2b 20 2d 20 63 6f 6c 30 20  col1 * + - col0 
26e50 2b 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  + - col0 FROM ta
26e60 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 33 36 38 0d  b1..----..-4368.
26e70 0a 2d 35 31 30 0d 0a 2d 37 36 35 0d 0a 0d 0a 71  .-510..-765....q
26e80 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
26e90 0a 53 45 4c 45 43 54 20 63 6f 6c 32 20 2b 20 2b  .SELECT col2 + +
26ea0 20 39 36 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2b   96 - col1 + + +
26eb0 20 63 6f 6c 31 20 2a 20 2d 20 39 31 2c 20 38 34   col1 * - 91, 84
26ec0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
26ed0 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 37 33 0d  b2..----..-4573.
26ee0 0a 38 34 0d 0a 2d 36 30 31 30 0d 0a 38 34 0d 0a  .84..-6010..84..
26ef0 2d 36 39 34 38 0d 0a 38 34 0d 0a 0d 0a 6f 6e 6c  -6948..84....onl
26f00 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
26f10 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
26f20 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
26f30 6c 61 62 65 6c 2d 38 39 31 0d 0a 53 45 4c 45 43  label-891..SELEC
26f40 54 20 2b 20 4d 41 58 28 20 33 36 20 29 20 41 53  T + MAX( 36 ) AS
26f50 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 2c   col0 FROM tab1,
26f60 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d   tab0 AS cor0..-
26f70 2d 2d 2d 0d 0a 33 36 0d 0a 0d 0a 73 6b 69 70 69  ---..36....skipi
26f80 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
26f90 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
26fa0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
26fb0 38 39 31 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41  891..SELECT + MA
26fc0 58 20 28 20 33 36 20 29 20 41 53 20 63 6f 6c 30  X ( 36 ) AS col0
26fd0 20 46 52 4f 4d 20 74 61 62 31 2c 20 74 61 62 30   FROM tab1, tab0
26fe0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
26ff0 33 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  36....query I ro
27000 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
27010 38 37 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 63 6f  87 * col1 * - co
27020 6c 32 20 2b 20 2b 20 31 39 20 2b 20 2d 20 63 6f  l2 + + 19 + - co
27030 6c 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l0 AS col0 FROM 
27040 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
27050 2d 2d 0d 0a 31 30 32 30 32 34 0d 0a 32 36 37 39  --..102024..2679
27060 31 35 0d 0a 33 33 38 30 32 36 0d 0a 0d 0a 71 75  15..338026....qu
27070 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
27080 45 4c 45 43 54 20 39 31 20 2b 20 2b 20 2b 20 35  ELECT 91 + + + 5
27090 36 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  6 FROM tab0 AS c
270a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 37 0d 0a  or0..----..147..
270b0 31 34 37 0d 0a 31 34 37 0d 0a 0d 0a 71 75 65 72  147..147....quer
270c0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
270d0 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d  ELECT ALL * FROM
270e0 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
270f0 45 52 45 20 4e 55 4c 4c 20 49 4e 20 28 20 63 6f  ERE NULL IN ( co
27100 6c 32 20 2b 20 2d 20 63 6f 6c 32 20 29 0d 0a 2d  l2 + - col2 )..-
27110 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  ---....query I r
27120 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 35  owsort..SELECT 5
27130 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  2 * + - col2 AS 
27140 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col1 FROM tab0..
27150 2d 2d 2d 2d 0d 0a 2d 32 34 34 34 0d 0a 2d 35 31  ----..-2444..-51
27160 34 38 0d 0a 2d 35 32 30 0d 0a 0d 0a 6f 6e 6c 79  48..-520....only
27170 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
27180 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61 74  syntax: aggregat
27190 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44  e syntax: SIGNED
271a0 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49   type: ..query I
271b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 38   rowsort label-8
271c0 39 36 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e  96..SELECT - MIN
271d0 28 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  ( CAST( NULL AS 
271e0 53 49 47 4e 45 44 20 29 20 29 20 41 53 20 63 6f  SIGNED ) ) AS co
271f0 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
27200 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
27210 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
27220 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
27230 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
27240 2d 38 39 36 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  -896..SELECT - M
27250 49 4e 20 28 20 43 41 53 54 20 28 20 4e 55 4c 4c  IN ( CAST ( NULL
27260 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29 20   AS INTEGER ) ) 
27270 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
27280 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d  0..----..NULL...
27290 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
272a0 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f  rt..SELECT * FRO
272b0 4d 20 74 61 62 32 20 57 48 45 52 45 20 2d 20 28  M tab2 WHERE - (
272c0 20 2b 20 2d 20 28 20 63 6f 6c 32 20 29 20 29 20   + - ( col2 ) ) 
272d0 3d 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a  = - col0..----..
272e0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
272f0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 32 20 2a  t..SELECT + 22 *
27300 20 32 37 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   27 FROM tab1..-
27310 2d 2d 2d 0d 0a 35 39 34 0d 0a 35 39 34 0d 0a 35  ---..594..594..5
27320 39 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  94....query I ro
27330 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
27340 6c 30 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53  l0 * - - col2 AS
27350 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d   col0 FROM tab0.
27360 0a 2d 2d 2d 2d 0d 0a 37 30 35 0d 0a 38 37 30 0d  .----..705..870.
27370 0a 39 36 30 33 0d 0a 0d 0a 71 75 65 72 79 20 49  .9603....query I
27380 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27390 20 2d 20 2d 20 63 6f 6c 32 20 2d 20 63 6f 6c 32   - - col2 - col2
273a0 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
273b0 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30  b1 cor0..----..0
273c0 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ..0..0....query 
273d0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
273e0 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 31 20 46  T ALL + - col1 F
273f0 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
27400 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20   WHERE NOT NULL 
27410 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
27420 20 2b 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29 20   + ( + - col0 ) 
27430 2a 20 2d 20 63 6f 6c 31 20 2a 20 63 6f 6c 30 0d  * - col1 * col0.
27440 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
27450 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
27460 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
27470 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
27480 57 48 45 52 45 20 4e 4f 54 20 38 32 20 49 53 20  WHERE NOT 82 IS 
27490 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
274a0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
274b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
274c0 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  * FROM tab0 AS c
274d0 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20  or0 WHERE NOT ( 
274e0 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2b 20 2b 20  NOT NULL >= + + 
274f0 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 29 0d 0a  ( - - col1 ) )..
27500 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
27510 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
27520 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
27530 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27540 6f 72 74 20 6c 61 62 65 6c 2d 39 30 34 0d 0a 53  ort label-904..S
27550 45 4c 45 43 54 20 2d 20 43 41 53 54 28 20 4e 55  ELECT - CAST( NU
27560 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
27570 2a 20 2d 20 38 33 20 46 52 4f 4d 20 74 61 62 30  * - 83 FROM tab0
27580 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
27590 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d  OT NULL IS NULL.
275a0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
275b0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
275c0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
275d0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30  rowsort label-90
275e0 34 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53 54  4..SELECT - CAST
275f0 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20   ( NULL AS REAL 
27600 29 20 2a 20 2d 20 38 33 20 46 52 4f 4d 20 74 61  ) * - 83 FROM ta
27610 62 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b0 AS cor0 WHERE
27620 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e 55 4c   NOT NULL IS NUL
27630 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
27640 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
27650 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 38 30  CT DISTINCT - 80
27660 20 2b 20 2d 20 34 35 20 46 52 4f 4d 20 74 61 62   + - 45 FROM tab
27670 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
27680 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
27690 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
276a0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
276b0 54 20 36 33 20 46 52 4f 4d 20 74 61 62 31 20 41  T 63 FROM tab1 A
276c0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
276d0 20 28 20 4e 55 4c 4c 20 3c 3e 20 28 20 2b 20 2b   ( NULL <> ( + +
276e0 20 63 6f 6c 30 20 29 20 29 0d 0a 2d 2d 2d 2d 0d   col0 ) )..----.
276f0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
27700 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 36 37 20  rt..SELECT - 67 
27710 2a 20 38 31 20 46 52 4f 4d 20 74 61 62 32 20 41  * 81 FROM tab2 A
27720 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35  S cor0..----..-5
27730 34 32 37 0d 0a 2d 35 34 32 37 0d 0a 2d 35 34 32  427..-5427..-542
27740 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
27750 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
27760 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
27770 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30  rowsort label-90
27780 38 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 28  8..SELECT - SUM(
27790 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52   ALL - col2 ) FR
277a0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
277b0 63 6f 6c 32 20 2f 20 37 33 20 49 53 20 4e 4f 54  col2 / 73 IS NOT
277c0 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 4e 55 4c   NULL OR NOT NUL
277d0 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
277e0 0a 31 35 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .156....skipif m
277f0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
27800 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
27810 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 30 38  owsort label-908
27820 0d 0a 53 45 4c 45 43 54 20 2d 20 53 55 4d 20 28  ..SELECT - SUM (
27830 20 41 4c 4c 20 2d 20 63 6f 6c 32 20 29 20 46 52   ALL - col2 ) FR
27840 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2b 20  OM tab0 WHERE + 
27850 63 6f 6c 32 20 2f 20 37 33 20 49 53 20 4e 4f 54  col2 / 73 IS NOT
27860 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20 4e 55 4c   NULL OR NOT NUL
27870 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  L IS NULL..----.
27880 0a 31 35 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49  .156....query II
27890 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
278a0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63   col0 AS col0, c
278b0 6f 6c 31 20 2b 20 63 6f 6c 31 20 46 52 4f 4d 20  ol1 + col1 FROM 
278c0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a  tab1..----..51..
278d0 32 38 0d 0a 38 35 0d 0a 31 30 0d 0a 39 31 0d 0a  28..85..10..91..
278e0 39 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  94....onlyif mys
278f0 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
27900 79 6e 74 61 78 3a 20 44 49 56 20 66 6f 72 20 69  yntax: DIV for i
27910 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
27920 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
27930 6f 72 74 20 6c 61 62 65 6c 2d 39 31 30 0d 0a 53  ort label-910..S
27940 45 4c 45 43 54 20 38 35 2c 20 34 38 20 2a 20 2b  ELECT 85, 48 * +
27950 20 43 4f 55 4e 54 28 20 2a 20 29 20 44 49 56 20   COUNT( * ) DIV 
27960 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20  + COUNT( * ) AS 
27970 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
27980 2d 2d 2d 2d 0d 0a 38 35 0d 0a 34 38 0d 0a 0d 0a  ----..85..48....
27990 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
279a0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
279b0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
279c0 6c 61 62 65 6c 2d 39 31 30 0d 0a 53 45 4c 45 43  label-910..SELEC
279d0 54 20 38 35 2c 20 34 38 20 2a 20 2b 20 43 4f 55  T 85, 48 * + COU
279e0 4e 54 20 28 20 2a 20 29 20 2f 20 2b 20 43 4f 55  NT ( * ) / + COU
279f0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
27a00 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
27a10 0d 0a 38 35 0d 0a 34 38 0d 0a 0d 0a 71 75 65 72  ..85..48....quer
27a20 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
27a30 4c 45 43 54 20 39 32 20 41 53 20 63 6f 6c 30 2c  LECT 92 AS col0,
27a40 20 36 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d   66 AS col2 FROM
27a50 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 39 32 0d   tab2..----..92.
27a60 0a 36 36 0d 0a 39 32 0d 0a 36 36 0d 0a 39 32 0d  .66..92..66..92.
27a70 0a 36 36 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  .66....query III
27a80 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
27a90 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
27aa0 20 74 61 62 32 20 57 48 45 52 45 20 2b 20 2b 20   tab2 WHERE + + 
27ab0 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
27ac0 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73  ..----..9 values
27ad0 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35 63 39   hashing to 75c9
27ae0 39 38 61 61 35 33 61 63 38 33 32 31 38 63 62 66  98aa53ac83218cbf
27af0 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a 0d 0a  2feb962d0a49....
27b00 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
27b10 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
27b20 54 20 2d 20 28 20 2b 20 63 6f 6c 32 20 29 20 2a  T - ( + col2 ) *
27b30 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 2b 20 63 6f   - col2 * - + co
27b40 6c 32 20 41 53 20 63 6f 6c 32 2c 20 34 37 20 41  l2 AS col2, 47 A
27b50 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
27b60 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 35 33 37 39 0d  ..----..-205379.
27b70 0a 34 37 0d 0a 2d 33 31 34 34 33 32 0d 0a 34 37  .47..-314432..47
27b80 0d 0a 2d 38 38 34 37 33 36 0d 0a 34 37 0d 0a 0d  ..-884736..47...
27b90 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
27ba0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a  rt..SELECT ALL *
27bb0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
27bc0 20 2b 20 32 30 20 2b 20 2d 20 32 36 20 2b 20 2d   + 20 + - 26 + -
27bd0 20 2b 20 39 31 20 49 53 20 4e 4f 54 20 4e 55 4c   + 91 IS NOT NUL
27be0 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  L..----..9 value
27bf0 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62  s hashing to c4b
27c00 34 32 37 36 35 64 66 66 39 34 65 61 61 61 34 36  42765dff94eaaa46
27c10 30 34 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d  040e537fb43b7...
27c20 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
27c30 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
27c40 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
27c50 6f 72 74 20 6c 61 62 65 6c 2d 39 31 35 0d 0a 53  ort label-915..S
27c60 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 34  ELECT DISTINCT 4
27c70 37 20 2a 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29  7 * + COUNT( * )
27c80 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
27c90 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 31 0d 0a 0d  b1..----..141...
27ca0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
27cb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
27cc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
27cd0 6c 61 62 65 6c 2d 39 31 35 0d 0a 53 45 4c 45 43  label-915..SELEC
27ce0 54 20 44 49 53 54 49 4e 43 54 20 34 37 20 2a 20  T DISTINCT 47 * 
27cf0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53  + COUNT ( * ) AS
27d00 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
27d10 0a 2d 2d 2d 2d 0d 0a 31 34 31 0d 0a 0d 0a 6f 6e  .----..141....on
27d20 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
27d30 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
27d40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
27d50 20 6c 61 62 65 6c 2d 39 31 36 0d 0a 53 45 4c 45   label-916..SELE
27d60 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 28 20  CT ALL + MIN( ( 
27d70 2b 20 33 36 20 29 20 29 20 46 52 4f 4d 20 74 61  + 36 ) ) FROM ta
27d80 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e 4f  b0 WHERE NULL NO
27d90 54 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41  T BETWEEN NULL A
27da0 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  ND NULL..----..N
27db0 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
27dc0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
27dd0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
27de0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 31 36 0d  wsort label-916.
27df0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 4d 49  .SELECT ALL + MI
27e00 4e 20 28 20 28 20 2b 20 33 36 20 29 20 29 20 46  N ( ( + 36 ) ) F
27e10 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e  ROM tab0 WHERE N
27e20 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
27e30 4e 55 4c 4c 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  NULL AND NULL..-
27e40 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65  ---..NULL....que
27e50 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
27e60 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
27e70 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54  M tab2 WHERE NOT
27e80 20 2d 20 63 6f 6c 30 20 2f 20 2d 20 2b 20 63 6f   - col0 / - + co
27e90 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 2a 20 63 6f  l2 + + col1 * co
27ea0 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  l2 IS NULL..----
27eb0 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73 68 69  ..9 values hashi
27ec0 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61 35 33  ng to 75c998aa53
27ed0 61 63 38 33 32 31 38 63 62 66 32 66 65 62 39 36  ac83218cbf2feb96
27ee0 32 64 30 61 34 39 0d 0a 0d 0a 71 75 65 72 79 20  2d0a49....query 
27ef0 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
27f00 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  ECT * FROM tab2 
27f10 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 3d  WHERE NOT NULL =
27f20 20 2d 20 63 6f 6c 30 20 2b 20 2b 20 28 20 2d 20   - col0 + + ( - 
27f30 28 20 2b 20 36 34 20 29 20 29 20 2a 20 2b 20 63  ( + 64 ) ) * + c
27f40 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ol2..----....ski
27f50 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
27f60 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
27f70 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
27f80 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
27f90 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f  umns..query I ro
27fa0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
27fb0 4c 20 28 20 2d 20 63 6f 6c 30 20 29 20 63 6f 6c  L ( - col0 ) col
27fc0 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
27fd0 2d 0d 0a 2d 35 31 0d 0a 2d 38 35 0d 0a 2d 39 31  -..-51..-85..-91
27fe0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
27ff0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
28000 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
28010 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28020 61 62 65 6c 2d 39 32 30 0d 0a 53 45 4c 45 43 54  abel-920..SELECT
28030 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2f 20 2b 20   ALL - col1 / + 
28040 39 39 20 2f 20 2b 20 2b 20 33 33 20 2a 20 2b 20  99 / + + 33 * + 
28050 35 34 20 2b 20 2b 20 2b 20 43 41 53 54 28 20 2d  54 + + + CAST( -
28060 20 39 33 20 41 53 20 53 49 47 4e 45 44 20 29 20   93 AS SIGNED ) 
28070 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57  col1 FROM tab0 W
28080 48 45 52 45 20 28 20 4e 4f 54 20 2d 20 31 31 20  HERE ( NOT - 11 
28090 3c 3d 20 2d 20 2d 20 63 6f 6c 31 20 29 0d 0a 2d  <= - - col1 )..-
280a0 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ---....skipif my
280b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
280c0 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
280d0 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
280e0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
280f0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
28100 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
28110 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28120 61 62 65 6c 2d 39 32 30 0d 0a 53 45 4c 45 43 54  abel-920..SELECT
28130 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2f 20 2b 20   ALL - col1 / + 
28140 39 39 20 2f 20 2b 20 2b 20 33 33 20 2a 20 2b 20  99 / + + 33 * + 
28150 35 34 20 2b 20 2b 20 2b 20 43 41 53 54 20 28 20  54 + + + CAST ( 
28160 2d 20 39 33 20 41 53 20 49 4e 54 45 47 45 52 20  - 93 AS INTEGER 
28170 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
28180 20 57 48 45 52 45 20 28 20 4e 4f 54 20 2d 20 31   WHERE ( NOT - 1
28190 31 20 3c 3d 20 2d 20 2d 20 63 6f 6c 31 20 29 0d  1 <= - - col1 ).
281a0 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
281b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
281c0 20 2b 20 37 35 20 41 53 20 63 6f 6c 31 20 46 52   + 75 AS col1 FR
281d0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20  OM tab2 AS cor0 
281e0 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20  CROSS JOIN tab1 
281f0 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39  AS cor1..----..9
28200 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
28210 74 6f 20 32 32 30 34 32 62 66 64 34 64 37 38 37  to 22042bfd4d787
28220 34 31 35 34 35 37 61 34 32 62 62 39 33 64 34 38  415457a42bb93d48
28230 65 65 61 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  eea....query II 
28240 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
28250 2d 20 2b 20 38 30 20 2a 20 2d 20 33 38 20 41 53  - + 80 * - 38 AS
28260 20 63 6f 6c 32 2c 20 2b 20 39 36 20 46 52 4f 4d   col2, + 96 FROM
28270 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
28280 2d 2d 2d 0d 0a 33 30 34 30 0d 0a 39 36 0d 0a 33  ---..3040..96..3
28290 30 34 30 0d 0a 39 36 0d 0a 33 30 34 30 0d 0a 39  040..96..3040..9
282a0 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  6....query I row
282b0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
282c0 20 63 6f 6c 31 20 2b 20 2b 20 63 6f 6c 30 20 2b   col1 + + col0 +
282d0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 20   + col1 AS col0 
282e0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
282f0 2d 2d 2d 2d 0d 0a 31 34 38 0d 0a 32 30 39 0d 0a  ----..148..209..
28300 32 31 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  218....skipif po
28310 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
28320 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
28330 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
28340 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
28350 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
28360 0a 53 45 4c 45 43 54 20 2d 20 28 20 2b 20 34 37  .SELECT - ( + 47
28370 20 29 20 2b 20 2b 20 63 6f 6c 30 20 63 6f 6c 30   ) + + col0 col0
28380 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
28390 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 0d 0a 34  r0..----..-32..4
283a0 30 0d 0a 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49  0..50....query I
283b0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
283c0 54 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c  T - col2 + + col
283d0 31 2c 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  1, col0 FROM tab
283e0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
283f0 0a 32 38 0d 0a 34 36 0d 0a 33 37 0d 0a 36 34 0d  .28..46..37..64.
28400 0a 39 0d 0a 37 35 0d 0a 0d 0a 71 75 65 72 79 20  .9..75....query 
28410 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28420 54 20 41 4c 4c 20 2b 20 2d 20 63 6f 6c 32 20 2b  T ALL + - col2 +
28430 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 34 30 20 2a   - col0 * + 40 *
28440 20 63 6f 6c 32 20 2b 20 2d 20 28 20 35 37 20 29   col2 + - ( 57 )
28450 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
28460 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
28470 0d 0a 2d 32 38 33 30 34 0d 0a 2d 33 34 38 36 37  ..-28304..-34867
28480 0d 0a 2d 33 38 34 32 37 36 0d 0a 0d 0a 71 75 65  ..-384276....que
28490 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
284a0 4c 45 43 54 20 63 6f 6c 31 20 2b 20 2b 20 63 6f  LECT col1 + + co
284b0 6c 31 20 2a 20 63 6f 6c 31 20 2a 20 2d 20 2d 20  l1 * col1 * - - 
284c0 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 30  ( col2 ) AS col0
284d0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
284e0 0d 0a 31 34 38 30 0d 0a 31 35 30 32 35 39 0d 0a  ..1480..150259..
284f0 31 38 38 33 30 0d 0a 0d 0a 71 75 65 72 79 20 49  18830....query I
28500 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
28510 54 20 44 49 53 54 49 4e 43 54 20 63 6f 6c 31 2c  T DISTINCT col1,
28520 20 31 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d   10 FROM tab1..-
28530 2d 2d 2d 0d 0a 31 34 0d 0a 31 30 0d 0a 34 37 0d  ---..14..10..47.
28540 0a 31 30 0d 0a 35 0d 0a 31 30 0d 0a 0d 0a 71 75  .10..5..10....qu
28550 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
28560 45 4c 45 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20  ELECT ALL + ( - 
28570 35 32 20 29 20 2b 20 2b 20 2b 20 36 20 46 52 4f  52 ) + + + 6 FRO
28580 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
28590 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 2d 20 63 6f   + col2 + - - co
285a0 6c 32 20 2b 20 2b 20 2d 20 28 20 2d 20 2b 20 63  l2 + + - ( - + c
285b0 6f 6c 32 20 29 20 2f 20 2b 20 63 6f 6c 32 20 2b  ol2 ) / + col2 +
285c0 20 2b 20 34 34 20 2f 20 63 6f 6c 32 20 49 53 20   + 44 / col2 IS 
285d0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
285e0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
285f0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
28600 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
28610 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 30 0d 0a  sort label-930..
28620 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f 55  SELECT ALL + COU
28630 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62  NT( * ) FROM tab
28640 32 20 57 48 45 52 45 20 63 6f 6c 30 20 3c 3d 20  2 WHERE col0 <= 
28650 2b 20 33 39 20 2a 20 34 38 20 2a 20 32 32 0d 0a  + 39 * 48 * 22..
28660 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
28670 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
28680 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
28690 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
286a0 39 33 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  930..SELECT ALL 
286b0 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52  + COUNT ( * ) FR
286c0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 63 6f  OM tab2 WHERE co
286d0 6c 30 20 3c 3d 20 2b 20 33 39 20 2a 20 34 38 20  l0 <= + 39 * 48 
286e0 2a 20 32 32 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d  * 22..----..3...
286f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28700 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
28710 54 20 2d 20 35 32 20 2b 20 2d 20 28 20 38 30 20  T - 52 + - ( 80 
28720 29 20 2b 20 2d 20 2d 20 63 6f 6c 30 20 46 52 4f  ) + - - col0 FRO
28730 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
28740 2d 2d 2d 2d 0d 0a 2d 31 31 37 0d 0a 2d 33 35 0d  ----..-117..-35.
28750 0a 2d 34 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .-45....query I 
28760 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
28770 44 49 53 54 49 4e 43 54 20 2b 20 2d 20 36 36 20  DISTINCT + - 66 
28780 2b 20 2d 20 2b 20 39 30 20 2a 20 2b 20 63 6f 6c  + - + 90 * + col
28790 30 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  0 AS col0 FROM t
287a0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
287b0 2d 0d 0a 2d 34 32 30 36 0d 0a 2d 35 38 32 36 0d  -..-4206..-5826.
287c0 0a 2d 36 38 31 36 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-6816....onlyif
287d0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
287e0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
287f0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
28800 65 6c 2d 39 33 33 0d 0a 53 45 4c 45 43 54 20 44  el-933..SELECT D
28810 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 28  ISTINCT + COUNT(
28820 20 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f   * ) AS col2 FRO
28830 4d 20 74 61 62 32 20 63 6f 72 30 20 57 48 45 52  M tab2 cor0 WHER
28840 45 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 2b  E NULL BETWEEN +
28850 20 39 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d   90 AND NULL..--
28860 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
28870 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
28880 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
28890 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
288a0 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
288b0 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT + COUNT ( * )
288c0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
288d0 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  b2 cor0 WHERE NU
288e0 4c 4c 20 42 45 54 57 45 45 4e 20 2b 20 39 30 20  LL BETWEEN + 90 
288f0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
28900 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
28910 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
28920 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d   DECIMAL type: .
28930 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
28940 20 6c 61 62 65 6c 2d 39 33 34 0d 0a 53 45 4c 45   label-934..SELE
28950 43 54 20 2b 20 41 56 47 20 28 20 41 4c 4c 20 2b  CT + AVG ( ALL +
28960 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62   col1 ) FROM tab
28970 32 20 57 48 45 52 45 20 2d 20 35 35 20 2a 20 2b  2 WHERE - 55 * +
28980 20 2b 20 36 35 20 2a 20 2d 20 43 41 53 54 28 20   + 65 * - CAST( 
28990 2d 20 63 6f 6c 30 20 41 53 20 44 45 43 49 4d 41  - col0 AS DECIMA
289a0 4c 20 29 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  L ) IS NULL..---
289b0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
289c0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
289d0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
289e0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
289f0 39 33 34 0d 0a 53 45 4c 45 43 54 20 2b 20 41 56  934..SELECT + AV
28a00 47 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 31 20 29  G ( ALL + col1 )
28a10 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
28a20 20 2d 20 35 35 20 2a 20 2b 20 2b 20 36 35 20 2a   - 55 * + + 65 *
28a30 20 2d 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 30   - CAST ( - col0
28a40 20 41 53 20 52 45 41 4c 20 29 20 49 53 20 4e 55   AS REAL ) IS NU
28a50 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  LL..----..NULL..
28a60 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
28a70 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
28a80 2b 20 37 32 20 46 52 4f 4d 20 74 61 62 30 20 41  + 72 FROM tab0 A
28a90 53 20 63 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49  S cor0 CROSS JOI
28aa0 4e 20 74 61 62 32 20 41 53 20 63 6f 72 31 0d 0a  N tab2 AS cor1..
28ab0 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68  ----..9 values h
28ac0 61 73 68 69 6e 67 20 74 6f 20 61 64 35 32 31 31  ashing to ad5211
28ad0 34 34 63 39 37 36 66 66 32 35 65 37 37 63 64 66  44c976ff25e77cdf
28ae0 31 30 61 38 34 64 31 64 63 36 0d 0a 0d 0a 71 75  10a84d1dc6....qu
28af0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
28b00 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
28b10 2d 20 28 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 32  - ( - ( - - col2
28b20 20 29 20 29 20 2a 20 2d 20 63 6f 6c 31 2c 20 2b   ) ) * - col1, +
28b30 20 63 6f 6c 32 20 2b 20 63 6f 6c 31 20 2d 20 2d   col2 + col1 - -
28b40 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   - col2 AS col0 
28b50 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
28b60 2d 2d 2d 2d 0d 0a 2d 32 31 30 0d 0a 32 31 0d 0a  ----..-210..21..
28b70 2d 33 38 30 37 0d 0a 38 31 0d 0a 2d 39 39 0d 0a  -3807..81..-99..
28b80 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
28b90 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
28ba0 20 41 56 47 20 28 20 2b 20 63 6f 6c 32 20 29 20   AVG ( + col2 ) 
28bb0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
28bc0 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
28bd0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   NULL..----..NUL
28be0 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
28bf0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
28c00 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
28c10 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33  rowsort label-93
28c20 38 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28  8..SELECT COUNT(
28c30 20 2a 20 29 20 2a 20 2b 20 43 4f 55 4e 54 28 20   * ) * + COUNT( 
28c40 2a 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  * ) col2 FROM ta
28c50 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
28c60 0d 0a 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..9....skipif my
28c70 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
28c80 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
28c90 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
28ca0 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
28cb0 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
28cc0 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
28cd0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28ce0 61 62 65 6c 2d 39 33 38 0d 0a 53 45 4c 45 43 54  abel-938..SELECT
28cf0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b   COUNT ( * ) * +
28d00 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
28d10 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
28d20 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  or0..----..9....
28d30 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
28d40 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
28d50 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
28d60 72 74 20 6c 61 62 65 6c 2d 39 33 39 0d 0a 53 45  rt label-939..SE
28d70 4c 45 43 54 20 41 4c 4c 20 2b 20 2b 20 28 20 2b  LECT ALL + + ( +
28d80 20 2d 20 28 20 4d 41 58 28 20 2d 20 2b 20 63 6f   - ( MAX( - + co
28d90 6c 30 20 29 20 29 20 29 20 46 52 4f 4d 20 74 61  l0 ) ) ) FROM ta
28da0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
28db0 0d 0a 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..51....skipif m
28dc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
28dd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
28de0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 33 39  owsort label-939
28df0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
28e00 20 28 20 2b 20 2d 20 28 20 4d 41 58 20 28 20 2d   ( + - ( MAX ( -
28e10 20 2b 20 63 6f 6c 30 20 29 20 29 20 29 20 46 52   + col0 ) ) ) FR
28e20 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
28e30 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 6f 6e 6c  .----..51....onl
28e40 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
28e50 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
28e60 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
28e70 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34  rowsort label-94
28e80 30 0d 0a 53 45 4c 45 43 54 20 2b 20 2b 20 43 41  0..SELECT + + CA
28e90 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
28ea0 45 44 20 29 20 2f 20 2b 20 2d 20 28 20 32 20 29  ED ) / + - ( 2 )
28eb0 20 2f 20 28 20 2b 20 31 37 20 29 20 2a 20 63 6f   / ( + 17 ) * co
28ec0 6c 30 20 2b 20 2b 20 63 6f 6c 30 20 2a 20 2b 20  l0 + + col0 * + 
28ed0 34 36 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  46 FROM tab2 AS 
28ee0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  cor0..----..NULL
28ef0 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..NULL..NULL....
28f00 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
28f10 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
28f20 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
28f30 61 62 65 6c 2d 39 34 30 0d 0a 53 45 4c 45 43 54  abel-940..SELECT
28f40 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
28f50 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f 20   AS INTEGER ) / 
28f60 2b 20 2d 20 28 20 32 20 29 20 2f 20 28 20 2b 20  + - ( 2 ) / ( + 
28f70 31 37 20 29 20 2a 20 63 6f 6c 30 20 2b 20 2b 20  17 ) * col0 + + 
28f80 63 6f 6c 30 20 2a 20 2b 20 34 36 20 46 52 4f 4d  col0 * + 46 FROM
28f90 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
28fa0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
28fb0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
28fc0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
28fd0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
28fe0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
28ff0 6c 2d 39 34 31 0d 0a 53 45 4c 45 43 54 20 41 4c  l-941..SELECT AL
29000 4c 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  L + - COUNT( * )
29010 20 2a 20 2b 20 36 39 20 46 52 4f 4d 20 74 61 62   * + 69 FROM tab
29020 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32  2 cor0..----..-2
29030 30 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  07....skipif mys
29040 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
29050 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
29060 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 31 0d 0a  sort label-941..
29070 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20 43  SELECT ALL + - C
29080 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20 2b 20 36  OUNT ( * ) * + 6
29090 39 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  9 FROM tab2 cor0
290a0 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 30 37 0d 0a 0d 0a  ..----..-207....
290b0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44  onlyif mysql # D
290c0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
290d0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
290e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
290f0 2d 39 34 32 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -942..SELECT ALL
29100 20 2b 20 63 6f 6c 32 20 44 49 56 20 28 20 2b 20   + col2 DIV ( + 
29110 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61  - col0 ) FROM ta
29120 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d  b1..----..-1..0.
29130 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .0....skipif mys
29140 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
29150 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
29160 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 32 0d 0a  sort label-942..
29170 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c  SELECT ALL + col
29180 32 20 2f 20 28 20 2b 20 2d 20 63 6f 6c 30 20 29  2 / ( + - col0 )
29190 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
291a0 0d 0a 2d 31 0d 0a 30 0d 0a 30 0d 0a 0d 0a 71 75  ..-1..0..0....qu
291b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
291c0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
291d0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
291e0 2b 20 31 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  + 11 IS NOT NULL
291f0 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
29200 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
29210 54 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  T - + col2 AS co
29220 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l1 FROM tab2 WHE
29230 52 45 20 4e 4f 54 20 2d 20 2b 20 28 20 2b 20 2b  RE NOT - + ( + +
29240 20 63 6f 6c 32 20 29 20 2a 20 2b 20 37 30 20 2f   col2 ) * + 70 /
29250 20 63 6f 6c 30 20 49 53 20 4e 4f 54 20 4e 55 4c   col0 IS NOT NUL
29260 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  L..----....query
29270 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
29280 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31  LECT * FROM tab1
29290 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 28 20 2b   WHERE NOT + ( +
292a0 20 63 6f 6c 30 20 29 20 2a 20 2b 20 39 32 20 49   col0 ) * + 92 I
292b0 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20  S NULL..----..9 
292c0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
292d0 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
292e0 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
292f0 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  ad....query II r
29300 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
29310 20 63 6f 6c 32 2c 20 63 6f 6c 32 20 46 52 4f 4d   col2, col2 FROM
29320 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
29330 4e 55 4c 4c 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  NULL IS NULL..--
29340 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
29350 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
29360 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
29370 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29380 34 37 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 53  47..SELECT - - S
29390 55 4d 28 20 41 4c 4c 20 2b 20 38 34 20 29 20 41  UM( ALL + 84 ) A
293a0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
293b0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
293c0 32 35 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  252....skipif my
293d0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
293e0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
293f0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 34 37 0d  wsort label-947.
29400 0a 53 45 4c 45 43 54 20 2d 20 2d 20 53 55 4d 20  .SELECT - - SUM 
29410 28 20 41 4c 4c 20 2b 20 38 34 20 29 20 41 53 20  ( ALL + 84 ) AS 
29420 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
29430 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 35  S cor0..----..25
29440 32 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  2....query III r
29450 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
29460 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
29470 61 62 30 20 57 48 45 52 45 20 28 20 63 6f 6c 32  ab0 WHERE ( col2
29480 20 29 20 2a 20 2d 20 2d 20 63 6f 6c 32 20 2d 20   ) * - - col2 - 
29490 2d 20 33 20 2f 20 39 35 20 49 53 20 4e 4f 54 20  - 3 / 95 IS NOT 
294a0 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
294b0 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
294c0 63 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61  c4b42765dff94eaa
294d0 61 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37  a46040e537fb43b7
294e0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
294f0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
29500 6c 32 20 2a 20 2b 20 2d 20 63 6f 6c 32 20 2b 20  l2 * + - col2 + 
29510 2b 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  + col1 FROM tab1
29520 0d 0a 2d 2d 2d 2d 0d 0a 33 34 38 36 0d 0a 34 36  ..----..3486..46
29530 37 31 0d 0a 39 32 33 30 0d 0a 0d 0a 6f 6e 6c 79  71..9230....only
29540 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
29550 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
29560 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
29570 61 62 65 6c 2d 39 35 30 0d 0a 53 45 4c 45 43 54  abel-950..SELECT
29580 20 41 4c 4c 20 2d 20 2d 20 35 37 20 2b 20 2b 20   ALL - - 57 + + 
29590 2b 20 43 4f 55 4e 54 28 20 41 4c 4c 20 2b 20 33  + COUNT( ALL + 3
295a0 38 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  8 ) AS col2 FROM
295b0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
295c0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 31 20 41 53  OSS JOIN tab1 AS
295d0 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 36 36 0d   cor1..----..66.
295e0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
295f0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
29600 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29610 74 20 6c 61 62 65 6c 2d 39 35 30 0d 0a 53 45 4c  t label-950..SEL
29620 45 43 54 20 41 4c 4c 20 2d 20 2d 20 35 37 20 2b  ECT ALL - - 57 +
29630 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c 4c   + + COUNT ( ALL
29640 20 2b 20 33 38 20 29 20 41 53 20 63 6f 6c 32 20   + 38 ) AS col2 
29650 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
29660 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62  0 CROSS JOIN tab
29670 31 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d  1 AS cor1..----.
29680 0a 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .66....onlyif my
29690 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
296a0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
296b0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
296c0 39 35 31 0d 0a 53 45 4c 45 43 54 20 2b 20 32 33  951..SELECT + 23
296d0 20 2f 20 2d 20 53 55 4d 28 20 41 4c 4c 20 63 6f   / - SUM( ALL co
296e0 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 30 20 57  l2 ) FROM tab0 W
296f0 48 45 52 45 20 28 20 2b 20 2d 20 31 34 20 29 20  HERE ( + - 14 ) 
29700 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e  IS NULL..----..N
29710 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ULL....skipif my
29720 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
29730 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
29740 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 31 0d  wsort label-951.
29750 0a 53 45 4c 45 43 54 20 2b 20 32 33 20 2f 20 2d  .SELECT + 23 / -
29760 20 53 55 4d 20 28 20 41 4c 4c 20 63 6f 6c 32 20   SUM ( ALL col2 
29770 29 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  ) FROM tab0 WHER
29780 45 20 28 20 2b 20 2d 20 31 34 20 29 20 49 53 20  E ( + - 14 ) IS 
29790 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  NULL..----..NULL
297a0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
297b0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 28 20  ort..SELECT + ( 
297c0 33 34 20 29 20 46 52 4f 4d 20 74 61 62 31 0d 0a  34 ) FROM tab1..
297d0 2d 2d 2d 2d 0d 0a 33 34 0d 0a 33 34 0d 0a 33 34  ----..34..34..34
297e0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
297f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63  sort..SELECT + c
29800 6f 6c 30 2c 20 35 31 20 46 52 4f 4d 20 74 61 62  ol0, 51 FROM tab
29810 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
29820 0a 35 31 0d 0a 35 31 0d 0a 38 35 0d 0a 35 31 0d  .51..51..85..51.
29830 0a 39 31 0d 0a 35 31 0d 0a 0d 0a 6f 6e 6c 79 69  .91..51....onlyi
29840 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73  f mysql # CAST s
29850 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79  yntax: SIGNED ty
29860 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72  pe: ..query II r
29870 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 34  owsort label-954
29880 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43 41 53  ..SELECT ALL CAS
29890 54 28 20 63 6f 6c 30 20 41 53 20 53 49 47 4e 45  T( col0 AS SIGNE
298a0 44 20 29 20 2b 20 2d 20 28 20 2d 20 63 6f 6c 32  D ) + - ( - col2
298b0 20 29 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20   ) * - + col1 * 
298c0 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32 2c 20  - col1 AS col2, 
298d0 33 38 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  38 AS col2 FROM 
298e0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
298f0 2d 2d 0d 0a 32 33 37 32 32 34 0d 0a 33 38 0d 0a  --..237224..38..
29900 32 36 30 34 33 37 0d 0a 33 38 0d 0a 35 39 38 36  260437..38..5986
29910 39 0d 0a 33 38 0d 0a 0d 0a 73 6b 69 70 69 66 20  9..38....skipif 
29920 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
29930 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49  atible..query II
29940 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29950 35 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 43  54..SELECT ALL C
29960 41 53 54 20 28 20 63 6f 6c 30 20 41 53 20 49 4e  AST ( col0 AS IN
29970 54 45 47 45 52 20 29 20 2b 20 2d 20 28 20 2d 20  TEGER ) + - ( - 
29980 63 6f 6c 32 20 29 20 2a 20 2d 20 2b 20 63 6f 6c  col2 ) * - + col
29990 31 20 2a 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f  1 * - col1 AS co
299a0 6c 32 2c 20 33 38 20 41 53 20 63 6f 6c 32 20 46  l2, 38 AS col2 F
299b0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
299c0 0d 0a 2d 2d 2d 2d 0d 0a 32 33 37 32 32 34 0d 0a  ..----..237224..
299d0 33 38 0d 0a 32 36 30 34 33 37 0d 0a 33 38 0d 0a  38..260437..38..
299e0 35 39 38 36 39 0d 0a 33 38 0d 0a 0d 0a 71 75 65  59869..38....que
299f0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ry II rowsort..S
29a00 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b  ELECT DISTINCT +
29a10 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c   + col2 AS col0,
29a20 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
29a30 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
29a40 0a 35 39 0d 0a 2d 38 35 0d 0a 36 38 0d 0a 2d 39  .59..-85..68..-9
29a50 31 0d 0a 39 36 0d 0a 2d 35 31 0d 0a 0d 0a 6f 6e  1..96..-51....on
29a60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
29a70 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
29a80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29a90 20 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45   label-956..SELE
29aa0 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 35  CT DISTINCT - 35
29ab0 20 2b 20 35 30 20 2a 20 2d 20 28 20 2b 20 32 32   + 50 * - ( + 22
29ac0 20 29 20 2b 20 2b 20 43 4f 55 4e 54 28 20 2a 20   ) + + COUNT( * 
29ad0 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  ) col2 FROM tab2
29ae0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
29af0 2d 31 31 33 32 0d 0a 0d 0a 73 6b 69 70 69 66 20  -1132....skipif 
29b00 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
29b10 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
29b20 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
29b30 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
29b40 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
29b50 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
29b60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
29b70 20 6c 61 62 65 6c 2d 39 35 36 0d 0a 53 45 4c 45   label-956..SELE
29b80 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 35  CT DISTINCT - 35
29b90 20 2b 20 35 30 20 2a 20 2d 20 28 20 2b 20 32 32   + 50 * - ( + 22
29ba0 20 29 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) + + COUNT ( *
29bb0 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
29bc0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
29bd0 0a 2d 31 31 33 32 0d 0a 0d 0a 6f 6e 6c 79 69 66  .-1132....onlyif
29be0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
29bf0 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
29c00 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  e: ..query II ro
29c10 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 35 37 0d  wsort label-957.
29c20 0a 53 45 4c 45 43 54 20 63 6f 6c 31 2c 20 2d 20  .SELECT col1, - 
29c30 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
29c40 47 4e 45 44 20 29 20 2a 20 2b 20 63 6f 6c 32 20  GNED ) * + col2 
29c50 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
29c60 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  0 cor0..----..1.
29c70 0a 4e 55 4c 4c 0d 0a 32 31 0d 0a 4e 55 4c 4c 0d  .NULL..21..NULL.
29c80 0a 38 31 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  .81..NULL....ski
29c90 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
29ca0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
29cb0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
29cc0 65 6c 2d 39 35 37 0d 0a 53 45 4c 45 43 54 20 63  el-957..SELECT c
29cd0 6f 6c 31 2c 20 2d 20 43 41 53 54 20 28 20 4e 55  ol1, - CAST ( NU
29ce0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
29cf0 2a 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  * + col2 AS col1
29d00 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
29d10 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 4e 55 4c 4c 0d 0a  .----..1..NULL..
29d20 32 31 0d 0a 4e 55 4c 4c 0d 0a 38 31 0d 0a 4e 55  21..NULL..81..NU
29d30 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
29d40 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
29d50 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l2 FROM tab0 WHE
29d60 52 45 20 2b 20 36 33 20 2a 20 2d 20 63 6f 6c 30  RE + 63 * - col0
29d70 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d   IS NOT NULL..--
29d80 2d 2d 0d 0a 31 30 0d 0a 34 37 0d 0a 39 39 0d 0a  --..10..47..99..
29d90 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
29da0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67   CAST syntax: ag
29db0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
29dc0 44 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a  DECIMAL type: ..
29dd0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
29de0 6c 61 62 65 6c 2d 39 35 39 0d 0a 53 45 4c 45 43  label-959..SELEC
29df0 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d  T COUNT( * ) + -
29e00 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 44   CAST( NULL AS D
29e10 45 43 49 4d 41 4c 20 29 20 41 53 20 63 6f 6c 32  ECIMAL ) AS col2
29e20 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
29e30 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66  ..NULL....skipif
29e40 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
29e50 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
29e60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39   rowsort label-9
29e70 35 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  59..SELECT COUNT
29e80 20 28 20 2a 20 29 20 2b 20 2d 20 43 41 53 54 20   ( * ) + - CAST 
29e90 28 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29  ( NULL AS REAL )
29ea0 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
29eb0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
29ec0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
29ed0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63 6f  t..SELECT - - co
29ee0 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l0 AS col2 FROM 
29ef0 74 61 62 30 20 57 48 45 52 45 20 2d 20 63 6f 6c  tab0 WHERE - col
29f00 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  1 IS NULL..----.
29f10 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
29f20 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
29f30 2b 20 2b 20 2d 20 28 20 2d 20 33 33 20 29 20 41  + + - ( - 33 ) A
29f40 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  S col2 FROM tab0
29f50 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 33 34 0d  ..----..114..34.
29f60 0a 35 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .54....onlyif my
29f70 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
29f80 78 3a 20 61 67 67 72 65 67 61 74 65 20 73 79 6e  x: aggregate syn
29f90 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
29fa0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
29fb0 6f 72 74 20 6c 61 62 65 6c 2d 39 36 32 0d 0a 53  ort label-962..S
29fc0 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 2d 20  ELECT + CAST( - 
29fd0 2b 20 53 55 4d 28 20 2d 20 37 31 20 29 20 41 53  + SUM( - 71 ) AS
29fe0 20 53 49 47 4e 45 44 20 29 20 41 53 20 63 6f 6c   SIGNED ) AS col
29ff0 32 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  2 FROM tab0 WHER
2a000 45 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55  E col1 IS NOT NU
2a010 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 31 33 0d 0a 0d  LL..----..213...
2a020 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2a030 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2a040 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a050 6c 61 62 65 6c 2d 39 36 32 0d 0a 53 45 4c 45 43  label-962..SELEC
2a060 54 20 2b 20 43 41 53 54 20 28 20 2d 20 2b 20 53  T + CAST ( - + S
2a070 55 4d 20 28 20 2d 20 37 31 20 29 20 41 53 20 49  UM ( - 71 ) AS I
2a080 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f 6c 32  NTEGER ) AS col2
2a090 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2a0a0 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
2a0b0 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 31 33 0d 0a 0d 0a  L..----..213....
2a0c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2a0d0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2a0e0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2a0f0 72 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a 53 45  rt label-963..SE
2a100 4c 45 43 54 20 43 4f 55 4e 54 28 20 2b 20 2d 20  LECT COUNT( + - 
2a110 63 6f 6c 30 20 29 20 2b 20 2d 20 39 31 20 46 52  col0 ) + - 91 FR
2a120 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab1..----..-
2a130 38 38 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  88....skipif mys
2a140 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2a150 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2a160 73 6f 72 74 20 6c 61 62 65 6c 2d 39 36 33 0d 0a  sort label-963..
2a170 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2b  SELECT COUNT ( +
2a180 20 2d 20 63 6f 6c 30 20 29 20 2b 20 2d 20 39 31   - col0 ) + - 91
2a190 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2a1a0 0d 0a 2d 38 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-88....onlyif 
2a1b0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
2a1c0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
2a1d0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2a1e0 6f 72 74 20 6c 61 62 65 6c 2d 39 36 34 0d 0a 53  ort label-964..S
2a1f0 45 4c 45 43 54 20 41 4c 4c 20 37 31 20 41 53 20  ELECT ALL 71 AS 
2a200 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 57  col0 FROM tab0 W
2a210 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 42 45  HERE NOT NULL BE
2a220 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20 2b  TWEEN NULL AND +
2a230 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53 54 28 20   col2 * - CAST( 
2a240 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20  + CAST( NULL AS 
2a250 53 49 47 4e 45 44 20 29 20 41 53 20 53 49 47 4e  SIGNED ) AS SIGN
2a260 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  ED )..----....sk
2a270 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2a280 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2a290 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2a2a0 65 6c 2d 39 36 34 0d 0a 53 45 4c 45 43 54 20 41  el-964..SELECT A
2a2b0 4c 4c 20 37 31 20 41 53 20 63 6f 6c 30 20 46 52  LL 71 AS col0 FR
2a2c0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
2a2d0 54 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e  T NULL BETWEEN N
2a2e0 55 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 32 20 2a  ULL AND + col2 *
2a2f0 20 2d 20 43 41 53 54 20 28 20 2b 20 43 41 53 54   - CAST ( + CAST
2a300 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47   ( NULL AS INTEG
2a310 45 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20  ER ) AS INTEGER 
2a320 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
2a330 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45   III rowsort..SE
2a340 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20  LECT DISTINCT * 
2a350 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 20 57  FROM tab2 cor0 W
2a360 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 3c 3e  HERE NOT col0 <>
2a370 20 2d 20 2d 20 31 33 20 2a 20 2d 20 2d 20 63 6f   - - 13 * - - co
2a380 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l0..----....quer
2a390 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2a3a0 45 43 54 20 2b 20 2d 20 31 34 20 41 53 20 63 6f  ECT + - 14 AS co
2a3b0 6c 32 20 46 52 4f 4d 20 28 20 74 61 62 31 20 63  l2 FROM ( tab1 c
2a3c0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
2a3d0 61 62 30 20 41 53 20 63 6f 72 31 20 29 0d 0a 2d  ab0 AS cor1 )..-
2a3e0 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61  ---..9 values ha
2a3f0 73 68 69 6e 67 20 74 6f 20 64 33 32 31 34 36 31  shing to d321461
2a400 39 39 34 62 61 34 39 63 33 61 37 30 66 61 36 33  994ba49c3a70fa63
2a410 37 33 30 33 32 66 63 39 34 0d 0a 0d 0a 6f 6e 6c  73032fc94....onl
2a420 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2a430 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2a440 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2a450 6c 61 62 65 6c 2d 39 36 37 0d 0a 53 45 4c 45 43  label-967..SELEC
2a460 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54  T DISTINCT COUNT
2a470 28 20 41 4c 4c 20 63 6f 6c 31 20 29 20 41 53 20  ( ALL col1 ) AS 
2a480 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
2a490 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69  ----..3....skipi
2a4a0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2a4b0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2a4c0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2a4d0 39 36 37 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  967..SELECT DIST
2a4e0 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 41 4c 4c  INCT COUNT ( ALL
2a4f0 20 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20   col1 ) AS col0 
2a500 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2a510 0a 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  .3....query II r
2a520 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2a530 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 30 20 41  ISTINCT - col0 A
2a540 53 20 63 6f 6c 31 2c 20 2b 20 33 35 20 2a 20 2d  S col1, + 35 * -
2a550 20 31 33 20 46 52 4f 4d 20 74 61 62 30 20 41 53   13 FROM tab0 AS
2a560 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 35   cor0..----..-15
2a570 0d 0a 2d 34 35 35 0d 0a 2d 38 37 0d 0a 2d 34 35  ..-455..-87..-45
2a580 35 0d 0a 2d 39 37 0d 0a 2d 34 35 35 0d 0a 0d 0a  5..-97..-455....
2a590 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2a5a0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2a5b0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
2a5c0 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
2a5d0 20 3e 3d 20 37 38 20 2a 20 2d 20 63 6f 6c 31 0d   >= 78 * - col1.
2a5e0 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20  .----....skipif 
2a5f0 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73  postgresql # Pos
2a600 74 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73  tgreSQL requires
2a610 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e   AS when renamin
2a620 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73  g output columns
2a630 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2a640 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20  rt..SELECT col0 
2a650 2a 20 32 31 20 2a 20 2d 20 37 38 20 63 6f 6c 30  * 21 * - 78 col0
2a660 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46  , col2 AS col0 F
2a670 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2a680 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 34 32 35 30 36 0d  ..----..-142506.
2a690 0a 31 30 0d 0a 2d 31 35 38 38 38 36 0d 0a 39 39  .10..-158886..99
2a6a0 0d 0a 2d 32 34 35 37 30 0d 0a 34 37 0d 0a 0d 0a  ..-24570..47....
2a6b0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2a6c0 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 41 53 20  .SELECT col1 AS 
2a6d0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
2a6e0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2a6f0 20 4e 55 4c 4c 20 3c 20 4e 55 4c 4c 0d 0a 2d 2d   NULL < NULL..--
2a700 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  --....query II r
2a710 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2a720 49 53 54 49 4e 43 54 20 2d 20 2d 20 63 6f 6c 31  ISTINCT - - col1
2a730 20 2a 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 30 20   * col1 + - - 0 
2a740 41 53 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 31 20  AS col0, - col1 
2a750 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2a760 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 36 0d 0a 2d 31  0..----..196..-1
2a770 34 0d 0a 32 32 30 39 0d 0a 2d 34 37 0d 0a 32 35  4..2209..-47..25
2a780 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20  ..-5....query I 
2a790 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2a7a0 2b 20 63 6f 6c 31 20 2a 20 2b 20 63 6f 6c 30 20  + col1 * + col0 
2a7b0 2a 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c 32  * - col0 AS col2
2a7c0 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d   FROM tab0 cor0.
2a7d0 0a 2d 2d 2d 2d 0d 0a 2d 31 35 38 39 34 39 0d 0a  .----..-158949..
2a7e0 2d 31 38 32 32 35 0d 0a 2d 39 34 30 39 0d 0a 0d  -18225..-9409...
2a7f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2a800 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2a810 54 20 33 33 20 2a 20 2d 20 2d 20 28 20 63 6f 6c  T 33 * - - ( col
2a820 31 20 29 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20  1 ) + - col2 AS 
2a830 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
2a840 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
2a850 36 0d 0a 32 36 32 36 0d 0a 36 38 33 0d 0a 0d 0a  6..2626..683....
2a860 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2a870 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20  ..SELECT col1 * 
2a880 63 6f 6c 30 20 41 53 20 63 6f 6c 32 2c 20 63 6f  col0 AS col2, co
2a890 6c 31 20 2a 20 2d 20 31 33 20 46 52 4f 4d 20 74  l1 * - 13 FROM t
2a8a0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 33 34 36 0d  ab2..----..2346.
2a8b0 0a 2d 36 36 33 0d 0a 34 39 32 38 0d 0a 2d 31 30  .-663..4928..-10
2a8c0 30 31 0d 0a 35 30 32 35 0d 0a 2d 38 37 31 0d 0a  01..5025..-871..
2a8d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2a8e0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 31 37  t..SELECT + - 17
2a8f0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
2a900 20 4e 4f 54 20 2b 20 38 37 20 2b 20 63 6f 6c 32   NOT + 87 + col2
2a910 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
2a920 2d 31 37 0d 0a 2d 31 37 0d 0a 2d 31 37 0d 0a 0d  -17..-17..-17...
2a930 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
2a940 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2a950 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20  NCT * FROM tab2 
2a960 57 48 45 52 45 20 4e 4f 54 20 2d 20 2b 20 28 20  WHERE NOT - + ( 
2a970 2b 20 37 35 20 29 20 2f 20 2d 20 2d 20 63 6f 6c  + 75 ) / - - col
2a980 30 20 2b 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 63  0 + col1 * + - c
2a990 6f 6c 32 20 4e 4f 54 20 49 4e 20 28 20 2b 20 63  ol2 NOT IN ( + c
2a9a0 6f 6c 30 2c 20 35 33 20 29 0d 0a 2d 2d 2d 2d 0d  ol0, 53 )..----.
2a9b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2a9c0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2a9d0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2a9e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 37 38 0d  wsort label-978.
2a9f0 0a 53 45 4c 45 43 54 20 2d 20 4d 49 4e 28 20 2b  .SELECT - MIN( +
2aa00 20 35 30 20 29 20 46 52 4f 4d 20 74 61 62 30 0d   50 ) FROM tab0.
2aa10 0a 2d 2d 2d 2d 0d 0a 2d 35 30 0d 0a 0d 0a 73 6b  .----..-50....sk
2aa20 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2aa30 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2aa40 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2aa50 65 6c 2d 39 37 38 0d 0a 53 45 4c 45 43 54 20 2d  el-978..SELECT -
2aa60 20 4d 49 4e 20 28 20 2b 20 35 30 20 29 20 46 52   MIN ( + 50 ) FR
2aa70 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab0..----..-
2aa80 35 30 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  50....query I ro
2aa90 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
2aaa0 6c 31 20 2a 20 2d 20 2d 20 37 37 20 46 52 4f 4d  l1 * - - 77 FROM
2aab0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 30 37   tab1..----..107
2aac0 38 0d 0a 33 36 31 39 0d 0a 33 38 35 0d 0a 0d 0a  8..3619..385....
2aad0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2aae0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
2aaf0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
2ab00 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2ab10 2d 39 38 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  -980..SELECT ALL
2ab20 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 28 20   col0 * - CAST( 
2ab30 2d 20 2d 20 63 6f 6c 31 20 41 53 20 53 49 47 4e  - - col1 AS SIGN
2ab40 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a  ED ) FROM tab2..
2ab50 2d 2d 2d 2d 0d 0a 2d 32 33 34 36 0d 0a 2d 34 39  ----..-2346..-49
2ab60 32 38 0d 0a 2d 35 30 32 35 0d 0a 0d 0a 73 6b 69  28..-5025....ski
2ab70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ab80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2ab90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2aba0 6c 2d 39 38 30 0d 0a 53 45 4c 45 43 54 20 41 4c  l-980..SELECT AL
2abb0 4c 20 63 6f 6c 30 20 2a 20 2d 20 43 41 53 54 20  L col0 * - CAST 
2abc0 28 20 2d 20 2d 20 63 6f 6c 31 20 41 53 20 49 4e  ( - - col1 AS IN
2abd0 54 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62  TEGER ) FROM tab
2abe0 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 34 36 0d 0a  2..----..-2346..
2abf0 2d 34 39 32 38 0d 0a 2d 35 30 32 35 0d 0a 0d 0a  -4928..-5025....
2ac00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2ac10 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2ac20 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63 6f 6c 32   - col2 + + col2
2ac30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
2ac40 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 31 30 20 42   + col2 + + 10 B
2ac50 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
2ac60 37 34 20 2a 20 2d 20 38 36 0d 0a 2d 2d 2d 2d 0d  74 * - 86..----.
2ac70 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2ac80 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
2ac90 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
2aca0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2acb0 62 65 6c 2d 39 38 32 0d 0a 53 45 4c 45 43 54 20  bel-982..SELECT 
2acc0 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 32 20  DISTINCT + col2 
2acd0 44 49 56 20 2d 20 38 34 20 41 53 20 63 6f 6c 30  DIV - 84 AS col0
2ace0 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
2acf0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a 30 0d  r0..----..-1..0.
2ad00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2ad10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2ad20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2ad30 74 20 6c 61 62 65 6c 2d 39 38 32 0d 0a 53 45 4c  t label-982..SEL
2ad40 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63  ECT DISTINCT + c
2ad50 6f 6c 32 20 2f 20 2d 20 38 34 20 41 53 20 63 6f  ol2 / - 84 AS co
2ad60 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l0 FROM tab0 AS 
2ad70 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 0d 0a  cor0..----..-1..
2ad80 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
2ad90 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2ada0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2adb0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
2adc0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2add0 74 20 6c 61 62 65 6c 2d 39 38 33 0d 0a 53 45 4c  t label-983..SEL
2ade0 45 43 54 20 41 4c 4c 20 2d 20 4d 41 58 28 20 41  ECT ALL - MAX( A
2adf0 4c 4c 20 2d 20 63 6f 6c 30 20 29 20 46 52 4f 4d  LL - col0 ) FROM
2ae00 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
2ae10 45 52 45 20 4e 4f 54 20 33 39 20 3e 3d 20 2d 20  ERE NOT 39 >= - 
2ae20 31 37 20 2a 20 2d 20 43 41 53 54 28 20 4e 55 4c  17 * - CAST( NUL
2ae30 4c 20 41 53 20 53 49 47 4e 45 44 20 29 0d 0a 2d  L AS SIGNED )..-
2ae40 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
2ae50 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2ae60 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2ae70 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2ae80 6c 2d 39 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c  l-983..SELECT AL
2ae90 4c 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20 2d 20  L - MAX ( ALL - 
2aea0 63 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 30  col0 ) FROM tab0
2aeb0 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e   AS cor0 WHERE N
2aec0 4f 54 20 33 39 20 3e 3d 20 2d 20 31 37 20 2a 20  OT 39 >= - 17 * 
2aed0 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
2aee0 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d   INTEGER )..----
2aef0 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20  ..NULL....query 
2af00 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2af10 54 20 41 4c 4c 20 2b 20 2b 20 63 6f 6c 32 20 2b  T ALL + + col2 +
2af20 20 2d 20 37 30 20 41 53 20 63 6f 6c 30 20 46 52   - 70 AS col0 FR
2af30 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2af40 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 36 30 0d  .----..-23..-60.
2af50 0a 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .29....query I r
2af60 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2af70 49 53 54 49 4e 43 54 20 2b 20 28 20 2d 20 2d 20  ISTINCT + ( - - 
2af80 63 6f 6c 31 20 29 20 2b 20 2d 20 2b 20 36 39 20  col1 ) + - + 69 
2af90 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a  FROM tab0 cor0..
2afa0 2d 2d 2d 2d 0d 0a 2d 34 38 0d 0a 2d 36 38 0d 0a  ----..-48..-68..
2afb0 31 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  12....query I ro
2afc0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
2afd0 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 30 20 2f 20  - col2 * col0 / 
2afe0 2d 20 38 35 20 2a 20 63 6f 6c 32 20 2d 20 2d 20  - 85 * col2 - - 
2aff0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 41  col0 FROM tab0 A
2b000 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2b010 20 28 20 4e 55 4c 4c 20 29 20 49 4e 20 28 20 63   ( NULL ) IN ( c
2b020 6f 6c 32 2c 20 2d 20 63 6f 6c 30 2c 20 2b 20 2d  ol2, - col0, + -
2b030 20 63 6f 6c 31 20 2a 20 2d 20 63 6f 6c 32 20 29   col1 * - col2 )
2b040 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
2b050 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
2b060 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
2b070 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
2b080 45 20 4e 4f 54 20 2d 20 63 6f 6c 31 20 3c 3d 20  E NOT - col1 <= 
2b090 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 39 20  - col0..----..9 
2b0a0 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74  values hashing t
2b0b0 6f 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30  o c6c0a4111b36d0
2b0c0 34 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63  4dbc811a11e4d54c
2b0d0 61 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  ad....query I ro
2b0e0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2b0f0 53 54 49 4e 43 54 20 2b 20 39 20 2f 20 2b 20 2b  STINCT + 9 / + +
2b100 20 32 39 20 2a 20 2d 20 63 6f 6c 32 20 2b 20 63   29 * - col2 + c
2b110 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
2b120 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
2b130 2b 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 49  + ( - - col2 ) I
2b140 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2b150 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2b160 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31  ort..SELECT col1
2b170 20 2b 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 63 6f   + - col1 * + co
2b180 6c 31 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74  l1 * col2 FROM t
2b190 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2b1a0 2d 0d 0a 2d 33 30 38 32 38 36 0d 0a 2d 34 33 38  -..-308286..-438
2b1b0 39 0d 0a 2d 39 38 0d 0a 0d 0a 71 75 65 72 79 20  9..-98....query 
2b1c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b1d0 54 20 41 4c 4c 20 2b 20 35 37 20 2b 20 2d 20 33  T ALL + 57 + - 3
2b1e0 33 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  3 FROM tab1 AS c
2b1f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 34 0d 0a 32  or0..----..24..2
2b200 34 0d 0a 32 34 0d 0a 0d 0a 71 75 65 72 79 20 49  4..24....query I
2b210 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2b220 20 2d 20 31 35 20 2b 20 2d 20 32 38 20 46 52 4f   - 15 + - 28 FRO
2b230 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
2b240 2d 2d 2d 2d 0d 0a 2d 34 33 0d 0a 2d 34 33 0d 0a  ----..-43..-43..
2b250 2d 34 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  -43....query III
2b260 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2b270 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30   ALL * FROM tab0
2b280 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c   cor0 WHERE NULL
2b290 20 3e 20 63 6f 6c 32 20 2f 20 2b 20 2d 20 36 35   > col2 / + - 65
2b2a0 20 2a 20 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d   * - col0..----.
2b2b0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2b2c0 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2b2d0 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2b2e0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 33 0d  wsort label-993.
2b2f0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2b300 20 2d 20 2b 20 53 55 4d 28 20 2d 20 63 6f 6c 30   - + SUM( - col0
2b310 20 29 20 2b 20 33 37 20 46 52 4f 4d 20 74 61 62   ) + 37 FROM tab
2b320 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2b330 0a 32 32 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .222....skipif m
2b340 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2b350 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
2b360 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 39 39 33  owsort label-993
2b370 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2b380 54 20 2d 20 2b 20 53 55 4d 20 28 20 2d 20 63 6f  T - + SUM ( - co
2b390 6c 30 20 29 20 2b 20 33 37 20 46 52 4f 4d 20 74  l0 ) + 37 FROM t
2b3a0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2b3b0 2d 0d 0a 32 32 32 0d 0a 0d 0a 71 75 65 72 79 20  -..222....query 
2b3c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2b3d0 54 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20 2b  T ( - - col2 ) +
2b3e0 20 2d 20 63 6f 6c 31 20 2b 20 2d 20 2d 20 34 31   - col1 + - - 41
2b3f0 20 2d 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 2d 20   - - col0 * + - 
2b400 31 32 20 2a 20 2b 20 38 39 20 46 52 4f 4d 20 74  12 * + 89 FROM t
2b410 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2b420 2d 0d 0a 2d 34 39 31 31 35 0d 0a 2d 36 38 33 34  -..-49115..-6834
2b430 38 0d 0a 2d 38 30 30 36 38 0d 0a 0d 0a 71 75 65  8..-80068....que
2b440 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2b450 4c 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 31 20  LECT ALL + col1 
2b460 2d 20 2d 20 63 6f 6c 32 20 2d 20 2b 20 2b 20 63  - - col2 - + + c
2b470 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
2b480 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
2b490 2d 2d 2d 0d 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a  ---..14..47..5..
2b4a0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2b4b0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
2b4c0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2b4d0 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2b4e0 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45 43 54 20  bel-996..SELECT 
2b4f0 2d 20 34 36 20 41 53 20 63 6f 6c 30 2c 20 28 20  - 46 AS col0, ( 
2b500 2d 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  - - CAST( NULL A
2b510 53 20 53 49 47 4e 45 44 20 29 20 29 20 46 52 4f  S SIGNED ) ) FRO
2b520 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab0..----..-4
2b530 36 0d 0a 4e 55 4c 4c 0d 0a 2d 34 36 0d 0a 4e 55  6..NULL..-46..NU
2b540 4c 4c 0d 0a 2d 34 36 0d 0a 4e 55 4c 4c 0d 0a 0d  LL..-46..NULL...
2b550 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2b560 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2b570 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2b580 20 6c 61 62 65 6c 2d 39 39 36 0d 0a 53 45 4c 45   label-996..SELE
2b590 43 54 20 2d 20 34 36 20 41 53 20 63 6f 6c 30 2c  CT - 46 AS col0,
2b5a0 20 28 20 2d 20 2d 20 43 41 53 54 20 28 20 4e 55   ( - - CAST ( NU
2b5b0 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  LL AS INTEGER ) 
2b5c0 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  ) FROM tab0..---
2b5d0 2d 0d 0a 2d 34 36 0d 0a 4e 55 4c 4c 0d 0a 2d 34  -..-46..NULL..-4
2b5e0 36 0d 0a 4e 55 4c 4c 0d 0a 2d 34 36 0d 0a 4e 55  6..NULL..-46..NU
2b5f0 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  LL....skipif pos
2b600 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
2b610 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
2b620 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
2b630 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
2b640 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2b650 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2b660 2b 20 28 20 63 6f 6c 30 20 29 20 63 6f 6c 30 20  + ( col0 ) col0 
2b670 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
2b680 0a 34 36 0d 0a 36 34 0d 0a 37 35 0d 0a 0d 0a 6f  .46..64..75....o
2b690 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
2b6a0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
2b6b0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2b6c0 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  III rowsort labe
2b6d0 6c 2d 39 39 38 0d 0a 53 45 4c 45 43 54 20 2a 20  l-998..SELECT * 
2b6e0 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20  FROM tab0 WHERE 
2b6f0 4e 55 4c 4c 20 3e 3d 20 2b 20 2b 20 63 6f 6c 32  NULL >= + + col2
2b700 20 2b 20 43 41 53 54 28 20 2d 20 63 6f 6c 30 20   + CAST( - col0 
2b710 41 53 20 53 49 47 4e 45 44 20 29 20 2f 20 63 6f  AS SIGNED ) / co
2b720 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70  l0..----....skip
2b730 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2b740 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2b750 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62   III rowsort lab
2b760 65 6c 2d 39 39 38 0d 0a 53 45 4c 45 43 54 20 2a  el-998..SELECT *
2b770 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
2b780 20 4e 55 4c 4c 20 3e 3d 20 2b 20 2b 20 63 6f 6c   NULL >= + + col
2b790 32 20 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c  2 + CAST ( - col
2b7a0 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  0 AS INTEGER ) /
2b7b0 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
2b7c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2b7d0 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 32 20  SELECT + - col2 
2b7e0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2b7f0 30 20 57 48 45 52 45 20 2b 20 63 6f 6c 32 20 3c  0 WHERE + col2 <
2b800 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  > NULL..----....
2b810 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
2b820 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
2b830 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2b840 72 74 20 6c 61 62 65 6c 2d 31 30 30 30 0d 0a 53  rt label-1000..S
2b850 45 4c 45 43 54 20 41 4c 4c 20 35 38 20 2a 20 2d  ELECT ALL 58 * -
2b860 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
2b870 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d   col0 FROM tab1.
2b880 0a 2d 2d 2d 2d 0d 0a 31 37 34 0d 0a 0d 0a 73 6b  .----..174....sk
2b890 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2b8a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2b8b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2b8c0 65 6c 2d 31 30 30 30 0d 0a 53 45 4c 45 43 54 20  el-1000..SELECT 
2b8d0 41 4c 4c 20 35 38 20 2a 20 2d 20 2d 20 43 4f 55  ALL 58 * - - COU
2b8e0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30  NT ( * ) AS col0
2b8f0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2b900 0d 0a 31 37 34 0d 0a 0d 0a 71 75 65 72 79 20 49  ..174....query I
2b910 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
2b920 20 2b 20 2d 20 28 20 2b 20 63 6f 6c 30 20 29 20   + - ( + col0 ) 
2b930 2d 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  - - + col2 AS co
2b940 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20  l1 FROM tab2 AS 
2b950 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 37 0d  cor0..----..-17.
2b960 0a 2d 32 33 0d 0a 2d 32 34 0d 0a 0d 0a 6f 6e 6c  .-23..-24....onl
2b970 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2b980 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2b990 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
2b9a0 20 6c 61 62 65 6c 2d 31 30 30 32 0d 0a 53 45 4c   label-1002..SEL
2b9b0 45 43 54 20 41 4c 4c 20 2d 20 53 55 4d 28 20 44  ECT ALL - SUM( D
2b9c0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 29  ISTINCT - col1 )
2b9d0 20 41 53 20 63 6f 6c 31 2c 20 53 55 4d 28 20 2b   AS col1, SUM( +
2b9e0 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32 20   col2 ) AS col2 
2b9f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2ba00 30 0d 0a 2d 2d 2d 2d 0d 0a 31 39 35 0d 0a 31 32  0..----..195..12
2ba10 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
2ba20 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2ba30 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
2ba40 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 30 32 0d  sort label-1002.
2ba50 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 53 55  .SELECT ALL - SU
2ba60 4d 20 28 20 44 49 53 54 49 4e 43 54 20 2d 20 63  M ( DISTINCT - c
2ba70 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 2c 20 53  ol1 ) AS col1, S
2ba80 55 4d 20 28 20 2b 20 63 6f 6c 32 20 29 20 41 53  UM ( + col2 ) AS
2ba90 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2baa0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31  AS cor0..----..1
2bab0 39 35 0d 0a 31 32 31 0d 0a 0d 0a 71 75 65 72 79  95..121....query
2bac0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2bad0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 33 20  CT DISTINCT + 3 
2bae0 2d 20 2b 20 28 20 2b 20 37 30 20 29 20 41 53 20  - + ( + 70 ) AS 
2baf0 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20 41  col1 FROM tab1 A
2bb00 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  S cor0..----..-6
2bb10 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  7....query II ro
2bb20 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
2bb30 53 54 49 4e 43 54 20 28 20 2b 20 63 6f 6c 32 20  STINCT ( + col2 
2bb40 29 2c 20 63 6f 6c 32 20 41 53 20 63 6f 6c 32 20  ), col2 AS col2 
2bb50 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
2bb60 30 0d 0a 2d 2d 2d 2d 0d 0a 35 39 0d 0a 35 39 0d  0..----..59..59.
2bb70 0a 36 38 0d 0a 36 38 0d 0a 39 36 0d 0a 39 36 0d  .68..68..96..96.
2bb80 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2bb90 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  rt..SELECT DISTI
2bba0 4e 43 54 20 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b  NCT - - col1 * +
2bbb0 20 2d 20 35 37 20 46 52 4f 4d 20 74 61 62 30 20   - 57 FROM tab0 
2bbc0 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2bbd0 31 31 39 37 0d 0a 2d 34 36 31 37 0d 0a 2d 35 37  1197..-4617..-57
2bbe0 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
2bbf0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2bc00 4c 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  L * FROM tab0 AS
2bc10 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2bc20 35 30 20 42 45 54 57 45 45 4e 20 63 6f 6c 30 20  50 BETWEEN col0 
2bc30 2a 20 36 39 20 2b 20 2d 20 63 6f 6c 31 20 2a 20  * 69 + - col1 * 
2bc40 2d 20 63 6f 6c 30 20 41 4e 44 20 2d 20 2b 20 63  - col0 AND - + c
2bc50 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c  ol2..----..9 val
2bc60 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63  ues hashing to c
2bc70 34 62 34 32 37 36 35 64 66 66 39 34 65 61 61 61  4b42765dff94eaaa
2bc80 34 36 30 34 30 65 35 33 37 66 62 34 33 62 37 0d  46040e537fb43b7.
2bc90 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2bca0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2bcb0 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2bcc0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
2bcd0 6c 61 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45  label-1007..SELE
2bce0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41  CT * FROM tab1 A
2bcf0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
2bd00 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
2bd10 49 47 4e 45 44 20 29 20 2a 20 63 6f 6c 30 20 2a  IGNED ) * col0 *
2bd20 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 42   - col1 + col1 B
2bd30 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44 20  ETWEEN NULL AND 
2bd40 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b  col0..----....sk
2bd50 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2bd60 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2bd70 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c  ry III rowsort l
2bd80 61 62 65 6c 2d 31 30 30 37 0d 0a 53 45 4c 45 43  abel-1007..SELEC
2bd90 54 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53  T * FROM tab1 AS
2bda0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2bdb0 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49  CAST ( NULL AS I
2bdc0 4e 54 45 47 45 52 20 29 20 2a 20 63 6f 6c 30 20  NTEGER ) * col0 
2bdd0 2a 20 2d 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20  * - col1 + col1 
2bde0 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e 44  BETWEEN NULL AND
2bdf0 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71   col0..----....q
2be00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
2be10 53 45 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20  SELECT ALL col1 
2be20 2a 20 2b 20 28 20 2b 20 63 6f 6c 30 20 29 20 2d  * + ( + col0 ) -
2be30 20 39 35 20 46 52 4f 4d 20 74 61 62 31 20 41 53   95 FROM tab1 AS
2be40 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 30   cor0..----..330
2be50 0d 0a 34 31 38 32 0d 0a 36 31 39 0d 0a 0d 0a 6f  ..4182..619....o
2be60 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2be70 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2be80 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
2be90 72 74 20 6c 61 62 65 6c 2d 31 30 30 39 0d 0a 53  rt label-1009..S
2bea0 45 4c 45 43 54 20 2d 20 2d 20 33 34 20 2a 20 2b  ELECT - - 34 * +
2beb0 20 2b 20 38 35 2c 20 4d 41 58 28 20 44 49 53 54   + 85, MAX( DIST
2bec0 49 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20 2b 20  INCT + col1 ) + 
2bed0 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63 6f  COUNT( * ) AS co
2bee0 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
2bef0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 38 39 30  cor0..----..2890
2bf00 0d 0a 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ..84....skipif m
2bf10 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
2bf20 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20  tible..query II 
2bf30 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2bf40 30 39 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 33  09..SELECT - - 3
2bf50 34 20 2a 20 2b 20 2b 20 38 35 2c 20 4d 41 58 20  4 * + + 85, MAX 
2bf60 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c  ( DISTINCT + col
2bf70 31 20 29 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  1 ) + COUNT ( * 
2bf80 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  ) AS col2 FROM t
2bf90 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2bfa0 2d 0d 0a 32 38 39 30 0d 0a 38 34 0d 0a 0d 0a 71  -..2890..84....q
2bfb0 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
2bfc0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2bfd0 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53  T * FROM tab0 AS
2bfe0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
2bff0 63 6f 6c 30 20 2b 20 2b 20 2b 20 63 6f 6c 31 20  col0 + + + col1 
2c000 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39  IS NULL..----..9
2c010 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20   values hashing 
2c020 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39 34  to c4b42765dff94
2c030 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62 34  eaaa46040e537fb4
2c040 33 62 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  3b7....query I r
2c050 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
2c060 20 28 20 2b 20 34 20 29 20 46 52 4f 4d 20 74 61   ( + 4 ) FROM ta
2c070 62 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45  b2 AS cor0 WHERE
2c080 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54 20 49 4e   NOT NULL NOT IN
2c090 20 28 20 2b 20 36 33 2c 20 38 39 2c 20 2d 20 63   ( + 63, 89, - c
2c0a0 6f 6c 30 20 2a 20 2d 20 63 6f 6c 32 20 2a 20 2d  ol0 * - col2 * -
2c0b0 20 2b 20 63 6f 6c 32 20 29 0d 0a 2d 2d 2d 2d 0d   + col2 )..----.
2c0c0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2c0d0 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
2c0e0 2a 20 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c  * + col2 + - col
2c0f0 32 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  2 AS col2 FROM t
2c100 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2c110 2d 0d 0a 30 0d 0a 32 30 30 0d 0a 33 37 36 30 0d  -..0..200..3760.
2c120 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73  ...query II rows
2c130 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 32 31  ort..SELECT + 21
2c140 2c 20 2b 20 63 6f 6c 30 20 2a 20 2b 20 32 34 20  , + col0 * + 24 
2c150 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
2c160 30 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  0 cor0 WHERE NOT
2c170 20 28 20 4e 55 4c 4c 20 29 20 49 53 20 4e 4f 54   ( NULL ) IS NOT
2c180 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32 31 0d   NULL..----..21.
2c190 0a 32 30 38 38 0d 0a 32 31 0d 0a 32 33 32 38 0d  .2088..21..2328.
2c1a0 0a 32 31 0d 0a 33 36 30 0d 0a 0d 0a 6f 6e 6c 79  .21..360....only
2c1b0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2c1c0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2c1d0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
2c1e0 6c 61 62 65 6c 2d 31 30 31 34 0d 0a 53 45 4c 45  label-1014..SELE
2c1f0 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2d 20 43  CT ALL + ( - - C
2c200 4f 55 4e 54 28 20 2a 20 29 20 29 2c 20 2d 20 39  OUNT( * ) ), - 9
2c210 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  1 AS col2 FROM t
2c220 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
2c230 33 0d 0a 2d 39 31 0d 0a 0d 0a 73 6b 69 70 69 66  3..-91....skipif
2c240 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2c250 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2c260 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2c270 31 30 31 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1014..SELECT ALL
2c280 20 2b 20 28 20 2d 20 2d 20 43 4f 55 4e 54 20 28   + ( - - COUNT (
2c290 20 2a 20 29 20 29 2c 20 2d 20 39 31 20 41 53 20   * ) ), - 91 AS 
2c2a0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
2c2b0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 2d 39  or0..----..3..-9
2c2c0 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  1....query I row
2c2d0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2c2e0 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 38 30 20 2a   - col2 * + 80 *
2c2f0 20 2b 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f 6c   + - col0 AS col
2c300 31 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  1 FROM tab1 WHER
2c310 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 3d 20 2d 20  E NOT NULL >= - 
2c320 63 6f 6c 32 20 2a 20 2d 20 63 6f 6c 30 0d 0a 2d  col2 * - col0..-
2c330 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20  ---....query II 
2c340 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c350 41 4c 4c 20 63 6f 6c 30 2c 20 2d 20 34 32 20 46  ALL col0, - 42 F
2c360 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab0..----..
2c370 31 35 0d 0a 2d 34 32 0d 0a 38 37 0d 0a 2d 34 32  15..-42..87..-42
2c380 0d 0a 39 37 0d 0a 2d 34 32 0d 0a 0d 0a 71 75 65  ..97..-42....que
2c390 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2c3a0 4c 45 43 54 20 63 6f 6c 30 20 2d 20 2d 20 63 6f  LECT col0 - - co
2c3b0 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45  l0 FROM tab2 WHE
2c3c0 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 32 20 49 53  RE NOT + col2 IS
2c3d0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 32 38   NULL..----..128
2c3e0 0d 0a 31 35 30 0d 0a 39 32 0d 0a 0d 0a 6f 6e 6c  ..150..92....onl
2c3f0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2c400 20 73 79 6e 74 61 78 3a 20 61 67 67 72 65 67 61   syntax: aggrega
2c410 74 65 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  te syntax: SIGNE
2c420 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
2c430 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2c440 31 30 31 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  1018..SELECT DIS
2c450 54 49 4e 43 54 20 43 41 53 54 28 20 53 55 4d 28  TINCT CAST( SUM(
2c460 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 53 49 47   - col0 ) AS SIG
2c470 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52  NED ) AS col1 FR
2c480 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
2c490 31 38 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  185....skipif my
2c4a0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2c4b0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2c4c0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 31 38  wsort label-1018
2c4d0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2c4e0 54 20 43 41 53 54 20 28 20 53 55 4d 20 28 20 2d  T CAST ( SUM ( -
2c4f0 20 63 6f 6c 30 20 29 20 41 53 20 49 4e 54 45 47   col0 ) AS INTEG
2c500 45 52 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  ER ) AS col1 FRO
2c510 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab2..----..-1
2c520 38 35 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  85....query III 
2c530 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2c540 2a 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52  * FROM tab1 WHER
2c550 45 20 4e 4f 54 20 4e 55 4c 4c 20 3e 20 2b 20 2b  E NOT NULL > + +
2c560 20 28 20 2d 20 63 6f 6c 31 20 29 20 2b 20 63 6f   ( - col1 ) + co
2c570 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l1..----....only
2c580 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
2c590 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
2c5a0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2c5b0 61 62 65 6c 2d 31 30 32 30 0d 0a 53 45 4c 45 43  abel-1020..SELEC
2c5c0 54 20 2b 20 4d 49 4e 28 20 33 39 20 29 20 41 53  T + MIN( 39 ) AS
2c5d0 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d   col1 FROM tab1.
2c5e0 0a 2d 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 73 6b 69  .----..39....ski
2c5f0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2c600 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2c610 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2c620 6c 2d 31 30 32 30 0d 0a 53 45 4c 45 43 54 20 2b  l-1020..SELECT +
2c630 20 4d 49 4e 20 28 20 33 39 20 29 20 41 53 20 63   MIN ( 39 ) AS c
2c640 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
2c650 2d 2d 2d 0d 0a 33 39 0d 0a 0d 0a 6f 6e 6c 79 69  ---..39....onlyi
2c660 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
2c670 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
2c680 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2c690 62 65 6c 2d 31 30 32 31 0d 0a 53 45 4c 45 43 54  bel-1021..SELECT
2c6a0 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53 20 63   COUNT( * ) AS c
2c6b0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57 48  ol0 FROM tab2 WH
2c6c0 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 4e 4f 54  ERE NOT NULL NOT
2c6d0 20 42 45 54 57 45 45 4e 20 2b 20 63 6f 6c 31 20   BETWEEN + col1 
2c6e0 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  AND NULL..----..
2c6f0 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
2c700 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2c710 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
2c720 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 31 0d 0a  ort label-1021..
2c730 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
2c740 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2c750 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 4e  tab2 WHERE NOT N
2c760 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
2c770 2b 20 63 6f 6c 31 20 41 4e 44 20 4e 55 4c 4c 0d  + col1 AND NULL.
2c780 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
2c790 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2c7a0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2c7b0 30 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  0 AS cor0 WHERE 
2c7c0 4e 4f 54 20 2d 20 39 30 20 2f 20 2b 20 63 6f 6c  NOT - 90 / + col
2c7d0 31 20 2a 20 2d 20 2b 20 63 6f 6c 31 20 2a 20 63  1 * - + col1 * c
2c7e0 6f 6c 31 20 3c 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 <= NULL..---
2c7f0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2c800 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2c810 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2c820 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2c830 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  23..SELECT ALL +
2c840 20 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   + COUNT( * ) AS
2c850 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20   col2 FROM tab2 
2c860 63 6f 72 30 20 57 48 45 52 45 20 32 37 20 2b 20  cor0 WHERE 27 + 
2c870 2b 20 38 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  + 89 IS NULL..--
2c880 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  --..0....skipif 
2c890 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2c8a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2c8b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2c8c0 32 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  23..SELECT ALL +
2c8d0 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41   + COUNT ( * ) A
2c8e0 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32  S col2 FROM tab2
2c8f0 20 63 6f 72 30 20 57 48 45 52 45 20 32 37 20 2b   cor0 WHERE 27 +
2c900 20 2b 20 38 39 20 49 53 20 4e 55 4c 4c 0d 0a 2d   + 89 IS NULL..-
2c910 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72 79 20  ---..0....query 
2c920 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2c930 43 54 20 41 4c 4c 20 63 6f 6c 31 2c 20 2d 20 63  CT ALL col1, - c
2c940 6f 6c 31 20 2b 20 2d 20 33 35 20 2b 20 2b 20 2b  ol1 + - 35 + + +
2c950 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20   col2 FROM tab1 
2c960 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 0d 0a  cor0..----..14..
2c970 34 37 0d 0a 34 37 0d 0a 2d 31 34 0d 0a 35 0d 0a  47..47..-14..5..
2c980 31 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  19....query I ro
2c990 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c  wsort..SELECT AL
2c9a0 4c 20 2b 20 2d 20 34 35 20 41 53 20 63 6f 6c 31  L + - 45 AS col1
2c9b0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2c9c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 35 0d 0a 2d  r0..----..-45..-
2c9d0 34 35 0d 0a 2d 34 35 0d 0a 0d 0a 71 75 65 72 79  45..-45....query
2c9e0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2c9f0 43 54 20 2b 20 2b 20 34 37 20 41 53 20 63 6f 6c  CT + + 47 AS col
2ca00 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30  2 FROM tab2 cor0
2ca10 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
2ca20 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   cor1..----..9 v
2ca30 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
2ca40 20 34 66 65 31 39 32 66 32 39 36 37 39 31 65 31   4fe192f296791e1
2ca50 65 34 30 65 61 30 30 61 36 38 61 61 38 64 61 62  e40ea00a68aa8dab
2ca60 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  7....onlyif mysq
2ca70 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2ca80 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2ca90 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2caa0 32 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53  27..SELECT ALL S
2cab0 55 4d 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29  UM( ALL + col2 )
2cac0 20 2b 20 4d 41 58 28 20 2d 20 63 6f 6c 30 20 29   + MAX( - col0 )
2cad0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2cae0 62 30 20 57 48 45 52 45 20 2b 20 2d 20 63 6f 6c  b0 WHERE + - col
2caf0 30 20 2b 20 2d 20 63 6f 6c 32 20 3e 20 2b 20 2b  0 + - col2 > + +
2cb00 20 35 39 20 2a 20 28 20 2b 20 2b 20 63 6f 6c 30   59 * ( + + col0
2cb10 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a   )..----..NULL..
2cb20 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
2cb30 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
2cb40 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2cb50 20 6c 61 62 65 6c 2d 31 30 32 37 0d 0a 53 45 4c   label-1027..SEL
2cb60 45 43 54 20 41 4c 4c 20 53 55 4d 20 28 20 41 4c  ECT ALL SUM ( AL
2cb70 4c 20 2b 20 63 6f 6c 32 20 29 20 2b 20 4d 41 58  L + col2 ) + MAX
2cb80 20 28 20 2d 20 63 6f 6c 30 20 29 20 41 53 20 63   ( - col0 ) AS c
2cb90 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48  ol1 FROM tab0 WH
2cba0 45 52 45 20 2b 20 2d 20 63 6f 6c 30 20 2b 20 2d  ERE + - col0 + -
2cbb0 20 63 6f 6c 32 20 3e 20 2b 20 2b 20 35 39 20 2a   col2 > + + 59 *
2cbc0 20 28 20 2b 20 2b 20 63 6f 6c 30 20 29 0d 0a 2d   ( + + col0 )..-
2cbd0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
2cbe0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2cbf0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2cc00 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2cc10 6c 61 62 65 6c 2d 31 30 32 38 0d 0a 53 45 4c 45  label-1028..SELE
2cc20 43 54 20 41 4c 4c 20 2b 20 4d 49 4e 28 20 2b 20  CT ALL + MIN( + 
2cc30 63 6f 6c 31 20 29 20 2a 20 43 4f 55 4e 54 28 20  col1 ) * COUNT( 
2cc40 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  * ) FROM tab2 AS
2cc50 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f   cor0 WHERE + co
2cc60 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d  l2 NOT BETWEEN -
2cc70 20 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a   col0 AND NULL..
2cc80 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b  ----..NULL....sk
2cc90 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2cca0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2ccb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2ccc0 65 6c 2d 31 30 32 38 0d 0a 53 45 4c 45 43 54 20  el-1028..SELECT 
2ccd0 41 4c 4c 20 2b 20 4d 49 4e 20 28 20 2b 20 63 6f  ALL + MIN ( + co
2cce0 6c 31 20 29 20 2a 20 43 4f 55 4e 54 20 28 20 2a  l1 ) * COUNT ( *
2ccf0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
2cd00 63 6f 72 30 20 57 48 45 52 45 20 2b 20 63 6f 6c  cor0 WHERE + col
2cd10 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2d 20  2 NOT BETWEEN - 
2cd20 63 6f 6c 30 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d  col0 AND NULL..-
2cd30 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c  ---..NULL....onl
2cd40 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
2cd50 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
2cd60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2cd70 6c 61 62 65 6c 2d 31 30 32 39 0d 0a 53 45 4c 45  label-1029..SELE
2cd80 43 54 20 44 49 53 54 49 4e 43 54 20 31 20 2b 20  CT DISTINCT 1 + 
2cd90 2d 20 2b 20 4d 41 58 28 20 2d 20 37 34 20 29 20  - + MAX( - 74 ) 
2cda0 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2cdb0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
2cdc0 0a 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .75....skipif my
2cdd0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2cde0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2cdf0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 32 39  wsort label-1029
2ce00 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2ce10 54 20 31 20 2b 20 2d 20 2b 20 4d 41 58 20 28 20  T 1 + - + MAX ( 
2ce20 2d 20 37 34 20 29 20 41 53 20 63 6f 6c 31 20 46  - 74 ) AS col1 F
2ce30 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
2ce40 0d 0a 2d 2d 2d 2d 0d 0a 37 35 0d 0a 0d 0a 71 75  ..----..75....qu
2ce50 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2ce60 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2ce70 61 62 32 20 63 6f 72 30 20 57 48 45 52 45 20 4e  ab2 cor0 WHERE N
2ce80 55 4c 4c 20 3e 3d 20 63 6f 6c 30 20 2b 20 2d 20  ULL >= col0 + - 
2ce90 2b 20 33 35 20 2a 20 2b 20 32 35 0d 0a 2d 2d 2d  + 35 * + 25..---
2cea0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2ceb0 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2cec0 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2ced0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2cee0 6c 61 62 65 6c 2d 31 30 33 31 0d 0a 53 45 4c 45  label-1031..SELE
2cef0 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20  CT ALL + col0 + 
2cf00 2b 20 2b 20 63 6f 6c 30 20 44 49 56 20 63 6f 6c  + + col0 DIV col
2cf10 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
2cf20 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
2cf30 2d 0d 0a 34 38 0d 0a 36 35 0d 0a 37 36 0d 0a 0d  -..48..65..76...
2cf40 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2cf50 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2cf60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2cf70 6c 61 62 65 6c 2d 31 30 33 31 0d 0a 53 45 4c 45  label-1031..SELE
2cf80 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 2b 20  CT ALL + col0 + 
2cf90 2b 20 2b 20 63 6f 6c 30 20 2f 20 63 6f 6c 32 20  + + col0 / col2 
2cfa0 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62  AS col0 FROM tab
2cfb0 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2cfc0 0a 34 38 0d 0a 36 35 0d 0a 37 36 0d 0a 0d 0a 71  .48..65..76....q
2cfd0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
2cfe0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2b 20  .SELECT ALL - + 
2cff0 63 6f 6c 32 20 2d 20 2d 20 63 6f 6c 32 2c 20 2b  col2 - - col2, +
2d000 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31 20 46 52   col2 AS col1 FR
2d010 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
2d020 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 31 30 0d 0a 30 0d  .----..0..10..0.
2d030 0a 34 37 0d 0a 30 0d 0a 39 39 0d 0a 0d 0a 71 75  .47..0..99....qu
2d040 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
2d050 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 63  ELECT DISTINCT c
2d060 6f 6c 32 20 2a 20 2b 20 2d 20 28 20 38 34 20 29  ol2 * + - ( 84 )
2d070 20 2a 20 2b 20 2d 20 32 35 20 2b 20 2b 20 63 6f   * + - 25 + + co
2d080 6c 30 20 2a 20 63 6f 6c 32 20 2a 20 63 6f 6c 30  l0 * col2 * col0
2d090 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c   - + col2 AS col
2d0a0 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
2d0b0 0d 0a 2d 2d 2d 2d 0d 0a 31 30 39 32 32 38 0d 0a  ..----..109228..
2d0c0 31 31 33 39 32 39 32 0d 0a 39 36 36 38 30 0d 0a  1139292..96680..
2d0d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d0e0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32  t..SELECT + col2
2d0f0 20 2a 20 2d 20 63 6f 6c 31 20 2d 20 2b 20 2b 20   * - col1 - + + 
2d100 39 31 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  91 FROM tab0 AS 
2d110 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 39 30  cor0..----..-190
2d120 0d 0a 2d 33 30 31 0d 0a 2d 33 38 39 38 0d 0a 0d  ..-301..-3898...
2d130 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2d140 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 63  ..SELECT ALL + c
2d150 6f 6c 30 20 2d 20 2d 20 2b 20 63 6f 6c 30 20 2a  ol0 - - + col0 *
2d160 20 2b 20 2b 20 63 6f 6c 31 20 2b 20 2b 20 63 6f   + + col1 + + co
2d170 6c 31 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  l1 AS col0 FROM 
2d180 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 34 34 33  tab2..----..2443
2d190 0d 0a 35 30 36 39 0d 0a 35 31 36 37 0d 0a 0d 0a  ..5069..5167....
2d1a0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
2d1b0 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
2d1c0 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
2d1d0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
2d1e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2d1f0 65 6c 2d 31 30 33 36 0d 0a 53 45 4c 45 43 54 20  el-1036..SELECT 
2d200 41 4c 4c 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29  ALL - COUNT( * )
2d210 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 2d 20 28   * + - CAST( - (
2d220 20 2b 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20   + - COUNT( * ) 
2d230 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41 53  ) AS SIGNED ) AS
2d240 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
2d250 57 48 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f  WHERE NULL IS NO
2d260 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  T NULL..----..0.
2d270 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2d280 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2d290 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2d2a0 74 20 6c 61 62 65 6c 2d 31 30 33 36 0d 0a 53 45  t label-1036..SE
2d2b0 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55 4e 54  LECT ALL - COUNT
2d2c0 20 28 20 2a 20 29 20 2a 20 2b 20 2d 20 43 41 53   ( * ) * + - CAS
2d2d0 54 20 28 20 2d 20 28 20 2b 20 2d 20 43 4f 55 4e  T ( - ( + - COUN
2d2e0 54 20 28 20 2a 20 29 20 29 20 41 53 20 49 4e 54  T ( * ) ) AS INT
2d2f0 45 47 45 52 20 29 20 41 53 20 63 6f 6c 30 20 46  EGER ) AS col0 F
2d300 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
2d310 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  ULL IS NOT NULL.
2d320 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65 72  .----..0....quer
2d330 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
2d340 45 43 54 20 2b 20 63 6f 6c 31 20 2a 20 28 20 32  ECT + col1 * ( 2
2d350 35 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  5 ) FROM tab0..-
2d360 2d 2d 2d 0d 0a 32 30 32 35 0d 0a 32 35 0d 0a 35  ---..2025..25..5
2d370 32 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  25....onlyif mys
2d380 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
2d390 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
2d3a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2d3b0 30 33 38 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  038..SELECT DIST
2d3c0 49 4e 43 54 20 43 4f 55 4e 54 28 20 41 4c 4c 20  INCT COUNT( ALL 
2d3d0 2b 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c 32  + col2 ) AS col2
2d3e0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
2d3f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73  r0..----..3....s
2d400 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2d410 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2d420 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2d430 62 65 6c 2d 31 30 33 38 0d 0a 53 45 4c 45 43 54  bel-1038..SELECT
2d440 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e 54 20   DISTINCT COUNT 
2d450 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 29 20 41  ( ALL + col2 ) A
2d460 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2d470 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
2d480 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
2d490 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a  owsort..SELECT *
2d4a0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2d4b0 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 37  r0 WHERE NOT + 7
2d4c0 36 20 2b 20 2b 20 63 6f 6c 32 20 49 53 20 4e 55  6 + + col2 IS NU
2d4d0 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75  LL..----..9 valu
2d4e0 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20 37 35  es hashing to 75
2d4f0 63 39 39 38 61 61 35 33 61 63 38 33 32 31 38 63  c998aa53ac83218c
2d500 62 66 32 66 65 62 39 36 32 64 30 61 34 39 0d 0a  bf2feb962d0a49..
2d510 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2d520 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2d530 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
2d540 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 30 0d  sort label-1040.
2d550 0a 53 45 4c 45 43 54 20 2b 20 2d 20 53 55 4d 28  .SELECT + - SUM(
2d560 20 37 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52   71 ) AS col2 FR
2d570 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d  OM tab1 cor0..--
2d580 2d 2d 0d 0a 2d 32 31 33 0d 0a 0d 0a 73 6b 69 70  --..-213....skip
2d590 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
2d5a0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
2d5b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
2d5c0 2d 31 30 34 30 0d 0a 53 45 4c 45 43 54 20 2b 20  -1040..SELECT + 
2d5d0 2d 20 53 55 4d 20 28 20 37 31 20 29 20 41 53 20  - SUM ( 71 ) AS 
2d5e0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 63  col2 FROM tab1 c
2d5f0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 31 33 0d  or0..----..-213.
2d600 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2d610 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 37 34 20  rt..SELECT + 74 
2d620 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2d630 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 37 34  0 cor0..----..74
2d640 0d 0a 37 34 0d 0a 37 34 0d 0a 0d 0a 71 75 65 72  ..74..74....quer
2d650 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53  y III rowsort..S
2d660 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
2d670 31 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  1 AS cor0 WHERE 
2d680 4e 4f 54 20 63 6f 6c 31 20 2a 20 2b 20 28 20 63  NOT col1 * + ( c
2d690 6f 6c 32 20 29 20 3e 20 2b 20 32 34 20 2b 20 2b  ol2 ) > + 24 + +
2d6a0 20 39 37 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c   97..----....onl
2d6b0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2d6c0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2d6d0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49  type: ..query II
2d6e0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2d6f0 30 34 33 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  043..SELECT - co
2d700 6c 32 2c 20 2b 20 28 20 2b 20 2d 20 34 31 20 29  l2, + ( + - 41 )
2d710 20 2a 20 43 41 53 54 28 20 2b 20 28 20 2d 20 38   * CAST( + ( - 8
2d720 37 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20  7 ) AS SIGNED ) 
2d730 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
2d740 2d 2d 2d 2d 0d 0a 2d 31 30 0d 0a 33 35 36 37 0d  ----..-10..3567.
2d750 0a 2d 34 37 0d 0a 33 35 36 37 0d 0a 2d 39 39 0d  .-47..3567..-99.
2d760 0a 33 35 36 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  .3567....skipif 
2d770 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2d780 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
2d790 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2d7a0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2d7b0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2d7c0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2d7d0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2d7e0 74 20 6c 61 62 65 6c 2d 31 30 34 33 0d 0a 53 45  t label-1043..SE
2d7f0 4c 45 43 54 20 2d 20 63 6f 6c 32 2c 20 2b 20 28  LECT - col2, + (
2d800 20 2b 20 2d 20 34 31 20 29 20 2a 20 43 41 53 54   + - 41 ) * CAST
2d810 20 28 20 2b 20 28 20 2d 20 38 37 20 29 20 41 53   ( + ( - 87 ) AS
2d820 20 49 4e 54 45 47 45 52 20 29 20 63 6f 6c 30 20   INTEGER ) col0 
2d830 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
2d840 0a 2d 31 30 0d 0a 33 35 36 37 0d 0a 2d 34 37 0d  .-10..3567..-47.
2d850 0a 33 35 36 37 0d 0a 2d 39 39 0d 0a 33 35 36 37  .3567..-99..3567
2d860 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2d870 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2d880 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20  tax: ..query II 
2d890 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2d8a0 34 34 0d 0a 53 45 4c 45 43 54 20 36 30 20 41 53  44..SELECT 60 AS
2d8b0 20 63 6f 6c 31 2c 20 2d 20 43 4f 55 4e 54 28 20   col1, - COUNT( 
2d8c0 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
2d8d0 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d   tab1..----..60.
2d8e0 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .-3....skipif my
2d8f0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2d900 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72  ible..query II r
2d910 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34  owsort label-104
2d920 34 0d 0a 53 45 4c 45 43 54 20 36 30 20 41 53 20  4..SELECT 60 AS 
2d930 63 6f 6c 31 2c 20 2d 20 43 4f 55 4e 54 20 28 20  col1, - COUNT ( 
2d940 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  * ) AS col0 FROM
2d950 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 30 0d   tab1..----..60.
2d960 0a 2d 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .-3....onlyif my
2d970 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
2d980 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
2d990 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2d9a0 31 30 34 35 0d 0a 53 45 4c 45 43 54 20 44 49 53  1045..SELECT DIS
2d9b0 54 49 4e 43 54 20 2d 20 4d 41 58 28 20 2d 20 2b  TINCT - MAX( - +
2d9c0 20 36 34 20 29 20 46 52 4f 4d 20 74 61 62 31 0d   64 ) FROM tab1.
2d9d0 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a 73 6b 69  .----..64....ski
2d9e0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2d9f0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2da00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2da10 6c 2d 31 30 34 35 0d 0a 53 45 4c 45 43 54 20 44  l-1045..SELECT D
2da20 49 53 54 49 4e 43 54 20 2d 20 4d 41 58 20 28 20  ISTINCT - MAX ( 
2da30 2d 20 2b 20 36 34 20 29 20 46 52 4f 4d 20 74 61  - + 64 ) FROM ta
2da40 62 31 0d 0a 2d 2d 2d 2d 0d 0a 36 34 0d 0a 0d 0a  b1..----..64....
2da50 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2da60 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2da70 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 63  CT * FROM tab0 c
2da80 6f 72 30 20 57 48 45 52 45 20 2d 20 33 35 20 49  or0 WHERE - 35 I
2da90 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  S NULL..----....
2daa0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2dab0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2dac0 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 38 30 20 2b   col1 * + + 80 +
2dad0 20 2b 20 28 20 63 6f 6c 30 20 29 20 46 52 4f 4d   + ( col0 ) FROM
2dae0 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab2 cor0..----
2daf0 0d 0a 34 31 32 36 0d 0a 35 34 33 35 0d 0a 36 32  ..4126..5435..62
2db00 32 34 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  24....onlyif mys
2db10 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2db20 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2db30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2db40 20 6c 61 62 65 6c 2d 31 30 34 38 0d 0a 53 45 4c   label-1048..SEL
2db50 45 43 54 20 33 20 2a 20 2d 20 2b 20 43 41 53 54  ECT 3 * - + CAST
2db60 28 20 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e  ( + col2 AS SIGN
2db70 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20 41  ED ) FROM tab0 A
2db80 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2db90 34 31 0d 0a 2d 32 39 37 0d 0a 2d 33 30 0d 0a 0d  41..-297..-30...
2dba0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2dbb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2dbc0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2dbd0 6c 61 62 65 6c 2d 31 30 34 38 0d 0a 53 45 4c 45  label-1048..SELE
2dbe0 43 54 20 33 20 2a 20 2d 20 2b 20 43 41 53 54 20  CT 3 * - + CAST 
2dbf0 28 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e 54 45  ( + col2 AS INTE
2dc00 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20  GER ) FROM tab0 
2dc10 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
2dc20 31 34 31 0d 0a 2d 32 39 37 0d 0a 2d 33 30 0d 0a  141..-297..-30..
2dc30 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
2dc40 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
2dc50 78 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f  x: ..query II ro
2dc60 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 34 39  wsort label-1049
2dc70 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54  ..SELECT + COUNT
2dc80 28 20 2a 20 29 20 63 6f 6c 31 2c 20 2b 20 36 30  ( * ) col1, + 60
2dc90 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2dca0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 36 30 0d  r0..----..3..60.
2dcb0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
2dcc0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
2dcd0 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72 65  ..skipif postgre
2dce0 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51 4c  sql # PostgreSQL
2dcf0 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68 65   requires AS whe
2dd00 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75  n renaming outpu
2dd10 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79  t columns..query
2dd20 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
2dd30 6c 2d 31 30 34 39 0d 0a 53 45 4c 45 43 54 20 2b  l-1049..SELECT +
2dd40 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 63 6f 6c   COUNT ( * ) col
2dd50 31 2c 20 2b 20 36 30 20 46 52 4f 4d 20 74 61 62  1, + 60 FROM tab
2dd60 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2dd70 0a 33 0d 0a 36 30 0d 0a 0d 0a 71 75 65 72 79 20  .3..60....query 
2dd80 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
2dd90 54 20 2b 20 2b 20 33 20 2a 20 2b 20 36 20 46 52  T + + 3 * + 6 FR
2dda0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2ddb0 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 31 38 0d 0a 31  .----..18..18..1
2ddc0 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  8....onlyif mysq
2ddd0 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
2dde0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
2ddf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2de00 6c 61 62 65 6c 2d 31 30 35 31 0d 0a 53 45 4c 45  label-1051..SELE
2de10 43 54 20 2d 20 43 41 53 54 28 20 4e 55 4c 4c 20  CT - CAST( NULL 
2de20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 28 20  AS SIGNED ) + ( 
2de30 2d 20 31 37 20 29 20 2d 20 2d 20 2b 20 43 41 53  - 17 ) - - + CAS
2de40 54 28 20 63 6f 6c 31 20 41 53 20 53 49 47 4e 45  T( col1 AS SIGNE
2de50 44 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  D ) AS col1 FROM
2de60 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
2de70 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ---..NULL..NULL.
2de80 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
2de90 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2dea0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2deb0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2dec0 35 31 0d 0a 53 45 4c 45 43 54 20 2d 20 43 41 53  51..SELECT - CAS
2ded0 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
2dee0 47 45 52 20 29 20 2b 20 28 20 2d 20 31 37 20 29  GER ) + ( - 17 )
2def0 20 2d 20 2d 20 2b 20 43 41 53 54 20 28 20 63 6f   - - + CAST ( co
2df00 6c 31 20 41 53 20 49 4e 54 45 47 45 52 20 29 20  l1 AS INTEGER ) 
2df10 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
2df20 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2df30 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
2df40 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  L....query I row
2df50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 39  sort..SELECT + 9
2df60 34 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61  4 + col0 FROM ta
2df70 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 34 35 0d 0a 31  b1..----..145..1
2df80 37 39 0d 0a 31 38 35 0d 0a 0d 0a 71 75 65 72 79  79..185....query
2df90 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
2dfa0 43 54 20 2d 20 37 33 20 2b 20 2d 20 63 6f 6c 31  CT - 73 + - col1
2dfb0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2dfc0 0d 0a 2d 31 32 30 0d 0a 2d 37 38 0d 0a 2d 38 37  ..-120..-78..-87
2dfd0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2dfe0 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2dff0 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2e000 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35  owsort label-105
2e010 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20  4..SELECT ALL + 
2e020 43 4f 55 4e 54 28 20 2d 20 63 6f 6c 31 20 29 20  COUNT( - col1 ) 
2e030 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
2e040 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  .3....skipif mys
2e050 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e060 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2e070 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 34 0d  sort label-1054.
2e080 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 43 4f  .SELECT ALL + CO
2e090 55 4e 54 20 28 20 2d 20 63 6f 6c 31 20 29 20 46  UNT ( - col1 ) F
2e0a0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
2e0b0 33 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  3....query III r
2e0c0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
2e0d0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
2e0e0 61 62 31 20 57 48 45 52 45 20 28 20 4e 55 4c 4c  ab1 WHERE ( NULL
2e0f0 20 3e 3d 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d 2d   >= NULL )..----
2e100 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2e110 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2e120 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2e130 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2e140 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e150 20 6c 61 62 65 6c 2d 31 30 35 36 0d 0a 53 45 4c   label-1056..SEL
2e160 45 43 54 20 41 4c 4c 20 2d 20 2d 20 43 41 53 54  ECT ALL - - CAST
2e170 28 20 33 30 20 41 53 20 53 49 47 4e 45 44 20 29  ( 30 AS SIGNED )
2e180 20 2b 20 43 4f 55 4e 54 28 20 2d 20 2b 20 63 6f   + COUNT( - + co
2e190 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32 20 63  l2 ) FROM tab2 c
2e1a0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d 0a 0d  or0..----..33...
2e1b0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2e1c0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2e1d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2e1e0 6c 61 62 65 6c 2d 31 30 35 36 0d 0a 53 45 4c 45  label-1056..SELE
2e1f0 43 54 20 41 4c 4c 20 2d 20 2d 20 43 41 53 54 20  CT ALL - - CAST 
2e200 28 20 33 30 20 41 53 20 49 4e 54 45 47 45 52 20  ( 30 AS INTEGER 
2e210 29 20 2b 20 43 4f 55 4e 54 20 28 20 2d 20 2b 20  ) + COUNT ( - + 
2e220 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
2e230 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 33 33 0d   cor0..----..33.
2e240 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2e250 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
2e260 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
2e270 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e280 62 65 6c 2d 31 30 35 37 0d 0a 53 45 4c 45 43 54  bel-1057..SELECT
2e290 20 2b 20 2d 20 32 33 20 2a 20 2d 20 2b 20 43 41   + - 23 * - + CA
2e2a0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
2e2b0 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20 63  ED ) FROM tab0 c
2e2c0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
2e2d0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73  .NULL..NULL....s
2e2e0 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
2e2f0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
2e300 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
2e310 62 65 6c 2d 31 30 35 37 0d 0a 53 45 4c 45 43 54  bel-1057..SELECT
2e320 20 2b 20 2d 20 32 33 20 2a 20 2d 20 2b 20 43 41   + - 23 * - + CA
2e330 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54  ST ( NULL AS INT
2e340 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30  EGER ) FROM tab0
2e350 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   cor0..----..NUL
2e360 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 0d  L..NULL..NULL...
2e370 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
2e380 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 36 37  t..SELECT ALL 67
2e390 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f 6c 31  , + col2 AS col1
2e3a0 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
2e3b0 0d 0a 36 37 0d 0a 32 33 0d 0a 36 37 0d 0a 34 30  ..67..23..67..40
2e3c0 0d 0a 36 37 0d 0a 35 38 0d 0a 0d 0a 6f 6e 6c 79  ..67..58....only
2e3d0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
2e3e0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
2e3f0 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
2e400 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35  owsort label-105
2e410 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
2e420 43 54 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53  CT CAST( NULL AS
2e430 20 53 49 47 4e 45 44 20 29 20 2b 20 2d 20 2b 20   SIGNED ) + - + 
2e440 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
2e450 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
2e460 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  LL....skipif mys
2e470 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
2e480 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  ble..query I row
2e490 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 35 39 0d  sort label-1059.
2e4a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2e4b0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
2e4c0 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2b 20  INTEGER ) + - + 
2e4d0 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
2e4e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55  M tab0..----..NU
2e4f0 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
2e500 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
2e510 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
2e520 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2e530 20 6c 61 62 65 6c 2d 31 30 36 30 0d 0a 53 45 4c   label-1060..SEL
2e540 45 43 54 20 44 49 53 54 49 4e 43 54 20 37 39 20  ECT DISTINCT 79 
2e550 2a 20 2d 20 43 41 53 54 28 20 2b 20 43 41 53 54  * - CAST( + CAST
2e560 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44  ( NULL AS SIGNED
2e570 20 29 20 41 53 20 53 49 47 4e 45 44 20 29 20 41   ) AS SIGNED ) A
2e580 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
2e590 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a  ..----..NULL....
2e5a0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2e5b0 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
2e5c0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2e5d0 61 62 65 6c 2d 31 30 36 30 0d 0a 53 45 4c 45 43  abel-1060..SELEC
2e5e0 54 20 44 49 53 54 49 4e 43 54 20 37 39 20 2a 20  T DISTINCT 79 * 
2e5f0 2d 20 43 41 53 54 20 28 20 2b 20 43 41 53 54 20  - CAST ( + CAST 
2e600 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45  ( NULL AS INTEGE
2e610 52 20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29  R ) AS INTEGER )
2e620 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
2e630 62 31 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a  b1..----..NULL..
2e640 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e650 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
2e660 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d 20  CT - col0 * - - 
2e670 28 20 2b 20 35 35 20 29 20 46 52 4f 4d 20 74 61  ( + 55 ) FROM ta
2e680 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 37 38 35 0d  b0..----..-4785.
2e690 0a 2d 35 33 33 35 0d 0a 2d 38 32 35 0d 0a 0d 0a  .-5335..-825....
2e6a0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
2e6b0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20  .SELECT col0 AS 
2e6c0 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 63  col2 FROM tab0 c
2e6d0 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 49  or0 WHERE NULL I
2e6e0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
2e6f0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2e700 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
2e710 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
2e720 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36  owsort label-106
2e730 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  3..SELECT DISTIN
2e740 43 54 20 43 4f 55 4e 54 28 20 63 6f 6c 30 20 29  CT COUNT( col0 )
2e750 20 2a 20 2b 20 2d 20 37 37 20 46 52 4f 4d 20 74   * + - 77 FROM t
2e760 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
2e770 2d 0d 0a 2d 32 33 31 0d 0a 0d 0a 73 6b 69 70 69  -..-231....skipi
2e780 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2e790 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2e7a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e7b0 31 30 36 33 0d 0a 53 45 4c 45 43 54 20 44 49 53  1063..SELECT DIS
2e7c0 54 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 63 6f  TINCT COUNT ( co
2e7d0 6c 30 20 29 20 2a 20 2b 20 2d 20 37 37 20 46 52  l0 ) * + - 77 FR
2e7e0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
2e7f0 0a 2d 2d 2d 2d 0d 0a 2d 32 33 31 0d 0a 0d 0a 6f  .----..-231....o
2e800 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2e810 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2e820 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e830 74 20 6c 61 62 65 6c 2d 31 30 36 34 0d 0a 53 45  t label-1064..SE
2e840 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f  LECT DISTINCT CO
2e850 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 2d 20 36  UNT( * ) + + - 6
2e860 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  5 AS col2 FROM t
2e870 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
2e880 2d 0d 0a 2d 36 32 0d 0a 0d 0a 73 6b 69 70 69 66  -..-62....skipif
2e890 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2e8a0 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2e8b0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2e8c0 30 36 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  064..SELECT DIST
2e8d0 49 4e 43 54 20 43 4f 55 4e 54 20 28 20 2a 20 29  INCT COUNT ( * )
2e8e0 20 2b 20 2b 20 2d 20 36 35 20 41 53 20 63 6f 6c   + + - 65 AS col
2e8f0 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  2 FROM tab0 AS c
2e900 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 32 0d 0a  or0..----..-62..
2e910 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2e920 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
2e930 20 2b 20 2b 20 28 20 2b 20 33 20 29 20 41 53 20   + + ( + 3 ) AS 
2e940 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41  col2 FROM tab0 A
2e950 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
2e960 32 0d 0a 2d 38 34 0d 0a 2d 39 34 0d 0a 0d 0a 6f  2..-84..-94....o
2e970 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 44 49  nlyif mysql # DI
2e980 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69  V for integer di
2e990 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20  vision: ..query 
2e9a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2e9b0 31 30 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20 63  1066..SELECT - c
2e9c0 6f 6c 30 20 44 49 56 20 2b 20 63 6f 6c 30 20 2b  ol0 DIV + col0 +
2e9d0 20 2b 20 2b 20 34 36 20 2b 20 2b 20 38 30 20 2d   + + 46 + + 80 -
2e9e0 20 2d 20 2d 20 31 30 20 41 53 20 63 6f 6c 31 20   - - 10 AS col1 
2e9f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2ea00 30 0d 0a 2d 2d 2d 2d 0d 0a 31 31 35 0d 0a 31 31  0..----..115..11
2ea10 35 0d 0a 31 31 35 0d 0a 0d 0a 73 6b 69 70 69 66  5..115....skipif
2ea20 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2ea30 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2ea40 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2ea50 30 36 36 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  066..SELECT - co
2ea60 6c 30 20 2f 20 2b 20 63 6f 6c 30 20 2b 20 2b 20  l0 / + col0 + + 
2ea70 2b 20 34 36 20 2b 20 2b 20 38 30 20 2d 20 2d 20  + 46 + + 80 - - 
2ea80 2d 20 31 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  - 10 AS col1 FRO
2ea90 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2eaa0 2d 2d 2d 2d 0d 0a 31 31 35 0d 0a 31 31 35 0d 0a  ----..115..115..
2eab0 31 31 35 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  115....onlyif my
2eac0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
2ead0 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65 3a  x: DECIMAL type:
2eae0 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77   ..query III row
2eaf0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 37 0d  sort label-1067.
2eb00 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2eb10 20 2a 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20   * FROM tab0 AS 
2eb20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d  cor0 WHERE NOT -
2eb30 20 63 6f 6c 30 20 2d 20 2b 20 2b 20 43 41 53 54   col0 - + + CAST
2eb40 28 20 4e 55 4c 4c 20 41 53 20 44 45 43 49 4d 41  ( NULL AS DECIMA
2eb50 4c 20 29 20 2b 20 2d 20 63 6f 6c 31 20 3d 20 4e  L ) + - col1 = N
2eb60 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  ULL..----....ski
2eb70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2eb80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2eb90 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
2eba0 62 65 6c 2d 31 30 36 37 0d 0a 53 45 4c 45 43 54  bel-1067..SELECT
2ebb0 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
2ebc0 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
2ebd0 45 52 45 20 4e 4f 54 20 2d 20 63 6f 6c 30 20 2d  ERE NOT - col0 -
2ebe0 20 2b 20 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c   + + CAST ( NULL
2ebf0 20 41 53 20 52 45 41 4c 20 29 20 2b 20 2d 20 63   AS REAL ) + - c
2ec00 6f 6c 31 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  ol1 = NULL..----
2ec10 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2ec20 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
2ec30 49 4e 43 54 20 63 6f 6c 32 20 2d 20 2d 20 2d 20  INCT col2 - - - 
2ec40 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63  col0 FROM tab1 c
2ec50 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 33 0d 0a  or0..----..-23..
2ec60 2d 32 36 0d 0a 34 35 0d 0a 0d 0a 6f 6e 6c 79 69  -26..45....onlyi
2ec70 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
2ec80 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
2ec90 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
2eca0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 39  wsort label-1069
2ecb0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
2ecc0 20 31 38 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 2b   18 + col1 - + +
2ecd0 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 2a   col1 + - col1 *
2ece0 20 37 37 20 44 49 56 20 2b 20 28 20 2b 20 2b 20   77 DIV + ( + + 
2ecf0 35 38 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f  58 ) AS col2 FRO
2ed00 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
2ed10 2d 2d 2d 2d 0d 0a 2d 34 39 0d 0a 2d 37 30 0d 0a  ----..-49..-70..
2ed20 2d 38 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  -84....skipif my
2ed30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
2ed40 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
2ed50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 36 39  wsort label-1069
2ed60 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2b  ..SELECT ALL + +
2ed70 20 31 38 20 2b 20 63 6f 6c 31 20 2d 20 2b 20 2b   18 + col1 - + +
2ed80 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 31 20 2a   col1 + - col1 *
2ed90 20 37 37 20 2f 20 2b 20 28 20 2b 20 2b 20 35 38   77 / + ( + + 58
2eda0 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   ) AS col2 FROM 
2edb0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
2edc0 2d 2d 0d 0a 2d 34 39 0d 0a 2d 37 30 0d 0a 2d 38  --..-49..-70..-8
2edd0 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  4....query I row
2ede0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2edf0 20 63 6f 6c 32 20 2d 20 32 32 20 46 52 4f 4d 20   col2 - 22 FROM 
2ee00 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
2ee10 2d 2d 0d 0a 2d 31 32 0d 0a 32 35 0d 0a 37 37 0d  --..-12..25..77.
2ee20 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
2ee30 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
2ee40 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  ax: ..query I ro
2ee50 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 31  wsort label-1071
2ee60 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
2ee70 54 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 34  T COUNT( * ) + 4
2ee80 37 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  7 FROM tab1 AS c
2ee90 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d  or0..----..50...
2eea0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
2eeb0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
2eec0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2eed0 6c 61 62 65 6c 2d 31 30 37 31 0d 0a 53 45 4c 45  label-1071..SELE
2eee0 43 54 20 44 49 53 54 49 4e 43 54 20 43 4f 55 4e  CT DISTINCT COUN
2eef0 54 20 28 20 2a 20 29 20 2b 20 34 37 20 46 52 4f  T ( * ) + 47 FRO
2ef00 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a  M tab1 AS cor0..
2ef10 2d 2d 2d 2d 0d 0a 35 30 0d 0a 0d 0a 73 6b 69 70  ----..50....skip
2ef20 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2ef30 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2ef40 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2ef50 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2ef60 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2ef70 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2ef80 20 63 6f 6c 31 20 2a 20 63 6f 6c 31 20 2d 20 2b   col1 * col1 - +
2ef90 20 2b 20 33 33 20 63 6f 6c 31 20 46 52 4f 4d 20   + 33 col1 FROM 
2efa0 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 0d 0a  tab1..----..-8..
2efb0 31 36 33 0d 0a 32 31 37 36 0d 0a 0d 0a 6f 6e 6c  163..2176....onl
2efc0 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54  yif mysql # CAST
2efd0 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20   syntax: SIGNED 
2efe0 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20  type: ..query I 
2eff0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f000 37 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20 63  73..SELECT - - c
2f010 6f 6c 30 20 2b 20 2b 20 33 34 20 2d 20 2b 20 2d  ol0 + + 34 - + -
2f020 20 43 41 53 54 28 20 32 37 20 41 53 20 53 49 47   CAST( 27 AS SIG
2f030 4e 45 44 20 29 20 2d 20 2b 20 2d 20 63 6f 6c 30  NED ) - + - col0
2f040 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 20   * col0 AS col0 
2f050 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
2f060 2d 20 63 6f 6c 31 20 3c 3d 20 2d 20 63 6f 6c 30  - col1 <= - col0
2f070 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66  ..----....skipif
2f080 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f090 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f0a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2f0b0 30 37 33 0d 0a 53 45 4c 45 43 54 20 2d 20 2d 20  073..SELECT - - 
2f0c0 63 6f 6c 30 20 2b 20 2b 20 33 34 20 2d 20 2b 20  col0 + + 34 - + 
2f0d0 2d 20 43 41 53 54 20 28 20 32 37 20 41 53 20 49  - CAST ( 27 AS I
2f0e0 4e 54 45 47 45 52 20 29 20 2d 20 2b 20 2d 20 63  NTEGER ) - + - c
2f0f0 6f 6c 30 20 2a 20 63 6f 6c 30 20 41 53 20 63 6f  ol0 * col0 AS co
2f100 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l0 FROM tab1 WHE
2f110 52 45 20 2d 20 63 6f 6c 31 20 3c 3d 20 2d 20 63  RE - col1 <= - c
2f120 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ol0..----....que
2f130 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
2f140 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
2f150 62 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3d 20  b0 WHERE NULL = 
2f160 37 30 20 2f 20 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d  70 / - col2..---
2f170 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
2f180 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b  sort..SELECT ( +
2f190 20 34 37 20 29 20 41 53 20 63 6f 6c 30 20 46 52   47 ) AS col0 FR
2f1a0 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
2f1b0 54 20 4e 55 4c 4c 20 3c 20 2d 20 63 6f 6c 31 0d  T NULL < - col1.
2f1c0 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .----....onlyif 
2f1d0 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20  mysql # DIV for 
2f1e0 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e  integer division
2f1f0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
2f200 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 36 0d 0a  ort label-1076..
2f210 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
2f220 2b 20 30 20 2a 20 2b 20 32 37 20 44 49 56 20 63  + 0 * + 27 DIV c
2f230 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d  ol1 FROM tab1..-
2f240 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66  ---..0....skipif
2f250 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
2f260 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
2f270 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
2f280 30 37 36 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  076..SELECT DIST
2f290 49 4e 43 54 20 2b 20 30 20 2a 20 2b 20 32 37 20  INCT + 0 * + 27 
2f2a0 2f 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31  / col1 FROM tab1
2f2b0 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
2f2c0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
2f2d0 4c 45 43 54 20 2d 20 31 39 20 2a 20 2b 20 2b 20  LECT - 19 * + + 
2f2e0 63 6f 6c 30 20 41 53 20 63 6f 6c 32 20 46 52 4f  col0 AS col2 FRO
2f2f0 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  M tab1..----..-1
2f300 36 31 35 0d 0a 2d 31 37 32 39 0d 0a 2d 39 36 39  615..-1729..-969
2f310 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
2f320 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
2f330 20 2a 20 2d 20 2b 20 33 34 20 46 52 4f 4d 20 74   * - + 34 FROM t
2f340 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 33 36 30  ab2..----..-1360
2f350 0d 0a 2d 31 39 37 32 0d 0a 2d 37 38 32 0d 0a 0d  ..-1972..-782...
2f360 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
2f370 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
2f380 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
2f390 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30 37 39 0d  sort label-1079.
2f3a0 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
2f3b0 20 2d 20 38 34 20 2a 20 2d 20 35 31 20 63 6f 6c   - 84 * - 51 col
2f3c0 32 2c 20 2b 20 4d 41 58 28 20 41 4c 4c 20 2d 20  2, + MAX( ALL - 
2f3d0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46  col1 ) AS col1 F
2f3e0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2f3f0 0d 0a 2d 2d 2d 2d 0d 0a 34 32 38 34 0d 0a 2d 35  ..----..4284..-5
2f400 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  1....skipif mysq
2f410 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
2f420 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  le..skipif postg
2f430 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
2f440 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
2f450 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
2f460 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
2f470 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  ry II rowsort la
2f480 62 65 6c 2d 31 30 37 39 0d 0a 53 45 4c 45 43 54  bel-1079..SELECT
2f490 20 44 49 53 54 49 4e 43 54 20 2d 20 38 34 20 2a   DISTINCT - 84 *
2f4a0 20 2d 20 35 31 20 63 6f 6c 32 2c 20 2b 20 4d 41   - 51 col2, + MA
2f4b0 58 20 28 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 29  X ( ALL - col1 )
2f4c0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
2f4d0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
2f4e0 0d 0a 34 32 38 34 0d 0a 2d 35 31 0d 0a 0d 0a 6f  ..4284..-51....o
2f4f0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
2f500 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
2f510 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
2f520 74 20 6c 61 62 65 6c 2d 31 30 38 30 0d 0a 53 45  t label-1080..SE
2f530 4c 45 43 54 20 41 4c 4c 20 53 55 4d 28 20 44 49  LECT ALL SUM( DI
2f540 53 54 49 4e 43 54 20 39 37 20 29 20 2a 20 2b 20  STINCT 97 ) * + 
2f550 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 32 20  COUNT( * ) col2 
2f560 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2f570 30 0d 0a 2d 2d 2d 2d 0d 0a 32 39 31 0d 0a 0d 0a  0..----..291....
2f580 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
2f590 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 73  ot compatible..s
2f5a0 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2f5b0 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2f5c0 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2f5d0 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2f5e0 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2f5f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f600 38 30 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 53  80..SELECT ALL S
2f610 55 4d 20 28 20 44 49 53 54 49 4e 43 54 20 39 37  UM ( DISTINCT 97
2f620 20 29 20 2a 20 2b 20 43 4f 55 4e 54 20 28 20 2a   ) * + COUNT ( *
2f630 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   ) col2 FROM tab
2f640 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  2 AS cor0..----.
2f650 0a 32 39 31 0d 0a 0d 0a 71 75 65 72 79 20 49 20  .291....query I 
2f660 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f670 41 4c 4c 20 2d 20 63 6f 6c 32 20 2a 20 2d 20 35  ALL - col2 * - 5
2f680 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
2f690 0d 0a 32 39 35 0d 0a 33 34 30 0d 0a 34 38 30 0d  ..295..340..480.
2f6a0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
2f6b0 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b  rt..SELECT ALL +
2f6c0 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20   col0 FROM tab2 
2f6d0 57 48 45 52 45 20 2d 20 32 38 20 2b 20 2b 20 63  WHERE - 28 + + c
2f6e0 6f 6c 30 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol0 IS NULL..---
2f6f0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
2f700 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65  l # DIV for inte
2f710 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
2f720 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
2f730 6c 61 62 65 6c 2d 31 30 38 33 0d 0a 53 45 4c 45  label-1083..SELE
2f740 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 44 49  CT ALL - col1 DI
2f750 56 20 2d 20 28 20 63 6f 6c 32 20 29 20 41 53 20  V - ( col2 ) AS 
2f760 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41  col0 FROM tab1 A
2f770 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  S cor0..----..0.
2f780 0a 30 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20  .0..0....skipif 
2f790 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2f7a0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
2f7b0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f7c0 38 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  83..SELECT ALL -
2f7d0 20 63 6f 6c 31 20 2f 20 2d 20 28 20 63 6f 6c 32   col1 / - ( col2
2f7e0 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
2f7f0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
2f800 2d 2d 0d 0a 30 0d 0a 30 0d 0a 30 0d 0a 0d 0a 73  --..0..0..0....s
2f810 6b 69 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c  kipif postgresql
2f820 20 23 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65   # PostgreSQL re
2f830 71 75 69 72 65 73 20 41 53 20 77 68 65 6e 20 72  quires AS when r
2f840 65 6e 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63  enaming output c
2f850 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20  olumns..query I 
2f860 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
2f870 41 4c 4c 20 2d 20 2b 20 39 35 20 63 6f 6c 31 20  ALL - + 95 col1 
2f880 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
2f890 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 39 35 0d 0a 2d 39  0..----..-95..-9
2f8a0 35 0d 0a 2d 39 35 0d 0a 0d 0a 71 75 65 72 79 20  5..-95....query 
2f8b0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
2f8c0 43 54 20 2b 20 36 35 20 2a 20 63 6f 6c 31 20 2a  CT + 65 * col1 *
2f8d0 20 2d 20 63 6f 6c 31 2c 20 2b 20 63 6f 6c 30 20   - col1, + col0 
2f8e0 2d 20 2d 20 63 6f 6c 31 20 41 53 20 63 6f 6c 31  - - col1 AS col1
2f8f0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
2f900 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 36 39 30 36  r0..----..-16906
2f910 35 0d 0a 39 37 0d 0a 2d 32 39 31 37 38 35 0d 0a  5..97..-291785..
2f920 31 34 32 0d 0a 2d 33 38 35 33 38 35 0d 0a 31 34  142..-385385..14
2f930 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  1....onlyif mysq
2f940 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
2f950 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
2f960 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 30  rowsort label-10
2f970 38 36 0d 0a 53 45 4c 45 43 54 20 2b 20 4d 41 58  86..SELECT + MAX
2f980 28 20 41 4c 4c 20 2b 20 28 20 2b 20 2b 20 63 6f  ( ALL + ( + + co
2f990 6c 32 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46  l2 ) ) AS col1 F
2f9a0 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
2f9b0 0d 0a 2d 2d 2d 2d 0d 0a 35 38 0d 0a 0d 0a 73 6b  ..----..58....sk
2f9c0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
2f9d0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
2f9e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2f9f0 65 6c 2d 31 30 38 36 0d 0a 53 45 4c 45 43 54 20  el-1086..SELECT 
2fa00 2b 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 28 20  + MAX ( ALL + ( 
2fa10 2b 20 2b 20 63 6f 6c 32 20 29 20 29 20 41 53 20  + + col2 ) ) AS 
2fa20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32 20 41  col1 FROM tab2 A
2fa30 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 38  S cor0..----..58
2fa40 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
2fa50 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
2fa60 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
2fa70 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
2fa80 61 62 65 6c 2d 31 30 38 37 0d 0a 53 45 4c 45 43  abel-1087..SELEC
2fa90 54 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 63 6f 6c  T ALL col1 + col
2faa0 31 20 2a 20 2d 20 2d 20 32 36 20 2a 20 2d 20 63  1 * - - 26 * - c
2fab0 6f 6c 31 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 28  ol1 + col2 * - (
2fac0 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2b 20 63 6f   + col0 ) * + co
2fad0 6c 32 20 2a 20 2b 20 2d 20 43 41 53 54 28 20 4e  l2 * + - CAST( N
2fae0 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20  ULL AS SIGNED ) 
2faf0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
2fb00 30 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31  0 WHERE NOT col1
2fb10 20 2a 20 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d   * col2 IS NULL.
2fb20 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
2fb30 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  L..NULL....skipi
2fb40 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
2fb50 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
2fb60 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
2fb70 31 30 38 37 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1087..SELECT ALL
2fb80 20 63 6f 6c 31 20 2b 20 63 6f 6c 31 20 2a 20 2d   col1 + col1 * -
2fb90 20 2d 20 32 36 20 2a 20 2d 20 63 6f 6c 31 20 2b   - 26 * - col1 +
2fba0 20 63 6f 6c 32 20 2a 20 2d 20 28 20 2b 20 63 6f   col2 * - ( + co
2fbb0 6c 30 20 29 20 2a 20 2b 20 63 6f 6c 32 20 2a 20  l0 ) * + col2 * 
2fbc0 2b 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  + - CAST ( NULL 
2fbd0 41 53 20 49 4e 54 45 47 45 52 20 29 20 46 52 4f  AS INTEGER ) FRO
2fbe0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
2fbf0 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20 2a 20  HERE NOT col1 * 
2fc00 63 6f 6c 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d  col2 IS NULL..--
2fc10 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a  --..NULL..NULL..
2fc20 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  NULL....onlyif m
2fc30 79 73 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69  ysql # DIV for i
2fc40 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a  nteger division:
2fc50 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
2fc60 72 74 20 6c 61 62 65 6c 2d 31 30 38 38 0d 0a 53  rt label-1088..S
2fc70 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
2fc80 20 33 35 20 2b 20 2b 20 63 6f 6c 32 20 44 49 56   35 + + col2 DIV
2fc90 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 32 20 29 20   + ( - - col2 ) 
2fca0 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
2fcb0 2d 2d 2d 2d 0d 0a 2d 33 34 0d 0a 0d 0a 73 6b 69  ----..-34....ski
2fcc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
2fcd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
2fce0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
2fcf0 6c 2d 31 30 38 38 0d 0a 53 45 4c 45 43 54 20 44  l-1088..SELECT D
2fd00 49 53 54 49 4e 43 54 20 2d 20 33 35 20 2b 20 2b  ISTINCT - 35 + +
2fd10 20 63 6f 6c 32 20 2f 20 2b 20 28 20 2d 20 2d 20   col2 / + ( - - 
2fd20 63 6f 6c 32 20 29 20 46 52 4f 4d 20 74 61 62 32  col2 ) FROM tab2
2fd30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 34   cor0..----..-34
2fd40 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  ....query II row
2fd50 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2fd60 20 2b 20 2b 20 35 35 20 41 53 20 63 6f 6c 31 2c   + + 55 AS col1,
2fd70 20 2d 20 38 35 20 46 52 4f 4d 20 74 61 62 30 20   - 85 FROM tab0 
2fd80 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35  AS cor0..----..5
2fd90 35 0d 0a 2d 38 35 0d 0a 35 35 0d 0a 2d 38 35 0d  5..-85..55..-85.
2fda0 0a 35 35 0d 0a 2d 38 35 0d 0a 0d 0a 73 6b 69 70  .55..-85....skip
2fdb0 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
2fdc0 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
2fdd0 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
2fde0 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
2fdf0 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
2fe00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
2fe10 20 38 38 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   88 col2 FROM ta
2fe20 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b0 AS cor0..----
2fe30 0d 0a 38 38 0d 0a 38 38 0d 0a 38 38 0d 0a 0d 0a  ..88..88..88....
2fe40 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
2fe50 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
2fe60 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20   tab0 WHERE NOT 
2fe70 4e 55 4c 4c 20 3e 3d 20 2b 20 2d 20 63 6f 6c 31  NULL >= + - col1
2fe80 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
2fe90 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
2fea0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
2feb0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
2fec0 65 6c 2d 31 30 39 32 0d 0a 53 45 4c 45 43 54 20  el-1092..SELECT 
2fed0 44 49 53 54 49 4e 43 54 20 2b 20 53 55 4d 28 20  DISTINCT + SUM( 
2fee0 41 4c 4c 20 2b 20 2b 20 31 35 20 29 20 63 6f 6c  ALL + + 15 ) col
2fef0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
2ff00 2d 0d 0a 34 35 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..45....skipif 
2ff10 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
2ff20 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70  atible..skipif p
2ff30 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
2ff40 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
2ff50 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
2ff60 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
2ff70 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
2ff80 20 6c 61 62 65 6c 2d 31 30 39 32 0d 0a 53 45 4c   label-1092..SEL
2ff90 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 53  ECT DISTINCT + S
2ffa0 55 4d 20 28 20 41 4c 4c 20 2b 20 2b 20 31 35 20  UM ( ALL + + 15 
2ffb0 29 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30  ) col1 FROM tab0
2ffc0 0d 0a 2d 2d 2d 2d 0d 0a 34 35 0d 0a 0d 0a 71 75  ..----..45....qu
2ffd0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
2ffe0 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
2fff0 61 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab0 WHERE NOT + 
30000 2b 20 63 6f 6c 30 20 2a 20 2b 20 2b 20 38 32 20  + col0 * + + 82 
30010 42 45 54 57 45 45 4e 20 63 6f 6c 30 20 2f 20 63  BETWEEN col0 / c
30020 6f 6c 31 20 2a 20 2d 20 39 31 20 41 4e 44 20 4e  ol1 * - 91 AND N
30030 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
30040 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
30050 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61  SELECT * FROM ta
30060 62 32 20 57 48 45 52 45 20 2d 20 39 31 20 42 45  b2 WHERE - 91 BE
30070 54 57 45 45 4e 20 28 20 2b 20 33 31 20 29 20 41  TWEEN ( + 31 ) A
30080 4e 44 20 28 20 4e 55 4c 4c 20 29 0d 0a 2d 2d 2d  ND ( NULL )..---
30090 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  -....query I row
300a0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
300b0 20 28 20 2d 20 32 38 20 29 20 46 52 4f 4d 20 74   ( - 28 ) FROM t
300c0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 38 0d 0a  ab2..----..-28..
300d0 2d 32 38 0d 0a 2d 32 38 0d 0a 0d 0a 6f 6e 6c 79  -28..-28....only
300e0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
300f0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
30100 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49  ype: ..query III
30110 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30120 30 39 36 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  096..SELECT * FR
30130 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 37 32  OM tab1 WHERE 72
30140 20 2a 20 2b 20 39 31 20 49 4e 20 28 20 2b 20 2b   * + 91 IN ( + +
30150 20 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 32 2c 20   col0 + - col2, 
30160 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49  CAST( NULL AS SI
30170 47 4e 45 44 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a  GNED ) )..----..
30180 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
30190 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
301a0 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f  .query III rowso
301b0 72 74 20 6c 61 62 65 6c 2d 31 30 39 36 0d 0a 53  rt label-1096..S
301c0 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  ELECT * FROM tab
301d0 31 20 57 48 45 52 45 20 37 32 20 2a 20 2b 20 39  1 WHERE 72 * + 9
301e0 31 20 49 4e 20 28 20 2b 20 2b 20 63 6f 6c 30 20  1 IN ( + + col0 
301f0 2b 20 2d 20 63 6f 6c 32 2c 20 43 41 53 54 20 28  + - col2, CAST (
30200 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52   NULL AS INTEGER
30210 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75   ) )..----....qu
30220 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53  ery I rowsort..S
30230 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  ELECT col0 AS co
30240 6c 31 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45  l1 FROM tab0 WHE
30250 52 45 20 63 6f 6c 30 20 2a 20 34 30 20 2b 20 2b  RE col0 * 40 + +
30260 20 35 20 2b 20 2d 20 2d 20 31 20 49 53 20 4e 4f   5 + - - 1 IS NO
30270 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 35  T NULL..----..15
30280 0d 0a 38 37 0d 0a 39 37 0d 0a 0d 0a 71 75 65 72  ..87..97....quer
30290 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
302a0 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 41 53  LECT ALL col0 AS
302b0 20 63 6f 6c 30 2c 20 2d 20 63 6f 6c 30 20 46 52   col0, - col0 FR
302c0 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31  OM tab0..----..1
302d0 35 0d 0a 2d 31 35 0d 0a 38 37 0d 0a 2d 38 37 0d  5..-15..87..-87.
302e0 0a 39 37 0d 0a 2d 39 37 0d 0a 0d 0a 71 75 65 72  .97..-97....quer
302f0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
30300 4c 45 43 54 20 41 4c 4c 20 33 39 20 41 53 20 63  LECT ALL 39 AS c
30310 6f 6c 30 2c 20 2b 20 63 6f 6c 32 20 41 53 20 63  ol0, + col2 AS c
30320 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  ol0 FROM tab0..-
30330 2d 2d 2d 0d 0a 33 39 0d 0a 31 30 0d 0a 33 39 0d  ---..39..10..39.
30340 0a 34 37 0d 0a 33 39 0d 0a 39 39 0d 0a 0d 0a 6f  .47..39..99....o
30350 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
30360 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
30370 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30380 74 20 6c 61 62 65 6c 2d 31 31 30 30 0d 0a 53 45  t label-1100..SE
30390 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20  LECT DISTINCT + 
303a0 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d 20 38  COUNT( * ) + - 8
303b0 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  6 AS col2 FROM t
303c0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a  ab2..----..-83..
303d0 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
303e0 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
303f0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30400 20 6c 61 62 65 6c 2d 31 31 30 30 0d 0a 53 45 4c   label-1100..SEL
30410 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
30420 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d 20 38  OUNT ( * ) + - 8
30430 36 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  6 AS col2 FROM t
30440 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 33 0d 0a  ab2..----..-83..
30450 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30460 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31  t..SELECT + col1
30470 20 2a 20 2d 20 2d 20 63 6f 6c 31 20 2b 20 2b 20   * - - col1 + + 
30480 2b 20 36 39 20 2b 20 63 6f 6c 30 20 2a 20 2d 20  + 69 + col0 * - 
30490 36 35 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  65 AS col2 FROM 
304a0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 34  tab0..----..-514
304b0 35 0d 0a 2d 36 32 33 35 0d 0a 35 36 35 35 0d 0a  5..-6235..5655..
304c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
304d0 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
304e0 43 54 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 2b 20  CT - col1 + + + 
304f0 63 6f 6c 30 20 2a 20 2b 20 34 37 20 41 53 20 63  col0 * + 47 AS c
30500 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
30510 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 31 31   cor0..----..211
30520 31 0d 0a 32 39 33 31 0d 0a 33 34 35 38 0d 0a 0d  1..2931..3458...
30530 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
30540 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
30550 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
30560 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30 33 0d 0a  ort label-1103..
30570 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
30580 2b 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d  + COUNT( * ) + -
30590 20 2d 20 53 55 4d 28 20 39 38 20 29 20 46 52 4f   - SUM( 98 ) FRO
305a0 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a  M tab0 AS cor0..
305b0 2d 2d 2d 2d 0d 0a 32 39 37 0d 0a 0d 0a 73 6b 69  ----..297....ski
305c0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
305d0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
305e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
305f0 6c 2d 31 31 30 33 0d 0a 53 45 4c 45 43 54 20 44  l-1103..SELECT D
30600 49 53 54 49 4e 43 54 20 2b 20 43 4f 55 4e 54 20  ISTINCT + COUNT 
30610 28 20 2a 20 29 20 2b 20 2d 20 2d 20 53 55 4d 20  ( * ) + - - SUM 
30620 28 20 39 38 20 29 20 46 52 4f 4d 20 74 61 62 30  ( 98 ) FROM tab0
30630 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
30640 32 39 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49  297....query III
30650 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
30660 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d   DISTINCT * FROM
30670 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
30680 45 52 45 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2d  ERE - col0 * - -
30690 20 28 20 63 6f 6c 32 20 29 20 2a 20 2b 20 63 6f   ( col2 ) * + co
306a0 6c 30 20 3c 3e 20 2b 20 2d 20 34 38 0d 0a 2d 2d  l0 <> + - 48..--
306b0 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20 68 61 73  --..9 values has
306c0 68 69 6e 67 20 74 6f 20 37 35 63 39 39 38 61 61  hing to 75c998aa
306d0 35 33 61 63 38 33 32 31 38 63 62 66 32 66 65 62  53ac83218cbf2feb
306e0 39 36 32 64 30 61 34 39 0d 0a 0d 0a 6f 6e 6c 79  962d0a49....only
306f0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
30700 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
30710 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
30720 61 62 65 6c 2d 31 31 30 35 0d 0a 53 45 4c 45 43  abel-1105..SELEC
30730 54 20 41 4c 4c 20 4d 49 4e 28 20 2b 20 37 37 20  T ALL MIN( + 77 
30740 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
30750 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
30760 37 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73  77....skipif mys
30770 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69  ql # not compati
30780 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  ble..skipif post
30790 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
307a0 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
307b0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
307c0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
307d0 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
307e0 62 65 6c 2d 31 31 30 35 0d 0a 53 45 4c 45 43 54  bel-1105..SELECT
307f0 20 41 4c 4c 20 4d 49 4e 20 28 20 2b 20 37 37 20   ALL MIN ( + 77 
30800 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30  ) col2 FROM tab0
30810 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
30820 37 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49 20 72  77....query II r
30830 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41  owsort..SELECT A
30840 4c 4c 20 2d 20 63 6f 6c 31 20 2b 20 2b 20 34 30  LL - col1 + + 40
30850 20 41 53 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 32   AS col2, + col2
30860 20 2a 20 2d 20 37 35 20 2a 20 2d 20 63 6f 6c 30   * - 75 * - col0
30870 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 63 6f   + + col2 * - co
30880 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l0 FROM tab1 AS 
30890 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 0d 0a  cor0..----..-7..
308a0 34 35 37 39 31 32 0d 0a 32 36 0d 0a 33 36 32 33  457912..26..3623
308b0 30 34 0d 0a 33 35 0d 0a 33 37 31 31 31 30 0d 0a  04..35..371110..
308c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
308d0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 32  t..SELECT - col2
308e0 20 2b 20 2b 20 2b 20 37 31 20 46 52 4f 4d 20 74   + + + 71 FROM t
308f0 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
30900 2d 0d 0a 31 33 0d 0a 33 31 0d 0a 34 38 0d 0a 0d  -..13..31..48...
30910 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
30920 0d 0a 53 45 4c 45 43 54 20 2b 20 2d 20 37 32 20  ..SELECT + - 72 
30930 2b 20 2b 20 2d 20 63 6f 6c 32 20 2b 20 2b 20 63  + + - col2 + + c
30940 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53  ol2 FROM tab0 AS
30950 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32   cor0..----..-72
30960 0d 0a 2d 37 32 0d 0a 2d 37 32 0d 0a 0d 0a 6f 6e  ..-72..-72....on
30970 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
30980 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
30990 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
309a0 20 6c 61 62 65 6c 2d 31 31 30 39 0d 0a 53 45 4c   label-1109..SEL
309b0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 4d  ECT DISTINCT - M
309c0 49 4e 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  IN( DISTINCT + c
309d0 6f 6c 31 20 29 20 2a 20 35 31 20 46 52 4f 4d 20  ol1 ) * 51 FROM 
309e0 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
309f0 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .-51....skipif m
30a00 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
30a10 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
30a20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 30  owsort label-110
30a30 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  9..SELECT DISTIN
30a40 43 54 20 2d 20 4d 49 4e 20 28 20 44 49 53 54 49  CT - MIN ( DISTI
30a50 4e 43 54 20 2b 20 63 6f 6c 31 20 29 20 2a 20 35  NCT + col1 ) * 5
30a60 31 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  1 FROM tab0 cor0
30a70 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 6f  ..----..-51....o
30a80 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
30a90 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
30aa0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
30ab0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
30ac0 31 31 31 30 0d 0a 53 45 4c 45 43 54 20 44 49 53  1110..SELECT DIS
30ad0 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 4e 55  TINCT + CAST( NU
30ae0 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a  LL AS SIGNED ) *
30af0 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   - col2 AS col0 
30b00 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
30b10 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20  .NULL....skipif 
30b20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
30b30 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
30b40 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
30b50 31 30 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  10..SELECT DISTI
30b60 4e 43 54 20 2b 20 43 41 53 54 20 28 20 4e 55 4c  NCT + CAST ( NUL
30b70 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a  L AS INTEGER ) *
30b80 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20   - col2 AS col0 
30b90 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
30ba0 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49  .NULL....query I
30bb0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
30bc0 54 20 44 49 53 54 49 4e 43 54 20 2d 20 33 30 2c  T DISTINCT - 30,
30bd0 20 28 20 2d 20 34 39 20 29 20 41 53 20 63 6f 6c   ( - 49 ) AS col
30be0 31 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  1 FROM tab2..---
30bf0 2d 0d 0a 2d 33 30 0d 0a 2d 34 39 0d 0a 0d 0a 71  -..-30..-49....q
30c00 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
30c10 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 33 39 20  SELECT ALL + 39 
30c20 2a 20 2d 20 2b 20 63 6f 6c 32 20 41 53 20 63 6f  * - + col2 AS co
30c30 6c 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l1 FROM tab0..--
30c40 2d 2d 0d 0a 2d 31 38 33 33 0d 0a 2d 33 38 36 31  --..-1833..-3861
30c50 0d 0a 2d 33 39 30 0d 0a 0d 0a 71 75 65 72 79 20  ..-390....query 
30c60 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
30c70 43 54 20 63 6f 6c 32 2c 20 2d 20 28 20 63 6f 6c  CT col2, - ( col
30c80 31 20 29 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d  1 ) FROM tab0..-
30c90 2d 2d 2d 0d 0a 31 30 0d 0a 2d 32 31 0d 0a 34 37  ---..10..-21..47
30ca0 0d 0a 2d 38 31 0d 0a 39 39 0d 0a 2d 31 0d 0a 0d  ..-81..99..-1...
30cb0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
30cc0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
30cd0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
30ce0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30cf0 6c 2d 31 31 31 34 0d 0a 53 45 4c 45 43 54 20 2b  l-1114..SELECT +
30d00 20 43 41 53 54 28 20 2d 20 38 30 20 41 53 20 53   CAST( - 80 AS S
30d10 49 47 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62  IGNED ) FROM tab
30d20 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 2d 38  2..----..-80..-8
30d30 30 0d 0a 2d 38 30 0d 0a 0d 0a 73 6b 69 70 69 66  0..-80....skipif
30d40 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
30d50 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
30d60 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
30d70 31 31 34 0d 0a 53 45 4c 45 43 54 20 2b 20 43 41  114..SELECT + CA
30d80 53 54 20 28 20 2d 20 38 30 20 41 53 20 49 4e 54  ST ( - 80 AS INT
30d90 45 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32  EGER ) FROM tab2
30da0 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 30 0d 0a 2d 38 30  ..----..-80..-80
30db0 0d 0a 2d 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  ..-80....onlyif 
30dc0 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
30dd0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
30de0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
30df0 6c 2d 31 31 31 35 0d 0a 53 45 4c 45 43 54 20 41  l-1115..SELECT A
30e00 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 28 20 44 49  LL + - COUNT( DI
30e10 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 29 20  STINCT + col0 ) 
30e20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
30e30 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73  0..----..-3....s
30e40 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
30e50 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
30e60 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
30e70 62 65 6c 2d 31 31 31 35 0d 0a 53 45 4c 45 43 54  bel-1115..SELECT
30e80 20 41 4c 4c 20 2b 20 2d 20 43 4f 55 4e 54 20 28   ALL + - COUNT (
30e90 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30   DISTINCT + col0
30ea0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
30eb0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
30ec0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
30ed0 74 0d 0a 53 45 4c 45 43 54 20 2b 20 38 20 2a 20  t..SELECT + 8 * 
30ee0 2b 20 2b 20 39 34 20 2a 20 2d 20 63 6f 6c 32 20  + + 94 * - col2 
30ef0 2a 20 38 39 20 2a 20 35 38 20 46 52 4f 4d 20 74  * 89 * 58 FROM t
30f00 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor0..----..
30f10 2d 31 38 32 34 34 35 37 32 38 0d 0a 2d 33 38 34  -182445728..-384
30f20 33 30 30 35 37 36 0d 0a 2d 33 38 38 31 38 32 34  300576..-3881824
30f30 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
30f40 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
30f50 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
30f60 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
30f70 6c 61 62 65 6c 2d 31 31 31 37 0d 0a 53 45 4c 45  label-1117..SELE
30f80 43 54 20 2d 20 63 6f 6c 31 20 2a 20 2d 20 2b 20  CT - col1 * - + 
30f90 28 20 2b 20 43 41 53 54 28 20 4e 55 4c 4c 20 41  ( + CAST( NULL A
30fa0 53 20 53 49 47 4e 45 44 20 29 20 29 20 2d 20 2d  S SIGNED ) ) - -
30fb0 20 2b 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   + col2 FROM tab
30fc0 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  0 AS cor0..----.
30fd0 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .NULL..NULL..NUL
30fe0 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
30ff0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
31000 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
31010 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 37 0d 0a  ort label-1117..
31020 53 45 4c 45 43 54 20 2d 20 63 6f 6c 31 20 2a 20  SELECT - col1 * 
31030 2d 20 2b 20 28 20 2b 20 43 41 53 54 20 28 20 4e  - + ( + CAST ( N
31040 55 4c 4c 20 41 53 20 49 4e 54 45 47 45 52 20 29  ULL AS INTEGER )
31050 20 29 20 2d 20 2d 20 2b 20 63 6f 6c 32 20 46 52   ) - - + col2 FR
31060 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
31070 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c  .----..NULL..NUL
31080 4c 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  L..NULL....query
31090 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
310a0 43 54 20 2b 20 63 6f 6c 32 20 2b 20 2b 20 28 20  CT + col2 + + ( 
310b0 2b 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 31 20  + col2 + - col1 
310c0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
310d0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 0d 0a 33  ab2..----..-5..3
310e0 0d 0a 34 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..49....onlyif m
310f0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
31100 61 78 3a 20 44 45 43 49 4d 41 4c 20 74 79 70 65  ax: DECIMAL type
31110 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  : ..query III ro
31120 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 31 39  wsort label-1119
31130 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
31140 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57 48  T * FROM tab2 WH
31150 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54  ERE ( NULL ) NOT
31160 20 49 4e 20 28 20 2b 20 35 20 2b 20 43 41 53 54   IN ( + 5 + CAST
31170 28 20 63 6f 6c 31 20 41 53 20 44 45 43 49 4d 41  ( col1 AS DECIMA
31180 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73  L ) )..----....s
31190 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
311a0 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
311b0 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20  ery III rowsort 
311c0 6c 61 62 65 6c 2d 31 31 31 39 0d 0a 53 45 4c 45  label-1119..SELE
311d0 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52  CT DISTINCT * FR
311e0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 28 20  OM tab2 WHERE ( 
311f0 4e 55 4c 4c 20 29 20 4e 4f 54 20 49 4e 20 28 20  NULL ) NOT IN ( 
31200 2b 20 35 20 2b 20 43 41 53 54 20 28 20 63 6f 6c  + 5 + CAST ( col
31210 31 20 41 53 20 52 45 41 4c 20 29 20 29 0d 0a 2d  1 AS REAL ) )..-
31220 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ---....skipif po
31230 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
31240 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
31250 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
31260 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
31270 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
31280 0a 53 45 4c 45 43 54 20 2b 20 36 20 2b 20 2b 20  .SELECT + 6 + + 
31290 63 6f 6c 30 20 63 6f 6c 30 20 46 52 4f 4d 20 74  col0 col0 FROM t
312a0 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 33 0d 0a  ab0..----..103..
312b0 32 31 0d 0a 39 33 0d 0a 0d 0a 6f 6e 6c 79 69 66  21..93....onlyif
312c0 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
312d0 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65  te syntax: ..que
312e0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
312f0 65 6c 2d 31 31 32 31 0d 0a 53 45 4c 45 43 54 20  el-1121..SELECT 
31300 41 4c 4c 20 4d 49 4e 28 20 31 37 20 29 20 2b 20  ALL MIN( 17 ) + 
31310 2d 20 28 20 2b 20 33 31 20 2b 20 2b 20 43 4f 55  - ( + 31 + + COU
31320 4e 54 28 20 2a 20 29 20 29 20 2a 20 2b 20 4d 41  NT( * ) ) * + MA
31330 58 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c  X( col2 ) AS col
31340 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  2 FROM tab1..---
31350 2d 0d 0a 2d 33 32 34 37 0d 0a 0d 0a 73 6b 69 70  -..-3247....skip
31360 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31370 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
31380 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
31390 2d 31 31 32 31 0d 0a 53 45 4c 45 43 54 20 41 4c  -1121..SELECT AL
313a0 4c 20 4d 49 4e 20 28 20 31 37 20 29 20 2b 20 2d  L MIN ( 17 ) + -
313b0 20 28 20 2b 20 33 31 20 2b 20 2b 20 43 4f 55 4e   ( + 31 + + COUN
313c0 54 20 28 20 2a 20 29 20 29 20 2a 20 2b 20 4d 41  T ( * ) ) * + MA
313d0 58 20 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f  X ( col2 ) AS co
313e0 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
313f0 2d 2d 0d 0a 2d 33 32 34 37 0d 0a 0d 0a 71 75 65  --..-3247....que
31400 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
31410 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 46 52  LECT ALL col1 FR
31420 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
31430 54 20 2b 20 63 6f 6c 32 20 2a 20 2b 20 63 6f 6c  T + col2 * + col
31440 32 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d  2 IS NULL..----.
31450 0a 31 34 0d 0a 34 37 0d 0a 35 0d 0a 0d 0a 71 75  .14..47..5....qu
31460 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
31470 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52  .SELECT ALL * FR
31480 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f  OM tab1 WHERE NO
31490 54 20 63 6f 6c 32 20 3c 3e 20 28 20 4e 55 4c 4c  T col2 <> ( NULL
314a0 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72   )..----....quer
314b0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
314c0 45 43 54 20 2d 20 32 37 20 46 52 4f 4d 20 74 61  ECT - 27 FROM ta
314d0 62 32 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e  b2 WHERE NOT ( N
314e0 55 4c 4c 20 29 20 3e 3d 20 28 20 2d 20 36 39 20  ULL ) >= ( - 69 
314f0 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69  )..----....onlyi
31500 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
31510 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
31520 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31530 62 65 6c 2d 31 31 32 35 0d 0a 53 45 4c 45 43 54  bel-1125..SELECT
31540 20 43 4f 55 4e 54 28 20 2a 20 29 20 63 6f 6c 30   COUNT( * ) col0
31550 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52 45   FROM tab2 WHERE
31560 20 2b 20 63 6f 6c 30 20 3c 3e 20 4e 55 4c 4c 0d   + col0 <> NULL.
31570 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70  .----..0....skip
31580 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
31590 6f 6d 70 61 74 69 62 6c 65 0d 0a 73 6b 69 70 69  ompatible..skipi
315a0 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20 50  f postgresql # P
315b0 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69 72  ostgreSQL requir
315c0 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61 6d  es AS when renam
315d0 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d  ing output colum
315e0 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ns..query I rows
315f0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 35 0d 0a  ort label-1125..
31600 53 45 4c 45 43 54 20 43 4f 55 4e 54 20 28 20 2a  SELECT COUNT ( *
31610 20 29 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   ) col0 FROM tab
31620 32 20 57 48 45 52 45 20 2b 20 63 6f 6c 30 20 3c  2 WHERE + col0 <
31630 3e 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  > NULL..----..0.
31640 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
31650 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20  rt..SELECT col1 
31660 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
31670 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 63 6f  1 WHERE NOT - co
31680 6c 32 20 2a 20 2d 20 37 39 20 3c 3e 20 28 20 2d  l2 * - 79 <> ( -
31690 20 28 20 2d 20 33 38 20 29 20 29 20 2b 20 63 6f   ( - 38 ) ) + co
316a0 6c 32 20 2a 20 2b 20 63 6f 6c 30 0d 0a 2d 2d 2d  l2 * + col0..---
316b0 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  -....onlyif mysq
316c0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
316d0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
316e0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
316f0 32 37 0d 0a 53 45 4c 45 43 54 20 2b 20 43 4f 55  27..SELECT + COU
31700 4e 54 28 20 2a 20 29 20 2b 20 4d 41 58 28 20 41  NT( * ) + MAX( A
31710 4c 4c 20 2b 20 28 20 63 6f 6c 31 20 29 20 29 20  LL + ( col1 ) ) 
31720 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
31730 32 0d 0a 2d 2d 2d 2d 0d 0a 38 30 0d 0a 0d 0a 73  2..----..80....s
31740 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
31750 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
31760 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
31770 62 65 6c 2d 31 31 32 37 0d 0a 53 45 4c 45 43 54  bel-1127..SELECT
31780 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b   + COUNT ( * ) +
31790 20 4d 41 58 20 28 20 41 4c 4c 20 2b 20 28 20 63   MAX ( ALL + ( c
317a0 6f 6c 31 20 29 20 29 20 41 53 20 63 6f 6c 32 20  ol1 ) ) AS col2 
317b0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
317c0 0a 38 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .80....onlyif my
317d0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
317e0 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
317f0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
31800 31 31 32 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  1128..SELECT DIS
31810 54 49 4e 43 54 20 43 4f 55 4e 54 28 20 2a 20 29  TINCT COUNT( * )
31820 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
31830 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 35  b1 WHERE NOT + 5
31840 38 20 2b 20 2d 20 63 6f 6c 30 20 49 4e 20 28 20  8 + - col0 IN ( 
31850 2b 20 63 6f 6c 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  + col1 )..----..
31860 33 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  3....skipif mysq
31870 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
31880 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
31890 6f 72 74 20 6c 61 62 65 6c 2d 31 31 32 38 0d 0a  ort label-1128..
318a0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
318b0 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63  COUNT ( * ) AS c
318c0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
318d0 45 52 45 20 4e 4f 54 20 2b 20 35 38 20 2b 20 2d  ERE NOT + 58 + -
318e0 20 63 6f 6c 30 20 49 4e 20 28 20 2b 20 63 6f 6c   col0 IN ( + col
318f0 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a  1 )..----..3....
31900 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
31910 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
31920 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
31930 4e 4f 54 20 28 20 2d 20 63 6f 6c 30 20 2a 20 2b  NOT ( - col0 * +
31940 20 33 33 20 29 20 49 4e 20 28 20 2b 20 36 34 20   33 ) IN ( + 64 
31950 29 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65  )..----..9 value
31960 73 20 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63  s hashing to c6c
31970 30 61 34 31 31 31 62 33 36 64 30 34 64 62 63 38  0a4111b36d04dbc8
31980 31 31 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d  11a11e4d54cad...
31990 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
319a0 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 35  ..SELECT ALL + 5
319b0 37 20 2a 20 63 6f 6c 31 20 41 53 20 63 6f 6c 32  7 * col1 AS col2
319c0 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d   FROM tab1..----
319d0 0d 0a 32 36 37 39 0d 0a 32 38 35 0d 0a 37 39 38  ..2679..285..798
319e0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
319f0 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
31a00 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
31a10 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
31a20 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
31a30 20 6c 61 62 65 6c 2d 31 31 33 31 0d 0a 53 45 4c   label-1131..SEL
31a40 45 43 54 20 44 49 53 54 49 4e 43 54 20 43 41 53  ECT DISTINCT CAS
31a50 54 28 20 2b 20 41 56 47 20 28 20 28 20 2b 20 36  T( + AVG ( ( + 6
31a60 37 20 29 20 29 20 41 53 20 53 49 47 4e 45 44 20  7 ) ) AS SIGNED 
31a70 29 20 2f 20 43 4f 55 4e 54 28 20 2a 20 29 20 41  ) / COUNT( * ) A
31a80 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31  S col0 FROM tab1
31a90 20 57 48 45 52 45 20 4e 4f 54 20 28 20 31 38 20   WHERE NOT ( 18 
31aa0 29 20 2a 20 32 32 20 3d 20 4e 55 4c 4c 0d 0a 2d  ) * 22 = NULL..-
31ab0 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
31ac0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
31ad0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
31ae0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
31af0 6c 2d 31 31 33 31 0d 0a 53 45 4c 45 43 54 20 44  l-1131..SELECT D
31b00 49 53 54 49 4e 43 54 20 43 41 53 54 20 28 20 2b  ISTINCT CAST ( +
31b10 20 41 56 47 20 28 20 28 20 2b 20 36 37 20 29 20   AVG ( ( + 67 ) 
31b20 29 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2f  ) AS INTEGER ) /
31b30 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
31b40 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57  col0 FROM tab1 W
31b50 48 45 52 45 20 4e 4f 54 20 28 20 31 38 20 29 20  HERE NOT ( 18 ) 
31b60 2a 20 32 32 20 3d 20 4e 55 4c 4c 0d 0a 2d 2d 2d  * 22 = NULL..---
31b70 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
31b80 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31b90 43 54 20 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74  CT + col0 FROM t
31ba0 61 62 30 20 57 48 45 52 45 20 63 6f 6c 32 20 2a  ab0 WHERE col2 *
31bb0 20 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c   col1 IS NOT NUL
31bc0 4c 0d 0a 2d 2d 2d 2d 0d 0a 31 35 0d 0a 38 37 0d  L..----..15..87.
31bd0 0a 39 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  .97....onlyif my
31be0 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61  sql # CAST synta
31bf0 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20  x: SIGNED type: 
31c00 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
31c10 6f 72 74 20 6c 61 62 65 6c 2d 31 31 33 33 0d 0a  ort label-1133..
31c20 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
31c30 2a 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52  * FROM tab0 WHER
31c40 45 20 28 20 37 33 20 2b 20 28 20 2d 20 43 41 53  E ( 73 + ( - CAS
31c50 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
31c60 44 20 29 20 29 20 2a 20 2d 20 63 6f 6c 32 20 29  D ) ) * - col2 )
31c70 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
31c80 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
31c90 20 74 6f 20 63 34 62 34 32 37 36 35 64 66 66 39   to c4b42765dff9
31ca0 34 65 61 61 61 34 36 30 34 30 65 35 33 37 66 62  4eaaa46040e537fb
31cb0 34 33 62 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  43b7....skipif m
31cc0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
31cd0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
31ce0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
31cf0 31 33 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  133..SELECT DIST
31d00 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  INCT * FROM tab0
31d10 20 57 48 45 52 45 20 28 20 37 33 20 2b 20 28 20   WHERE ( 73 + ( 
31d20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  - CAST ( NULL AS
31d30 20 49 4e 54 45 47 45 52 20 29 20 29 20 2a 20 2d   INTEGER ) ) * -
31d40 20 63 6f 6c 32 20 29 20 49 53 20 4e 55 4c 4c 0d   col2 ) IS NULL.
31d50 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
31d60 68 61 73 68 69 6e 67 20 74 6f 20 63 34 62 34 32  hashing to c4b42
31d70 37 36 35 64 66 66 39 34 65 61 61 61 34 36 30 34  765dff94eaaa4604
31d80 30 65 35 33 37 66 62 34 33 62 37 0d 0a 0d 0a 71  0e537fb43b7....q
31d90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
31da0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
31db0 2b 20 39 32 20 41 53 20 63 6f 6c 32 20 46 52 4f  + 92 AS col2 FRO
31dc0 4d 20 74 61 62 30 20 57 48 45 52 45 20 28 20 63  M tab0 WHERE ( c
31dd0 6f 6c 31 20 29 20 3e 3d 20 2d 20 34 33 0d 0a 2d  ol1 ) >= - 43..-
31de0 2d 2d 2d 0d 0a 39 32 0d 0a 0d 0a 71 75 65 72 79  ---..92....query
31df0 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
31e00 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 39 38  CT DISTINCT + 98
31e10 20 2a 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62   * col2 FROM tab
31e20 30 0d 0a 2d 2d 2d 2d 0d 0a 34 36 30 36 0d 0a 39  0..----..4606..9
31e30 37 30 32 0d 0a 39 38 30 0d 0a 0d 0a 6f 6e 6c 79  702..980....only
31e40 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
31e50 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
31e60 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
31e70 61 62 65 6c 2d 31 31 33 36 0d 0a 53 45 4c 45 43  abel-1136..SELEC
31e80 54 20 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55  T DISTINCT - COU
31e90 4e 54 28 20 2a 20 29 20 2d 20 2d 20 32 38 20 41  NT( * ) - - 28 A
31ea0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  S col0 FROM tab2
31eb0 0d 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d 0a 73 6b  ..----..25....sk
31ec0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
31ed0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
31ee0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
31ef0 65 6c 2d 31 31 33 36 0d 0a 53 45 4c 45 43 54 20  el-1136..SELECT 
31f00 44 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54  DISTINCT - COUNT
31f10 20 28 20 2a 20 29 20 2d 20 2d 20 32 38 20 41 53   ( * ) - - 28 AS
31f20 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d   col0 FROM tab2.
31f30 0a 2d 2d 2d 2d 0d 0a 32 35 0d 0a 0d 0a 71 75 65  .----..25....que
31f40 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
31f50 4c 45 43 54 20 34 33 20 2d 20 63 6f 6c 31 20 46  LECT 43 - col1 F
31f60 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab2..----..
31f70 2d 32 34 0d 0a 2d 33 34 0d 0a 2d 38 0d 0a 0d 0a  -24..-34..-8....
31f80 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
31f90 0a 53 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2d  .SELECT col1 * -
31fa0 20 28 20 32 38 20 29 20 2d 20 2b 20 35 38 20 46   ( 28 ) - + 58 F
31fb0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
31fc0 2d 31 33 37 34 0d 0a 2d 31 39 38 0d 0a 2d 34 35  -1374..-198..-45
31fd0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
31fe0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
31ff0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
32000 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
32010 33 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54  39..SELECT COUNT
32020 28 20 2a 20 29 20 2a 20 31 39 20 41 53 20 63 6f  ( * ) * 19 AS co
32030 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d  l0 FROM tab0..--
32040 2d 2d 0d 0a 35 37 0d 0a 0d 0a 73 6b 69 70 69 66  --..57....skipif
32050 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
32060 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
32070 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
32080 31 33 39 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  139..SELECT COUN
32090 54 20 28 20 2a 20 29 20 2a 20 31 39 20 41 53 20  T ( * ) * 19 AS 
320a0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
320b0 2d 2d 2d 2d 0d 0a 35 37 0d 0a 0d 0a 71 75 65 72  ----..57....quer
320c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
320d0 45 43 54 20 63 6f 6c 31 20 2b 20 28 20 2b 20 34  ECT col1 + ( + 4
320e0 36 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  6 ) AS col2 FROM
320f0 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 32 37   tab0..----..127
32100 0d 0a 34 37 0d 0a 36 37 0d 0a 0d 0a 73 6b 69 70  ..47..67....skip
32110 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23 20  if postgresql # 
32120 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75 69  PostgreSQL requi
32130 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e 61  res AS when rena
32140 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c 75  ming output colu
32150 6d 6e 73 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  mns..query I row
32160 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 34  sort..SELECT + 4
32170 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  4 col1 FROM tab2
32180 20 57 48 45 52 45 20 2b 20 63 6f 6c 31 20 49 53   WHERE + col1 IS
32190 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f   NULL..----....o
321a0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
321b0 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
321c0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
321d0 74 20 6c 61 62 65 6c 2d 31 31 34 32 0d 0a 53 45  t label-1142..SE
321e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20  LECT DISTINCT - 
321f0 53 55 4d 28 20 41 4c 4c 20 2b 20 63 6f 6c 32 20  SUM( ALL + col2 
32200 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d  ) FROM tab2..---
32210 2d 0d 0a 2d 31 32 31 0d 0a 0d 0a 73 6b 69 70 69  -..-121....skipi
32220 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
32230 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
32240 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32250 31 31 34 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  1142..SELECT DIS
32260 54 49 4e 43 54 20 2d 20 53 55 4d 20 28 20 41 4c  TINCT - SUM ( AL
32270 4c 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  L + col2 ) FROM 
32280 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 31 32 31  tab2..----..-121
32290 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
322a0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  ort..SELECT DIST
322b0 49 4e 43 54 20 2d 20 32 38 20 46 52 4f 4d 20 74  INCT - 28 FROM t
322c0 61 62 32 20 57 48 45 52 45 20 63 6f 6c 31 20 3c  ab2 WHERE col1 <
322d0 3d 20 28 20 36 31 20 29 0d 0a 2d 2d 2d 2d 0d 0a  = ( 61 )..----..
322e0 2d 32 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79  -28....onlyif my
322f0 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20  sql # aggregate 
32300 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20  syntax: ..query 
32310 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
32320 31 31 34 34 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1144..SELECT ALL
32330 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 41 53   - COUNT( * ) AS
32340 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
32350 57 48 45 52 45 20 4e 55 4c 4c 20 3c 20 2d 20 38  WHERE NULL < - 8
32360 33 20 2d 20 2d 20 34 35 0d 0a 2d 2d 2d 2d 0d 0a  3 - - 45..----..
32370 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  0....skipif mysq
32380 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
32390 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
323a0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 34 0d 0a  ort label-1144..
323b0 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 43 4f 55  SELECT ALL - COU
323c0 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 31  NT ( * ) AS col1
323d0 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
323e0 20 4e 55 4c 4c 20 3c 20 2d 20 38 33 20 2d 20 2d   NULL < - 83 - -
323f0 20 34 35 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a   45..----..0....
32400 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
32410 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
32420 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 31 20   col1 FROM tab1 
32430 57 48 45 52 45 20 35 30 20 49 53 20 4e 55 4c 4c  WHERE 50 IS NULL
32440 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
32450 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
32460 54 20 44 49 53 54 49 4e 43 54 20 28 20 2b 20 63  T DISTINCT ( + c
32470 6f 6c 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20  ol0 ) FROM tab2 
32480 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 30 20 2b  WHERE NOT col0 +
32490 20 2d 20 30 20 2f 20 2d 20 63 6f 6c 31 20 3e 20   - 0 / - col1 > 
324a0 2b 20 37 37 20 2d 20 63 6f 6c 30 20 2a 20 63 6f  + 77 - col0 * co
324b0 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  l1..----....quer
324c0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
324d0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 34  ECT DISTINCT + 4
324e0 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  2 AS col0 FROM t
324f0 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
32500 32 37 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  27 IS NULL..----
32510 0d 0a 34 32 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ..42....onlyif m
32520 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
32530 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
32540 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
32550 2d 31 31 34 38 0d 0a 53 45 4c 45 43 54 20 2b 20  -1148..SELECT + 
32560 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 2d 20  MAX( DISTINCT - 
32570 37 34 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f  74 ) AS col1 FRO
32580 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 37  M tab2..----..-7
32590 34 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  4....skipif mysq
325a0 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
325b0 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
325c0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 34 38 0d 0a  ort label-1148..
325d0 53 45 4c 45 43 54 20 2b 20 4d 41 58 20 28 20 44  SELECT + MAX ( D
325e0 49 53 54 49 4e 43 54 20 2d 20 37 34 20 29 20 41  ISTINCT - 74 ) A
325f0 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 32  S col1 FROM tab2
32600 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 34 0d 0a 0d 0a 6f  ..----..-74....o
32610 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
32620 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
32630 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
32640 74 20 6c 61 62 65 6c 2d 31 31 34 39 0d 0a 53 45  t label-1149..SE
32650 4c 45 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54  LECT - MAX( DIST
32660 49 4e 43 54 20 63 6f 6c 31 20 29 20 46 52 4f 4d  INCT col1 ) FROM
32670 20 74 61 62 30 20 57 48 45 52 45 20 28 20 4e 55   tab0 WHERE ( NU
32680 4c 4c 20 29 20 3c 20 28 20 34 20 29 0d 0a 2d 2d  LL ) < ( 4 )..--
32690 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70  --..NULL....skip
326a0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
326b0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
326c0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
326d0 2d 31 31 34 39 0d 0a 53 45 4c 45 43 54 20 2d 20  -1149..SELECT - 
326e0 4d 41 58 20 28 20 44 49 53 54 49 4e 43 54 20 63  MAX ( DISTINCT c
326f0 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61 62 30 20  ol1 ) FROM tab0 
32700 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3c  WHERE ( NULL ) <
32710 20 28 20 34 20 29 0d 0a 2d 2d 2d 2d 0d 0a 4e 55   ( 4 )..----..NU
32720 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  LL....onlyif mys
32730 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78  ql # CAST syntax
32740 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
32750 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32760 20 6c 61 62 65 6c 2d 31 31 35 30 0d 0a 53 45 4c   label-1150..SEL
32770 45 43 54 20 2b 20 28 20 2b 20 63 6f 6c 31 20 29  ECT + ( + col1 )
32780 20 2a 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74   * - col0 FROM t
32790 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 2d 20  ab1 WHERE NOT - 
327a0 34 36 20 3c 3d 20 43 41 53 54 28 20 4e 55 4c 4c  46 <= CAST( NULL
327b0 20 41 53 20 53 49 47 4e 45 44 20 29 20 2a 20 2b   AS SIGNED ) * +
327c0 20 39 33 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69   93..----....ski
327d0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
327e0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
327f0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
32800 6c 2d 31 31 35 30 0d 0a 53 45 4c 45 43 54 20 2b  l-1150..SELECT +
32810 20 28 20 2b 20 63 6f 6c 31 20 29 20 2a 20 2d 20   ( + col1 ) * - 
32820 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57  col0 FROM tab1 W
32830 48 45 52 45 20 4e 4f 54 20 2d 20 34 36 20 3c 3d  HERE NOT - 46 <=
32840 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
32850 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 39 33  INTEGER ) * + 93
32860 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
32870 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
32880 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74  ECT ALL * FROM t
32890 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 63 6f  ab1 WHERE NOT co
328a0 6c 32 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 28  l2 NOT BETWEEN (
328b0 20 35 38 20 29 20 2d 20 37 39 20 41 4e 44 20 4e   58 ) - 79 AND N
328c0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65  ULL..----....que
328d0 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ry III rowsort..
328e0 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20 46 52 4f  SELECT ALL * FRO
328f0 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e 4f 54  M tab1 WHERE NOT
32900 20 4e 55 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55   NULL BETWEEN NU
32910 4c 4c 20 41 4e 44 20 2b 20 63 6f 6c 30 20 2b 20  LL AND + col0 + 
32920 31 38 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72  18..----....quer
32930 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
32940 45 43 54 20 41 4c 4c 20 63 6f 6c 30 20 2a 20 63  ECT ALL col0 * c
32950 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d  ol2 AS col0 FROM
32960 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
32970 45 52 45 20 4e 55 4c 4c 20 49 53 20 4e 4f 54 20  ERE NULL IS NOT 
32980 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e  NULL..----....on
32990 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
329a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
329b0 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64  IV for integer d
329c0 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79  ivision: ..query
329d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
329e0 2d 31 31 35 34 0d 0a 53 45 4c 45 43 54 20 28 20  -1154..SELECT ( 
329f0 43 4f 55 4e 54 28 20 2a 20 29 20 29 20 44 49 56  COUNT( * ) ) DIV
32a00 20 31 34 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   14 col1 FROM ta
32a10 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
32a20 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  ..0....skipif my
32a30 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
32a40 69 62 6c 65 0d 0a 73 6b 69 70 69 66 20 70 6f 73  ible..skipif pos
32a50 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
32a60 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
32a70 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
32a80 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
32a90 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
32aa0 61 62 65 6c 2d 31 31 35 34 0d 0a 53 45 4c 45 43  abel-1154..SELEC
32ab0 54 20 28 20 43 4f 55 4e 54 20 28 20 2a 20 29 20  T ( COUNT ( * ) 
32ac0 29 20 2f 20 31 34 20 63 6f 6c 31 20 46 52 4f 4d  ) / 14 col1 FROM
32ad0 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
32ae0 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69 66  ---..0....onlyif
32af0 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79   mysql # CAST sy
32b00 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70  ntax: SIGNED typ
32b10 65 3a 20 0d 0a 71 75 65 72 79 20 49 49 49 20 72  e: ..query III r
32b20 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35  owsort label-115
32b30 35 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  5..SELECT * FROM
32b40 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
32b50 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54  ERE NULL NOT BET
32b60 57 45 45 4e 20 28 20 2b 20 63 6f 6c 32 20 29 20  WEEN ( + col2 ) 
32b70 41 4e 44 20 63 6f 6c 32 20 2a 20 2d 20 43 41 53  AND col2 * - CAS
32b80 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45  T( NULL AS SIGNE
32b90 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69  D )..----....ski
32ba0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
32bb0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
32bc0 79 20 49 49 49 20 72 6f 77 73 6f 72 74 20 6c 61  y III rowsort la
32bd0 62 65 6c 2d 31 31 35 35 0d 0a 53 45 4c 45 43 54  bel-1155..SELECT
32be0 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   * FROM tab2 AS 
32bf0 63 6f 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20  cor0 WHERE NULL 
32c00 4e 4f 54 20 42 45 54 57 45 45 4e 20 28 20 2b 20  NOT BETWEEN ( + 
32c10 63 6f 6c 32 20 29 20 41 4e 44 20 63 6f 6c 32 20  col2 ) AND col2 
32c20 2a 20 2d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20  * - CAST ( NULL 
32c30 41 53 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d  AS INTEGER )..--
32c40 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  --....query I ro
32c50 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f  wsort..SELECT co
32c60 6c 30 20 2d 20 37 35 20 41 53 20 63 6f 6c 30 20  l0 - 75 AS col0 
32c70 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
32c80 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 30 0d 0a 31 32  0..----..-60..12
32c90 0d 0a 32 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  ..22....skipif p
32ca0 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
32cb0 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
32cc0 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
32cd0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
32ce0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32cf0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 30 20  ..SELECT + col0 
32d00 2d 20 63 6f 6c 31 20 63 6f 6c 30 20 46 52 4f 4d  - col1 col0 FROM
32d10 20 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d   tab1 cor0..----
32d20 0d 0a 33 37 0d 0a 34 34 0d 0a 38 30 0d 0a 0d 0a  ..37..44..80....
32d30 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
32d40 0a 53 45 4c 45 43 54 20 41 4c 4c 20 28 20 63 6f  .SELECT ALL ( co
32d50 6c 30 20 29 20 2b 20 33 37 20 41 53 20 63 6f 6c  l0 ) + 37 AS col
32d60 31 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  1 FROM tab2 AS c
32d70 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 31 0d 0a  or0..----..101..
32d80 31 31 32 0d 0a 38 33 0d 0a 0d 0a 6f 6e 6c 79 69  112..83....onlyi
32d90 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66 6f  f mysql # DIV fo
32da0 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69  r integer divisi
32db0 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f  on: ..query I ro
32dc0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 35 39  wsort label-1159
32dd0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
32de0 54 20 2b 20 35 31 20 44 49 56 20 2b 20 28 20 33  T + 51 DIV + ( 3
32df0 33 20 2a 20 36 37 20 29 20 2d 20 28 20 63 6f 6c  3 * 67 ) - ( col
32e00 31 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  1 ) FROM tab2 AS
32e10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31   cor0..----..-51
32e20 0d 0a 2d 36 37 0d 0a 2d 37 37 0d 0a 0d 0a 73 6b  ..-67..-77....sk
32e30 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
32e40 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
32e50 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32e60 65 6c 2d 31 31 35 39 0d 0a 53 45 4c 45 43 54 20  el-1159..SELECT 
32e70 44 49 53 54 49 4e 43 54 20 2b 20 35 31 20 2f 20  DISTINCT + 51 / 
32e80 2b 20 28 20 33 33 20 2a 20 36 37 20 29 20 2d 20  + ( 33 * 67 ) - 
32e90 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  ( col1 ) FROM ta
32ea0 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
32eb0 0d 0a 2d 35 31 0d 0a 2d 36 37 0d 0a 2d 37 37 0d  ..-51..-67..-77.
32ec0 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
32ed0 72 74 0d 0a 53 45 4c 45 43 54 20 33 33 20 2b 20  rt..SELECT 33 + 
32ee0 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 0d 0a  col0 FROM tab0..
32ef0 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 31 33 30 0d 0a  ----..120..130..
32f00 34 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  48....onlyif mys
32f10 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
32f20 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
32f30 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
32f40 20 6c 61 62 65 6c 2d 31 31 36 31 0d 0a 53 45 4c   label-1161..SEL
32f50 45 43 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 44  ECT ALL + col2 D
32f60 49 56 20 2b 20 63 6f 6c 30 20 2d 20 63 6f 6c 30  IV + col0 - col0
32f70 20 2a 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62   * col1 FROM tab
32f80 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 32 35 0d 0a 2d  1..----..-425..-
32f90 34 32 37 37 0d 0a 2d 37 31 33 0d 0a 0d 0a 73 6b  4277..-713....sk
32fa0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
32fb0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
32fc0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
32fd0 65 6c 2d 31 31 36 31 0d 0a 53 45 4c 45 43 54 20  el-1161..SELECT 
32fe0 41 4c 4c 20 2b 20 63 6f 6c 32 20 2f 20 2b 20 63  ALL + col2 / + c
32ff0 6f 6c 30 20 2d 20 63 6f 6c 30 20 2a 20 63 6f 6c  ol0 - col0 * col
33000 31 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  1 FROM tab1..---
33010 2d 0d 0a 2d 34 32 35 0d 0a 2d 34 32 37 37 0d 0a  -..-425..-4277..
33020 2d 37 31 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -713....onlyif m
33030 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
33040 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
33050 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33060 2d 31 31 36 32 0d 0a 53 45 4c 45 43 54 20 2b 20  -1162..SELECT + 
33070 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2b 20 43  COUNT( * ) + + C
33080 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f 4d 20 28  OUNT( * ) FROM (
33090 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 43 52   tab0 AS cor0 CR
330a0 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 29 0d  OSS JOIN tab2 ).
330b0 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a 73 6b 69  .----..18....ski
330c0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
330d0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
330e0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
330f0 6c 2d 31 31 36 32 0d 0a 53 45 4c 45 43 54 20 2b  l-1162..SELECT +
33100 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2b   COUNT ( * ) + +
33110 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f   COUNT ( * ) FRO
33120 4d 20 28 20 74 61 62 30 20 41 53 20 63 6f 72 30  M ( tab0 AS cor0
33130 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32   CROSS JOIN tab2
33140 20 29 0d 0a 2d 2d 2d 2d 0d 0a 31 38 0d 0a 0d 0a   )..----..18....
33150 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
33160 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2a 20  t..SELECT ALL * 
33170 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
33180 30 20 57 48 45 52 45 20 4e 4f 54 20 28 20 63 6f  0 WHERE NOT ( co
33190 6c 30 20 2b 20 2b 20 63 6f 6c 32 20 29 20 49 53  l0 + + col2 ) IS
331a0 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76   NULL..----..9 v
331b0 61 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f  alues hashing to
331c0 20 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34   c6c0a4111b36d04
331d0 64 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61  dbc811a11e4d54ca
331e0 64 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  d....query I row
331f0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
33200 20 2b 20 63 6f 6c 30 20 2b 20 37 35 20 2a 20 36   + col0 + 75 * 6
33210 33 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63  3 FROM tab2 AS c
33220 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 34 37 37 31 0d  or0..----..4771.
33230 0a 34 37 38 39 0d 0a 34 38 30 30 0d 0a 0d 0a 6f  .4789..4800....o
33240 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67  nlyif mysql # ag
33250 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20  gregate syntax: 
33260 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33270 74 20 6c 61 62 65 6c 2d 31 31 36 35 0d 0a 53 45  t label-1165..SE
33280 4c 45 43 54 20 2b 20 2b 20 43 4f 55 4e 54 28 20  LECT + + COUNT( 
33290 2a 20 29 20 2a 20 2d 20 35 34 20 46 52 4f 4d 20  * ) * - 54 FROM 
332a0 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab2 AS cor0..--
332b0 2d 2d 0d 0a 2d 31 36 32 0d 0a 0d 0a 73 6b 69 70  --..-162....skip
332c0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
332d0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
332e0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
332f0 2d 31 31 36 35 0d 0a 53 45 4c 45 43 54 20 2b 20  -1165..SELECT + 
33300 2b 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2a 20  + COUNT ( * ) * 
33310 2d 20 35 34 20 46 52 4f 4d 20 74 61 62 32 20 41  - 54 FROM tab2 A
33320 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
33330 36 32 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  62....skipif pos
33340 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
33350 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
33360 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
33370 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
33380 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
33390 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
333a0 63 6f 6c 32 20 2a 20 2b 20 36 30 20 63 6f 6c 30  col2 * + 60 col0
333b0 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
333c0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 33 38 30 0d 0a  r0..----..1380..
333d0 32 34 30 30 0d 0a 33 34 38 30 0d 0a 0d 0a 6f 6e  2400..3480....on
333e0 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
333f0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
33400 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
33410 20 6c 61 62 65 6c 2d 31 31 36 37 0d 0a 53 45 4c   label-1167..SEL
33420 45 43 54 20 2d 20 34 34 20 2a 20 53 55 4d 28 20  ECT - 44 * SUM( 
33430 2b 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20 74 61  + col1 ) FROM ta
33440 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b2 AS cor0..----
33450 0d 0a 2d 38 35 38 30 0d 0a 0d 0a 73 6b 69 70 69  ..-8580....skipi
33460 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
33470 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
33480 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
33490 31 31 36 37 0d 0a 53 45 4c 45 43 54 20 2d 20 34  1167..SELECT - 4
334a0 34 20 2a 20 53 55 4d 20 28 20 2b 20 63 6f 6c 31  4 * SUM ( + col1
334b0 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20   ) FROM tab2 AS 
334c0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35 38  cor0..----..-858
334d0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
334e0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
334f0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
33500 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
33510 36 38 0d 0a 53 45 4c 45 43 54 20 28 20 4d 49 4e  68..SELECT ( MIN
33520 28 20 41 4c 4c 20 63 6f 6c 30 20 29 20 29 20 46  ( ALL col0 ) ) F
33530 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
33540 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 0d 0a 73 6b  ..----..51....sk
33550 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33560 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33570 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33580 65 6c 2d 31 31 36 38 0d 0a 53 45 4c 45 43 54 20  el-1168..SELECT 
33590 28 20 4d 49 4e 20 28 20 41 4c 4c 20 63 6f 6c 30  ( MIN ( ALL col0
335a0 20 29 20 29 20 46 52 4f 4d 20 74 61 62 31 20 41   ) ) FROM tab1 A
335b0 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31  S cor0..----..51
335c0 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
335d0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f  ort..SELECT - co
335e0 6c 32 20 2b 20 2b 20 63 6f 6c 31 20 41 53 20 63  l2 + + col1 AS c
335f0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f  ol0 FROM tab0 co
33600 72 30 20 57 48 45 52 45 20 4e 4f 54 20 4e 55 4c  r0 WHERE NOT NUL
33610 4c 20 4e 4f 54 20 49 4e 20 28 20 2b 20 39 38 20  L NOT IN ( + 98 
33620 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79  )..----....query
33630 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
33640 43 54 20 63 6f 6c 31 20 2a 20 38 34 20 46 52 4f  CT col1 * 84 FRO
33650 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57  M tab0 AS cor0 W
33660 48 45 52 45 20 4e 4f 54 20 2b 20 38 20 2b 20 36  HERE NOT + 8 + 6
33670 32 20 2a 20 2b 20 63 6f 6c 32 20 49 53 20 4e 4f  2 * + col2 IS NO
33680 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  T NULL..----....
33690 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
336a0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
336b0 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
336c0 72 74 20 6c 61 62 65 6c 2d 31 31 37 31 0d 0a 53  rt label-1171..S
336d0 45 4c 45 43 54 20 41 4c 4c 20 2d 20 2d 20 4d 41  ELECT ALL - - MA
336e0 58 28 20 63 6f 6c 32 20 29 20 41 53 20 63 6f 6c  X( col2 ) AS col
336f0 30 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  0 FROM tab0 cor0
33700 0d 0a 2d 2d 2d 2d 0d 0a 39 39 0d 0a 0d 0a 73 6b  ..----..99....sk
33710 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33720 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33730 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33740 65 6c 2d 31 31 37 31 0d 0a 53 45 4c 45 43 54 20  el-1171..SELECT 
33750 41 4c 4c 20 2d 20 2d 20 4d 41 58 20 28 20 63 6f  ALL - - MAX ( co
33760 6c 32 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f  l2 ) AS col0 FRO
33770 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
33780 2d 0d 0a 39 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  -..99....onlyif 
33790 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
337a0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
337b0 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
337c0 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 32 0d 0a  ort label-1172..
337d0 53 45 4c 45 43 54 20 2b 20 43 41 53 54 28 20 2d  SELECT + CAST( -
337e0 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44 20   col2 AS SIGNED 
337f0 29 20 2a 20 39 37 20 46 52 4f 4d 20 74 61 62 32  ) * 97 FROM tab2
33800 20 57 48 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c   WHERE NOT ( NUL
33810 4c 20 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d  L ) IS NOT NULL.
33820 0a 2d 2d 2d 2d 0d 0a 2d 32 32 33 31 0d 0a 2d 33  .----..-2231..-3
33830 38 38 30 0d 0a 2d 35 36 32 36 0d 0a 0d 0a 73 6b  880..-5626....sk
33840 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
33850 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
33860 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
33870 65 6c 2d 31 31 37 32 0d 0a 53 45 4c 45 43 54 20  el-1172..SELECT 
33880 2b 20 43 41 53 54 20 28 20 2d 20 63 6f 6c 32 20  + CAST ( - col2 
33890 41 53 20 49 4e 54 45 47 45 52 20 29 20 2a 20 39  AS INTEGER ) * 9
338a0 37 20 46 52 4f 4d 20 74 61 62 32 20 57 48 45 52  7 FROM tab2 WHER
338b0 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29 20 49  E NOT ( NULL ) I
338c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
338d0 0d 0a 2d 32 32 33 31 0d 0a 2d 33 38 38 30 0d 0a  ..-2231..-3880..
338e0 2d 35 36 32 36 0d 0a 0d 0a 71 75 65 72 79 20 49  -5626....query I
338f0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
33900 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 57  CT * FROM tab2 W
33910 48 45 52 45 20 4e 4f 54 20 2d 20 39 32 20 2f 20  HERE NOT - 92 / 
33920 63 6f 6c 31 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  col1 IS NOT NULL
33930 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20  ..----....query 
33940 49 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  III rowsort..SEL
33950 45 43 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46  ECT DISTINCT * F
33960 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 2d  ROM tab0 WHERE -
33970 20 37 32 20 3d 20 28 20 4e 55 4c 4c 20 29 0d 0a   72 = ( NULL )..
33980 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
33990 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
339a0 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
339b0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
339c0 2d 31 31 37 35 0d 0a 53 45 4c 45 43 54 20 44 49  -1175..SELECT DI
339d0 53 54 49 4e 43 54 20 2b 20 32 32 20 2a 20 2b 20  STINCT + 22 * + 
339e0 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52 4f  - COUNT( * ) FRO
339f0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  M tab2..----..-6
33a00 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  6....skipif mysq
33a10 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
33a20 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  le..query I rows
33a30 6f 72 74 20 6c 61 62 65 6c 2d 31 31 37 35 0d 0a  ort label-1175..
33a40 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
33a50 2b 20 32 32 20 2a 20 2b 20 2d 20 43 4f 55 4e 54  + 22 * + - COUNT
33a60 20 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32   ( * ) FROM tab2
33a70 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 0d 0a 71  ..----..-66....q
33a80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
33a90 53 45 4c 45 43 54 20 32 34 20 2a 20 2d 20 63 6f  SELECT 24 * - co
33aa0 6c 30 20 2b 20 2d 20 63 6f 6c 31 20 41 53 20 63  l0 + - col1 AS c
33ab0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 57 48  ol0 FROM tab1 WH
33ac0 45 52 45 20 4e 4f 54 20 28 20 4e 55 4c 4c 20 29  ERE NOT ( NULL )
33ad0 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a   IS NULL..----..
33ae0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
33af0 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20  t..SELECT ALL - 
33b00 32 39 20 2a 20 63 6f 6c 32 20 41 53 20 63 6f 6c  29 * col2 AS col
33b10 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d  0 FROM tab1..---
33b20 2d 0d 0a 2d 31 37 31 31 0d 0a 2d 31 39 37 32 0d  -..-1711..-1972.
33b30 0a 2d 32 37 38 34 0d 0a 0d 0a 71 75 65 72 79 20  .-2784....query 
33b40 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33b50 54 20 2b 20 63 6f 6c 30 20 2a 20 37 36 20 41 53  T + col0 * 76 AS
33b60 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d   col2 FROM tab2.
33b70 0a 2d 2d 2d 2d 0d 0a 33 34 39 36 0d 0a 34 38 36  .----..3496..486
33b80 34 0d 0a 35 37 30 30 0d 0a 0d 0a 71 75 65 72 79  4..5700....query
33b90 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
33ba0 43 54 20 41 4c 4c 20 63 6f 6c 30 20 46 52 4f 4d  CT ALL col0 FROM
33bb0 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57 48   tab2 AS cor0 WH
33bc0 45 52 45 20 34 33 20 2a 20 63 6f 6c 32 20 42 45  ERE 43 * col2 BE
33bd0 54 57 45 45 4e 20 63 6f 6c 32 20 41 4e 44 20 4e  TWEEN col2 AND N
33be0 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c  ULL..----....onl
33bf0 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72  yif mysql # aggr
33c00 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a  egate syntax: ..
33c10 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
33c20 6c 61 62 65 6c 2d 31 31 38 30 0d 0a 53 45 4c 45  label-1180..SELE
33c30 43 54 20 44 49 53 54 49 4e 43 54 20 2d 20 2b 20  CT DISTINCT - + 
33c40 43 4f 55 4e 54 28 20 63 6f 6c 31 20 29 20 46 52  COUNT( col1 ) FR
33c50 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
33c60 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
33c70 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
33c80 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
33c90 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
33ca0 6c 2d 31 31 38 30 0d 0a 53 45 4c 45 43 54 20 44  l-1180..SELECT D
33cb0 49 53 54 49 4e 43 54 20 2d 20 2b 20 43 4f 55 4e  ISTINCT - + COUN
33cc0 54 20 28 20 63 6f 6c 31 20 29 20 46 52 4f 4d 20  T ( col1 ) FROM 
33cd0 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
33ce0 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 71 75 65 72 79 20  --..-3....query 
33cf0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
33d00 54 20 41 4c 4c 20 2b 20 63 6f 6c 32 20 2a 20 2d  T ALL + col2 * -
33d10 20 31 34 20 46 52 4f 4d 20 74 61 62 32 20 63 6f   14 FROM tab2 co
33d20 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 32 32 0d 0a  r0..----..-322..
33d30 2d 35 36 30 0d 0a 2d 38 31 32 0d 0a 0d 0a 71 75  -560..-812....qu
33d40 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74 0d  ery III rowsort.
33d50 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74  .SELECT * FROM t
33d60 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45 52  ab1 AS cor0 WHER
33d70 45 20 4e 4f 54 20 33 39 20 2b 20 2b 20 32 37 20  E NOT 39 + + 27 
33d80 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 30 20 41  BETWEEN - col0 A
33d90 4e 44 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 35  ND col0..----..5
33da0 31 0d 0a 31 34 0d 0a 39 36 0d 0a 0d 0a 71 75 65  1..14..96....que
33db0 72 79 20 49 49 49 49 49 49 20 72 6f 77 73 6f 72  ry IIIIII rowsor
33dc0 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
33dd0 20 74 61 62 30 20 63 6f 72 30 20 4a 4f 49 4e 20   tab0 cor0 JOIN 
33de0 74 61 62 31 20 41 53 20 63 6f 72 31 20 4f 4e 20  tab1 AS cor1 ON 
33df0 4e 55 4c 4c 20 49 53 20 4e 4f 54 20 4e 55 4c 4c  NULL IS NOT NULL
33e00 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66  ..----....onlyif
33e10 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61   mysql # aggrega
33e20 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20 66  te syntax: DIV f
33e30 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
33e40 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
33e50 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
33e60 34 0d 0a 53 45 4c 45 43 54 20 2b 20 39 38 20 2b  4..SELECT + 98 +
33e70 20 2d 20 2d 20 4d 49 4e 28 20 41 4c 4c 20 2b 20   - - MIN( ALL + 
33e80 2d 20 63 6f 6c 30 20 29 20 2b 20 28 20 2b 20 4d  - col0 ) + ( + M
33e90 49 4e 28 20 41 4c 4c 20 2b 20 63 6f 6c 30 20 29  IN( ALL + col0 )
33ea0 20 29 20 44 49 56 20 39 30 20 41 53 20 63 6f 6c   ) DIV 90 AS col
33eb0 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
33ec0 2d 0d 0a 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  -..1....skipif m
33ed0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
33ee0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
33ef0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38  owsort label-118
33f00 34 0d 0a 53 45 4c 45 43 54 20 2b 20 39 38 20 2b  4..SELECT + 98 +
33f10 20 2d 20 2d 20 4d 49 4e 20 28 20 41 4c 4c 20 2b   - - MIN ( ALL +
33f20 20 2d 20 63 6f 6c 30 20 29 20 2b 20 28 20 2b 20   - col0 ) + ( + 
33f30 4d 49 4e 20 28 20 41 4c 4c 20 2b 20 63 6f 6c 30  MIN ( ALL + col0
33f40 20 29 20 29 20 2f 20 39 30 20 41 53 20 63 6f 6c   ) ) / 90 AS col
33f50 31 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d  1 FROM tab0..---
33f60 2d 0d 0a 31 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  -..1....onlyif m
33f70 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
33f80 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
33f90 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
33fa0 2d 31 31 38 35 0d 0a 53 45 4c 45 43 54 20 2d 20  -1185..SELECT - 
33fb0 4d 49 4e 28 20 41 4c 4c 20 31 30 20 29 20 46 52  MIN( ALL 10 ) FR
33fc0 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
33fd0 54 20 2b 20 2d 20 63 6f 6c 30 20 3e 3d 20 2d 20  T + - col0 >= - 
33fe0 63 6f 6c 30 20 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d  col0 * col2..---
33ff0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
34000 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
34010 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
34020 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
34030 31 31 38 35 0d 0a 53 45 4c 45 43 54 20 2d 20 4d  1185..SELECT - M
34040 49 4e 20 28 20 41 4c 4c 20 31 30 20 29 20 46 52  IN ( ALL 10 ) FR
34050 4f 4d 20 74 61 62 32 20 57 48 45 52 45 20 4e 4f  OM tab2 WHERE NO
34060 54 20 2b 20 2d 20 63 6f 6c 30 20 3e 3d 20 2d 20  T + - col0 >= - 
34070 63 6f 6c 30 20 2a 20 63 6f 6c 32 0d 0a 2d 2d 2d  col0 * col2..---
34080 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 71 75 65 72 79  -..NULL....query
34090 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45   I rowsort..SELE
340a0 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 63 6f  CT DISTINCT + co
340b0 6c 32 20 2b 20 2d 20 2b 20 63 6f 6c 31 20 2b 20  l2 + - + col1 + 
340c0 37 39 20 2b 20 38 31 20 2a 20 2d 20 63 6f 6c 31  79 + 81 * - col1
340d0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
340e0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 37 32 0d 0a  r0..----..-272..
340f0 2d 33 37 30 37 0d 0a 2d 39 37 33 0d 0a 0d 0a 71  -3707..-973....q
34100 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
34110 53 45 4c 45 43 54 20 2b 20 2d 20 63 6f 6c 30 20  SELECT + - col0 
34120 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72  FROM tab0 AS cor
34130 30 20 57 48 45 52 45 20 63 6f 6c 30 20 4e 4f 54  0 WHERE col0 NOT
34140 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20 41 4e   BETWEEN NULL AN
34150 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  D NULL..----....
34160 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
34170 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
34180 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73   ..query II rows
34190 6f 72 74 20 6c 61 62 65 6c 2d 31 31 38 38 0d 0a  ort label-1188..
341a0 53 45 4c 45 43 54 20 2b 20 43 4f 55 4e 54 28 20  SELECT + COUNT( 
341b0 2a 20 29 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55  * ) AS col2, COU
341c0 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20  NT( * ) AS col0 
341d0 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72  FROM tab1 AS cor
341e0 30 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d  0..----..3..3...
341f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34200 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34210 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
34220 20 6c 61 62 65 6c 2d 31 31 38 38 0d 0a 53 45 4c   label-1188..SEL
34230 45 43 54 20 2b 20 43 4f 55 4e 54 20 28 20 2a 20  ECT + COUNT ( * 
34240 29 20 41 53 20 63 6f 6c 32 2c 20 43 4f 55 4e 54  ) AS col2, COUNT
34250 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46   ( * ) AS col0 F
34260 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
34270 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 33 0d 0a 0d 0a  ..----..3..3....
34280 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
34290 74 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  t..SELECT DISTIN
342a0 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41  CT * FROM tab2 A
342b0 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54  S cor0 WHERE NOT
342c0 20 28 20 4e 55 4c 4c 20 29 20 4e 4f 54 20 49 4e   ( NULL ) NOT IN
342d0 20 28 20 2d 20 2b 20 63 6f 6c 30 20 2a 20 2b 20   ( - + col0 * + 
342e0 63 6f 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  col0 )..----....
342f0 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
34300 74 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  t..SELECT * FROM
34310 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48   tab1 AS cor0 WH
34320 45 52 45 20 2b 20 36 34 20 49 53 20 4e 4f 54 20  ERE + 64 IS NOT 
34330 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 39 20 76 61  NULL..----..9 va
34340 6c 75 65 73 20 68 61 73 68 69 6e 67 20 74 6f 20  lues hashing to 
34350 63 36 63 30 61 34 31 31 31 62 33 36 64 30 34 64  c6c0a4111b36d04d
34360 62 63 38 31 31 61 31 31 65 34 64 35 34 63 61 64  bc811a11e4d54cad
34370 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
34380 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 32  ort..SELECT col2
34390 20 2a 20 2d 20 39 36 20 41 53 20 63 6f 6c 31 20   * - 96 AS col1 
343a0 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d  FROM tab1..----.
343b0 0a 2d 35 36 36 34 0d 0a 2d 36 35 32 38 0d 0a 2d  .-5664..-6528..-
343c0 39 32 31 36 0d 0a 0d 0a 71 75 65 72 79 20 49 20  9216....query I 
343d0 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
343e0 2d 20 38 20 2b 20 35 32 20 41 53 20 63 6f 6c 31  - 8 + 52 AS col1
343f0 20 46 52 4f 4d 20 74 61 62 30 20 57 48 45 52 45   FROM tab0 WHERE
34400 20 2d 20 31 35 20 49 53 20 4e 4f 54 20 4e 55 4c   - 15 IS NOT NUL
34410 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 34 0d 0a 34 34 0d  L..----..44..44.
34420 0a 34 34 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .44....query I r
34430 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b  owsort..SELECT +
34440 20 63 6f 6c 30 20 2d 20 63 6f 6c 30 20 41 53 20   col0 - col0 AS 
34450 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 57  col0 FROM tab2 W
34460 48 45 52 45 20 2b 20 63 6f 6c 31 20 2a 20 2d 20  HERE + col1 * - 
34470 2b 20 63 6f 6c 30 20 2a 20 2d 20 63 6f 6c 31 20  + col0 * - col1 
34480 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  IS NULL..----...
34490 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
344a0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 32 20  ..SELECT + col2 
344b0 2b 20 63 6f 6c 30 20 2b 20 39 32 20 2a 20 2d 20  + col0 + 92 * - 
344c0 63 6f 6c 31 20 41 53 20 63 6f 6c 31 20 46 52 4f  col1 AS col1 FRO
344d0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d 34  M tab2..----..-4
344e0 36 32 33 0d 0a 2d 36 30 33 31 0d 0a 2d 36 39 38  623..-6031..-698
344f0 30 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  0....onlyif mysq
34500 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
34510 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
34520 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31  rowsort label-11
34530 39 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  95..SELECT DISTI
34540 4e 43 54 20 36 33 20 2a 20 2d 20 2d 20 43 4f 55  NCT 63 * - - COU
34550 4e 54 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  NT( * ) AS col2 
34560 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
34570 0a 31 38 39 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .189....skipif m
34580 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
34590 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
345a0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 31 39  owsort label-119
345b0 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
345c0 43 54 20 36 33 20 2a 20 2d 20 2d 20 43 4f 55 4e  CT 63 * - - COUN
345d0 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32 20  T ( * ) AS col2 
345e0 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d  FROM tab2..----.
345f0 0a 31 38 39 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  .189....onlyif m
34600 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
34610 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
34620 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
34630 72 74 20 6c 61 62 65 6c 2d 31 31 39 36 0d 0a 53  rt label-1196..S
34640 45 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20 43  ELECT col1 * + C
34650 41 53 54 28 20 2b 20 63 6f 6c 32 20 41 53 20 53  AST( + col2 AS S
34660 49 47 4e 45 44 20 29 20 2b 20 2d 20 2d 20 43 41  IGNED ) + - - CA
34670 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
34680 45 44 20 29 20 2d 20 2b 20 63 6f 6c 30 20 46 52  ED ) - + col0 FR
34690 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 4e  OM tab0..----..N
346a0 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d  ULL..NULL..NULL.
346b0 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
346c0 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
346d0 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
346e0 74 20 6c 61 62 65 6c 2d 31 31 39 36 0d 0a 53 45  t label-1196..SE
346f0 4c 45 43 54 20 63 6f 6c 31 20 2a 20 2b 20 43 41  LECT col1 * + CA
34700 53 54 20 28 20 2b 20 63 6f 6c 32 20 41 53 20 49  ST ( + col2 AS I
34710 4e 54 45 47 45 52 20 29 20 2b 20 2d 20 2d 20 43  NTEGER ) + - - C
34720 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e  AST ( NULL AS IN
34730 54 45 47 45 52 20 29 20 2d 20 2b 20 63 6f 6c 30  TEGER ) - + col0
34740 20 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d   FROM tab0..----
34750 0d 0a 4e 55 4c 4c 0d 0a 4e 55 4c 4c 0d 0a 4e 55  ..NULL..NULL..NU
34760 4c 4c 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  LL....query I ro
34770 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20  wsort..SELECT - 
34780 63 6f 6c 30 20 2f 20 63 6f 6c 32 20 41 53 20 63  col0 / col2 AS c
34790 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 63 6f  ol2 FROM tab2 co
347a0 72 30 20 57 48 45 52 45 20 4e 55 4c 4c 20 3e 20  r0 WHERE NULL > 
347b0 2d 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a  - col0..----....
347c0 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
347d0 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e  AST syntax: SIGN
347e0 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79  ED type: ..query
347f0 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
34800 6c 2d 31 31 39 38 0d 0a 53 45 4c 45 43 54 20 44  l-1198..SELECT D
34810 49 53 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32  ISTINCT - + col2
34820 20 2b 20 32 31 20 41 53 20 63 6f 6c 32 2c 20 2d   + 21 AS col2, -
34830 20 43 41 53 54 28 20 35 20 41 53 20 53 49 47 4e   CAST( 5 AS SIGN
34840 45 44 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  ED ) FROM tab2 A
34850 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
34860 39 0d 0a 2d 35 0d 0a 2d 32 0d 0a 2d 35 0d 0a 2d  9..-5..-2..-5..-
34870 33 37 0d 0a 2d 35 0d 0a 0d 0a 73 6b 69 70 69 66  37..-5....skipif
34880 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
34890 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
348a0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
348b0 31 31 39 38 0d 0a 53 45 4c 45 43 54 20 44 49 53  1198..SELECT DIS
348c0 54 49 4e 43 54 20 2d 20 2b 20 63 6f 6c 32 20 2b  TINCT - + col2 +
348d0 20 32 31 20 41 53 20 63 6f 6c 32 2c 20 2d 20 43   21 AS col2, - C
348e0 41 53 54 20 28 20 35 20 41 53 20 49 4e 54 45 47  AST ( 5 AS INTEG
348f0 45 52 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41  ER ) FROM tab2 A
34900 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 31  S cor0..----..-1
34910 39 0d 0a 2d 35 0d 0a 2d 32 0d 0a 2d 35 0d 0a 2d  9..-5..-2..-5..-
34920 33 37 0d 0a 2d 35 0d 0a 0d 0a 71 75 65 72 79 20  37..-5....query 
34930 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
34940 54 20 41 4c 4c 20 2d 20 63 6f 6c 31 20 2d 20 2b  T ALL - col1 - +
34950 20 2d 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62   - col0 FROM tab
34960 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36  0 cor0..----..-6
34970 36 0d 0a 36 36 0d 0a 39 36 0d 0a 0d 0a 71 75 65  6..66..96....que
34980 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
34990 4c 45 43 54 20 41 4c 4c 20 63 6f 6c 31 20 2d 20  LECT ALL col1 - 
349a0 2b 20 31 33 20 41 53 20 63 6f 6c 30 20 46 52 4f  + 13 AS col0 FRO
349b0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 33 38  M tab2..----..38
349c0 0d 0a 35 34 0d 0a 36 34 0d 0a 0d 0a 6f 6e 6c 79  ..54..64....only
349d0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
349e0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71  gate syntax: ..q
349f0 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34a00 61 62 65 6c 2d 31 32 30 31 0d 0a 53 45 4c 45 43  abel-1201..SELEC
34a10 54 20 2b 20 2b 20 43 4f 55 4e 54 28 20 41 4c 4c  T + + COUNT( ALL
34a20 20 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   6 ) AS col0 FRO
34a30 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 43  M tab1 AS cor0 C
34a40 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20 63  ROSS JOIN tab2 c
34a50 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d 0a  or1..----..9....
34a60 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
34a70 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
34a80 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
34a90 61 62 65 6c 2d 31 32 30 31 0d 0a 53 45 4c 45 43  abel-1201..SELEC
34aa0 54 20 2b 20 2b 20 43 4f 55 4e 54 20 28 20 41 4c  T + + COUNT ( AL
34ab0 4c 20 36 20 29 20 41 53 20 63 6f 6c 30 20 46 52  L 6 ) AS col0 FR
34ac0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20  OM tab1 AS cor0 
34ad0 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 32 20  CROSS JOIN tab2 
34ae0 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a 39 0d 0a 0d  cor1..----..9...
34af0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
34b00 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
34b10 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34b20 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 32 0d 0a  ort label-1202..
34b30 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
34b40 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 2b 20 2d  - COUNT( * ) + -
34b50 20 53 55 4d 28 20 2d 20 33 33 20 29 20 41 53 20   SUM( - 33 ) AS 
34b60 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 57  col2 FROM tab0 W
34b70 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3d 20  HERE ( NULL ) = 
34b80 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c  col0..----..NULL
34b90 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
34ba0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
34bb0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
34bc0 72 74 20 6c 61 62 65 6c 2d 31 32 30 32 0d 0a 53  rt label-1202..S
34bd0 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 2d  ELECT DISTINCT -
34be0 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 2b 20 2d   COUNT ( * ) + -
34bf0 20 53 55 4d 20 28 20 2d 20 33 33 20 29 20 41 53   SUM ( - 33 ) AS
34c00 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 30 20   col2 FROM tab0 
34c10 57 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 3d  WHERE ( NULL ) =
34c20 20 63 6f 6c 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c   col0..----..NUL
34c30 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  L....onlyif mysq
34c40 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
34c50 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
34c60 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
34c70 30 33 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  03..SELECT DISTI
34c80 4e 43 54 20 2d 20 43 4f 55 4e 54 28 20 2b 20 63  NCT - COUNT( + c
34c90 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46 52  ol1 ) AS col2 FR
34ca0 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d  OM tab1 AS cor0.
34cb0 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69  .----..-3....ski
34cc0 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
34cd0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
34ce0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
34cf0 6c 2d 31 32 30 33 0d 0a 53 45 4c 45 43 54 20 44  l-1203..SELECT D
34d00 49 53 54 49 4e 43 54 20 2d 20 43 4f 55 4e 54 20  ISTINCT - COUNT 
34d10 28 20 2b 20 63 6f 6c 31 20 29 20 41 53 20 63 6f  ( + col1 ) AS co
34d20 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20  l2 FROM tab1 AS 
34d30 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a  cor0..----..-3..
34d40 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72  ..query I rowsor
34d50 74 0d 0a 53 45 4c 45 43 54 20 28 20 2b 20 33 34  t..SELECT ( + 34
34d60 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20   ) AS col0 FROM 
34d70 74 61 62 31 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab1 cor0..----.
34d80 0a 33 34 0d 0a 33 34 0d 0a 33 34 0d 0a 0d 0a 71  .34..34..34....q
34d90 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72 74  uery III rowsort
34da0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
34db0 54 20 2a 20 46 52 4f 4d 20 74 61 62 32 20 41 53  T * FROM tab2 AS
34dc0 20 63 6f 72 30 20 57 48 45 52 45 20 4e 4f 54 20   cor0 WHERE NOT 
34dd0 28 20 2b 20 37 39 20 2a 20 2b 20 2b 20 63 6f 6c  ( + 79 * + + col
34de0 30 20 2f 20 2d 20 2b 20 35 30 20 2b 20 2d 20 2b  0 / - + 50 + - +
34df0 20 63 6f 6c 32 20 2b 20 63 6f 6c 30 20 2a 20 2b   col2 + col0 * +
34e00 20 28 20 63 6f 6c 31 20 29 20 29 20 4e 4f 54 20   ( col1 ) ) NOT 
34e10 42 45 54 57 45 45 4e 20 2d 20 63 6f 6c 31 20 41  BETWEEN - col1 A
34e20 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 0d  ND NULL..----...
34e30 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
34e40 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
34e50 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  : ..query I rows
34e60 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 36 0d 0a  ort label-1206..
34e70 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28 20  SELECT - COUNT( 
34e80 2a 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  * ) AS col2 FROM
34e90 20 74 61 62 30 20 41 53 20 63 6f 72 30 20 57 48   tab0 AS cor0 WH
34ea0 45 52 45 20 4e 4f 54 20 2d 20 32 36 20 2b 20 63  ERE NOT - 26 + c
34eb0 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d 2d 2d  ol1 IS NULL..---
34ec0 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..-3....skipif 
34ed0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
34ee0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
34ef0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
34f00 30 36 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55  06..SELECT - COU
34f10 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c 32  NT ( * ) AS col2
34f20 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f   FROM tab0 AS co
34f30 72 30 20 57 48 45 52 45 20 4e 4f 54 20 2d 20 32  r0 WHERE NOT - 2
34f40 36 20 2b 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c  6 + col1 IS NULL
34f50 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 6f 6e  ..----..-3....on
34f60 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67  lyif mysql # agg
34f70 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 0d  regate syntax: .
34f80 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
34f90 20 6c 61 62 65 6c 2d 31 32 30 37 0d 0a 53 45 4c   label-1207..SEL
34fa0 45 43 54 20 2d 20 4d 41 58 28 20 44 49 53 54 49  ECT - MAX( DISTI
34fb0 4e 43 54 20 36 37 20 29 20 46 52 4f 4d 20 74 61  NCT 67 ) FROM ta
34fc0 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 37 0d 0a 0d  b1..----..-67...
34fd0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
34fe0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
34ff0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
35000 6c 61 62 65 6c 2d 31 32 30 37 0d 0a 53 45 4c 45  label-1207..SELE
35010 43 54 20 2d 20 4d 41 58 20 28 20 44 49 53 54 49  CT - MAX ( DISTI
35020 4e 43 54 20 36 37 20 29 20 46 52 4f 4d 20 74 61  NCT 67 ) FROM ta
35030 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 37 0d 0a 0d  b1..----..-67...
35040 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
35050 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
35060 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
35070 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
35080 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
35090 6c 61 62 65 6c 2d 31 32 30 38 0d 0a 53 45 4c 45  label-1208..SELE
350a0 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 28 20 4e  CT ALL + CAST( N
350b0 55 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29  ULL AS DECIMAL )
350c0 20 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 28   AS col0, COUNT(
350d0 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   * ) FROM tab2..
350e0 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 0d 0a 0d  ----..NULL..3...
350f0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
35100 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
35110 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74  query II rowsort
35120 20 6c 61 62 65 6c 2d 31 32 30 38 0d 0a 53 45 4c   label-1208..SEL
35130 45 43 54 20 41 4c 4c 20 2b 20 43 41 53 54 20 28  ECT ALL + CAST (
35140 20 4e 55 4c 4c 20 41 53 20 52 45 41 4c 20 29 20   NULL AS REAL ) 
35150 41 53 20 63 6f 6c 30 2c 20 43 4f 55 4e 54 20 28  AS col0, COUNT (
35160 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 32 0d 0a   * ) FROM tab2..
35170 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 33 0d 0a 0d  ----..NULL..3...
35180 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
35190 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67  CAST syntax: agg
351a0 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44  regate syntax: D
351b0 45 43 49 4d 41 4c 20 74 79 70 65 3a 20 0d 0a 71  ECIMAL type: ..q
351c0 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
351d0 6c 61 62 65 6c 2d 31 32 30 39 0d 0a 53 45 4c 45  label-1209..SELE
351e0 43 54 20 32 39 2c 20 43 4f 55 4e 54 28 20 2a 20  CT 29, COUNT( * 
351f0 29 20 2a 20 2b 20 2b 20 43 41 53 54 28 20 4e 55  ) * + + CAST( NU
35200 4c 4c 20 41 53 20 44 45 43 49 4d 41 4c 20 29 20  LL AS DECIMAL ) 
35210 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
35220 32 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d 0a 4e 55 4c  2..----..29..NUL
35230 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  L....skipif mysq
35240 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
35250 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
35260 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 30 39 0d  sort label-1209.
35270 0a 53 45 4c 45 43 54 20 32 39 2c 20 43 4f 55 4e  .SELECT 29, COUN
35280 54 20 28 20 2a 20 29 20 2a 20 2b 20 2b 20 43 41  T ( * ) * + + CA
35290 53 54 20 28 20 4e 55 4c 4c 20 41 53 20 52 45 41  ST ( NULL AS REA
352a0 4c 20 29 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d  L ) AS col2 FROM
352b0 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 32 39 0d   tab2..----..29.
352c0 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  .NULL....onlyif 
352d0 6d 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e  mysql # CAST syn
352e0 74 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65  tax: SIGNED type
352f0 3a 20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  : ..query II row
35300 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 30 0d  sort label-1210.
35310 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54  .SELECT DISTINCT
35320 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c   - col2 AS col0,
35330 20 63 6f 6c 30 20 2f 20 2b 20 43 41 53 54 28 20   col0 / + CAST( 
35340 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20 29  NULL AS SIGNED )
35350 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61   AS col2 FROM ta
35360 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 39 0d 0a 4e  b1..----..-59..N
35370 55 4c 4c 0d 0a 2d 36 38 0d 0a 4e 55 4c 4c 0d 0a  ULL..-68..NULL..
35380 2d 39 36 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  -96..NULL....ski
35390 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
353a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
353b0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
353c0 65 6c 2d 31 32 31 30 0d 0a 53 45 4c 45 43 54 20  el-1210..SELECT 
353d0 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20  DISTINCT - col2 
353e0 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 30 20 2f 20  AS col0, col0 / 
353f0 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
35400 20 49 4e 54 45 47 45 52 20 29 20 41 53 20 63 6f   INTEGER ) AS co
35410 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
35420 2d 2d 0d 0a 2d 35 39 0d 0a 4e 55 4c 4c 0d 0a 2d  --..-59..NULL..-
35430 36 38 0d 0a 4e 55 4c 4c 0d 0a 2d 39 36 0d 0a 4e  68..NULL..-96..N
35440 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f  ULL....skipif po
35450 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67  stgresql # Postg
35460 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41  reSQL requires A
35470 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20  S when renaming 
35480 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a  output columns..
35490 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
354a0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d 20 28 20  .SELECT ALL - ( 
354b0 32 32 20 29 20 63 6f 6c 32 20 46 52 4f 4d 20 74  22 ) col2 FROM t
354c0 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 32 32 0d 0a  ab1..----..-22..
354d0 2d 32 32 0d 0a 2d 32 32 0d 0a 0d 0a 6f 6e 6c 79  -22..-22....only
354e0 69 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65  if mysql # aggre
354f0 67 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56  gate syntax: DIV
35500 20 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76   for integer div
35510 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49  ision: ..query I
35520 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35530 32 31 32 0d 0a 53 45 4c 45 43 54 20 44 49 53 54  212..SELECT DIST
35540 49 4e 43 54 20 2b 20 38 20 44 49 56 20 2d 20 2d  INCT + 8 DIV - -
35550 20 53 55 4d 28 20 35 34 20 29 20 2b 20 34 36 20   SUM( 54 ) + 46 
35560 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
35570 32 20 41 53 20 63 6f 72 30 20 57 48 45 52 45 20  2 AS cor0 WHERE 
35580 2b 20 34 38 20 2a 20 2d 20 63 6f 6c 31 20 49 53  + 48 * - col1 IS
35590 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
355a0 0a 34 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79  .46....skipif my
355b0 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74  sql # not compat
355c0 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72 6f  ible..query I ro
355d0 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31 32  wsort label-1212
355e0 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43  ..SELECT DISTINC
355f0 54 20 2b 20 38 20 2f 20 2d 20 2d 20 53 55 4d 20  T + 8 / - - SUM 
35600 28 20 35 34 20 29 20 2b 20 34 36 20 41 53 20 63  ( 54 ) + 46 AS c
35610 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol2 FROM tab2 AS
35620 20 63 6f 72 30 20 57 48 45 52 45 20 2b 20 34 38   cor0 WHERE + 48
35630 20 2a 20 2d 20 63 6f 6c 31 20 49 53 20 4e 4f 54   * - col1 IS NOT
35640 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 34 36 0d   NULL..----..46.
35650 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
35660 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53  # CAST syntax: S
35670 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75  IGNED type: ..qu
35680 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
35690 62 65 6c 2d 31 32 31 33 0d 0a 53 45 4c 45 43 54  bel-1213..SELECT
356a0 20 41 4c 4c 20 63 6f 6c 31 20 2b 20 37 33 20 46   ALL col1 + 73 F
356b0 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
356c0 4f 54 20 28 20 2d 20 63 6f 6c 32 20 2a 20 63 6f  OT ( - col2 * co
356d0 6c 31 20 2a 20 2b 20 35 36 20 2b 20 2d 20 2b 20  l1 * + 56 + - + 
356e0 43 41 53 54 28 20 2b 20 2b 20 63 6f 6c 32 20 41  CAST( + + col2 A
356f0 53 20 53 49 47 4e 45 44 20 29 20 29 20 3d 20 2d  S SIGNED ) ) = -
35700 20 35 39 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a   59..----..120..
35710 37 38 0d 0a 38 37 0d 0a 0d 0a 73 6b 69 70 69 66  78..87....skipif
35720 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d   mysql # not com
35730 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49  patible..query I
35740 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
35750 32 31 33 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  213..SELECT ALL 
35760 63 6f 6c 31 20 2b 20 37 33 20 46 52 4f 4d 20 74  col1 + 73 FROM t
35770 61 62 31 20 57 48 45 52 45 20 4e 4f 54 20 28 20  ab1 WHERE NOT ( 
35780 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 31 20 2a 20  - col2 * col1 * 
35790 2b 20 35 36 20 2b 20 2d 20 2b 20 43 41 53 54 20  + 56 + - + CAST 
357a0 28 20 2b 20 2b 20 63 6f 6c 32 20 41 53 20 49 4e  ( + + col2 AS IN
357b0 54 45 47 45 52 20 29 20 29 20 3d 20 2d 20 35 39  TEGER ) ) = - 59
357c0 0d 0a 2d 2d 2d 2d 0d 0a 31 32 30 0d 0a 37 38 0d  ..----..120..78.
357d0 0a 38 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  .87....query I r
357e0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
357f0 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 30 20 46  ISTINCT + col0 F
35800 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20 4e  ROM tab1 WHERE N
35810 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45 4e 20  ULL NOT BETWEEN 
35820 2d 20 63 6f 6c 32 20 41 4e 44 20 2d 20 63 6f 6c  - col2 AND - col
35830 31 20 2a 20 63 6f 6c 31 20 2a 20 2b 20 2d 20 28  1 * col1 * + - (
35840 20 2b 20 63 6f 6c 30 20 29 20 2a 20 2b 20 63 6f   + col0 ) * + co
35850 6c 31 0d 0a 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79  l1..----....only
35860 69 66 20 6d 79 73 71 6c 20 23 20 44 49 56 20 66  if mysql # DIV f
35870 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69 73  or integer divis
35880 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ion: ..query I r
35890 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 31  owsort label-121
358a0 35 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  5..SELECT DISTIN
358b0 43 54 20 2d 20 63 6f 6c 32 20 2a 20 63 6f 6c 32  CT - col2 * col2
358c0 20 44 49 56 20 2b 20 2b 20 63 6f 6c 32 20 46 52   DIV + + col2 FR
358d0 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 2d  OM tab2..----..-
358e0 32 33 0d 0a 2d 34 30 0d 0a 2d 35 38 0d 0a 0d 0a  23..-40..-58....
358f0 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e  skipif mysql # n
35900 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71  ot compatible..q
35910 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
35920 61 62 65 6c 2d 31 32 31 35 0d 0a 53 45 4c 45 43  abel-1215..SELEC
35930 54 20 44 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c  T DISTINCT - col
35940 32 20 2a 20 63 6f 6c 32 20 2f 20 2b 20 2b 20 63  2 * col2 / + + c
35950 6f 6c 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d  ol2 FROM tab2..-
35960 2d 2d 2d 0d 0a 2d 32 33 0d 0a 2d 34 30 0d 0a 2d  ---..-23..-40..-
35970 35 38 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  58....onlyif mys
35980 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
35990 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
359a0 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
359b0 32 31 36 0d 0a 53 45 4c 45 43 54 20 38 34 20 2b  216..SELECT 84 +
359c0 20 2d 20 2d 20 53 55 4d 28 20 2d 20 39 34 20 29   - - SUM( - 94 )
359d0 20 2a 20 38 33 20 2b 20 32 31 20 2a 20 33 34 20   * 83 + 21 * 34 
359e0 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
359f0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
35a00 0a 2d 32 32 36 30 38 0d 0a 0d 0a 73 6b 69 70 69  .-22608....skipi
35a10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
35a20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
35a30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35a40 31 32 31 36 0d 0a 53 45 4c 45 43 54 20 38 34 20  1216..SELECT 84 
35a50 2b 20 2d 20 2d 20 53 55 4d 20 28 20 2d 20 39 34  + - - SUM ( - 94
35a60 20 29 20 2a 20 38 33 20 2b 20 32 31 20 2a 20 33   ) * 83 + 21 * 3
35a70 34 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74  4 AS col2 FROM t
35a80 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
35a90 2d 0d 0a 2d 32 32 36 30 38 0d 0a 0d 0a 73 6b 69  -..-22608....ski
35aa0 70 69 66 20 70 6f 73 74 67 72 65 73 71 6c 20 23  pif postgresql #
35ab0 20 50 6f 73 74 67 72 65 53 51 4c 20 72 65 71 75   PostgreSQL requ
35ac0 69 72 65 73 20 41 53 20 77 68 65 6e 20 72 65 6e  ires AS when ren
35ad0 61 6d 69 6e 67 20 6f 75 74 70 75 74 20 63 6f 6c  aming output col
35ae0 75 6d 6e 73 0d 0a 71 75 65 72 79 20 49 49 20 72  umns..query II r
35af0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
35b00 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 2b 20 2d  ISTINCT col1 + -
35b10 20 32 38 20 63 6f 6c 32 2c 20 2b 20 63 6f 6c 31   28 col2, + col1
35b20 20 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f   FROM tab2 AS co
35b30 72 30 0d 0a 2d 2d 2d 2d 0d 0a 32 33 0d 0a 35 31  r0..----..23..51
35b40 0d 0a 33 39 0d 0a 36 37 0d 0a 34 39 0d 0a 37 37  ..39..67..49..77
35b50 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
35b60 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63 6f 6c 30  ort..SELECT col0
35b70 20 2b 20 2b 20 63 6f 6c 30 20 2b 20 2b 20 2b 20   + + col0 + + + 
35b80 63 6f 6c 30 20 2b 20 2d 20 63 6f 6c 30 20 2b 20  col0 + - col0 + 
35b90 2d 20 2d 20 63 6f 6c 31 20 2a 20 2b 20 2b 20 35  - - col1 * + + 5
35ba0 35 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  5 AS col1 FROM t
35bb0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
35bc0 2d 0d 0a 32 37 36 37 0d 0a 34 34 35 0d 0a 38 37  -..2767..445..87
35bd0 32 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  2....query I row
35be0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63  sort..SELECT - c
35bf0 6f 6c 31 20 2a 20 2d 20 38 38 20 2b 20 2b 20 2b  ol1 * - 88 + + +
35c00 20 35 35 20 46 52 4f 4d 20 74 61 62 30 20 41 53   55 FROM tab0 AS
35c10 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 34 33   cor0..----..143
35c20 0d 0a 31 39 30 33 0d 0a 37 31 38 33 0d 0a 0d 0a  ..1903..7183....
35c30 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43  onlyif mysql # C
35c40 41 53 54 20 73 79 6e 74 61 78 3a 20 61 67 67 72  AST syntax: aggr
35c50 65 67 61 74 65 20 73 79 6e 74 61 78 3a 20 53 49  egate syntax: SI
35c60 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
35c70 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
35c80 65 6c 2d 31 32 32 30 0d 0a 53 45 4c 45 43 54 20  el-1220..SELECT 
35c90 43 41 53 54 28 20 2b 20 2d 20 43 4f 55 4e 54 28  CAST( + - COUNT(
35ca0 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20 53   - + col2 ) AS S
35cb0 49 47 4e 45 44 20 29 20 2f 20 2b 20 43 4f 55 4e  IGNED ) / + COUN
35cc0 54 28 20 2a 20 29 20 2a 20 34 34 20 2b 20 43 41  T( * ) * 44 + CA
35cd0 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e  ST( NULL AS SIGN
35ce0 45 44 20 29 20 2f 20 2d 20 43 4f 55 4e 54 28 20  ED ) / - COUNT( 
35cf0 2a 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d  * ) AS col1 FROM
35d00 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
35d10 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69  ---..NULL....ski
35d20 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
35d30 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
35d40 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
35d50 6c 2d 31 32 32 30 0d 0a 53 45 4c 45 43 54 20 43  l-1220..SELECT C
35d60 41 53 54 20 28 20 2b 20 2d 20 43 4f 55 4e 54 20  AST ( + - COUNT 
35d70 28 20 2d 20 2b 20 63 6f 6c 32 20 29 20 41 53 20  ( - + col2 ) AS 
35d80 49 4e 54 45 47 45 52 20 29 20 2f 20 2b 20 43 4f  INTEGER ) / + CO
35d90 55 4e 54 20 28 20 2a 20 29 20 2a 20 34 34 20 2b  UNT ( * ) * 44 +
35da0 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53 20   CAST ( NULL AS 
35db0 49 4e 54 45 47 45 52 20 29 20 2f 20 2d 20 43 4f  INTEGER ) / - CO
35dc0 55 4e 54 20 28 20 2a 20 29 20 41 53 20 63 6f 6c  UNT ( * ) AS col
35dd0 31 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63  1 FROM tab1 AS c
35de0 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d  or0..----..NULL.
35df0 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
35e00 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
35e10 20 2a 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20   * FROM tab1 AS 
35e20 63 6f 72 30 20 57 48 45 52 45 20 28 20 2b 20 28  cor0 WHERE ( + (
35e30 20 2d 20 37 36 20 29 20 2a 20 2d 20 63 6f 6c 32   - 76 ) * - col2
35e40 20 2b 20 2d 20 37 37 20 29 20 3c 3e 20 63 6f 6c   + - 77 ) <> col
35e50 31 20 2a 20 32 31 20 2f 20 2b 20 63 6f 6c 31 0d  1 * 21 / + col1.
35e60 0a 2d 2d 2d 2d 0d 0a 39 20 76 61 6c 75 65 73 20  .----..9 values 
35e70 68 61 73 68 69 6e 67 20 74 6f 20 63 36 63 30 61  hashing to c6c0a
35e80 34 31 31 31 62 33 36 64 30 34 64 62 63 38 31 31  4111b36d04dbc811
35e90 61 31 31 65 34 64 35 34 63 61 64 0d 0a 0d 0a 6f  a11e4d54cad....o
35ea0 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 43 41  nlyif mysql # CA
35eb0 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47 4e 45  ST syntax: SIGNE
35ec0 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72 79 20  D type: ..query 
35ed0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
35ee0 31 32 32 32 0d 0a 53 45 4c 45 43 54 20 44 49 53  1222..SELECT DIS
35ef0 54 49 4e 43 54 20 2b 20 43 41 53 54 28 20 2b 20  TINCT + CAST( + 
35f00 2b 20 63 6f 6c 32 20 41 53 20 53 49 47 4e 45 44  + col2 AS SIGNED
35f10 20 29 20 2b 20 2d 20 63 6f 6c 32 20 41 53 20 63   ) + - col2 AS c
35f20 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41 53  ol0 FROM tab2 AS
35f30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a   cor0..----..0..
35f40 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23  ..skipif mysql #
35f50 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d   not compatible.
35f60 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
35f70 20 6c 61 62 65 6c 2d 31 32 32 32 0d 0a 53 45 4c   label-1222..SEL
35f80 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 43  ECT DISTINCT + C
35f90 41 53 54 20 28 20 2b 20 2b 20 63 6f 6c 32 20 41  AST ( + + col2 A
35fa0 53 20 49 4e 54 45 47 45 52 20 29 20 2b 20 2d 20  S INTEGER ) + - 
35fb0 63 6f 6c 32 20 41 53 20 63 6f 6c 30 20 46 52 4f  col2 AS col0 FRO
35fc0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a  M tab2 AS cor0..
35fd0 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 6f 6e 6c 79 69  ----..0....onlyi
35fe0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
35ff0 61 74 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75  ate syntax: ..qu
36000 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
36010 62 65 6c 2d 31 32 32 33 0d 0a 53 45 4c 45 43 54  bel-1223..SELECT
36020 20 41 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 28 20   ALL - - COUNT( 
36030 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46  col1 ) AS col1 F
36040 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
36050 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
36060 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
36070 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
36080 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36090 6c 2d 31 32 32 33 0d 0a 53 45 4c 45 43 54 20 41  l-1223..SELECT A
360a0 4c 4c 20 2d 20 2d 20 43 4f 55 4e 54 20 28 20 63  LL - - COUNT ( c
360b0 6f 6c 31 20 29 20 41 53 20 63 6f 6c 31 20 46 52  ol1 ) AS col1 FR
360c0 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 0d  OM tab0 AS cor0.
360d0 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 6f 6e 6c 79  .----..3....only
360e0 69 66 20 6d 79 73 71 6c 20 23 20 43 41 53 54 20  if mysql # CAST 
360f0 73 79 6e 74 61 78 3a 20 53 49 47 4e 45 44 20 74  syntax: SIGNED t
36100 79 70 65 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  ype: ..query I r
36110 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32  owsort label-122
36120 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49 4e  4..SELECT DISTIN
36130 43 54 20 2d 20 63 6f 6c 32 20 2a 20 2b 20 43 41  CT - col2 * + CA
36140 53 54 28 20 2b 20 63 6f 6c 30 20 41 53 20 53 49  ST( + col0 AS SI
36150 47 4e 45 44 20 29 20 41 53 20 63 6f 6c 31 20 46  GNED ) AS col1 F
36160 52 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30  ROM tab0 AS cor0
36170 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 30 35 0d 0a 2d 38  ..----..-705..-8
36180 37 30 0d 0a 2d 39 36 30 33 0d 0a 0d 0a 73 6b 69  70..-9603....ski
36190 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
361a0 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
361b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
361c0 6c 2d 31 32 32 34 0d 0a 53 45 4c 45 43 54 20 44  l-1224..SELECT D
361d0 49 53 54 49 4e 43 54 20 2d 20 63 6f 6c 32 20 2a  ISTINCT - col2 *
361e0 20 2b 20 43 41 53 54 20 28 20 2b 20 63 6f 6c 30   + CAST ( + col0
361f0 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41 53   AS INTEGER ) AS
36200 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62 30 20   col1 FROM tab0 
36210 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
36220 37 30 35 0d 0a 2d 38 37 30 0d 0a 2d 39 36 30 33  705..-870..-9603
36230 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
36240 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
36250 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71  SIGNED type: ..q
36260 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c  uery I rowsort l
36270 61 62 65 6c 2d 31 32 32 35 0d 0a 53 45 4c 45 43  abel-1225..SELEC
36280 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 39 33 20  T - col0 * + 93 
36290 2b 20 2b 20 34 33 20 46 52 4f 4d 20 74 61 62 30  + + 43 FROM tab0
362a0 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 2a 20   WHERE - col1 * 
362b0 2b 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20 3d  + ( - - col1 ) =
362c0 20 43 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53   CAST( NULL AS S
362d0 49 47 4e 45 44 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  IGNED )..----...
362e0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
362f0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
36300 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
36310 6c 61 62 65 6c 2d 31 32 32 35 0d 0a 53 45 4c 45  label-1225..SELE
36320 43 54 20 2d 20 63 6f 6c 30 20 2a 20 2b 20 39 33  CT - col0 * + 93
36330 20 2b 20 2b 20 34 33 20 46 52 4f 4d 20 74 61 62   + + 43 FROM tab
36340 30 20 57 48 45 52 45 20 2d 20 63 6f 6c 31 20 2a  0 WHERE - col1 *
36350 20 2b 20 28 20 2d 20 2d 20 63 6f 6c 31 20 29 20   + ( - - col1 ) 
36360 3d 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  = CAST ( NULL AS
36370 20 49 4e 54 45 47 45 52 20 29 0d 0a 2d 2d 2d 2d   INTEGER )..----
36380 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67  ....skipif postg
36390 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53  resql # PostgreS
363a0 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77  QL requires AS w
363b0 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74  hen renaming out
363c0 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65  put columns..que
363d0 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
363e0 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20 32 37  LECT DISTINCT 27
363f0 20 2a 20 63 6f 6c 30 20 63 6f 6c 32 20 46 52 4f   * col0 col2 FRO
36400 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a 31 33  M tab1..----..13
36410 37 37 0d 0a 32 32 39 35 0d 0a 32 34 35 37 0d 0a  77..2295..2457..
36420 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
36430 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
36440 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
36450 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 32 37 0d  sort label-1227.
36460 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e 54 28  .SELECT - COUNT(
36470 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 31 20 57   * ) FROM tab1 W
36480 48 45 52 45 20 4e 55 4c 4c 20 4e 4f 54 20 42 45  HERE NULL NOT BE
36490 54 57 45 45 4e 20 2d 20 2d 20 63 6f 6c 30 20 2b  TWEEN - - col0 +
364a0 20 2d 20 63 6f 6c 30 20 41 4e 44 20 28 20 63 6f   - col0 AND ( co
364b0 6c 30 20 29 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d  l0 )..----..0...
364c0 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20  .skipif mysql # 
364d0 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a  not compatible..
364e0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
364f0 6c 61 62 65 6c 2d 31 32 32 37 0d 0a 53 45 4c 45  label-1227..SELE
36500 43 54 20 2d 20 43 4f 55 4e 54 20 28 20 2a 20 29  CT - COUNT ( * )
36510 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45   FROM tab1 WHERE
36520 20 4e 55 4c 4c 20 4e 4f 54 20 42 45 54 57 45 45   NULL NOT BETWEE
36530 4e 20 2d 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 63  N - - col0 + - c
36540 6f 6c 30 20 41 4e 44 20 28 20 63 6f 6c 30 20 29  ol0 AND ( col0 )
36550 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 71 75 65  ..----..0....que
36560 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  ry I rowsort..SE
36570 4c 45 43 54 20 41 4c 4c 20 2d 20 63 6f 6c 30 20  LECT ALL - col0 
36580 2a 20 2d 20 2b 20 39 39 20 2a 20 2b 20 35 39 20  * - + 99 * + 59 
36590 46 52 4f 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d  FROM tab0..----.
365a0 0a 35 30 38 31 36 37 0d 0a 35 36 36 35 37 37 0d  .508167..566577.
365b0 0a 38 37 36 31 35 0d 0a 0d 0a 71 75 65 72 79 20  .87615....query 
365c0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
365d0 54 20 41 4c 4c 20 2d 20 33 39 20 2b 20 2d 20 34  T ALL - 39 + - 4
365e0 36 20 2a 20 2b 20 33 32 20 46 52 4f 4d 20 74 61  6 * + 32 FROM ta
365f0 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
36600 0d 0a 2d 31 35 31 31 0d 0a 2d 31 35 31 31 0d 0a  ..-1511..-1511..
36610 2d 31 35 31 31 0d 0a 0d 0a 71 75 65 72 79 20 49  -1511....query I
36620 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
36630 20 2b 20 2d 20 34 39 20 2d 20 2b 20 63 6f 6c 31   + - 49 - + col1
36640 20 46 52 4f 4d 20 74 61 62 31 20 63 6f 72 30 0d   FROM tab1 cor0.
36650 0a 2d 2d 2d 2d 0d 0a 2d 35 34 0d 0a 2d 36 33 0d  .----..-54..-63.
36660 0a 2d 39 36 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .-96....skipif p
36670 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
36680 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
36690 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
366a0 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
366b0 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
366c0 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c 31 20  ..SELECT + col1 
366d0 2a 20 63 6f 6c 32 20 2b 20 2b 20 38 33 20 2b 20  * col2 + + 83 + 
366e0 2b 20 63 6f 6c 31 20 2a 20 2d 20 2d 20 31 38 20  + col1 * - - 18 
366f0 2a 20 2d 20 63 6f 6c 30 20 2b 20 2d 20 2b 20 63  * - col0 + - + c
36700 6f 6c 30 20 2a 20 2b 20 34 30 20 2a 20 2b 20 38  ol0 * + 40 * + 8
36710 34 20 2d 20 2d 20 63 6f 6c 31 20 63 6f 6c 31 20  4 - - col1 col1 
36720 46 52 4f 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a  FROM tab2 cor0..
36730 2d 2d 2d 2d 0d 0a 2d 31 39 35 34 38 31 0d 0a 2d  ----..-195481..-
36740 33 30 30 35 30 34 0d 0a 2d 33 33 38 34 31 34 0d  300504..-338414.
36750 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
36760 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74  # aggregate synt
36770 61 78 3a 20 44 49 56 20 66 6f 72 20 69 6e 74 65  ax: DIV for inte
36780 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a  ger division: ..
36790 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
367a0 6c 61 62 65 6c 2d 31 32 33 32 0d 0a 53 45 4c 45  label-1232..SELE
367b0 43 54 20 41 4c 4c 20 2b 20 28 20 2d 20 2d 20 37  CT ALL + ( - - 7
367c0 32 20 29 20 2b 20 2b 20 4d 49 4e 28 20 44 49 53  2 ) + + MIN( DIS
367d0 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 44 49 56  TINCT col1 ) DIV
367e0 20 2d 20 43 4f 55 4e 54 28 20 2a 20 29 20 46 52   - COUNT( * ) FR
367f0 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
36800 0a 2d 2d 2d 2d 0d 0a 35 35 0d 0a 0d 0a 73 6b 69  .----..55....ski
36810 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
36820 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
36830 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36840 6c 2d 31 32 33 32 0d 0a 53 45 4c 45 43 54 20 41  l-1232..SELECT A
36850 4c 4c 20 2b 20 28 20 2d 20 2d 20 37 32 20 29 20  LL + ( - - 72 ) 
36860 2b 20 2b 20 4d 49 4e 20 28 20 44 49 53 54 49 4e  + + MIN ( DISTIN
36870 43 54 20 63 6f 6c 31 20 29 20 2f 20 2d 20 43 4f  CT col1 ) / - CO
36880 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20 74  UNT ( * ) FROM t
36890 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab2 AS cor0..---
368a0 2d 0d 0a 35 35 0d 0a 0d 0a 71 75 65 72 79 20 49  -..55....query I
368b0 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54   rowsort..SELECT
368c0 20 41 4c 4c 20 2b 20 33 39 20 41 53 20 63 6f 6c   ALL + 39 AS col
368d0 30 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20 63  0 FROM tab0 AS c
368e0 6f 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74  or0 CROSS JOIN t
368f0 61 62 30 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a  ab0 cor1..----..
36900 39 20 76 61 6c 75 65 73 20 68 61 73 68 69 6e 67  9 values hashing
36910 20 74 6f 20 35 65 63 63 34 64 33 64 65 36 38 61   to 5ecc4d3de68a
36920 65 38 32 38 61 32 64 35 32 32 64 66 66 38 35 37  e828a2d522dff857
36930 31 63 62 66 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  1cbf....onlyif m
36940 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74 65  ysql # aggregate
36950 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79   syntax: ..query
36960 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
36970 2d 31 32 33 34 0d 0a 53 45 4c 45 43 54 20 44 49  -1234..SELECT DI
36980 53 54 49 4e 43 54 20 2b 20 4d 49 4e 28 20 41 4c  STINCT + MIN( AL
36990 4c 20 2d 20 32 39 20 29 20 41 53 20 63 6f 6c 30  L - 29 ) AS col0
369a0 20 46 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f   FROM tab1 AS co
369b0 72 30 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61  r0 CROSS JOIN ta
369c0 62 30 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d  b0 AS cor1..----
369d0 0d 0a 2d 32 39 0d 0a 0d 0a 73 6b 69 70 69 66 20  ..-29....skipif 
369e0 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
369f0 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
36a00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36a10 33 34 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  34..SELECT DISTI
36a20 4e 43 54 20 2b 20 4d 49 4e 20 28 20 41 4c 4c 20  NCT + MIN ( ALL 
36a30 2d 20 32 39 20 29 20 41 53 20 63 6f 6c 30 20 46  - 29 ) AS col0 F
36a40 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
36a50 20 43 52 4f 53 53 20 4a 4f 49 4e 20 74 61 62 30   CROSS JOIN tab0
36a60 20 41 53 20 63 6f 72 31 0d 0a 2d 2d 2d 2d 0d 0a   AS cor1..----..
36a70 2d 32 39 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72  -29....query I r
36a80 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 63  owsort..SELECT c
36a90 6f 6c 31 20 2a 20 2d 20 63 6f 6c 31 20 2a 20 2d  ol1 * - col1 * -
36aa0 20 38 39 20 46 52 4f 4d 20 74 61 62 31 20 63 6f   89 FROM tab1 co
36ab0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 31 37 34 34 34 0d  r0..----..17444.
36ac0 0a 31 39 36 36 30 31 0d 0a 32 32 32 35 0d 0a 0d  .196601..2225...
36ad0 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
36ae0 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49 47  CAST syntax: SIG
36af0 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65 72  NED type: ..quer
36b00 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
36b10 6c 2d 31 32 33 36 0d 0a 53 45 4c 45 43 54 20 44  l-1236..SELECT D
36b20 49 53 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 43  ISTINCT col2 * C
36b30 41 53 54 28 20 4e 55 4c 4c 20 41 53 20 53 49 47  AST( NULL AS SIG
36b40 4e 45 44 20 29 20 46 52 4f 4d 20 74 61 62 30 20  NED ) FROM tab0 
36b50 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
36b60 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  LL BETWEEN NULL 
36b70 41 4e 44 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20  AND NULL OR NOT 
36b80 2d 20 35 32 20 42 45 54 57 45 45 4e 20 2b 20 2d  - 52 BETWEEN + -
36b90 20 63 6f 6c 32 20 41 4e 44 20 2b 20 32 33 20 2a   col2 AND + 23 *
36ba0 20 2b 20 39 37 20 2b 20 2d 20 2d 20 63 6f 6c 31   + 97 + - - col1
36bb0 20 2a 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d   * - + col1..---
36bc0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 73 6b 69 70 69  -..NULL....skipi
36bd0 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
36be0 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
36bf0 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
36c00 31 32 33 36 0d 0a 53 45 4c 45 43 54 20 44 49 53  1236..SELECT DIS
36c10 54 49 4e 43 54 20 63 6f 6c 32 20 2a 20 43 41 53  TINCT col2 * CAS
36c20 54 20 28 20 4e 55 4c 4c 20 41 53 20 49 4e 54 45  T ( NULL AS INTE
36c30 47 45 52 20 29 20 46 52 4f 4d 20 74 61 62 30 20  GER ) FROM tab0 
36c40 41 53 20 63 6f 72 30 20 57 48 45 52 45 20 4e 55  AS cor0 WHERE NU
36c50 4c 4c 20 42 45 54 57 45 45 4e 20 4e 55 4c 4c 20  LL BETWEEN NULL 
36c60 41 4e 44 20 4e 55 4c 4c 20 4f 52 20 4e 4f 54 20  AND NULL OR NOT 
36c70 2d 20 35 32 20 42 45 54 57 45 45 4e 20 2b 20 2d  - 52 BETWEEN + -
36c80 20 63 6f 6c 32 20 41 4e 44 20 2b 20 32 33 20 2a   col2 AND + 23 *
36c90 20 2b 20 39 37 20 2b 20 2d 20 2d 20 63 6f 6c 31   + 97 + - - col1
36ca0 20 2a 20 2d 20 2b 20 63 6f 6c 31 0d 0a 2d 2d 2d   * - + col1..---
36cb0 2d 0d 0a 4e 55 4c 4c 0d 0a 0d 0a 6f 6e 6c 79 69  -..NULL....onlyi
36cc0 66 20 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67  f mysql # aggreg
36cd0 61 74 65 20 73 79 6e 74 61 78 3a 20 44 49 56 20  ate syntax: DIV 
36ce0 66 6f 72 20 69 6e 74 65 67 65 72 20 64 69 76 69  for integer divi
36cf0 73 69 6f 6e 3a 20 0d 0a 71 75 65 72 79 20 49 20  sion: ..query I 
36d00 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
36d10 33 37 0d 0a 53 45 4c 45 43 54 20 2b 20 35 31 20  37..SELECT + 51 
36d20 44 49 56 20 28 20 37 32 20 29 20 2b 20 2d 20 53  DIV ( 72 ) + - S
36d30 55 4d 28 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 30  UM( - ( - - col0
36d40 20 29 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f   ) ) AS col1 FRO
36d50 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30 20 57  M tab1 AS cor0 W
36d60 48 45 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53  HERE NOT NULL IS
36d70 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d   NOT NULL..----.
36d80 0a 32 32 37 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  .227....skipif m
36d90 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
36da0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20 72  tible..query I r
36db0 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 33  owsort label-123
36dc0 37 0d 0a 53 45 4c 45 43 54 20 2b 20 35 31 20 2f  7..SELECT + 51 /
36dd0 20 28 20 37 32 20 29 20 2b 20 2d 20 53 55 4d 20   ( 72 ) + - SUM 
36de0 28 20 2d 20 28 20 2d 20 2d 20 63 6f 6c 30 20 29  ( - ( - - col0 )
36df0 20 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20   ) AS col1 FROM 
36e00 74 61 62 31 20 41 53 20 63 6f 72 30 20 57 48 45  tab1 AS cor0 WHE
36e10 52 45 20 4e 4f 54 20 4e 55 4c 4c 20 49 53 20 4e  RE NOT NULL IS N
36e20 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a 32  OT NULL..----..2
36e30 32 37 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  27....onlyif mys
36e40 71 6c 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74  ql # DIV for int
36e50 65 67 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d  eger division: .
36e60 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
36e70 74 20 6c 61 62 65 6c 2d 31 32 33 38 0d 0a 53 45  t label-1238..SE
36e80 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 44 49  LECT - - col2 DI
36e90 56 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31  V + col0 AS col1
36ea0 2c 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c  , + col1 + - col
36eb0 32 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 36  2 + + col2 * - 6
36ec0 36 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  6 AS col0 FROM t
36ed0 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab1 AS cor0..---
36ee0 2d 0d 0a 30 0d 0a 2d 33 39 34 38 0d 0a 30 0d 0a  -..0..-3948..0..
36ef0 2d 34 35 30 39 0d 0a 31 0d 0a 2d 36 34 31 38 0d  -4509..1..-6418.
36f00 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c 20  ...skipif mysql 
36f10 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65  # not compatible
36f20 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f  ..query II rowso
36f30 72 74 20 6c 61 62 65 6c 2d 31 32 33 38 0d 0a 53  rt label-1238..S
36f40 45 4c 45 43 54 20 2d 20 2d 20 63 6f 6c 32 20 2f  ELECT - - col2 /
36f50 20 2b 20 63 6f 6c 30 20 41 53 20 63 6f 6c 31 2c   + col0 AS col1,
36f60 20 2b 20 63 6f 6c 31 20 2b 20 2d 20 63 6f 6c 32   + col1 + - col2
36f70 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20 36 36   + + col2 * - 66
36f80 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61   AS col0 FROM ta
36f90 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
36fa0 0d 0a 30 0d 0a 2d 33 39 34 38 0d 0a 30 0d 0a 2d  ..0..-3948..0..-
36fb0 34 35 30 39 0d 0a 31 0d 0a 2d 36 34 31 38 0d 0a  4509..1..-6418..
36fc0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
36fd0 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 53 49   CAST syntax: SI
36fe0 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a 71 75 65  GNED type: ..que
36ff0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
37000 65 6c 2d 31 32 33 39 0d 0a 53 45 4c 45 43 54 20  el-1239..SELECT 
37010 44 49 53 54 49 4e 43 54 20 2b 20 43 41 53 54 28  DISTINCT + CAST(
37020 20 2b 20 31 37 20 41 53 20 53 49 47 4e 45 44 20   + 17 AS SIGNED 
37030 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
37040 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d  ab0 AS cor0..---
37050 2d 0d 0a 31 37 0d 0a 0d 0a 73 6b 69 70 69 66 20  -..17....skipif 
37060 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
37070 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
37080 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37090 33 39 0d 0a 53 45 4c 45 43 54 20 44 49 53 54 49  39..SELECT DISTI
370a0 4e 43 54 20 2b 20 43 41 53 54 20 28 20 2b 20 31  NCT + CAST ( + 1
370b0 37 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 41  7 AS INTEGER ) A
370c0 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  S col0 FROM tab0
370d0 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
370e0 31 37 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  17....query I ro
370f0 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20  wsort..SELECT + 
37100 2d 20 35 31 20 41 53 20 63 6f 6c 32 20 46 52 4f  - 51 AS col2 FRO
37110 4d 20 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab0 cor0..---
37120 2d 0d 0a 2d 35 31 0d 0a 2d 35 31 0d 0a 2d 35 31  -..-51..-51..-51
37130 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
37140 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20   # CAST syntax: 
37150 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78  aggregate syntax
37160 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d  : SIGNED type: .
37170 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
37180 20 6c 61 62 65 6c 2d 31 32 34 31 0d 0a 53 45 4c   label-1241..SEL
37190 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 4d  ECT DISTINCT + M
371a0 41 58 28 20 44 49 53 54 49 4e 43 54 20 2b 20 63  AX( DISTINCT + c
371b0 6f 6c 31 20 29 20 2b 20 2d 20 4d 41 58 28 20 41  ol1 ) + - MAX( A
371c0 4c 4c 20 2d 20 2b 20 43 41 53 54 28 20 2b 20 63  LL - + CAST( + c
371d0 6f 6c 30 20 41 53 20 53 49 47 4e 45 44 20 29 20  ol0 AS SIGNED ) 
371e0 29 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74  ) AS col1 FROM t
371f0 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20  ab2 WHERE NOT + 
37200 2d 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a  - col1 IS NULL..
37210 2d 2d 2d 2d 0d 0a 31 32 33 0d 0a 0d 0a 73 6b 69  ----..123....ski
37220 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37230 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37240 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37250 6c 2d 31 32 34 31 0d 0a 53 45 4c 45 43 54 20 44  l-1241..SELECT D
37260 49 53 54 49 4e 43 54 20 2b 20 4d 41 58 20 28 20  ISTINCT + MAX ( 
37270 44 49 53 54 49 4e 43 54 20 2b 20 63 6f 6c 31 20  DISTINCT + col1 
37280 29 20 2b 20 2d 20 4d 41 58 20 28 20 41 4c 4c 20  ) + - MAX ( ALL 
37290 2d 20 2b 20 43 41 53 54 20 28 20 2b 20 63 6f 6c  - + CAST ( + col
372a0 30 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 29  0 AS INTEGER ) )
372b0 20 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61   AS col1 FROM ta
372c0 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2d  b2 WHERE NOT + -
372d0 20 63 6f 6c 31 20 49 53 20 4e 55 4c 4c 0d 0a 2d   col1 IS NULL..-
372e0 2d 2d 2d 0d 0a 31 32 33 0d 0a 0d 0a 71 75 65 72  ---..123....quer
372f0 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45  y II rowsort..SE
37300 4c 45 43 54 20 41 4c 4c 20 2d 20 31 39 20 41 53  LECT ALL - 19 AS
37310 20 63 6f 6c 30 2c 20 2b 20 63 6f 6c 31 20 2b 20   col0, + col1 + 
37320 2d 20 31 35 20 2b 20 2d 20 2d 20 63 6f 6c 31 20  - 15 + - - col1 
37330 2a 20 2d 20 2d 20 63 6f 6c 32 20 41 53 20 63 6f  * - - col2 AS co
37340 6c 32 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l2 FROM tab1..--
37350 2d 2d 0d 0a 2d 31 39 0d 0a 31 33 34 33 0d 0a 2d  --..-19..1343..-
37360 31 39 0d 0a 32 38 35 0d 0a 2d 31 39 0d 0a 33 32  19..285..-19..32
37370 32 38 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20  28....query III 
37380 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20  rowsort..SELECT 
37390 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20  DISTINCT * FROM 
373a0 74 61 62 32 20 57 48 45 52 45 20 4e 4f 54 20 2b  tab2 WHERE NOT +
373b0 20 36 31 20 2b 20 2b 20 63 6f 6c 32 20 49 53 20   61 + + col2 IS 
373c0 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d 0d 0a  NOT NULL..----..
373d0 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23  ..onlyif mysql #
373e0 20 61 67 67 72 65 67 61 74 65 20 73 79 6e 74 61   aggregate synta
373f0 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  x: ..query I row
37400 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 34 34 0d  sort label-1244.
37410 0a 53 45 4c 45 43 54 20 43 4f 55 4e 54 28 20 44  .SELECT COUNT( D
37420 49 53 54 49 4e 43 54 20 63 6f 6c 31 20 29 20 41  ISTINCT col1 ) A
37430 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62 31  S col2 FROM tab1
37440 0d 0a 2d 2d 2d 2d 0d 0a 33 0d 0a 0d 0a 73 6b 69  ..----..3....ski
37450 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37460 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37470 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37480 6c 2d 31 32 34 34 0d 0a 53 45 4c 45 43 54 20 43  l-1244..SELECT C
37490 4f 55 4e 54 20 28 20 44 49 53 54 49 4e 43 54 20  OUNT ( DISTINCT 
374a0 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 32 20 46  col1 ) AS col2 F
374b0 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d 2d 2d 0d 0a  ROM tab1..----..
374c0 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
374d0 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79  l # aggregate sy
374e0 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20  ntax: ..query I 
374f0 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
37500 34 35 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  45..SELECT ALL -
37510 20 53 55 4d 28 20 2d 20 33 38 20 29 20 41 53 20   SUM( - 38 ) AS 
37520 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 0d 0a  col0 FROM tab2..
37530 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a 0d 0a 73 6b 69  ----..114....ski
37540 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20  pif mysql # not 
37550 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72  compatible..quer
37560 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37570 6c 2d 31 32 34 35 0d 0a 53 45 4c 45 43 54 20 41  l-1245..SELECT A
37580 4c 4c 20 2d 20 53 55 4d 20 28 20 2d 20 33 38 20  LL - SUM ( - 38 
37590 29 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20 74  ) AS col0 FROM t
375a0 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 31 34 0d 0a  ab2..----..114..
375b0 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77 73  ..query III rows
375c0 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20  ort..SELECT ALL 
375d0 2a 20 46 52 4f 4d 20 74 61 62 30 20 63 6f 72 30  * FROM tab0 cor0
375e0 20 57 48 45 52 45 20 63 6f 6c 30 20 2a 20 2d 20   WHERE col0 * - 
375f0 63 6f 6c 31 20 3e 3d 20 4e 55 4c 4c 0d 0a 2d 2d  col1 >= NULL..--
37600 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
37610 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
37620 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
37630 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
37640 32 34 37 0d 0a 53 45 4c 45 43 54 20 43 4f 55 4e  247..SELECT COUN
37650 54 28 20 2b 20 63 6f 6c 30 20 29 20 2b 20 2d 20  T( + col0 ) + - 
37660 4d 41 58 28 20 2b 20 63 6f 6c 30 20 29 20 46 52  MAX( + col0 ) FR
37670 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d  OM tab2 AS cor0.
37680 0a 2d 2d 2d 2d 0d 0a 2d 37 32 0d 0a 0d 0a 73 6b  .----..-72....sk
37690 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
376a0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
376b0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
376c0 65 6c 2d 31 32 34 37 0d 0a 53 45 4c 45 43 54 20  el-1247..SELECT 
376d0 43 4f 55 4e 54 20 28 20 2b 20 63 6f 6c 30 20 29  COUNT ( + col0 )
376e0 20 2b 20 2d 20 4d 41 58 20 28 20 2b 20 63 6f 6c   + - MAX ( + col
376f0 30 20 29 20 46 52 4f 4d 20 74 61 62 32 20 41 53  0 ) FROM tab2 AS
37700 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 37 32   cor0..----..-72
37710 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f  ....query III ro
37720 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2a 20  wsort..SELECT * 
37730 46 52 4f 4d 20 74 61 62 31 20 57 48 45 52 45 20  FROM tab1 WHERE 
37740 4e 55 4c 4c 20 4e 4f 54 20 49 4e 20 28 20 63 6f  NULL NOT IN ( co
37750 6c 32 20 2b 20 63 6f 6c 32 20 2b 20 32 35 20 2b  l2 + col2 + 25 +
37760 20 2d 20 39 38 2c 20 2b 20 63 6f 6c 30 20 29 0d   - 98, + col0 ).
37770 0a 2d 2d 2d 2d 0d 0a 0d 0a 71 75 65 72 79 20 49  .----....query I
37780 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
37790 43 54 20 41 4c 4c 20 2a 20 46 52 4f 4d 20 74 61  CT ALL * FROM ta
377a0 62 30 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 63  b0 WHERE NOT + c
377b0 6f 6c 32 20 2b 20 2b 20 2d 20 63 6f 6c 31 20 49  ol2 + + - col1 I
377c0 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  S NOT NULL..----
377d0 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
377e0 20 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67   # DIV for integ
377f0 65 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71  er division: ..q
37800 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20  uery II rowsort 
37810 6c 61 62 65 6c 2d 31 32 35 30 0d 0a 53 45 4c 45  label-1250..SELE
37820 43 54 20 63 6f 6c 30 20 44 49 56 20 2b 20 63 6f  CT col0 DIV + co
37830 6c 32 20 41 53 20 63 6f 6c 30 2c 20 2b 20 39 30  l2 AS col0, + 90
37840 20 2b 20 2d 20 2d 20 38 35 20 46 52 4f 4d 20 74   + - - 85 FROM t
37850 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d 0a 31 37  ab2..----..1..17
37860 35 0d 0a 31 0d 0a 31 37 35 0d 0a 32 0d 0a 31 37  5..1..175..2..17
37870 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71  5....skipif mysq
37880 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62  l # not compatib
37890 6c 65 0d 0a 71 75 65 72 79 20 49 49 20 72 6f 77  le..query II row
378a0 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 35 30 0d  sort label-1250.
378b0 0a 53 45 4c 45 43 54 20 63 6f 6c 30 20 2f 20 2b  .SELECT col0 / +
378c0 20 63 6f 6c 32 20 41 53 20 63 6f 6c 30 2c 20 2b   col2 AS col0, +
378d0 20 39 30 20 2b 20 2d 20 2d 20 38 35 20 46 52 4f   90 + - - 85 FRO
378e0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 31 0d  M tab2..----..1.
378f0 0a 31 37 35 0d 0a 31 0d 0a 31 37 35 0d 0a 32 0d  .175..1..175..2.
37900 0a 31 37 35 0d 0a 0d 0a 73 6b 69 70 69 66 20 70  .175....skipif p
37910 6f 73 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74  ostgresql # Post
37920 67 72 65 53 51 4c 20 72 65 71 75 69 72 65 73 20  greSQL requires 
37930 41 53 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67  AS when renaming
37940 20 6f 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d   output columns.
37950 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
37960 74 0d 0a 53 45 4c 45 43 54 20 2d 20 63 6f 6c 30  t..SELECT - col0
37970 20 63 6f 6c 31 2c 20 2d 20 63 6f 6c 31 20 2a 20   col1, - col1 * 
37980 63 6f 6c 30 20 2b 20 2b 20 2d 20 63 6f 6c 32 20  col0 + + - col2 
37990 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61 62  AS col2 FROM tab
379a0 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  1 AS cor0..----.
379b0 0a 2d 35 31 0d 0a 2d 38 31 30 0d 0a 2d 38 35 0d  .-51..-810..-85.
379c0 0a 2d 34 38 34 0d 0a 2d 39 31 0d 0a 2d 34 33 34  .-484..-91..-434
379d0 35 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  5....query I row
379e0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
379f0 54 49 4e 43 54 20 2b 20 2b 20 63 6f 6c 30 20 2b  TINCT + + col0 +
37a00 20 33 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20   3 AS col2 FROM 
37a10 74 61 62 30 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab0 AS cor0..--
37a20 2d 2d 0d 0a 31 30 30 0d 0a 31 38 0d 0a 39 30 0d  --..100..18..90.
37a30 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  ...query I rowso
37a40 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2d  rt..SELECT ALL -
37a50 20 28 20 2b 20 63 6f 6c 32 20 29 20 2d 20 2d 20   ( + col2 ) - - 
37a60 63 6f 6c 30 20 41 53 20 63 6f 6c 31 20 46 52 4f  col0 AS col1 FRO
37a70 4d 20 74 61 62 32 20 63 6f 72 30 0d 0a 2d 2d 2d  M tab2 cor0..---
37a80 2d 0d 0a 31 37 0d 0a 32 33 0d 0a 32 34 0d 0a 0d  -..17..23..24...
37a90 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
37aa0 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
37ab0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
37ac0 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  y II rowsort lab
37ad0 65 6c 2d 31 32 35 34 0d 0a 53 45 4c 45 43 54 20  el-1254..SELECT 
37ae0 2d 20 2d 20 34 31 20 41 53 20 63 6f 6c 31 2c 20  - - 41 AS col1, 
37af0 36 36 20 44 49 56 20 63 6f 6c 32 20 46 52 4f 4d  66 DIV col2 FROM
37b00 20 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d   tab1 AS cor0..-
37b10 2d 2d 2d 0d 0a 34 31 0d 0a 30 0d 0a 34 31 0d 0a  ---..41..0..41..
37b20 30 0d 0a 34 31 0d 0a 31 0d 0a 0d 0a 73 6b 69 70  0..41..1....skip
37b30 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
37b40 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
37b50 20 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65   II rowsort labe
37b60 6c 2d 31 32 35 34 0d 0a 53 45 4c 45 43 54 20 2d  l-1254..SELECT -
37b70 20 2d 20 34 31 20 41 53 20 63 6f 6c 31 2c 20 36   - 41 AS col1, 6
37b80 36 20 2f 20 63 6f 6c 32 20 46 52 4f 4d 20 74 61  6 / col2 FROM ta
37b90 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d  b1 AS cor0..----
37ba0 0d 0a 34 31 0d 0a 30 0d 0a 34 31 0d 0a 30 0d 0a  ..41..0..41..0..
37bb0 34 31 0d 0a 31 0d 0a 0d 0a 71 75 65 72 79 20 49  41..1....query I
37bc0 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37bd0 54 20 2d 20 63 6f 6c 31 20 2b 20 32 36 20 2a 20  T - col1 + 26 * 
37be0 63 6f 6c 32 20 2d 20 2b 20 2d 20 28 20 2d 20 63  col2 - + - ( - c
37bf0 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 2c 20 2b  ol1 ) AS col0, +
37c00 20 36 37 20 2d 20 33 34 20 2b 20 2d 20 63 6f 6c   67 - 34 + - col
37c10 32 20 2a 20 2b 20 2b 20 28 20 63 6f 6c 32 20 29  2 * + + ( col2 )
37c20 20 46 52 4f 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d   FROM tab2..----
37c30 0d 0a 31 33 37 34 0d 0a 2d 33 33 33 31 0d 0a 34  ..1374..-3331..4
37c40 39 36 0d 0a 2d 34 39 36 0d 0a 38 38 36 0d 0a 2d  96..-496..886..-
37c50 31 35 36 37 0d 0a 0d 0a 71 75 65 72 79 20 49 49  1567....query II
37c60 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43  I rowsort..SELEC
37c70 54 20 44 49 53 54 49 4e 43 54 20 2a 20 46 52 4f  T DISTINCT * FRO
37c80 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f 54  M tab0 WHERE NOT
37c90 20 28 20 28 20 2d 20 63 6f 6c 30 20 3e 3d 20 4e   ( ( - col0 >= N
37ca0 55 4c 4c 20 29 20 29 0d 0a 2d 2d 2d 2d 0d 0a 0d  ULL ) )..----...
37cb0 0a 71 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72  .query II rowsor
37cc0 74 0d 0a 53 45 4c 45 43 54 20 2d 20 37 30 20 2b  t..SELECT - 70 +
37cd0 20 2b 20 63 6f 6c 31 20 41 53 20 63 6f 6c 30 2c   + col1 AS col0,
37ce0 20 2d 20 28 20 63 6f 6c 30 20 29 20 2a 20 2b 20   - ( col0 ) * + 
37cf0 28 20 2b 20 63 6f 6c 32 20 29 20 46 52 4f 4d 20  ( + col2 ) FROM 
37d00 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 39 0d  tab0..----..-49.
37d10 0a 2d 38 37 30 0d 0a 2d 36 39 0d 0a 2d 39 36 30  .-870..-69..-960
37d20 33 0d 0a 31 31 0d 0a 2d 37 30 35 0d 0a 0d 0a 71  3..11..-705....q
37d30 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
37d40 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
37d50 63 6f 6c 31 20 2d 20 2d 20 2d 20 63 6f 6c 30 20  col1 - - - col0 
37d60 41 53 20 63 6f 6c 31 20 46 52 4f 4d 20 74 61 62  AS col1 FROM tab
37d70 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 36 36 0d 0a 2d 39  0..----..-66..-9
37d80 36 0d 0a 36 36 0d 0a 0d 0a 6f 6e 6c 79 69 66 20  6..66....onlyif 
37d90 6d 79 73 71 6c 20 23 20 61 67 67 72 65 67 61 74  mysql # aggregat
37da0 65 20 73 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72  e syntax: ..quer
37db0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
37dc0 6c 2d 31 32 35 39 0d 0a 53 45 4c 45 43 54 20 2b  l-1259..SELECT +
37dd0 20 4d 41 58 28 20 44 49 53 54 49 4e 43 54 20 63   MAX( DISTINCT c
37de0 6f 6c 32 20 29 20 2b 20 2d 20 2d 20 43 4f 55 4e  ol2 ) + - - COUN
37df0 54 28 20 2a 20 29 20 46 52 4f 4d 20 74 61 62 30  T( * ) FROM tab0
37e00 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d 0a 0d 0a 73  ..----..102....s
37e10 6b 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f  kipif mysql # no
37e20 74 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75  t compatible..qu
37e30 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61  ery I rowsort la
37e40 62 65 6c 2d 31 32 35 39 0d 0a 53 45 4c 45 43 54  bel-1259..SELECT
37e50 20 2b 20 4d 41 58 20 28 20 44 49 53 54 49 4e 43   + MAX ( DISTINC
37e60 54 20 63 6f 6c 32 20 29 20 2b 20 2d 20 2d 20 43  T col2 ) + - - C
37e70 4f 55 4e 54 20 28 20 2a 20 29 20 46 52 4f 4d 20  OUNT ( * ) FROM 
37e80 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 31 30 32 0d  tab0..----..102.
37e90 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72 6f 77  ...query III row
37ea0 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49 53  sort..SELECT DIS
37eb0 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74 61 62  TINCT * FROM tab
37ec0 32 20 57 48 45 52 45 20 4e 4f 54 20 2b 20 2b 20  2 WHERE NOT + + 
37ed0 32 32 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 0d 0a  22 IS NOT NULL..
37ee0 2d 2d 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d  ----....onlyif m
37ef0 79 73 71 6c 20 23 20 43 41 53 54 20 73 79 6e 74  ysql # CAST synt
37f00 61 78 3a 20 53 49 47 4e 45 44 20 74 79 70 65 3a  ax: SIGNED type:
37f10 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
37f20 72 74 20 6c 61 62 65 6c 2d 31 32 36 31 0d 0a 53  rt label-1261..S
37f30 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  ELECT col0 AS co
37f40 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
37f50 52 45 20 2d 20 2b 20 31 33 20 49 4e 20 28 20 63  RE - + 13 IN ( c
37f60 6f 6c 30 20 2a 20 43 41 53 54 28 20 2d 20 32 35  ol0 * CAST( - 25
37f70 20 41 53 20 53 49 47 4e 45 44 20 29 20 2b 20 2d   AS SIGNED ) + -
37f80 20 32 20 2b 20 2d 20 34 20 29 0d 0a 2d 2d 2d 2d   2 + - 4 )..----
37f90 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d 79 73 71 6c  ....skipif mysql
37fa0 20 23 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c   # not compatibl
37fb0 65 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f  e..query I rowso
37fc0 72 74 20 6c 61 62 65 6c 2d 31 32 36 31 0d 0a 53  rt label-1261..S
37fd0 45 4c 45 43 54 20 63 6f 6c 30 20 41 53 20 63 6f  ELECT col0 AS co
37fe0 6c 32 20 46 52 4f 4d 20 74 61 62 31 20 57 48 45  l2 FROM tab1 WHE
37ff0 52 45 20 2d 20 2b 20 31 33 20 49 4e 20 28 20 63  RE - + 13 IN ( c
38000 6f 6c 30 20 2a 20 43 41 53 54 20 28 20 2d 20 32  ol0 * CAST ( - 2
38010 35 20 41 53 20 49 4e 54 45 47 45 52 20 29 20 2b  5 AS INTEGER ) +
38020 20 2d 20 32 20 2b 20 2d 20 34 20 29 0d 0a 2d 2d   - 2 + - 4 )..--
38030 2d 2d 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73  --....onlyif mys
38040 71 6c 20 23 20 61 67 67 72 65 67 61 74 65 20 73  ql # aggregate s
38050 79 6e 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49  yntax: ..query I
38060 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
38070 32 36 32 0d 0a 53 45 4c 45 43 54 20 2d 20 4d 41  262..SELECT - MA
38080 58 28 20 41 4c 4c 20 35 31 20 29 20 46 52 4f 4d  X( ALL 51 ) FROM
38090 20 74 61 62 32 20 41 53 20 63 6f 72 30 0d 0a 2d   tab2 AS cor0..-
380a0 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 73 6b 69 70  ---..-51....skip
380b0 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63  if mysql # not c
380c0 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79  ompatible..query
380d0 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c   I rowsort label
380e0 2d 31 32 36 32 0d 0a 53 45 4c 45 43 54 20 2d 20  -1262..SELECT - 
380f0 4d 41 58 20 28 20 41 4c 4c 20 35 31 20 29 20 46  MAX ( ALL 51 ) F
38100 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30  ROM tab2 AS cor0
38110 0d 0a 2d 2d 2d 2d 0d 0a 2d 35 31 0d 0a 0d 0a 71  ..----..-51....q
38120 75 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d  uery II rowsort.
38130 0a 53 45 4c 45 43 54 20 36 39 20 41 53 20 63 6f  .SELECT 69 AS co
38140 6c 30 2c 20 2d 20 63 6f 6c 30 20 41 53 20 63 6f  l0, - col0 AS co
38150 6c 30 20 46 52 4f 4d 20 74 61 62 31 0d 0a 2d 2d  l0 FROM tab1..--
38160 2d 2d 0d 0a 36 39 0d 0a 2d 35 31 0d 0a 36 39 0d  --..69..-51..69.
38170 0a 2d 38 35 0d 0a 36 39 0d 0a 2d 39 31 0d 0a 0d  .-85..69..-91...
38180 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74  .query I rowsort
38190 0d 0a 53 45 4c 45 43 54 20 32 35 20 2a 20 2d 20  ..SELECT 25 * - 
381a0 33 34 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  34 AS col0 FROM 
381b0 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 38 35 30  tab0..----..-850
381c0 0d 0a 2d 38 35 30 0d 0a 2d 38 35 30 0d 0a 0d 0a  ..-850..-850....
381d0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d  query I rowsort.
381e0 0a 53 45 4c 45 43 54 20 41 4c 4c 20 2b 20 2d 20  .SELECT ALL + - 
381f0 36 38 20 41 53 20 63 6f 6c 30 20 46 52 4f 4d 20  68 AS col0 FROM 
38200 74 61 62 31 20 41 53 20 63 6f 72 30 0d 0a 2d 2d  tab1 AS cor0..--
38210 2d 2d 0d 0a 2d 36 38 0d 0a 2d 36 38 0d 0a 2d 36  --..-68..-68..-6
38220 38 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77  8....query I row
38230 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  sort..SELECT ALL
38240 20 2d 20 63 6f 6c 30 20 2a 20 2d 20 2b 20 63 6f   - col0 * - + co
38250 6c 31 20 41 53 20 63 6f 6c 32 20 46 52 4f 4d 20  l1 AS col2 FROM 
38260 74 61 62 30 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d  tab0 cor0..----.
38270 0a 31 32 31 35 0d 0a 31 38 32 37 0d 0a 39 37 0d  .1215..1827..97.
38280 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74 67 72  ...skipif postgr
38290 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65 53 51  esql # PostgreSQ
382a0 4c 20 72 65 71 75 69 72 65 73 20 41 53 20 77 68  L requires AS wh
382b0 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75 74 70  en renaming outp
382c0 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75 65 72  ut columns..quer
382d0 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c  y I rowsort..SEL
382e0 45 43 54 20 44 49 53 54 49 4e 43 54 20 2b 20 36  ECT DISTINCT + 6
382f0 33 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 30  3 col0 FROM tab0
38300 20 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a   AS cor0..----..
38310 36 33 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f  63....query I ro
38320 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44 49  wsort..SELECT DI
38330 53 54 49 4e 43 54 20 2d 20 63 6f 6c 31 20 46 52  STINCT - col1 FR
38340 4f 4d 20 74 61 62 30 20 41 53 20 63 6f 72 30 20  OM tab0 AS cor0 
38350 57 48 45 52 45 20 4e 4f 54 20 2b 20 63 6f 6c 31  WHERE NOT + col1
38360 20 3c 3d 20 36 31 0d 0a 2d 2d 2d 2d 0d 0a 2d 38   <= 61..----..-8
38370 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73 74  1....skipif post
38380 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72 65  gresql # Postgre
38390 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53 20  SQL requires AS 
383a0 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f 75  when renaming ou
383b0 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71 75  tput columns..qu
383c0 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 0d 0a  ery II rowsort..
383d0 53 45 4c 45 43 54 20 44 49 53 54 49 4e 43 54 20  SELECT DISTINCT 
383e0 2d 20 63 6f 6c 30 2c 20 39 31 20 63 6f 6c 32 20  - col0, 91 col2 
383f0 46 52 4f 4d 20 74 61 62 32 20 41 53 20 63 6f 72  FROM tab2 AS cor
38400 30 0d 0a 2d 2d 2d 2d 0d 0a 2d 34 36 0d 0a 39 31  0..----..-46..91
38410 0d 0a 2d 36 34 0d 0a 39 31 0d 0a 2d 37 35 0d 0a  ..-64..91..-75..
38420 39 31 0d 0a 0d 0a 73 6b 69 70 69 66 20 70 6f 73  91....skipif pos
38430 74 67 72 65 73 71 6c 20 23 20 50 6f 73 74 67 72  tgresql # Postgr
38440 65 53 51 4c 20 72 65 71 75 69 72 65 73 20 41 53  eSQL requires AS
38450 20 77 68 65 6e 20 72 65 6e 61 6d 69 6e 67 20 6f   when renaming o
38460 75 74 70 75 74 20 63 6f 6c 75 6d 6e 73 0d 0a 71  utput columns..q
38470 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 0d 0a  uery I rowsort..
38480 53 45 4c 45 43 54 20 41 4c 4c 20 38 31 20 63 6f  SELECT ALL 81 co
38490 6c 32 20 46 52 4f 4d 20 74 61 62 30 20 41 53 20  l2 FROM tab0 AS 
384a0 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 38 31 0d 0a  cor0..----..81..
384b0 38 31 0d 0a 38 31 0d 0a 0d 0a 71 75 65 72 79 20  81..81....query 
384c0 49 49 20 72 6f 77 73 6f 72 74 0d 0a 53 45 4c 45  II rowsort..SELE
384d0 43 54 20 63 6f 6c 30 2c 20 34 38 20 41 53 20 63  CT col0, 48 AS c
384e0 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20 63 6f  ol0 FROM tab1 co
384f0 72 30 0d 0a 2d 2d 2d 2d 0d 0a 35 31 0d 0a 34 38  r0..----..51..48
38500 0d 0a 38 35 0d 0a 34 38 0d 0a 39 31 0d 0a 34 38  ..85..48..91..48
38510 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c  ....onlyif mysql
38520 20 23 20 61 67 67 72 65 67 61 74 65 20 73 79 6e   # aggregate syn
38530 74 61 78 3a 20 0d 0a 71 75 65 72 79 20 49 20 72  tax: ..query I r
38540 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32 37  owsort label-127
38550 32 0d 0a 53 45 4c 45 43 54 20 2d 20 43 4f 55 4e  2..SELECT - COUN
38560 54 28 20 44 49 53 54 49 4e 43 54 20 2b 20 2b 20  T( DISTINCT + + 
38570 63 6f 6c 31 20 29 20 41 53 20 63 6f 6c 30 20 46  col1 ) AS col0 F
38580 52 4f 4d 20 74 61 62 31 20 41 53 20 63 6f 72 30  ROM tab1 AS cor0
38590 0d 0a 2d 2d 2d 2d 0d 0a 2d 33 0d 0a 0d 0a 73 6b  ..----..-3....sk
385a0 69 70 69 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74  ipif mysql # not
385b0 20 63 6f 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65   compatible..que
385c0 72 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62  ry I rowsort lab
385d0 65 6c 2d 31 32 37 32 0d 0a 53 45 4c 45 43 54 20  el-1272..SELECT 
385e0 2d 20 43 4f 55 4e 54 20 28 20 44 49 53 54 49 4e  - COUNT ( DISTIN
385f0 43 54 20 2b 20 2b 20 63 6f 6c 31 20 29 20 41 53  CT + + col1 ) AS
38600 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 31 20   col0 FROM tab1 
38610 41 53 20 63 6f 72 30 0d 0a 2d 2d 2d 2d 0d 0a 2d  AS cor0..----..-
38620 33 0d 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71  3....onlyif mysq
38630 6c 20 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a  l # CAST syntax:
38640 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
38650 71 75 65 72 79 20 49 49 49 20 72 6f 77 73 6f 72  query III rowsor
38660 74 20 6c 61 62 65 6c 2d 31 32 37 33 0d 0a 53 45  t label-1273..SE
38670 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 61 62 30  LECT * FROM tab0
38680 20 57 48 45 52 45 20 4e 4f 54 20 63 6f 6c 31 20   WHERE NOT col1 
38690 2d 20 2d 20 2b 20 38 37 20 3c 3d 20 2b 20 2b 20  - - + 87 <= + + 
386a0 63 6f 6c 32 20 2a 20 2d 20 2b 20 43 41 53 54 28  col2 * - + CAST(
386b0 20 4e 55 4c 4c 20 41 53 20 53 49 47 4e 45 44 20   NULL AS SIGNED 
386c0 29 20 2a 20 2b 20 35 20 2f 20 2b 20 38 36 0d 0a  ) * + 5 / + 86..
386d0 2d 2d 2d 2d 0d 0a 0d 0a 73 6b 69 70 69 66 20 6d  ----....skipif m
386e0 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70 61  ysql # not compa
386f0 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 49 49  tible..query III
38700 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31   rowsort label-1
38710 32 37 33 0d 0a 53 45 4c 45 43 54 20 2a 20 46 52  273..SELECT * FR
38720 4f 4d 20 74 61 62 30 20 57 48 45 52 45 20 4e 4f  OM tab0 WHERE NO
38730 54 20 63 6f 6c 31 20 2d 20 2d 20 2b 20 38 37 20  T col1 - - + 87 
38740 3c 3d 20 2b 20 2b 20 63 6f 6c 32 20 2a 20 2d 20  <= + + col2 * - 
38750 2b 20 43 41 53 54 20 28 20 4e 55 4c 4c 20 41 53  + CAST ( NULL AS
38760 20 49 4e 54 45 47 45 52 20 29 20 2a 20 2b 20 35   INTEGER ) * + 5
38770 20 2f 20 2b 20 38 36 0d 0a 2d 2d 2d 2d 0d 0a 0d   / + 86..----...
38780 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20  .onlyif mysql # 
38790 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65 72 20  DIV for integer 
387a0 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75 65 72  division: ..quer
387b0 79 20 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65  y I rowsort labe
387c0 6c 2d 31 32 37 34 0d 0a 53 45 4c 45 43 54 20 2b  l-1274..SELECT +
387d0 20 63 6f 6c 30 20 44 49 56 20 33 32 20 46 52 4f   col0 DIV 32 FRO
387e0 4d 20 74 61 62 30 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab0..----..0.
387f0 0a 32 0d 0a 33 0d 0a 0d 0a 73 6b 69 70 69 66 20  .2..3....skipif 
38800 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f 6d 70  mysql # not comp
38810 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20 49 20  atible..query I 
38820 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d 31 32  rowsort label-12
38830 37 34 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f 6c  74..SELECT + col
38840 30 20 2f 20 33 32 20 46 52 4f 4d 20 74 61 62 30  0 / 32 FROM tab0
38850 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 32 0d 0a 33 0d  ..----..0..2..3.
38860 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
38870 23 20 44 49 56 20 66 6f 72 20 69 6e 74 65 67 65  # DIV for intege
38880 72 20 64 69 76 69 73 69 6f 6e 3a 20 0d 0a 71 75  r division: ..qu
38890 65 72 79 20 49 49 20 72 6f 77 73 6f 72 74 20 6c  ery II rowsort l
388a0 61 62 65 6c 2d 31 32 37 35 0d 0a 53 45 4c 45 43  abel-1275..SELEC
388b0 54 20 41 4c 4c 20 2b 20 36 37 20 44 49 56 20 2b  T ALL + 67 DIV +
388c0 20 63 6f 6c 30 20 41 53 20 63 6f 6c 30 2c 20 63   col0 AS col0, c
388d0 6f 6c 32 20 2a 20 2b 20 63 6f 6c 30 20 46 52 4f  ol2 * + col0 FRO
388e0 4d 20 74 61 62 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  M tab2..----..0.
388f0 0a 34 33 35 30 0d 0a 31 0d 0a 31 30 35 38 0d 0a  .4350..1..1058..
38900 31 0d 0a 32 35 36 30 0d 0a 0d 0a 73 6b 69 70 69  1..2560....skipi
38910 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
38920 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
38930 49 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c  II rowsort label
38940 2d 31 32 37 35 0d 0a 53 45 4c 45 43 54 20 41 4c  -1275..SELECT AL
38950 4c 20 2b 20 36 37 20 2f 20 2b 20 63 6f 6c 30 20  L + 67 / + col0 
38960 41 53 20 63 6f 6c 30 2c 20 63 6f 6c 32 20 2a 20  AS col0, col2 * 
38970 2b 20 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32  + col0 FROM tab2
38980 0d 0a 2d 2d 2d 2d 0d 0a 30 0d 0a 34 33 35 30 0d  ..----..0..4350.
38990 0a 31 0d 0a 31 30 35 38 0d 0a 31 0d 0a 32 35 36  .1..1058..1..256
389a0 30 0d 0a 0d 0a 71 75 65 72 79 20 49 49 49 20 72  0....query III r
389b0 6f 77 73 6f 72 74 0d 0a 53 45 4c 45 43 54 20 44  owsort..SELECT D
389c0 49 53 54 49 4e 43 54 20 2a 20 46 52 4f 4d 20 74  ISTINCT * FROM t
389d0 61 62 31 20 57 48 45 52 45 20 4e 55 4c 4c 20 4e  ab1 WHERE NULL N
389e0 4f 54 20 42 45 54 57 45 45 4e 20 2d 20 2b 20 31  OT BETWEEN - + 1
389f0 36 20 41 4e 44 20 4e 55 4c 4c 0d 0a 2d 2d 2d 2d  6 AND NULL..----
38a00 0d 0a 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73  ....query I rows
38a10 6f 72 74 0d 0a 53 45 4c 45 43 54 20 2b 20 63 6f  ort..SELECT + co
38a20 6c 30 20 2a 20 2d 20 63 6f 6c 30 20 2a 20 2d 20  l0 * - col0 * - 
38a30 2b 20 39 32 20 46 52 4f 4d 20 74 61 62 32 0d 0a  + 92 FROM tab2..
38a40 2d 2d 2d 2d 0d 0a 31 39 34 36 37 32 0d 0a 33 37  ----..194672..37
38a50 36 38 33 32 0d 0a 35 31 37 35 30 30 0d 0a 0d 0a  6832..517500....
38a60 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20 23 20 61  onlyif mysql # a
38a70 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
38a80 20 0d 0a 71 75 65 72 79 20 49 20 72 6f 77 73 6f   ..query I rowso
38a90 72 74 20 6c 61 62 65 6c 2d 31 32 37 38 0d 0a 53  rt label-1278..S
38aa0 45 4c 45 43 54 20 41 4c 4c 20 43 4f 55 4e 54 28  ELECT ALL COUNT(
38ab0 20 2a 20 29 20 41 53 20 63 6f 6c 30 20 46 52 4f   * ) AS col0 FRO
38ac0 4d 20 74 61 62 32 20 41 53 20 63 6f 72 30 20 57  M tab2 AS cor0 W
38ad0 48 45 52 45 20 28 20 4e 55 4c 4c 20 29 20 42 45  HERE ( NULL ) BE
38ae0 54 57 45 45 4e 20 63 6f 6c 30 20 41 4e 44 20 2b  TWEEN col0 AND +
38af0 20 63 6f 6c 32 20 2b 20 2d 20 63 6f 6c 32 0d 0a   col2 + - col2..
38b00 2d 2d 2d 2d 0d 0a 30 0d 0a 0d 0a 73 6b 69 70 69  ----..0....skipi
38b10 66 20 6d 79 73 71 6c 20 23 20 6e 6f 74 20 63 6f  f mysql # not co
38b20 6d 70 61 74 69 62 6c 65 0d 0a 71 75 65 72 79 20  mpatible..query 
38b30 49 20 72 6f 77 73 6f 72 74 20 6c 61 62 65 6c 2d  I rowsort label-
38b40 31 32 37 38 0d 0a 53 45 4c 45 43 54 20 41 4c 4c  1278..SELECT ALL
38b50 20 43 4f 55 4e 54 20 28 20 2a 20 29 20 41 53 20   COUNT ( * ) AS 
38b60 63 6f 6c 30 20 46 52 4f 4d 20 74 61 62 32 20 41  col0 FROM tab2 A
38b70 53 20 63 6f 72 30 20 57 48 45 52 45 20 28 20 4e  S cor0 WHERE ( N
38b80 55 4c 4c 20 29 20 42 45 54 57 45 45 4e 20 63 6f  ULL ) BETWEEN co
38b90 6c 30 20 41 4e 44 20 2b 20 63 6f 6c 32 20 2b 20  l0 AND + col2 + 
38ba0 2d 20 63 6f 6c 32 0d 0a 2d 2d 2d 2d 0d 0a 30 0d  - col2..----..0.
38bb0 0a 0d 0a 6f 6e 6c 79 69 66 20 6d 79 73 71 6c 20  ...onlyif mysql 
38bc0 23 20 43 41 53 54 20 73 79 6e 74 61 78 3a 20 61  # CAST syntax: a
38bd0 67 67 72 65 67 61 74 65 20 73 79 6e 74 61 78 3a  ggregate syntax:
38be0 20 53 49 47 4e 45 44 20 74 79 70 65 3a 20 0d 0a   SIGNED type: ..
38bf0 71 75 65 72 79 20 49 20 72 6f 77 73 6f 72 74 20  query I rowsort 
38c00 6c 61 62 65 6c 2d 31 32 37